LIRCでRaspberry Piの赤外線制御 (Raspbian Jessieの設定方法)

概要

RPiTPH Monitor及びRPZ-IR-Sensor用の、 LIRCを使って赤外線の送受信を行う応用例です。 GPIOを直接制御することでも赤外線送受信は可能ですが、 他のタスクが入るとタイミングがずれてうまくいかないケースがあります。LIRCを使うことで安定した通信が可能になります。 CPUリソースが限られているRaspberry Pi ZeroではLIRCを使うことを推奨しております。

設定方法はKernelとLIRCバージョンによって異なることがあります。 本ページの方法で動作確認済みのOSとLIRCバージョンの一覧は以下の通りです。 Kernelバージョンはapt-get upgradeで更新されることがあります。更新したくない場合は raspberrypi-bootloaderおよびraspberrypi-kernelパッケージのバージョンを固定することをおすすめします。

本ページはRaspbianのJessie用の設定方法です。 最新のバージョンであるStretchをお使いの場合は設定方法が異なりますので、 こちらをご覧ください。

OSKernelバージョンLIRCバージョン動作確認
Raspbian Jessie 2017-04-104.40.9.0確認済
Raspbian Jessie 2017-06-214.90.9.0確認済
Raspbian Jessie 2017-07-054.90.9.0確認済

LIRCのインストール

以下のコマンドでlircをインストールしてください。

sudo apt-get install lirc

LIRCの設定

/boot/config.txtをスーパーユーザーで開き、lirc-rpiに関する設定を以下のように編集してください。

# Uncomment this to enable the lirc-rpi module
dtoverlay=lirc-rpi
dtparam=gpio_out_pin=13
dtparam=gpio_in_pin=4

/etc/lirc/hardware.confをスーパーユーザーで開き、一部設定を以下のように編集してください。

LIRCD_ARGS="--uinput"
LOAD_MODULES=true
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

設定が終了したら再起動して、以下を実行してlircdを一度終了してください。

sudo killall lircd

赤外線受信

以下のコマンドを実行した後、基板の赤外線受信ユニットに向けて、お使いのリモコンから赤外線を送信してください。 送信が終わったらCtrl+Cで取り込みを終了します。

mode2 -d /dev/lirc0 > rec.txt

受信に成功すると、赤外線情報がrec.txtに記録されます。

space 1141941
pulse 3506
space 1700
pulse 466
space 401
pulse 467
space 1269
...

赤外線送信

先ほど記録したデータを赤外線送信データとして登録します。 /etc/lirc/lircd.confを以下のように編集してください。nameの行は好きな名前を付けられます。 今回はエアコンのオフボタンの例としてname aircond, name offとしました。 begin raw_codesのname offに続く行は赤外線データを示しています。rec.txtに記録されたデータのうち、先頭のspaceを抜いた pulseから始まる数値をスペースで区切って入力していきます。 1行のデータが非常に多い場合エラーとなる事があります。適宜改行を入れてください。

begin remote
	name aircond
	flags RAW_CODES
	eps	30
	aeps	100
	gap	200000
	toggle_bit_mask	0x0

	begin raw_codes
	name off
	3506 1700 466 401 467 1269 ...
	end raw_codes
end remote

再起動後、送信準備として以下を実行します。

sudo killall lircd
sudo lircd -d /dev/lirc0

登録した赤外線データを送信するには以下のコマンドを実行します。正常に送信されればお使いの機器が反応します。また、赤外線送信中を示す赤色LEDが一瞬点灯します。

irsend SEND_ONCE aircond off

関連記事

RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)

動作を自由にプログラミング可能な、Raspberry Pi/Zero用ホームIoT拡張ボードです。BME280温湿度気圧センサーとTSL2572明るさセンサー、赤外線送受信機能を搭載。IoT赤外線リモコンとして、温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、スマホ経由でテレビの操作をする、気温の記録、といった使い方が可能です。

RPi TPH Monitor Rev2 (Raspberry Pi用 温度/湿度/気圧/赤外線 ホームIoT拡張ボード)

動作を自由にプログラミング可能な、Raspberry Pi用ホームIoT拡張ボードです。BME280温湿度気圧センサーと赤外線送受信機能を搭載。IoT赤外線リモコンとして、温度が上がったらエアコンをオンにする、スマホ経由でテレビの操作をする、気温の記録、といった使い方が可能です。ディスプレイやLEDに情報表示も可能です。