LINE から Raspberri Pi 経由でエアコンを制御
demo.min.mp4
- LINE
- LINE Messaging API
- Google Apps Script
- Beebotte
- Raspberry Pi Zero WH
- LINE からのメッセージを LINE Messaging API を利用して Google Apps Script で取得
- 取得したデータを MQTT Broker である Beebotte に HTTP POST で Publish
- Raspberry Pi で Beebotte からデータを Subscribe
- Raspberry Pi から LINE Messaging API を利用してリプライメッセージを送信
- 赤外線 LED
- エアコンへ信号を送信
- 赤外線リモコン受信モジュール
- エアコンのリモコンから送出される信号の学習 (運用後は不要)
- LED
- エアコンの ON / OFF にあわせて点灯 / 消灯
- Raspberry Pi Zero WH
- 赤色 LED (OSR5JA3Z74A)
- 赤外線リモコン受信モジュール (PL-IRM0101-3)
- 赤外線 LED (OSI3CA5111A)
- 抵抗 1kΩ [×2]
- ブレッドボード
- ジャンパーワイヤー [適量]
- LINE Messaging API 用の LINE Bot を作成
- メッセージ「ON」で電源 ON、「OFF」で電源 OFF
- Option: リッチメニューを作成
- LINE Messaging API からメッセージを取得するための Google Apps Script を作成
- https://github.com/mikiya1130/IoT/blob/master/gas.js
- 15 行目のトークンを Beebotte で発行したものに書き換える
- 25 行目のエンドポイント URL の形式は
"https://api.beebotte.com/v1/data/publish/<topic>"
なので必要に応じて書き換える- topic は Beebotte の場合
<Channel Name>/<Resource name>
- topic は Beebotte の場合
- https://github.com/mikiya1130/IoT/blob/master/gas.js
- Google Apps Script でデプロイしたアプリの URL を LINE Messaging API の Webhook URL に登録
- Beebotte でチャンネルを作成
- Channel Name: IoT, Resource name: line_bot
- Raspberry Pi の
/home/pi/
にリポジトリをクローン$ git clone git@github.com:mikiya1130/IoT.git ~/IoT && cd ~/IoT
- 絶対パスでハードコーディングしているため、クローン先に注意
.env.template
をコピーして.env
を作成し、Beebotte のトークン・トピックと LINE のアクセストークンを設定- プログラム実行に必要なモジュールをインストール
$ pip3 install -r requirements.txt
- エアコンのリモコンから送出される信号の学習プログラム irrp.py の実行に必要なサービス pigpiod を起動
$ sudo systemctl enable pigpiod && sudo systemctl start pigpiod
- enable は必要に応じて
- エアコンのリモコンから送出される ON / OFF 信号を
power:on
/power:off
として学習しcodes
に保存$ python3 irrp.py -r -g23 -f codes power:on power:off --no-confirm --post 130
- 信号が長い場合発信に失敗するので分割する
power:on
→power:on:1
,power:on:2
,power:on:3
power:off
→power:off:1
,power:off:2
,power:off:3
- 参考:ラズパイでエアコン対応の赤外線学習リモコンを pigpioライブラリを使って作る方法、Goodbye LIRC
- 上記通り分割しなかった場合、
main.py
54行目・62行目のコマンドを書き換える
- LINE からの ON / OFF メッセージを Subscribe してエアコンを ON / OFF するプログラムの実行
$ python3 main.py
- Option: Raspberry Pi 起動時に自動実行
$ sudo ln iot.service /etc/systemd/system/iot.service && sudo systemctl enable iot.service && sudo systemctl start iot.service
- プログラミング初心者でも無料で簡単にLINE BOTが作れるチュートリアル
- LINEで自作IoTデバイス[スマートロック・リモコン]を操作する(市販品も可)
- RaspberryPi zero WH・LINE API・heroku・Beebotteを使ってエアコンを遠隔操作する【ソフトウェア編】
- beebotteの使い方メモ.md
- Beebotteを使ってLINEメッセージでLEDをON/OFFする(その1)Beebotteの設定
- Beebotteを使ってLINEメッセージでLEDをON/OFFする(その2)LINEリッチメニューからGASの設定
- Beebotteを使ってLINEメッセージでLEDをON/OFFする(その3)LINEリッチメニューからRaspberryPiのLEDを点灯
- ラズパイで外部からエアコンの電源を入れてみる その1
- ラズパイで外部からエアコンの電源を入れてみる その2
- ラズパイでエアコン対応の赤外線学習リモコンを pigpioライブラリを使って作る方法、Goodbye LIRC