ESP-WROOM-02を赤外線リモコンに(2.解析編)

前回、ESP-WROOM-02で赤外線通信を行うための準備をしました.
taltalp.hatenablog.jp

今回は実際に回路を組んで、赤外線リモコンのコードを解析してみようと思います。
(といってもサンプルプログラムを動かすだけです)

1.目的

・そこら辺に転がっているリモコンのフォーマットと各ボタンに対応するデータを解析する.
・実際にそのデータを送信してテレビの電源を入れたりしてみる.

2.回路図

f:id:taltalp:20160318203544p:plain
※回路図が間違っていたため修正しました。
Receiverに赤外線受光モジュールのVout(3.3V)を
IRLEDに赤外線LEDを接続しました.

3.解析してみる

Arduinoの開発環境を開いて「ファイル > スケッチブックの例 > IRremoteESP8266 > IRrecvDump」を開きます.
受光モジュールはIO12に接続したのでソースコードの上の方を書き換えて

int RECV_PIN = 12;

後はESP-WROOM-02に書き込んでシリアルモニタを開いてリモコンの適当なボタンを押すと

Decoded NEC: 2FD58A7 (32 bits)

こんな感じでリモコンのコードがわかります.
NECフォーマットでコードは02FD58A7 (32bit長)という意味です.

あとは各キーごとにコードを確認してどこかにメモっておきます.

4.送信してみる

送信用のサンプルコードもあります.
「ファイル > スケッチブックの例 > IRremoteESP8266 > IRsendDemo」を開きます.

先ほど調べたコードを送信するようにソースコードを書き換えると

#include <IRremoteESP8266.h>

IRsend irsend(14); //送信ピン

void setup()
{
  irsend.begin();
  Serial.begin(115200);
}

void loop() {
  //NECフォーマット
  Serial.println("NEC");
  irsend.sendNEC(0x02FD58A7, 32);
  delay(200);
}

これを実行してちゃんと反応すれば成功です.
すごく簡単です.

5.赤外線受信モジュールの注意点

今回使用した赤外線受光モジュールPL-IRM1261-C438は動作電圧が2.4V~5.5Vなので,ESP-WROOM-02と同じ3.3Vで動作するためレベル変換などが必要なく回路が簡単になります.
物によっては4.5V以上必要なモジュールもあるためその場合はレベル変換が必要です. またVoutの出力インピーダンスが50kΩ程度と比較的高いためレベル変換には少し工夫が必要です.


赤外線の送受信ができました.とても簡単です.せっかくESP-WROOM-02にはTCP/IPが載っているので次回はブラウザから操作できる赤外線リモコンを作ってみようかと思います.