目次
概要
7個の赤外線LEDで全方向に送信可能な市販のリモコンを改造し、M5Stackに接続します。赤外線を通すケースも手に入るので、簡易的なホームオートメーションの実現に便利だと思います。
先日、M5Stack 純正の IR Remote Unit を使った赤外線リモコン信号の送受信方法について紹介しました。もともと、赤外線リモコンは、人がリモコンを家電機器に向けて使うものなので、一つの送信機で部屋中の機器を制御する用途には向いていません。そこで、専用の市販品(Tuya WiFi IR Remote Control)を改造して M5Stack に接続してみました。
下記は、前回の記事です。
使用する機材
- M5Stack Core
- Tuya WiFi IR Remote Control (定価$9・Wi-Fiは取り外す)
- (M5Stack 純正 BTC-STANDING-BASE)※
- (M5Stack 純正 ENV II)※
※なくても製作できる
Tuya WiFi IR Remote Control
下図はスマホやスマートスピーカから赤外線リモコン信号を送信できる市販品です。リモコン信号を受信して、送信用に保存することもます。定価$9と安価です。
https://expo.tuya.com/product/1057031
下図は当該製品の中に入っている基板の写真です。7つの赤外線LED、Wi-Fiモジュールなどが搭載されています。
本稿では、この製品に搭載されているWi-Fiモジュールを取り外し、本体(ケース)と基板上の赤外線送信部だけを使用します。
M5Stackと接続する回路図
本製品に内蔵されているWi-Fiモジュールの5番ピンは、赤外線リモコン信号の送信用、14番ピンが赤外線リモコン信号の受信用です。
下図の丸括弧で(Pad)と書かれた端子は、Wi-Fiモジュールにファームウェアを書き込むときに使用する端子だと思います。信号Buttonは、タクト・スイッチに接続されており、押下時にLレベルを得ます。信号LED (Blue)は、青色LEDに接続されており、Hレベルで点灯します。
本ページでは、赤外線リモコン信号の送信のみを行います。上図の受信(14番ピン)を使用する場合は、前回のブログで紹介したex08_ir_outを使用してください。
Wi-Fiモジュールを取り外し、信号線を引き出す
基板に実装されているWi-Fiモジュールは、下図のように取り外します。また、取り外したあとの半田付けパッドの5番ピン(左上から5番目)にビニール電線を接続しました。
電源5Vについても、電源用マイクロUSB端子を取り外して、電線を接続しました。この端子を取り外さずに、マイクロUSBケーブルを使って、電源を供給することも出来ます。
ケースに戻す
市販の製品を使った最大の利点がケースの流用です。このケースは、可視光を通しにくく、赤外線を通しやすい素材でできています。
下図は製作例です。予め電線を引き出し穴に通しておくと、圧着端子(右側)を加工するときに、電線を同じ長さに調整しやすいでしょう。
下図は赤外線送信機の完成例です。
M5Stackに接続する
下図は、赤外線送信機をM5Stackに両面テープで接着した製作例です。本例では、Grove 互換の PORT Aに環境センサを取り付けるため、赤外線LED用の PORT A で使用していないIO19を使いました。
M5Stackの背面です。上部に取り付けた赤外線送信機の電線をM5Stackの下側の端子のIO19、5V、GNDに接続しました。
サンプル・プログラム
使用したプログラムは、下記に保存しました。LAN内のパソコンやスマートフォンから、赤外線リモコン信号を送信できるようになります。
サンプルプログラム:https://github.com/bokunimowakaru/m5/blob/master/core/ex51_wgbt_ir_out/ex51_wgbt_ir_out.ino
ダウンロード:
https://bokunimo.net/git/m5/archive/refs/heads/master.zip
ファイル場所(M5Stack GREY/BLACK 用):
m5-master → core → ex51_wgbt_ir_out → ex51_wgbt_ir_out.ino
インターネット・ブラウザでM5StackのIPアドレスにアクセスすれば、下記のような画面が表示され、赤外線リモコン信号を送信できるようになります。
(受信機能を使用したい場合は、前回のブログで紹介したex08_ir_outを使用してください。)
センサについて(ご参考)
M5Stack 純正 BTC-STANDING-BASE には予め温湿度センサ SHT30 が取り付けられています。このため、外付けのENV II センサを使用する場合は、スタンド側のSHT30を取り外す必要があります。本例のように、外付けENV IIを使用したほうが、より正確な温度、湿度が得られます。
ENV IIIを使って、温度、湿度を取得することもできます。ただし、BMP280に対応した上記ex51_wgbt_ir_outでは気圧値の取得が出来ません。
自動制御に使用する場合(ご参考)
Raspberry Pi などから Curl を使ってアイリスオーヤマ製のLED照明に赤外線リモコン信号を送信したい場合は、例えば以下のように制御します。IPアドレスは、M5Stackに割り当てられたアドレスに変更してください。
curl -v http://192.168.1.111/ --get --data-urlencode 'IR=40,51,76,20,02,5F'
下記は、Google AIY Voice キットから、「OK, Google 照明を暗くして」で照明を制御するときのプログラムの一例です。assistant_library_demo.pyのprocess_event部を改造すれば、音声で照明を制御できるようになります。
def process_event(assistant, led, event):
logging.info(event)
if event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED and event.args:
print('You said:', event.args['text'])
text = event.args['text'].lower()
if ('明るく' in text) and ('照明' in text):
assistant.stop_conversation()
say('Brighten up the room')
subprocess.call("curl http://192.168.1.111/ --get --data-urlencode 'TYPE=1'", shell=True)
subprocess.call("curl http://192.168.1.111/ --get --data-urlencode 'IR=40,51,76,20,02,5F'", shell=True)
elif ('暗く' in text) and ('照明' in text):
assistant.stop_conversation()
say('darken the room')
subprocess.call("curl http://192.168.1.111/ --get --data-urlencode 'TYPE=1'", shell=True)
subprocess.call("curl http://192.168.1.111/ --get --data-urlencode 'IR=40,51,76,20,04,59'", shell=True)
さらに、室温が高くなった時に、LED照明の輝度を上げたり下げたりして、居住者に危険を通知するといったホーム・オートメーションも簡単に作れるようになるでしょう。
RISC-V搭載 ESP32C3 版
ESP32C3版も製作してみました(こちらのほうを先に製作)。
https://github.com/bokunimowakaru/esp32c3/blob/master/learning/ex08_ir_out/ex08_ir_out.ino
下図のような角型のケースに入った Tuya WiFi IR Remote Control も売られています。内部の基板は同じです。
Wi-FiモジュールをESP32C3(M5Stamp C3)に置き換えて製作した独自のWi-Fi 赤外線リモコン送信機です。中には、ESP32C3(M5Stamp C3)との配線や、ファームウェアの書き換え用の配線で、スパゲティのような状態になっているうえ、ケースを容易には開けれない(開いた時に壊れる)状態につき、外観のみの紹介です。
ご注意
家電機器を遠隔制御するときや自動制御する場合は、制御によって事故などが発生しないことを十分に確認してください。とくに暖房機器や加熱機器、調理機器、介護機器などは、命に関わる事故の原因となるので、絶対に制御しないでください。
by bokunimo.net