raspberry piとBit Trade One社製のUSB赤外線リモコンアドバンスを使い、discordから家電を遠隔操作するためのコードです。
IFTTTを使ってgooglehomeとdiscordを連携させることで音声操作もできます
- python3.8+
- libusb-1.0.0
- libusb-1.0.0-dev
- mojimoji
- discord.py
- bto_ir_advanced_cmd
raspberry piとUSB赤外線リモコンアドバンス、USB-A to miniBケーブルを用意し、繋ぎます。 raspberry piにgit cloneします。
$ git clone https://github.com/tomatine/ir_remocon
$ git clone https://github.com/Drunkar/bto_ir_advanced_cmd.git
bto_ir_advancedを動かすためのライブラリをインストールし、bto_ir_advancedをmakeします。
$ sudo apt install libusb-1.0.0
$ sudo apt install libusb-1.0.0-dev
$ cd bto_ir_advanced_cmd
$ make
$ sudo make install
これでコマンドラインからbto_ir_advancedを使えます。 まず、送信したい赤外線のデータを受信し、ファイルに書き込みます。
$ bto_advanced_USBIR_cmd -r # (生データ)受信開始
$ bto_advanced_USBIR_cmd -s # (生データ)受信停止
$ bto_advanced_USBIR_cmd -g | tee data.txt # 生データ取得
pythonモジュールをインストールします
$ pip install mojimoji discord.py
discordbotの設定をします。長くなるので、Discord Botアカウント初期設定ガイド for Developerを参考にして下さい。アクセストークンを環境変数discord_homebot_tokenに登録します。
$ echo export discord_homebot_token=`your_token` >> ~/.profile
bto_advanced_cmdを使って記録したデータファイルの名前をdiscord_homebot.pyの22行目~27行目で変数に指定します。初期状態ではエアコンのオンオフとライトの調整が設定されています。
$ python discord_homebot.py
でdiscordbotが起動します。
bashから直接送信したい場合は、
$ python send_ir.py data.txt
で送信できます。
タイマー機能ですが、現状1回しか設定できず、上書きすると以前のものは消えます。
bashからタイマーを設定するには、
$ python set_timer.txt [hour] [minute]
でできます。
MIT
Pythonで実用Discord Bot(discordpy解説)
エアコンを外出先から遠隔操作(by MQTT)
#1【RaspberryPiとGoogle Homeでスマートホーム化】赤外線モジュール動作確認 | ネタの杜