Rasberry Pi 3でリモコン信号(赤外線)を受信する
目的
今回はRasberry Pi3を用いてリモコン信号(赤外線)を取得することを目指します。
回路
まずリモコンの受信モジュールですが秋月電子さんで売られているこちらを使います。
消費電流が小さく3.3Vの電源に対応しています。
こちらを接続する回路は以下のようになります。
GPIOとセンサの間にはGPIOの設定を誤っれ出力0Vとした時にショートしないように保護抵抗をいれています。
また、このセンサにはプルアップ抵抗が内蔵されているようなのでRaspberry PiのGPIOのプルアップを解除します。
今回私は詰めて実装したい人間なのでGPIO4を用いて実装します。
通常の設定だとGPIO16になります。適宜読み替えていただければと思います。
$raspi-gpio set 4 ip pn
その後このように配線します。
これで回路の準備ができました。
Rasberry Pi設定
Rasberry Piで信号を取得するためにlircを使用します.
$sudo apt-get install lirc
まずlircをインストールします。
次にlircのドライバを有効にしなければならないのですがRasberry Pi 3なのかRasbian jessieの設定のせいなのか最初は有効にすることができません。
Raspberry Pi • View topic - I2C, SPI, I2S, LIRC, PPS, stopped working? Read this.
このフォーラムに書いてある通り/boot/config.txtを編集しなければなりません。
#dtoverlay=lirc-rpi dtoverlay=lirc-rpi,gpio_in_pin=4
51行目のこの記述がコメントアウトされているのでこのコメントアウトを解除して入力するgpioの番号をセットします。これはピンの番号ではなくGPIO4といったほうの番号なので注意してください。何も設定しない(コメントアウトしただけ)であればGPIO16がInputとなっています。
Raspberry Pi 3 model B でエアコンをコントロールした話 - s4kr4.blog
次にこちらで紹介されているように/etc/lirc/hardware.confを編集します。
ここで一度Raspberry Piを再起動します。
これで受信の準備は完了しました。
mode2 -d /dev/lirc
このコマンドで受信する準備ができました。
センサに向けてエアコンのリモコンの信号を送って見ましょう。
space 4121433 pulse 142 space 2075 pulse 145 space 111986 pulse 136 space 12832 pulse 142 space 190883 pulse 139 space 1998 pulse 287 space 272314 pulse 142 space 2031 pulse 235
このような表示が出ていれば受信ができています。
最後にCtrl+cで処理から抜けます。
まとめ
今回は受信回路を設計してRaspberry pi3で受信するところまでできました。
次はエアコンの信号を解析して温度を設定できるように信号を生成するところまでしたいと思います。