学習リモコン+Raspberry Pi+ブラウザで照明を操作する
はじめに
学習リモコンADRSIRとRaspberryPi2B+とVivaldi(のWeb Panel)で照明を操作できるようなモノの作りました。もろもろの作成メモになります。
こんな感じのものです。左側のWeb Panelが照明操作UIでいろいろできる感じ。
用意するもの
- Raspberry Pi
- 今ならRaspberry Pi4がベスト
- 今回は余ってた2B+
- ADRSIR
- BitTradeOneのRaspberry Pi用学習リモコンを利用(4,000円くらい)
- ラズベリー・パイ専用 学習リモコン基板
ADRSIRをRaspberryPiに載せるとこんな感じ。2B+でも4でも問題なく動きました。
学習リモコンADRSIR
製品説明より引用
ラズベリー・パイ専用 学習リモコン基板は、ラズベリー・パイを高度な赤外線学習リモコンとして動作 させることが可能な拡張基板です。基板上に 10 個のスイッチを搭載し、それぞれスイッチ毎に外部赤外 線リモコンの動作を基板本体内に記録可能です。
製品には10個のボタンがついていますが、別途提供されているPythonスクリプトによりリモコンコードのIn/Outが自由にできるため10個の制約はあまりきにならないでしょう。
ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法 | Bit Trade One, LTD
構成図
仕組みはとてもシンプルで、Pythonのサーバ内でADRSIRに信号を送るような形になっています。
画面のレンダリングも同じサーバ内で完結させてます。
実装
詳しいソースは上記Githubで。ルーティングの部分もベタ書きですが、今回は試作品ということで一つ。
自分はVivaldiのWeb Panelに追加してみました。
照明のコードは先に述べた提供ツールによって取得できます。
ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法 | Bit Trade One, LTD
ポイント
いくつかハマったところもあるのでまとめておきます。
Raspberry PiのI2C有効化
RaspberryOS(旧称Raspbian)では、初期状態ではI2Cの有効化がされていませんので有効化する必要があります。
- 設定
- Raspberry Piの設定をクリック
- インターフェイスタブの「i2c」の項目の有効にチェック
ADRSIRの各入力の初期化
原因はわかりませんが、Pythonスクリプトからリモコンコードを流し込んだ際、すでに登録されたコードが再送信されることがありました。
そのため、実際に使用する際にはADRSIR側のボタンには何も登録しないようにしています。
ADRSIRへの連続入力
照明の調光機能など、連続でリモコンコードを入力する必要がある場合は0.05秒程度の時間をあけないと正しく赤外線が送信されていないように見えます。
おわりに
とりあえずベースはできたので、他の機器も操作できるようにしたいですね。
もっと気軽にやりたい人はNature Remoとか使うのがいいかもです。