Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.
/ IoT Public archive

LINE から Raspberri Pi 経由でエアコンを制御

Notifications You must be signed in to change notification settings

mikiya1130/IoT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IoT

LINE から Raspberri Pi 経由でエアコンを制御

デモ

demo.min.mp4

システム構成

diagram

  • LINE
  • LINE Messaging API
  • Google Apps Script
  • Beebotte
  • Raspberry Pi Zero WH

システムフロー

flow

  1. LINE からのメッセージを LINE Messaging API を利用して Google Apps Script で取得
  2. 取得したデータを MQTT Broker である Beebotte に HTTP POST で Publish
  3. Raspberry Pi で Beebotte からデータを Subscribe
  4. Raspberry Pi から LINE Messaging API を利用してリプライメッセージを送信

回路図

circuit

  • 赤外線 LED
    • エアコンへ信号を送信
  • 赤外線リモコン受信モジュール
    • エアコンのリモコンから送出される信号の学習 (運用後は不要)
  • LED
    • エアコンの ON / OFF にあわせて点灯 / 消灯

使用パーツ

  • Raspberry Pi Zero WH
  • 赤色 LED (OSR5JA3Z74A)
  • 赤外線リモコン受信モジュール (PL-IRM0101-3)
  • 赤外線 LED (OSI3CA5111A)
  • 抵抗 1kΩ [×2]
  • ブレッドボード
  • ジャンパーワイヤー [適量]

作成手順

  1. LINE Messaging API 用の LINE Bot を作成
    • メッセージ「ON」で電源 ON、「OFF」で電源 OFF
    • Option: リッチメニューを作成
  2. 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>
  3. Google Apps Script でデプロイしたアプリの URL を LINE Messaging API の Webhook URL に登録
  4. Beebotte でチャンネルを作成
    • Channel Name: IoT, Resource name: line_bot
  5. Raspberry Pi の /home/pi/ にリポジトリをクローン
    • $ git clone git@github.com:mikiya1130/IoT.git ~/IoT && cd ~/IoT
    • 絶対パスでハードコーディングしているため、クローン先に注意
  6. .env.template をコピーして .env を作成し、Beebotte のトークン・トピックと LINE のアクセストークンを設定
  7. プログラム実行に必要なモジュールをインストール
    • $ pip3 install -r requirements.txt
  8. エアコンのリモコンから送出される信号の学習プログラム irrp.py の実行に必要なサービス pigpiod を起動
    • $ sudo systemctl enable pigpiod && sudo systemctl start pigpiod
    • enable は必要に応じて
  9. エアコンのリモコンから送出される ON / OFF 信号を power:on / power:off として学習し codes に保存
  10. 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

参考サイト

素材利用

回路図作成

Releases

No releases published

Packages

No packages published