スマートホーム構築記

IoTの恩恵を受けたいけど家庭用はなかなか出てこない。なら作ろうというブログ

Rasberry Pi 3でリモコン信号(赤外線)を受信する

目的

今回はRasberry Pi3を用いてリモコン信号(赤外線)を取得することを目指します。

回路

まずリモコンの受信モジュールですが秋月電子さんで売られているこちらを使います。

消費電流が小さく3.3Vの電源に対応しています。

こちらを接続する回路は以下のようになります。
f:id:kagemomiji:20160820175914p:plain

GPIOとセンサの間にはGPIOの設定を誤っれ出力0Vとした時にショートしないように保護抵抗をいれています。

また、このセンサにはプルアップ抵抗が内蔵されているようなのでRaspberry PiのGPIOのプルアップを解除します。
今回私は詰めて実装したい人間なのでGPIO4を用いて実装します。
通常の設定だとGPIO16になります。適宜読み替えていただければと思います。

$raspi-gpio set 4 ip pn

その後このように配線します。
f:id:kagemomiji:20160820181958p:plain:w360
これで回路の準備ができました。

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で受信するところまでできました。

次はエアコンの信号を解析して温度を設定できるように信号を生成するところまでしたいと思います。