工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Alexaを使用してテレビを制御してください!

コンポーネントと消耗品

>
Arduino UNO
これは、テレビコマンドをテレビに送信するためにIR送信ダイオードとともに使用されます
× 1
NodeMCUESP8266ブレイクアウトボード
このコンポーネントは、「WEMO」デバイスとしてAmazonAlexaアプリに接続するWi-Fiモジュールです。 。各デバイスのパルスをArduinoUNOに送信します
× 1
>
IR送信機/受信機
このコンポーネントは、100オームの抵抗器と直列に使用してIRコマンドをテレビに送信します
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

Alexaを使用してテレビを制御します!

イントロ: そのため、このプロジェクトでは、Alexaを使用してコマンドを送信し、テレビに話しかけることでテレビを制御する方法について説明します。 TVリモコンでできることは何でも、Alexaでできます。これから行うことは、リモートIR信号を記録し、音声コマンドが送信されたときにAlexaを使用して同じ信号を再送信することです。これを実現するため、またはこのYouTubeビデオを視聴するために必要な手順は次のとおりです。

ステップ1:前提条件のライブラリをダウンロードする

次のライブラリをダウンロードして、ArduinoIDEライブラリに配置します。

  • 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:テレビのリモコンからIR信号を読み取る

IR_REMOTE_read.inoスケッチをArduinoにアップロードして、リモート信号ヒットを読み取り、このチュートリアルで見られるように、後で参照できるように受信したIR信号を記録します。

ステップ4:Alexa経由でTVIR信号を送信するようにArduinoをプログラミングする

次に、Arduino IDEでIR-Alexa-Send.inoを開き、Arduino Unoにアップロードします(アップロードボード情報をUNOに変更してください)。

両方のモジュールとそれらの間の接続ワイヤに電源を接続します。 IRトランスミッターがUNOのターミナル3に配線されていることを確認してください。詳細については、添付の回路図を参照してください:

<図>

ステップ5:Alexaでプロジェクトをテストする

次に、モバイルデバイスまたはPCでAmazon Alexaアプリに移動し、スマートホームに移動して[デバイスの追加]を押し、ESP8266-Alexa.inoスケッチで設定した各コマンドを見つけます。

<図>

それらが見つかったら、次のコマンド構造のいずれかを使用してテストできます。

  • 「アレクサ、デバイス名をオンにします "
  • 「アレクサ、デバイス名を回してください オン」
  • 「アレクサ、デバイス名を回してください オン」
  • 「アレクサ、デバイス名をオンにします "

コード

  • ESP8266-Alexa.ino
  • IR-Alexa-Send.ino
  • IR_REMOTE_read.ino
ESP8266-Alexa.ino C / C ++
これは、ArduinoIDEを介して「WEMO」デバイスをエミュレートするためにNodeMCUチップに書き込まれます
 #include  #include  #include "fauxmoESP.h" // ----- -------------------------------------------------- ---------------------- // Wifi資格情報// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys" #define WIFI_PASS "" #define SERIAL_BAUDRATE 115200fauxmoESP fauxmo; // -------------------------- -------------------------------------------------- -// Wi-Fi// - - - - - - - - - - - - - - - - - - - - - - --------------------------------- void wifiSetup(){// WIFIモジュールをSTAモードに設定WiFi.mode( WIFI_STA); // Serial.printf( "[WIFI] Connecting to%s"、WIFI_SSID);に接続しますWiFi.begin(WIFI_SSID、WIFI_PASS); //しばらく待ちます(WiFi.status()!=WL_CONNECTED){Serial.print( "。"); delay(100); } Serial.println(); //接続しました! Serial.printf( "[WIFI] STATIONモード、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); digitalWrite(RELAY_PIN1、LOW); pinMode(RELAY_PIN2、OUTPUT); digitalWrite(RELAY_PIN2、LOW); pinMode(RELAY_PIN3、OUTPUT); digitalWrite(RELAY_PIN3、LOW); pinMode(RELAY_PIN4、OUTPUT); digitalWrite(RELAY_PIN4、LOW); //シリアルポートを初期化し、ガベージをクリーンアップしますSerial.begin(SERIAL_BAUDRATE); Serial.println(); Serial.println(); Serial.println( "FauxMoデモスケッチ"); Serial.println( "接続後、Alexa / Echoに「ピクセルをオンにする」または「オフにする」または「リレーをオンにする」または「オフにする」ように依頼します。 // Wifi wifiSetup(); // ----------------------------------------- ------------------------------------ // Alexaデバイス名// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice( "TV"); fauxmo.addDevice( "GregsNetflix"); fauxmo.addDevice( "Sleep"); fauxmo.addDevice( "Office"); fauxmo.onMessage(callback);} // ---------------------------------------- ------------------------------------- // Alexaオペレーションコール// ------ -------------------------------------------------- --------------------- void callback(uint8_t device_id、const char * device_name、bool state){Serial.printf( "[MAIN]%s state:%s \ n "、device_name、state?" ON ":" OFF "); if((strcmp(device_name、 "TV")==0)){//リレーをすぐに調整します! if(state){digitalWrite(RELAY_PIN1、HIGH); } else {digitalWrite(RELAY_PIN1、HIGH); }} if((strcmp(device_name、 "GregsNetflix")==0)){//リレーをすぐに調整します! if(state){digitalWrite(RELAY_PIN2、HIGH); } else {digitalWrite(RELAY_PIN2、LOW); }} if((strcmp(device_name、 "Sleep")==0)){//リレーをすぐに調整します! if(state){digitalWrite(RELAY_PIN3、HIGH); } else {digitalWrite(RELAY_PIN3、LOW); }} if((strcmp(device_name、 "Office")==0)){//リレーをすぐに調整します! if(state){digitalWrite(RELAY_PIN4、HIGH); } else {digitalWrite(RELAY_PIN4、LOW); }}} void loop(){fauxmo.handle(); delay(500); digitalWrite(RELAY_PIN1、LOW); digitalWrite(RELAY_PIN2、LOW); digitalWrite(RELAY_PIN3、LOW); digitalWrite(RELAY_PIN4、LOW);} 
