今回実装したことですがタイトルの通りwebからRaspberry Piの操作をするというものです。
全体図はこんな感じです。
わかりにくいですかね?
ざっくり言うとwebからFireBaseのCloud Firestoreフラグを更新し、Raspberry PiはCloud Firestoreを常時監視しフラグの更新を判別しフラグを元にRaspberry Piが処理を実行するようになってます。
システム概要
ユーザーはRaspberry Piで撮影された画像を確認し、確認した内容に応じてRaspberry Piへ接続されてる機器の制御を行います。
機能一覧
- メールアドレスによるユーザー認証
- Raspberry Piでの撮影
- Raspberry Piで撮影した画像取得
- Raspberry Piに接続してある電子機器の制御
- 設定情報のQR画像化
- QRコード読み込みによるRaspberry Piの設定
- Lineによる通知
今回使用したものは以下のものになります。
<言語>
- vue.js
- python
<FireBase>
- Authentication
- Cloud Firestore
- Storage
- Hosting
<Line>
- LINE Notify
ユーザーへの考慮
実装に際し、なるべくユーザーへ対して負担になるようなことをさせないように心がけました。ユーザー作成時にLineトークンの取得の手間はありますが、Raspberry Pi側ではプログラムを実行させ手持ちのスマホ、タブレット、PC等で設定用のQRコードを発行させ、そのコードをRaspberry Piのカメラで読み込ませるだけでRaspberry Piの環境設定ができるようにしました。QRコードでRaspberry Piの設定が完了したタイミングでLineで設定終了の通知が届くようになってます。
開発してみて
改善の余地はありますが、自宅にあったら便利だなと思いました。
宮城に拠点を置いていて多くの地震に見舞われているせいなのか「外出先で自宅が地震に見舞われたりした際に部屋の様子の確認とかにも使えるのでは?」と思いました。
今は家庭向けを想定し開発をしていますが、投稿を書いている私の主観ですが機能を拡張すればもっと多くの場面で使えるものになる気がします。
現状サンプル状態ですが今後色々な機能が追加されるかも(?)です。