カテゴリー
ESP8266+ESP32+RISC-V

M5Stackでリモコン送信&受信

M5Stack CORE/CORE2 に IR Remote Unit を接続し、赤外線リモコン信号の送受信を行う方法について説明します。
受信した信号の波形データを表示することもできます。

概要

本プログラムは、赤外線リモコンに対応した家電機器をM5Stack(CORE/CORE2)やLAN内のRaspberry Piなどから制御するするために、製作しました。リモコン信号コードを取得する機能もあるので、国内で市販されている様々な機器の制御が可能です。リモコン信号の解析や送信には、筆者が2009年に公開したソフトウェアの改良版を使用しています。

機能

以下のような機能を備えています。

  • M5Stack上のボタンでリモコン信号を送信できます。
  • 受信したリモコン信号の解析結果を表示できます。
  • 国内で使用されている3種類の形式(AEHA/NEC/SIRC)に対応しています。
  • LAN内の他の機器から、Webブラウザを使って、リモコン信号の送信および受信の遠隔制御が出来ます。
  • LAN内の他の機器に、赤外線リモコンの受信信号をブロードキャスト送信します。
  • SIRC方式の送受信でアドレスコードの短い信号に対応(これまで作ったものは未対応だった)

使用機材

  • M5Stack Core
  • IR Remote Unit (M5Stack純正)
  • 無線LANアクセスポイント
  • PC または Raspberry Pi (M5Stack用Arduino開発環境およびインターネット・ブラウザが動作すること)

ハードウェアの製作

M5Stack にIR Remote Unit を接続し、PCやRaspberry Piから電源を供給します。

ハードウェアは、M5Stack にIR Remote Unit を接続し、PCやRaspberry Piから電源を供給して製作する

ソフトウェアの製作

下記からZIPファイルをダウンロードし、PC内にZIP展開後、Arduino IDE でファイルex08_ir_out.inoを開いてください。

ダウンロード:
https://bokunimo.net/git/m5/archive/refs/heads/master.zip

ファイル場所(M5Stack GREY/BLACK 用):
m5-master → core → ex08_ir_out → ex08_ir_out.ino

ファイル場所(M5Stack CORE2 用):
m5-master → core2 → ex08_ir_out → ex08_ir_out.ino

プログラム内の #define SSID と #define PASS のあとに続くダブルコート(”)内に、お持ちの無線LANアクセスポイントのSSIDとパスワードを入力し、M5Stackに書き込んでください。

動作確認

起動すると、M5Stack上に以下のような画面が表示されます。

ex08_ir_out.inoを起動後、赤外線リモコン信号を受信した時の画面の一例

M5Stackの右ボタンで、シャープ製テレビの電源をON/OFFするリモコン信号の送信ができます。また、左ボタンで、音量を下げることが出来ます。

その他の製品の場合は、一度、通常のリモコンで本機にリモコン信号を送信してください。M5Stackが受信すると、画面上に解析結果を表示するとともに、左ボタンに信号を記憶します。記憶後に、左ボタンを押して、動作確認してください。

LAN上の他の機器から制御する

同じLANに接続されているPC や Raspberry Pi のインターネット・ブラウザで本機にアクセスし、遠隔制御することができます。

M5Stack画面の上部に本機のIPアドレスが表示されているので、ブラウザのURL入力欄に「http://IPアドレス/」を入力してください。以下のような画面が表示され、リモコン信号の送信や受信を行うことが出来ます。

インターネット・ブラウザのURL入力欄に「http://IPアドレス/」を入力すると、このような画面が表示され、リモコン信号の送信や受信を行うことが出来る

リモコン信号を受信するには、先に通常のリモコンを操作して、M5Stackで受信してから、ブラウザ上の「受信データの取得」ボタンをクリックしてください。

このリモコン信号を送信するには、「リモコン送信」ボタンをクリックします。

他のリモコンコードを送信するには、HTTP POSTの入力部のリモコンコードを書き換えて下さい。リモコンコードは、コンマ(,)区切りで、先頭に信号長(ビット数)を10進数で、以降16進数で送信順に入力します。SIRCの信号長は、実際の信号よりも1ビット、多い数値を入れてください。また、SIRCは制御コードが7ビットですが、本ソフトウェアでは1バイト(00~7F)で入力します。

本ブログでは、ブラウザからの手動制御を行いましたが、下記の書籍では、Raspberry Pi からスクリプトで家電機器を自動制御する「i.myMimamoriHomeで家電コントロール」(P.165 [6])など、様々なIoT用プログラムを紹介しています。

Pythonで作るIoTシステム
プログラム・サンプル集

Raspberry Pi 上で Python を使って、IoTの実験が出来るサンプル・プログラム集です。

筆者サポートページ:
https://bokunimo.net/iot/cq/

ご注意

家電機器を遠隔制御するときや自動制御する場合は、制御によって事故などが発生しないことを十分に確認してください。とくに暖房機器や加熱機器、調理機器、介護機器などは、命に関わる事故の原因となるので、絶対に制御しないでください。

なお、動作仕様は変更する場合があります。

by bokunimo.net

「M5Stackでリモコン送信&受信」への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です