なになれ

IT系のことを記録していきます

Raspberry Pi3で赤外線リモコンを作る

よく耳にするけどラズパイを使ったことがなく、ふとラズパイで何か作ってみようと思い立ち。
そこそこ実用的であろう赤外線リモコンに挑戦してみました。
電子工作とは無縁な初心者向けの内容になります。

f:id:hi1280:20171015094557j:plain:w300

用意したもの

全てamazonで購入しました。

よく分からなかったので、初心者向けの電子工作キットを購入していますが、最終的に以下があれば良かったです。

  • ラズパイ3
  • ラズパイ用電源
  • microSDカード
  • ブレッドボード
  • ジャンパワイヤ
  • 赤外線受信モジュール
  • 赤外線LED
  • 200 Ω 抵抗

赤外線受信をする

配線

工作キットの提供サイトの情報をそのまま利用します。
http://osoyoo.com/ja/2016/12/15/raspberrypi-ir-remote/

LIRCのインストール

LIRCとはLinuxで赤外線を操作可能にするパッケージです。

sudo apt-get install lirc
ラズパイでLIRCを利用するための設定

/boot/config.txtを以下のように修正します。
ラズパイが赤外線のデバイスを認識する為に必要なようです。

修正前

# dtoverlay=lirc-rpi

修正後

dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17

GPIO18が赤外線受信PINになり、GPIO17が赤外線送信PINになります。

ラズパイを再起動します。

sudo reboot
LIRCの起動

/etc/lirc/lirc_options.confを以下のように修正します。

[lircd]
nodaemon = False
driver   = default
device   = /dev/lirc0

lircdを再起動します。
lircdは赤外線の送受信を行うプログラムです。

sudo systemctl restart lircd.service
赤外線受信のテスト

以下のコマンドを実行することで、赤外線を受信できているかを確認できます。
受信モジュールに向かって赤外線を送信するとコンソール上にコードが出力されます。

mode2 -d /dev/lirc0 --driver default

f:id:hi1280:20171015151854p:plain

赤外線受信内容の記録

以下のコマンドを実行することで赤外線受信の内容を記録することができます。

irrecord -f -d /dev/lirc0 --driver default  ~/lircd.conf

プログラムの案内に従い、赤外線の内容を記録します。
何の操作なのか分かる名前を設定して、赤外線を受信させるということを繰り返します。
lircdの設定ファイルが作成されます。

設定ファイルをLIRCの設定に追加します。

sudo cp ~/lircd.conf /etc/lirc/lircd.conf

赤外線送信をする

配線

工作キットの提供サイトのLED点灯の配線を参考にして、赤外線LEDの配線をします。
http://osoyoo.com/ja/2016/04/07/use-led-to-test-gpio-pin/

GPIO17が赤外線送信のピンなので、そこだけ変更します。

赤外線送信をする

赤外線送信の設定を以下のコマンドで確認します。

$ irsend LIST "" ""

TV
$ irsend LIST TV ""

0000000000000001 KEY_PLAY

赤外線の送信を以下のコマンドで行います。

irsend SEND_ONCE TV KEY_PLAY

感想

一連の流れを書くと何のことはない感じですが、systemdとか知らずにコマンド実行レベルで悪戦苦闘してました。
そこらへんが事前に分かっていれば、すんなり行ったはずです。
これでTVのON/OFFがリモートでできるようになりました。

本記事の内容を改良しました

hi1280.hatenablog.com

参考情報

http://osoyoo.com/ja/2016/12/15/raspberrypi-ir-remote/

http://osoyoo.com/ja/2016/04/07/use-led-to-test-gpio-pin/

LIRC - Linux Infrared Remote Control

RaspberryPi3でlircを使ってリモコン化する時の注意事項まとめ - Qiita