ラズパイで赤外線 ir-ctl編(家電、エアコン、照明、テレビなどを制御)

赤外線送受信機能のある拡張基板とソフトウェアir-ctlを使って、Raspberry Piで赤外線の送受信を行う方法について解説しています。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。pigpioを使った方法がRaspberry Pi5で使用できなくなったため、ir-ctlを使った方法を解説します。

更新日 : 2025年2月22日

拡張基板の準備

赤外線送受信機能が搭載されている拡張基板「RPZ-PIRS」、「RPZ-IR-Sensor」もしくは「RPi TPH Monitor」を装着します。GPIO番号を合わせることで、他の基板や自作の回路の場合でも動作させることができます。

RPZ-PIRS
RPi TPH Monitor

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

加速、減速を細かく指定してステッピングモーターを回転させる (Raspberry Pi + RPZ-Stepper)

一般的なモータードライバーの場合、加減速中はリアルタイムにパルス間隔を変動させる必要があり、複雑な処理が必要になります。RPZ-Stepperでは、あらかじめパラメーターをセットしておくことで、自動的に加減速を行うことができます。例えば、負荷が重いので動き出しをゆっくり加速したい場合が考えられます。また、ステッピングモーターは回転数が上がるほどトルクが下がる特徴があります。そのため、早い速度域では加速を遅くして脱調を回避できます。

Raspberry Pi用 電源管理/消費電力削減/モバイルバッテリー拡張基板「RPZ-PowerMGR」

スイッチで電源ON/OFF、指定時刻に電源ON/OFF、シャットダウン後自動電源OFFを可能にする拡張基板です。Raspberry Pi(ラズパイ)やJetson Nanoの電源の課題を解決し、省電力運用を可能にします。RTCで電源OFF時も時刻を保持します。USB Type-C端子を搭載し、モバイルバッテリーでも利用できます。