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

Alexa를 사용하여 TV를 제어하세요!

구성품 및 소모품

Arduino UNO
이것은 IR 전송 다이오드와 함께 TV 명령을 텔레비전으로 보내는 데 사용됩니다.
× 1
NodeMCU ESP8266 브레이크아웃 보드
이 구성요소는 "WEMO" 장치로 Amazon Alexa 앱에 연결하는 Wi-Fi 모듈입니다. . 각 장치에 대한 펄스를 Arduino UNO로 전송
× 1
IR 송신기/수신기
이 구성요소는 IR 명령을 TV로 보내기 위해 100옴 저항과 직렬로 사용됩니다.
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

Alexa를 사용하여 TV 제어!

소개: 따라서 이 프로젝트에서는 Alexa를 사용하여 명령을 보내고 TV와 대화하여 TV를 제어하는 ​​방법에 대해 설명합니다. TV Remote가 할 수 있는 모든 것을 Alexa가 할 수 있습니다. 우리가 할 일은 원격 IR 신호를 녹음하고 Alexa를 사용하여 음성 명령을 받았을 때 동일한 신호를 다시 보내는 것입니다. 이를 실현하거나 이 YouTube 동영상을 시청하는 데 필요한 단계는 다음과 같습니다.

1단계:필수 라이브러리 다운로드

다음 라이브러리를 다운로드하여 Arduino IDE 라이브러리에 넣습니다.