IR-Alexa-Send.ino C / C ++
これはArduinoUNOにアップロードされ、NodeMCUから信号を読み取り、IR送信ダイオードを介して適切なIR信号を送信します
 #include  IRsend irsend; #define a 4#define b 5#define c 6#定義d7void setup(){Serial.begin(9600); pinMode(a、INPUT); pinMode(b、INPUT); pinMode(c、INPUT); pinMode(d、INPUT);} void loop(){if(digitalRead(a)==HIGH){irsend.sendNEC(0x57E3E817、32); //電源コードSerial.println( "TV"); delay(500); } if(digitalRead(b)==HIGH){irsend.sendNEC(0x57E354AB、32); //キーdelay(2000);を入力しますirsend.sendNEC(0x57E39867、32); // Up Key delay(1000); irsend.sendNEC(0x57E39867、32); // Up Key delay(1000); irsend.sendNEC(0x57E39867、32); // Up Key delay(1000); irsend.sendNEC(0x57E3B44B、32); //右キーdelay(1000); irsend.sendNEC(0x57E354AB、32); // delay(2000);と入力しますirsend.sendNEC(0x57E354AB、32); // Serial.println( "The Office");と入力しますdelay(500); } if(digitalRead(c)==HIGH){irsend.sendNEC(0x57E38679、32); //オプションボタンdelay(1500); irsend.sendNEC(0x57E3CC33、32); //ダウンキーdelay(700); irsend.sendNEC(0x57E3CC33、32); //ダウンキーdelay(700); irsend.sendNEC(0x57E3CC33、32); //ダウンキーdelay(700); irsend.sendNEC(0x57E3CC33、32); //ダウンキーdelay(700); irsend.sendNEC(0x57E3B44B、32); //右キーdelay(700); irsend.sendNEC(0x57E3B44B、32); //右キーdelay(900); irsend.sendNEC(0x57E38679、32); //オプションボタンSerial.println( "スリープタイマー"); delay(500); } if(digitalRead(d)==HIGH){irsend.sendNEC(0x57E34AB5、32); // NetflixコードSerial.println( "Greg's Netflix"); delay(500); }} 
IR_REMOTE_read.ino C / C ++
Arduinoでこのコードを使用して、リモコンからIRレシーバーに到達するクリッカーヒットを読み取ります。
 // 2017.06.22#include  #include  / * LCD画面の配線方法左右のピンと上面のピン** GND-VCC-POT MIDDLE-12-GND-11--NONE--NONE--NONE--NONE-5-4-9-2-VCC--GND * * POTは5Vである必要がありますGNDをオンにして、ノブを回転させてLCDコントラストを変更できます* / LiquidCrystal lcd(12、11、5、4、9、2); // 3ではなく9(NEED FOR TRANSMITTER)int Receiverpin =10; IRrecv irrecv(receiverpin); decode_results results; void setup(){lcd.begin(16、2); pinMode(receiverpin、INPUT); Serial.begin(9600); irrecv.enableIRIn();} void loop(){if(irrecv.decode(&results)){Serial.println(results.value、HEX); irrecv.resume(); lcd.clear(); lcd.print(results.value、HEX); delay(150); }} 

回路図

これは、ArduinoをNodeMCU(Wi-Fiモジュール)に接続する最終的な回路図です。

製造プロセス

  1. 経口避妊薬
  2. 産業用制御システムをワイヤレスに移行する
  3. 製品に熱硬化性複合材料を使用する理由
  4. 損傷したタッチスクリーンコントロールを修理または交換しますか?
  5. シーリングファンに対してAlexaコントロールを有効にする
  6. CortanaでLEDを制御する
  7. 自分の車の修理を管理する
  8. 産業用制御システムの保護
  9. ドリルマシンを使用して金属に穴をあける方法
  10. プロセス制御システムをデバッグするための 8 つのステップ
  11. PLCnext を使って PC を WakeOnLan (WoL) にする