赤外線送受信機能のある拡張基板とソフトウェアir-ctlを使って、Raspberry Piで赤外線の送受信を行う方法について解説しています。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。pigpioを使った方法がRaspberry Pi5で使用できなくなったため、ir-ctlを使った方法を解説します。
更新日 : 2025年2月22日拡張基板の準備
赤外線送受信機能が搭載されている拡張基板「RPZ-PIRS」、「RPZ-IR-Sensor」もしくは「RPi TPH Monitor」を装着します。GPIO番号を合わせることで、他の基板や自作の回路の場合でも動作させることができます。
config.txtの編集
設定ファイルの/boot/firmware/config.txtをスーパーユーザーで開き、以下の2行を最後に追記します。1行目で指定している4が受信用のGPIO番号、2行目の13が送信用のGPIO番号です。
dtoverlay=gpio-ir,gpio_pin=4
dtoverlay=gpio-ir-tx,gpio_pin=13
設定ファイルの編集方法が分からない場合は、以下の記事を参考にして下さい。
config.txtを編集したら、変更を反映させるためRaspberry Piを再起動します。
有効化の確認
再起動したら、ターミナルで以下のように$に続くコマンドを実行します。
$ ls -l /dev | grep lirc
lirc0、lirc1が表示されれば、赤外線機能が有効化できています。
crw-rw---- 1 root video 251, 0 2月 22 22:34 lirc0
crw-rw---- 1 root video 251, 1 2月 22 22:34 lirc1
赤外線を受信してコードを記録する
いよいよ赤外線を受信してみます。お使いの家電などのリモコンを準備して、以下のコマンドを実行します。
「-r」に続けてスペースを入れずに保存するファイル名を指定します。ここでは、例としてテレビの電源ボタンを「tv_power」としました。「-1」は最初の受信が完了した時点で記録を終了する指示です。複数のボタンを連続して登録したい場合は「-1」を指定しなくてもOKです。
$ ir-ctl -d /dev/lirc1 -rtv_power -1
続いて、リモコンのボタンを押して受信機に向けて送信して下さい。うまく受信できていれば「tv_power」というファイルが作成され、受信データが記録されています。「-1」オプションをつけずに実行していた場合は、キーボードのCtrl+Cを押すと受信を終了できます。
試しに以下のコマンドで受信データを見てみます。受信コードが表示されれば成功です。受信コードは赤外線のパルス波形の時間と、空白時間をus(マイクロ秒)で記録したものです。
$ cat tv_power
+3287 -1600 +440 -375 +441 -375 +441 -1192 +441 -374 +441 -1191 +441 -375 +441 -375 +441 -374 +441 -1190 +442 -1190 +442 -373 +442 -373 +442 -373 +442 -1189 +443 -1189 +443 -373 +443 -373 +443 -373 +443 -372 +443 -373 +443 -373 +443 -372 +443 -373 +443 -373 +443 -373 +443 -373 +443 -373 +443 -373 +443 -1189 +443 -373 +443 -372 +443 -373 +443 -372 +443 -372 +443 -372 +443 -372 +443 -1189 +443 -372 +444 -372 +444 -372 +444 -371 +444 -1188 +444 -371 +444 -371 +445 -371 +444 -371 +445 -371 +445 -370 +445 -1187 +445 -370 +446 -1186 +436 -1197 +436 -1196 +436 -1196 +437 -1195 +437 -1195 +437
以上で受信と登録は完了です。
赤外線を送信する
次に、先ほど受信して登録した「tv_power」を送信してみます。以下のコマンドを実行します。「-s」に続けてスペースを入れずにファイル名を指定することで、そのファイルに保存されているデータを送信します。
$ ir-ctl -d /dev/lirc0 -stv_power
赤外線LEDを実際の家電などに向けて送信し、機器が反応すれば成功です!
うまく動作しない場合
電源とUSBケーブルの見直し
電源の供給能力が低い場合や、USBケーブルが長すぎて電圧が下がっている場合にうまく動作しない場合があります。他の電源とUSBケーブルをお試しください。コンセントに挿す電流供給能力の大きい電源、および短いUSBケーブルが適しています。
まとめ
拡張基板とir-ctlを使ってRaspberry Piで赤外線の送受信を行う方法についての解説は以上です。
赤外線通信を使うと、Raspberry Piで自在にテレビ、エアコン、照明などの家電をコントロールしたり、スマートフォンなどから遠隔で操作することが可能です。また、汎用リモコンでRasbperry Piに指示を出すようなことも考えられますので、ぜひ活用してみてください。

ラズパイと赤外線でエアコンの自動ON、消し忘れ機能を実現
普段、エアコンを消し忘れてしまい夜間つけっぱなしにしてしまったり、冬場に朝エアコンを入れても暖かくなるのに時間がかかったことは無いでしょうか?本記事では、Raspberry Piと拡張基板を利用して、毎晩のエアコン消し忘れ機能、および朝に温度が低い場合に自動で暖房を入れる機能を実現します。

人感センサーとラズパイで人や動物が通ったら撮影する (RPZ-PIRS)
人感センサー(PIR/焦電赤外線センサー)は、人や動物の動きを検知できます。そこで、Raspberry Pi(ラズパイ)、カメラと組み合わせて、人や動物が通ったら写真や動画を撮影する方法を解説します。実際に動作するプログラムも用意しています。人感センサー搭載のRPZ-PIRS拡張基板を利用します。

RPZ-RC-Servo (Raspberry Pi用 サーボモータードライバー)
RCサーボモーターを制御できるRaspberry Pi(ラズパイ)用拡張基板です。モーターの角度(位置)を指示すれば、自動で目標までモーターを動かしてくれます。ものを動かしたり回転させるシステムが実現できます。Raspberry Piへ電力を供給する機能もあり、単一電源でシステムを構成できます。