Raspberry PiをIRリモコンにする

はじめに

LIRCを使ってRaspberry Piで赤外線の送受信するとこまで。

計画

スマートホーム化①

Google HomeRaspberry Piで家電を操作する f:id:satoarata:20180522175108p:plain

目次

用意するもの

必要ならば

ハードを整える

ハード面はこのサイトを参考にしました。(回路は全く同じ) make.bcde.jp

実際に使った電子部品など :

lircで赤外線受送信部分を作る

lircとは

LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls. (http://www.lirc.org/)

要はRaspberry Piを赤外線リモコンにするやつってこと。たぶん。

Raspberry Piにインストール

$ sudo apt install lirc

バージョンの確認

$ lircd -v lircd 0.9.4c

lircの設定を変更(/etc/lirc/lirc_options.confを編集する)

$ sudo emacs /etc/lirc/lirc_options.conf

[lircd]のところをこんな感じにする

[lircd] 
nodaemon = False 
driver = default 
device = /dev/lirc0 
output = /var/run/lirc/lircd 
pidfile = /var/run/lirc/lircd.pid 
plugindir = /usr/lib/arm-linux-gnueabihf/lirc/plugins 
permission = 666 
allow-simulate = No 
repeat-max = 600 
#effective-user = 
#listen = [address:]port 
#connect = host[:port] 
#loglevel = 6 
#uinput = ... 
#release = ... 
#logfile = ... 

変えたのは

driver = default 
device = /dev/lirc0 

使うピンの設定 /boot/config.txtを編集

$ sudo emacs /boot/config.txt 

最後にこれを追加(ピンのところは自分で決めたピン)

#RemoteController 
dtoverlay=lirc-rpi 
dtparam=gpio_in_pin=22 
dtparam=gpio_out_pin=23 

再起動

$ sudo reboot 

動作確認

$ sudo mode2 -d /dev/lirc0 

受信モードになるので受信機にテレビのリモコンとか向けて赤外線を浴びせてみる

Using driver default on device /dev/lirc0
Trying device: /dev/lirc0
Using device: /dev/lirc0
Running as regular user pi
space 16777215
pulse 3766
space 1921
pulse 441
space 482
pulse 465
space 1436
pulse 446
space 432
pulse 508
space 1443
pulse 489
space 466
pulse 431
... 

って感じで出てきたらOK

ちなみにlircの起動は $ sudo /etc/init.d/lircd start 終了は $ sudo /etc/init.d/lircd stop リモコンの学習はirrecordでやってる記事も多いがうまくいかなかったので、さっきの受信モードで受信したデータを加工して設定ファイルを記述した。

このサイトを参考にした。

takuborn.hatenablog.jp

補足:irrecord で作成した定義ファイルではうまくいかないとき

のところを参考にしてファイルを作る。

部屋の照明を登録した。

lircを再起動して ちゃんと登録されたか見てみる

$ irsend list "" "" 
light tv

信号を送ってみる

$ irsend send_once light full

電気がついた!