リモートコントロールは、画面上でほぼ同じボタンを使用してテレビとプレーヤーを制御するという点で非常に便利です。 違いの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」というボタンが「 ◻ 」というボタンに変わります。
デバイスから切断するには、電源ボタンを数秒間押し続けます。
販売者へのリンクを含む使用済みコンポーネントのリスト
さて、私の完成したデバイスのいくつかの写真。
悪くないように、それは判明しました。 記事に関するコメントを待っています。