赤外線送受信機能のある拡張基板とソフトウェア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 lirclirc0、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と拡張基板を利用して、毎晩のエアコン消し忘れ機能、および朝に温度が低い場合に自動で暖房を入れる機能を実現します。

指定時刻にラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)
RPZ-PowerMGRを使って、指定時刻にRaspberry Pi(ラズパイ)やJetson Nanoの電源ON/OFFする方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。

Raspberry Pi用ユニバーサル基板「RPi-UniBread」
簡単に目的の回路を作成できるように工夫された、Raspberry Pi用ユニバーサル基板です。ブレッドボード型の配線パターンを用意したことで裏面で部品を配線する手間を削減できます。DIPパッケージやブレイクアウトボードも利用しやすいように考慮しています。ラズパイに装着して動作する拡張基板を自作することができます。

