gashirar's blog

ウイスキーがすき/美味しいものがすき/k8sがすき

学習リモコン+Raspberry Pi+ブラウザで照明を操作する

はじめに

学習リモコンADRSIRとRaspberryPi2B+とVivaldi(のWeb Panel)で照明を操作できるようなモノの作りました。もろもろの作成メモになります。

こんな感じのものです。左側のWeb Panelが照明操作UIでいろいろできる感じ。

f:id:gashirar:20200705125822p:plain

用意するもの

ADRSIRをRaspberryPiに載せるとこんな感じ。2B+でも4でも問題なく動きました。

f:id:gashirar:20200705125757j:plain

学習リモコンADRSIR

製品説明より引用

ラズベリー・パイ専用 学習リモコン基板は、ラズベリー・パイを高度な赤外線学習リモコンとして動作 させることが可能な拡張基板です。基板上に 10 個のスイッチを搭載し、それぞれスイッチ毎に外部赤外 線リモコンの動作を基板本体内に記録可能です。

製品には10個のボタンがついていますが、別途提供されているPythonスクリプトによりリモコンコードのIn/Outが自由にできるため10個の制約はあまりきにならないでしょう。

ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法 | Bit Trade One, LTD

構成図

f:id:gashirar:20200705130931p:plain

仕組みはとてもシンプルで、Pythonのサーバ内でADRSIRに信号を送るような形になっています。
画面のレンダリングも同じサーバ内で完結させてます。

実装

github.com

詳しいソースは上記Githubで。ルーティングの部分もベタ書きですが、今回は試作品ということで一つ。
自分はVivaldiのWeb Panelに追加してみました。

照明のコードは先に述べた提供ツールによって取得できます。

ADRSIR “ラズベリー・パイ専用学習リモコン基板”の配布ツール「コマンドラインツール」について、外部ファイルの読み込み方法 | Bit Trade One, LTD

ポイント

いくつかハマったところもあるのでまとめておきます。

Raspberry PiのI2C有効化

RaspberryOS(旧称Raspbian)では、初期状態ではI2Cの有効化がされていませんので有効化する必要があります。

ADRSIRの各入力の初期化

原因はわかりませんが、Pythonスクリプトからリモコンコードを流し込んだ際、すでに登録されたコードが再送信されることがありました。
そのため、実際に使用する際にはADRSIR側のボタンには何も登録しないようにしています。

ADRSIRへの連続入力

照明の調光機能など、連続でリモコンコードを入力する必要がある場合は0.05秒程度の時間をあけないと正しく赤外線が送信されていないように見えます。

おわりに

とりあえずベースはできたので、他の機器も操作できるようにしたいですね。
もっと気軽にやりたい人はNature Remoとか使うのがいいかもです。