Webカメラとラズパイで、あれ?コンロの火消したっけ?解消


作ったもの

コンロの様子をスマホに送る仕組み

使い方

  • 家の玄関に貼ったNFCタグにスマホでタッチ
  • LINEにコンロの様子が届く

使ったツール

  • Raspberry Pi zero W
  • Webカメラ ロジクール C270n
  • iPhone (NFC連携はiPhone11以降の模様, 「ショートカットのボタン押す」で良いならNFC不要)
  • NFCタグ
  • Node-RED
  • iOS ショートカット
  • LINE Notify

仕組みの大枠

実際に使っているのは、外出先からでも確認できるように、Beebotteを経由しているが(下図)、長くなるので省略

作り方

  1. こちらの記事を参考に、LINEのアクセストークンを入手
    [超簡単]LINE notify を使ってみる

  2. Raspberry PiにWebカメラを接続

  3. Raspberry Pi に fswebcam をインストール

    $ sudo apt install -y fswebcam
    
  4. Raspberry Pi上で、以下のようなシェルスクリプト(fire.sh)を準備 (Node-REDで完結させる方がおしゃれとは思いながらも逃避)

    #!/bin/bash
    ACCESS_TOKEN="<LINEのアクセストークン>"
    PICTURE_PATH="/home/pi/fire.jpg"
    
    # 解像度は1280x720, 日付が見やすいようfont sizeを60に, 文字化けする場合は、sudo apt-get install fonts-noto
    fswebcam -d /dev/video0 -r 1280x720 --font ':60' $PICTURE_PATH
    
    curl -X POST https://notify-api.line.me/api/notify -H "Authorization: Bearer $ACCESS_TOKEN" -F "message=fire monitor" -F 
    "imageFile=@$PICTURE_PATH" 
    
  5. シェルスクリプトに実行権限付与

    $ chmod +x fire.sh
    
  6. Node-REDで、以下のようなフローを作成

  7. iPhoneのショートカット作成

    1. ショートカットの「オートメーション」を選択
    2. 「+」で新規作成
    3. 「NFC」を選び、「スキャン」を押して、玄関に貼るNFCタグを読み込み、適当な名前を付ける
    4. 「行う」の部分に、「デバイスを振動させる振動」を追加
    5. 更に、「URL」を追加し、URLに「Raspberry piのアドレス:1880/fire」を記載 (1880は、Node-REDのデフォルトポート fireは上で作ったフローにおける[get]のアドレス)

感想&プラスアルファの工夫

  • これで、火を消したか不安になって引き返す必要がなくなった。
  • コンロのスイッチ?に蓄光シールを貼って、付いているか否かを見やすくした
  • 食器棚にWebカメラを固定するため、3Dプリンターでマウンターを作った
  • カメラの首が可動式になっていたが、動かないようにグルーガンで固定した
  • 今回を家周りトリオロジーの最後にして、次は違う系統を作ろうかなぁ No.1, No.2

Disclaimer

  • 当初、前から持っているRaspberry Piを使い回していたら、何度か撮影するうちに、撮影がコケる現象が発生。 エラー処理をまじめにやっていないため、前に撮影した写真が送られて来た。
  • 火が消えている、安心。と思っていたら実は火がついていたとかあり得るので、利用は自己責任でお願いします。