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」というボタンが「 」というボタンに変わります。

画像

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

販売者へのリンクを含む使用済みコンポーネントのリスト

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

画像

画像

画像

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

Source: https://habr.com/ru/post/J254761/


All Articles