Arduinoのユニバーサルリモート

Arduinoでテレビのリモコンを作成する方法に関するインターネット上の記事は多数ありますが、テレビとメディアプレーヤーを制御するためのユニバーサルリモコンが必要でした。 私のユニバーサルリモートコントロールの主な利点は、Androidフォン用のアプリケーションのボタンが2つの目的に使用できることですが、ちなみにビデオを見てください。







リモートコントロールは、画面上でほぼ同じボタンを使用してテレビとプレーヤーを制御するという点で非常に便利です。 違いの1つは、プレーヤー制御モードに切り替えると、TV制御モードの[ AV ]ボタンが[the](停止)ボタンに変わることです。 写真は2つのモードを示しています。左側はテレビ制御モード、右側はプレーヤー制御モードです。



画像画像



それでは、このようなリモートコントロールの作成について少し説明します。 デバイスには、ERGO TVのリモコンとDUNE HD TV101Wメディアプレーヤーのリモコンを使用しました。



画像



リモートコントロールからデータを受信するために、38 kHzの動作周波数でTSOP1138赤外線センサー(TSOP4838のアナログ)を使用し、スキームに従ってArduinoボードに接続しました。



画像



まず、リモコンのボタンのコードを読む必要があります。 IRremoteライブラリとIRrecvDumpテストスケッチを使用しました。



画像



このスケッチは、データ転送のエンコードを決定し、リモコンのボタンのコードを読み取るために必要です。



ラインint RECV_PIN = 11のスケッチ。 4番のピンを示します




スケッチを記入した後、「ポートモニター」を開き、リモコンのボタンをクリックして、受信したデータを確認します。



画像



写真は、テレビのリモコンとプレーヤーのリモコンから電源ボタンをスキャンする例を示しています。 次に、ボタンコード用のテーブルを作成します。



画像



上の写真のようにしました。 TVの碑文の下には、 TVのリモコンボタンがあります。 碑文プレーヤーの下-リモートメディアプレーヤーからのコード。



次に、赤外線信号受信機をArduinoボードから取り外し、写真のスキームに従ってHC-05 Bluetoothモジュールと赤外線LEDを接続します。



画像



その後、スケッチに直接移動します。



スケッチ
#include <IRremote.h> IRsend irsend; int y = 1; void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { int x = Serial.read(); if (x == 49) { y = 1; } if (x == 50) { y = 2; } if (y == 1) { //       if (x == 97) { irsend.sendNEC(0x807F08F7, 32); delay(40); } if (x == 98) { irsend.sendNEC(0x807FA857, 32); delay(40); } if (x == 99) { irsend.sendNEC(0x807F708F, 32); delay(40); } if (x == 100) { irsend.sendNEC(0x807FF00F, 32); delay(40); } if (x == 101) { irsend.sendNEC(0x807F30CF, 32); delay(40); } if (x == 102) { irsend.sendNEC(0x807FB04F, 32); delay(40); } if (x == 103) { irsend.sendNEC(0x807F9867, 32); delay(40); } if (x == 104) { irsend.sendNEC(0x807F58A7, 32); delay(40); } if (x == 105) { irsend.sendNEC(0x807FD827, 32); delay(40); } if (x == 106) { irsend.sendNEC(0x807F38C7, 32); delay(40); } if (x == 107) { irsend.sendNEC(0x807F48B7, 32); delay(40); } if (x == 108) { irsend.sendNEC(0x807FB847, 32); delay(40); } if (x == 109) { irsend.sendNEC(0x807F6897, 32); delay(40); } } if (y == 2) { //     if (x == 97) { irsend.sendNEC(0xFDC23D, 32); delay(40); } if (x == 98) { irsend.sendNEC(0xFDE01F, 32); delay(40); } if (x == 99) { irsend.sendNEC(0xFD18E7, 32); delay(40); } if (x == 100) { irsend.sendNEC(0xFDE817, 32); delay(40); } if (x == 101) { irsend.sendNEC(0xFDA857, 32); delay(40); } if (x == 102) { irsend.sendNEC(0xFD6897, 32); delay(40); } if (x == 103) { irsend.sendNEC(0xFDA857, 32); delay(40); } if (x == 104) { irsend.sendNEC(0xFD6897, 32); delay(40); } if (x == 105) { irsend.sendNEC(0xFDE817, 32); delay(40); } if (x == 106) { irsend.sendNEC(0xFD18E7, 32); delay(40); } if (x == 107) { irsend.sendNEC(0xFD9867, 32); delay(40); } if (x == 108) { irsend.sendNEC(0xFD28D7, 32); delay(40); } if (x == 109) { irsend.sendNEC(0xFD20DF, 32); delay(40); } } } }
      
      







スケッチでは、次の行のボタンコードを編集する必要があります。



 if (x == 97) { irsend.sendNEC(0x807F08F7, 32); delay(40);
      
      





807F08F7の値を次のように変更します。



 if (y == 1) { //      if (x == 97) { irsend.sendNEC(0x12345678, 32); delay(40); }
      
      





12345678はボタンのコードです。



ボタンコードのスケッチを編集した後、Arduinoボードにスケッチを記入し、電話へのアプリケーションのインストールに進みます。



[ Androidデバイス用アプリケーション「ユニバーサルリモートコントロール」をダウンロードする ]



電話でbluetoothをオンにし、デバイスを探してペアを作成し、電話でPultアプリケーションを起動します。



起動すると、画面の右下隅に赤いbluetoothアイコンが表示されます。これは、デバイスに接続されていないことを示しています。



画像



その後、このアイコンをクリックします。 利用可能なすべてのbluetoothデバイスのリストを含むウィンドウが表示され、接続するデバイスを選択します。



画像



これでメイン画面に戻り、すでにテレビを制御できます。



画像



制御モードに切り替えるには、 「Player」という碑文のボタンを押す必要があります。 先ほど言ったように、「AV」というボタンが「 」というボタンに変わります。



画像



デバイスから切断するには、電源ボタンを数秒間押し続けます。



販売者へのリンクを含む使用済みコンポーネントのリスト
Arduino Pro Mini ATMEGA328 5V / 16MHz -1個

BluetoothモジュールHC-05 1個

TSOP4838赤外線信号レシーバー -1個

赤外線ダイオード -1個



さて、私の完成したデバイスのいくつかの写真。



画像



画像



画像



悪くないように、それは判明しました。 記事に関するコメントを待っています。



All Articles