<울>
  • ESPAsyncTCP - https://github.com/me-no-dev/ESPAsyncTCP
  • <울>
  • ESPAsyncUDP - https://github.com/me-no-dev/ESPAsyncUDP
  • <울>
  • FauxMoESP - https://bitbucket.org/xoseperez/fauxmoesp> 다운로드> 저장소 다운로드
  • 2단계:NodeMCU(Wi-Fi 모듈) 프로그래밍

    ESP8266-Alexa.ino 스케치를 열고 NodeMCU에 업로드합니다(Arduino IDE의 보드 관리자에서 보드 정보 다운로드). Wi-Fi 자격 증명과 기기 이름만 변경하면 됩니다.

    ESP8266-Alexa.ino 스케치의 장치 이름과 IR-Alexa-Send.ino 스케치에서 나가는 신호를 맞춤설정할 수 있습니다.

    3단계:TV 리모컨에서 IR 신호 읽기

    IR_REMOTE_read.ino 스케치를 Arduino에 업로드하여 원격 신호 히트를 읽고 나중에 이 튜토리얼에서 볼 수 있는 참조를 위해 수신된 IR 신호를 기록합니다.

    4단계:Alexa를 통해 TV IR 신호를 보내도록 Arduino 프로그래밍

    다음으로 Arduino IDE에서 IR-Alexa-Send.ino를 열고 Arduino Uno에 업로드합니다(업로드 보드 정보를 UNO로 변경해야 함).

    두 모듈에 전원을 연결하고 그 사이에 전선을 연결합니다. IR 송신기가 UNO의 터미널 3에 연결되어 있는지 확인하십시오. 자세한 내용은 첨부된 회로도를 참조하십시오.

    5단계:Alexa로 프로젝트 테스트

    이제 모바일 장치 또는 PC에서 Amazon Alexa 앱으로 이동하여 Smart Home으로 이동한 다음 "장치 추가"를 눌러 ESP8266-Alexa.ino 스케치에서 설정한 각 명령을 찾으십시오.

    찾으면 다음 명령 구조 중 하나를 사용하여 테스트할 수 있습니다.

    <울>
  • "Alexa, 기기 이름 켜줘 "
  • <울>
  • "Alexa, DEVICE NAME 회전 켜"
  • <울>
  • "Alexa, 기기 이름을 돌려 켜"
  • <울>
  • "Alexa, 기기 이름 켜줘 "
  • <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
  • ESP8266-Alexa.inoC/C++
    이것은 Arduino IDE를 통해 "WEMO" 장치를 에뮬레이트하기 위해 NodeMCU 칩에 작성됩니다.
    #include #include #include "fauxmoESP.h"// ----- -------------------------------------------------- ----------------------// 와이파이 자격 증명// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys#define WIFI_PASS ""#define SERIAL_BAUDRATE 115200fauxmoESP fauxmo;// -------------------------- -------------------------------------------------- -// 와이파이// -------------------------------------------- ----------------------------------void wifiSetup() { // WIFI 모듈을 STA 모드로 설정 WiFi.mode( WIFI_STA); // 연결 Serial.printf("[WIFI] %s에 연결 중 ", WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASS); // Wait while (WiFi.status() !=WL_CONNECTED) { Serial.print("."); 지연(100); } 직렬.println(); // 연결되었습니다! Serial.printf("[WIFI] 스테이션 모드, SSID:%s, IP 주소:%s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); }// ----------------------------------------------- ------------------------------// 핀 초기화// -------------- -------------------------------------------------- -------------#define RELAY_PIN1 13#define RELAY_PIN2 2#define RELAY_PIN3 14#define RELAY_PIN4 15void setup() { //릴레이 핀 초기화 pinMode(RELAY_PIN1, OUTPUT); 디지털 쓰기(RELAY_PIN1, LOW); 핀모드(RELAY_PIN2, 출력); 디지털 쓰기(RELAY_PIN2, LOW); 핀모드(RELAY_PIN3, 출력); 디지털 쓰기(RELAY_PIN3, LOW); 핀모드(RELAY_PIN4, 출력); 디지털 쓰기(RELAY_PIN4, LOW); // 직렬 포트를 초기화하고 쓰레기를 청소합니다. Serial.begin(SERIAL_BAUDRATE); 직렬.println(); 직렬.println(); Serial.println("FauxMo 데모 스케치"); Serial.println("연결 후 Alexa/Echo에 '픽셀 켜기' 또는 '끄기' 또는 '릴레이 켜기' 또는 '끄기'를 요청하세요."); // 와이파이 wifiSetup();// ----------------------------------------- ------------------------------------// Alexa 장치 이름// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice("TV"); fauxmo.addDevice("GregsNetflix"); fauxmo.addDevice("수면"); fauxmo.addDevice("사무실"); fauxmo.onMessage(콜백);}// ---------------------------------------- --------------------------------------// Alexa 작업 호출// ------ -------------------------------------------------- --------------------- 무효 콜백(uint8_t device_id, const char * device_name, bool state) { Serial.printf("[MAIN] %s 상태:%s \n", device_name, 상태 ? "ON" :"OFF"); if ( (strcmp(device_name, "TV") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN1, HIGH); } else { digitalWrite(RELAY_PIN1, HIGH); } } if ( (strcmp(device_name, "GregsNetflix") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN2, HIGH); } else { digitalWrite(RELAY_PIN2, LOW); } } if ( (strcmp(device_name, "Sleep") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN3, HIGH); } else { digitalWrite(RELAY_PIN3, LOW); } } if ( (strcmp(device_name, "Office") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN4, HIGH); } else { digitalWrite(RELAY_PIN4, LOW); } }} 무효 루프() { fauxmo.handle(); 지연(500); 디지털 쓰기(RELAY_PIN1, LOW); 디지털 쓰기(RELAY_PIN2, LOW); 디지털 쓰기(RELAY_PIN3, LOW); digitalWrite(RELAY_PIN4, LOW);}
    IR-Alexa-Send.inoC/C++
    이것은 Arduino UNO에 업로드되어 NodeMCU에서 신호를 읽고 IR 전송 다이오드를 통해 적절한 IR 신호를 보냅니다.
    #include IRsend irsend;#define a 4#define b 5#define c 6# d 7void setup() 정의 { Serial.begin(9600); 핀모드(a, 입력); 핀모드(b, 입력); 핀모드(c, 입력); pinMode(d, INPUT);} 무효 루프() { if (digitalRead(a) ==HIGH) { irsend.sendNEC(0x57E3E817, 32); //전원 코드 Serial.println("TV"); 지연(500); } if (digitalRead(b) ==HIGH) { irsend.sendNEC(0x57E354AB, 32); //키 입력 지연(2000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(1000); irsend.sendNEC(0x57E354AB, 32); //지연 입력(2000); irsend.sendNEC(0x57E354AB, 32); //Enter Serial.println("사무실"); 지연(500); } if (digitalRead(c) ==HIGH) { irsend.sendNEC(0x57E38679, 32); //옵션 버튼 지연(1500); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(700); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(900); irsend.sendNEC(0x57E38679, 32); //옵션 버튼 Serial.println("슬립 타이머"); 지연(500); } if (digitalRead(d) ==HIGH) { irsend.sendNEC(0x57E34AB5, 32); //넷플릭스 코드 Serial.println("그렉의 넷플릭스"); 지연(500); }}
    IR_REMOTE_read.inoC/C++
    Arduino에서 이 코드를 사용하여 리모콘에서 IR 수신기로 오는 Clicker Hits를 읽으십시오.
    //2017.06.22#include #include /* LCD 화면을 배선하는 방법 상단에 핀이 있는 왼쪽에서 오른쪽으로 핀 * * GND - VCC - 냄비 중간 - 12 - GND - 11 - 없음 - 없음 - 없음 - 없음 - 5 - 4 - 9 - 2 - VCC - GND * * 냄비는 5V 및 GND를 켜고 노브를 돌려 LCD 대비를 변경할 수 있습니다. */ LiquidCrystal lcd(12, 11, 5, 4, 9, 2); //3 대신 9(NEED FOR TRANSMITTER)int receiverpin =10;IRrecv recv(receiverpin);decode_results results;void setup() { lcd.begin(16, 2); 핀모드(수신기 핀, 입력); Serial.begin(9600); recv.enableIRIn();} 무효 루프() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); recv.resume(); lcd.clear(); lcd.print(결과.값, 16진수); 지연(150); }}

    회로도

    Arduino NodeMCU(Wi-Fi 모듈)를 연결하는 최종 회로도입니다.

    제조공정

    1. 피임약
    2. 산업 제어 시스템을 무선으로 전환
    3. 귀하의 제품에 열경화성 복합 재료를 사용하는 이유
    4. 손상된 터치스크린 컨트롤을 수리하거나 교체하시겠습니까?
    5. 천장 선풍기에 Alexa 제어 기능을 사용하도록 설정
    6. 자신의 차량 수리 관리
    7. 산업 제어 시스템 보안
    8. 드릴링 머신을 사용하여 금속을 드릴링하는 방법
    9. 프로세스 제어 시스템을 디버그하는 8단계
    10. PC에서 WakeOnLan(WoL)에 PLCnext 사용