目次
- 赤外線リモコンを自作する - その1データ解析編
- 赤外線リモコンを自作する - その2データ送信編
- 赤外線リモコンを自作する - その3温度/湿度センサー編
- 赤外線リモコンを自作する - その4サーバサイド編
- 赤外線リモコンを自作する - その5クライアント編
赤外線リモコンを自作する - その1データ解析編
何番煎じかわからないが、赤外線リモコンを自作し、API経由で操作できるようにしたい。
今回はその1データ解析編として、家電の赤外線リモコンからどのような信号が送られているかを解析する。
この信号を端末から送ることで、家電を操作できるようにする。
用意するもの
機器 | 型番 | 参考価格 |
---|---|---|
Arduino互換機 | ESP32-DevKitC-32D | 1,480円 |
赤外線受信モジュール | PL-IRM0101 | 110円 |
手順
- Arduino IDE > ツール >ライブラリを管理より
IRremoteESP8266
を検索し、インストールする - ファイル > スケッチ例 > IRremoteESP8266 > IRrecvDumpV3を選択する
赤外線受信モジュールは、左からVout、GND、Vccとなっているので、ESP32の14pin、GND、5Vに接続する。
Runしたあと、赤外線リモコンのボタンを押すと、シリアルモニタの11520bpsに下記のような値が表示される。
シーリングライト
Protocol : UNKNOWN
Code : 0xCA21A230 (42 Bits)
uint16_t rawData[83] = {3486, 1722, 446, 418, 446...}
Panasonicエアコン
Protocol : PANASONIC_AC
Code : 0x0220E004000000060220E004003132803F00000660400080000654 (216 Bits)
Mesg Desc.: Model: 4 (JKE), Power: On, Mode: 3 (Cool), Temp: 25C, Fan: 0 (Quiet), Swing(V): 15 (Auto), Quiet: Off, Powerful: Off, Clock: 00:00, On Timer: Off, Off Timer: Off
uint16_t rawData[439] = {3496, 1724, 452, 418, 452...}
このrawDataを赤外線LEDより送信することで、家電を操作できるのでメモしておく。
補足と注意点
- IRremoteESP8266と似たようなライブラリとして、IRremoteというのがあるが、こちらのReceiveDemoは、エアコンのように長い信号の場合、正しく値を取得できない問題があるみたいです。
- IRrecvDumpV3は、パナソニック、三菱、東芝、ダイキン、富士通などの国内メーカーのエアコンデータを解析できます。詳しくはリポジトリを参照してください。
- 上記メーカーのエアコンなのに、ProtocolがUNKNOWNとなる場合、kTimeoutの値を長くしてください。
#define DECODE_AC true
をファイルの上の方に書くことで、プログラムで用意されている値を使用することができます。 - IRremoteESP8266のスケッチ例として他にもTurnOnPanasonicACなどがあり、これを使うことで、rawDataを扱うことなく、信号を送信できます。