산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

J.A.R.V.I.S. :가상 홈 어시스턴트

구성품 및 소모품

아두이노 101
× 1
Arduino 4 릴레이 실드
× 1
Arduino GSM 실드 V2
× 1

필요한 도구 및 기계

납땜 인두(일반)
뜨거운 글루건(일반)

앱 및 온라인 서비스

유니티
Android 스튜디오
뷰포리아
어도비 일러스트레이터
Arduino IDE

이 프로젝트 정보

스마트 홈 문제를 해결해야 하는 이유는 무엇입니까?

새로운 기능은 무엇입니까?

우리가 그것을 만들기로 결정한 이유는 무엇입니까?

작업

디지털 에너지 미터

AI 가상 비서

신호의 흐름은 다음과 같습니다.

<울>
  • 1. Android 앱에 음성 입력
  • <울>
  • 2. Android 앱에서 처리
  • <울>
  • 3. 블루투스를 통해 암호화된 데이터를 Arduino로 전송합니다.
  • <울>
  • 4. Arduino 101에서 처리
  • <울>
  • 5. 릴레이할 디지털 신호
  • 핀 연결:

    <울>
  • 핀 8 --> PulseIn [디지털 입력]
  • <울>
  • 핀 6 --> IN1 --> 팬 출력
  • <울>
  • 핀 4 --> IN2 --> 광 출력
  • <울>
  • 핀 5 --> IN3 --> 커피 메이커
  • 에너지 측정기 연결:

    <울>
  • 미터를 전원에 연결합니다.
  • <울>
  • 검정 테이프로 에너지 미터를 덮어 에너지 미터 내부의 LDR을 외부 빛으로부터 차단합니다.
  • <울>
  • 중성선을 부하에 직접 연결하고 상선을 릴레이에 연결합니다.
  • <울>
  • 미터 외부의 LDR에서 카운터 회로까지 전선을 가져갑니다.
  • <울>
  • 이제 코드에서와 같이 카운터 회로에서 할당된 핀 8 펄스 핀으로 출력을 가져옵니다.
  • <울>
  • 아두이노 101의 TX, RX 핀을 GSM 모듈의 RX, TX 핀에 연결합니다.
  • <울>
  • 이제 코드를 구운 후 보드의 전원을 켭니다.
  • 회로도

    사용된 하드웨어 및 장비:

    <울>
  • 내부 에너지 측정기:LDR 광 종속 저항기
  • <울>
  • GSM 모듈
  • <울>
  • 카운터 회로:전위차계, IC LM358N
  • <울>
  • 아두이노 101
  • <울>
  • BlueTooth-HC05 모듈
  • <울>
  • PIC AVR ARM용 옵토커플러가 있는 4채널 12V 10A 릴레이 제어 보드 모듈
  • 프로그래밍 플랫폼

    <울>
  • · Arduino 101 프로그래밍을 위해 기본 Arduino IDE를 사용했습니다.
  • <울>
  • · Android Studio(JAVA 및 XML)를 사용하여 Android 앱을 개발했습니다.
  • <울>
  • · 데이터베이스 연결은 Google의 Firebase를 사용하여 수행됩니다.
  • <울>
  • · 증강 현실을 위해 Vuforia SDK와 함께 Unity를 사용했습니다.
  • 구현:

    <울>
  • 모든 구성 요소는 Arduino에 판독값을 제공하고 여기에서 바이트를 컴퓨터에 효율적이고 빠르게 보내기 위해 이러한 판독값을 문자 코드로 변환합니다. 끝나지 않는 루프 내에서 모든 판독값은 문자에 해당합니다.
  • <울>
  • 직렬 포트를 통해 arduino에서 전송되는 데이터를 수신하려면 컴퓨터에서 코드가 실행되어야 합니다.
  • <울>
  • Android 앱을 개발하기 위해 Android 스튜디오를 사용하고 음성을 텍스트로 변환하기 위해 표준 Google API를 사용하고 있습니다.
  • <울>
  • 음성 인식을 위해 Android 앱에서 화자 독립적인 음성 인식을 위해 음향-음성 음성 매개변수를 사용하고 있습니다.
  • <울>
  • Python을 사용하여 CNN(Convolutional Neural Network)과 같은 딥 러닝 기술을 사용하여 자연어 처리를 구현하는 AI(인공 지능) 가상 비서가 있습니다.
  • <울>
  • 증강 현실 앱의 경우 Unity IDE와 VuforiaSDK(증강 현실 애플리케이션을 만들 수 있는 모바일 장치용 증강 현실 소프트웨어 개발 키트(SDK))를 사용하고 있습니다.
  • 동영상

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 디지털 에너지 판독 및 비용 계산을 위한 Arduino 코드
  • Arduino를 사용하여 릴레이하기 위해 JARVIS 연결을 구현하는 Arduino
  • 디지털 에너지 판독 및 비용 계산을 위한 Arduino 코드Arduino
    이 코드는 Arduino에 연결된 기기에서 소비하는 에너지 단위를 구현합니다.
    지침 :
    1. 연결하고 아두이노 코드에 휴대폰 번호 삽입
    2. Arduino 101에 코드 업로드
    3. 코드 실행
    4. 모든 휴대폰에서 #anytext* 형식으로 코드에 지정된 휴대폰 번호로 SMS를 보냅니다.
    5. 소비된 단위와 비용이 포함된 응답이 수신됩니다.
    #include LiquidCrystal lcd(7,6,5,4,3,2);int led=13; // 13번째 핀에서 LED 선언#define pulsein 8 //펄스 입력 핀 8 정의 unsigned int pusle_count=0; //펄스 카운트 유형을 integerfloat 단위로 선언 =0; //단위를 Floatunsigned로 선언 int rupees=0; // 루피 유형을 unsigned integerunsigned로 선언 int temp=0,i=0; //temp&i를 부호 없는 정수로 선언char str[70],flag1=0,flag2=0; // 문자 길이를 문자열로 선언하고 flagsvoid setup() { lcd.begin(16,2); // LCD 타입을 16x2로 초기화 Serial.begin(9600); // 직렬 전송 속도를 9600으로 초기화 pinMode(led, OUTPUT); 핀모드(펄스인, ​​입력); digitalWrite(펄세인, HIGH); lcd.setCursor(0,0); lcd.print("무선 에너지"); lcd.setCursor(0,1); lcd.print(" 미터 "); 지연(2000); lcd.clear(); lcd.print("별"); 지연(2000); lcd.clear(); lcd.print("GSM 초기화 중..."); gsm_init(); lcd.clear(); lcd.print("시스템 준비"); Serial.println("AT+CNMI=2,2,0,0,0"); init_sms(); send_data("시스템 준비"); 문자를 보내다(); 지연(1000); 디지털 쓰기(LED, LOW); lcd.clear();} 무효 루프() { 직렬 이벤트(); // 직렬 이벤트 확인 단위=루피/5.0; // 단위 계산 lcd.setCursor(0,0); lcd.print("단위:"); lcd.print(단위); lcd.print(" "); lcd.setCursor(0,1); lcd.print("루피:"); lcd.print(루피); lcd.print(" "); 읽기_펄스(); if(temp==1) { 체크(); }}void serialEvent() // 들어오는 SMS를 수신하고 확인하기 위한 직렬 이벤트{ while(Serial.available()) { if(Serial.find("#")) { digitalWrite(led, HIGH); 지연(1000); 디지털 쓰기(LED, LOW); 동안 (Serial.available()) { char inChar=Serial.read(); str[i++]=inChar; if(inChar=='*') { 임시 =1; 반품; } } } } void init_sms() //초기화 및 메시지 전송 구성{ Serial.println("AT+CMGF=1"); 지연(200); Serial.println("AT+CMGS=\"여기에 휴대폰 번호를 입력하세요\""); delay(200);}무효 send_data(문자열 메시지){ Serial.println(메시지); delay(200);}void send_sms(){ Serial.write(26);}//에너지 측정기에서 펄스 읽기void read_pulse(){ if(!digitalRead(pulsein)) { digitalWrite(led, HIGH); 단위++; 루피=단위*5; 동안(!디지털읽기(펄세인)); 디지털 쓰기(LED, LOW); }}//메시지 상태 확인 void check(){ if(!(strncmp(str,"units",5))) { Serial.println("AT+CMGF=1"); 지연(200); Serial.println("AT+CMGS=\"여기에 휴대폰 번호를 입력하세요\""); 지연(200); lcd.setCursor(0,1); send_data("에너지 미터 단위:"); Serial.println(단위); send_data("\n루피:"); Serial.println(루피); 지연(200); Serial.write(26); 플래그1=1; 플래그2=1; 온도=0; } } 무효 message_sent(){ lcd.clear(); lcd.print("메시지를 보냈습니다."); 지연(1000);} 무효 gsm_init(){ lcd.clear(); lcd.print("모듈 찾기.."); 부울 at_flag=1; while(at_flag) { Serial.println("AT"); while(Serial.available()>0) { if(Serial.find("OK")) at_flag=0; } 지연(1000); } lcd.clear(); lcd.print("모듈이 연결되었습니다.."); 지연(1000); lcd.clear(); lcd.print("에코 비활성화"); 부울 echo_flag=1; while(echo_flag) { Serial.println("ATE0"); while(Serial.available()>0) { if(Serial.find("OK")) echo_flag=0; } 지연(1000); } lcd.clear(); lcd.print("에코 끄기"); 지연(1000); lcd.clear(); lcd.print("네트워크 찾기.."); 부울 net_flag=1; while(net_flag) { Serial.println("AT+CPIN?"); while(Serial.available()>0) { if(Serial.find("+CPIN:준비")) net_flag=0; } 지연(1000); } lcd.clear(); lcd.print("네트워크를 찾았습니다.."); 지연(1000); lcd.clear();}
    Arduino를 사용하여 릴레이에 JARVIS 연결을 구현하는 ArduinoArduino
    안드로이드 앱과 아두이노 사이의 블루투스 직렬 전송을 구현한 코드입니다. 핀모드(CH3, 출력); 핀모드(CH4, 출력); 핀모드(CH5, 출력); 핀모드(CH6, 출력); //두 LED 모두에 전원 공급 //릴레이 채널에 대한 전원 끄기 digitalWrite(CH3, HIGH); 디지털 쓰기(CH4, HIGH); 디지털 쓰기(CH5, HIGH); 디지털 쓰기(CH6, HIGH); 지연(2000); //시퀀스를 시작하기 전에 2초 대기 } void loop() { delay(100); if(Serial.available()) { //Serial.println(sum1); char c =Serial.read(); Serial.print(c); if(c=='b') { //커피 끄기 } else if(c=='c')//켜기 {digitalWrite(CH4 ,LOW); delay(100);} else if(c=='d')//팬 on {digitalWrite(CH6,LOW); delay(100);} else if(c=='k')//커피 on {digitalWrite(CH5,LOW); delay(100);} else if(c=='g')//커피 끄기 {digitalWrite(CH5,HIGH); delay(100);} else if(c=='e')//소등 {digitalWrite(CH4,HIGH); delay(100);} else if(c=='f')//팬 끄기 {digitalWrite(CH6,HIGH); delay(100);} else if(c=='z')//안녕 {digitalWrite(CH6,HIGH); 디지털 쓰기(CH4,HIGH); 디지털 쓰기(CH3,HIGH); 디지털 쓰기(CH5,HIGH); 지연(500); 디지털 쓰기(CH5,LOW); 지연(500); 디지털 쓰기(CH5,HIGH); 지연(500); 디지털 쓰기(CH5,LOW); 지연(500); 디지털 쓰기(CH5,HIGH); 지연(10000); } } }

    맞춤형 부품 및 인클로저

    지침 :

    1. 앱 다운로드 및 설치
    2. 전화가 인터넷에 연결되어 있는지 확인
    3. 앱을 시작하고 Vuforia로 구성된 기기를 가리킵니다(여기에서 기본 Vuforia 마커가 사용됨).
    4. 기기가 시작되어야 합니다.
    5. 기기를 끄려면 전화가 기기를 가리킬 때마다 화면에 나타나는 가상 버튼을 클릭하십시오 jarvisaugmented_I2zWAu2jGG.apk

    회로도

    주의:전화에서 항상 활성 인터넷 연결이 필요합니다.
    지침 :
    1. 안드로이드 폰에 앱 설치
    2. 하드웨어를 설정하고 성공적으로 실행한 후 앱을 시작합니다.
    3. Virtual Assistant(Voice)를 사용하려면 'Listen Up JARVIS'라는 키워드를 말하세요. 에이전트를 활성화해야 합니다.
    3.1 명령을 명확하게 말하라
    3.2 에이전트는 응답을 제공해야 합니다.
    4. 증강 현실 앱을 시작하려면 증강 버튼을 클릭하십시오. 빈 화면이 나타나야 합니다
    4.1 다른 휴대폰에서 Jarvis Augmented App을 엽니다(참고:J.A.R.V.I.S. android 앱은 다른 휴대폰에 있어야 함)
    4.2 증강 현실 구현을 위해 JarvisAugmented에 제공된 지침을 따르십시오.

    참고:1. 앱이 멈추는 경우 앱을 다시 시작해 보세요.
    2. '마이크를 열 수 없습니다'와 유사한 메시지가 화면에 나타나면 앱을 다시 시작합니다.
    3. 이 앱은 프로젝트의 범위를 확장하기 위해 HC05 블루투스 모듈을 사용하여 구현됩니다. 따라서 HC05 Bluetooth 모듈을 권장합니다. app-release_eo3LK2AsLV.apk

    제조공정

    1. 가정에 무선 센서 네트워크 구축
    2. 집에서 DIY 숙제 작성 기계 만들기
    3. 웹 운영 DMX 컨트롤러
    4. Arduino 스파이봇
    5. DIY 가상 현실 스케이트보드
    6. 자율 홈 어시스턴트 로봇
    7. Alexa에 의해 활성화된 Arduino 홈 컨트롤러
    8. BLUE_P:무선 Arduino 프로그래밍 실드
    9. Arduino Nano용 TFT Shield - 시작
    10. Arduino Shield NCS314 NIXIE 튜브 시계 IN-14