はじめに
やりたいこと
- すぐに英語の勉強をサボるので、昔買った英語教材のDUO3.0が家にいる間はエンドレスで流れてほしい
(笑) - 勉強中のNode-REDとGoogleNestHubも活用したい
Node-REDのまとめ記事
動作環境
RaspberryPi : 3
Node-RED: v19.4
raspbian : 9.8
本編
全体構成
- まず、全体構成は以下のとおりです
前提
- ラズパイとセンサー(HC-SR501 Infrared PIR Motion Sensor)を持っている
- Google Nest Hubを持っている
- DUOの教材を持っていて、セッションごとに音声データを結合して管理している
- これが一番つらいかな・・・ セッションごとでなくても音声データが取り出せていれば大丈夫です
フロー
ファイル場所や認証情報などが含まれるため公開ができません。すみません。
再生中は、別の音声が割り込まないように、一旦状態を取得し、音声が再生されていないことを確認してから動作するようにしています
- 人感センサー
- GPIOを使って、特定のポートに刺してあるので、その値を指定します
- パラメタ設定
- センサーの立ち上がり0から1だけに反応
- 8時から22時までに反応
- 夜中トイレに立ったときに動いたら困るのでw
- 乱数を使って再生するファイルを決める
- 状態を取得
- IPをGoogle Nest Hubのものにして、msg.statusをtrueを設定します
- Google Nest Hub (Nextは誤字)
- node-red-contrib-castを利用
- 再生されていない
- msg.payload.application[0].statusTextが空かDefault Media Receiverのときに再生可能とする
- 再生中はファイル名が入るようです。また再生が終わってから少しの間はDefault Media Receierになるっぽいので、これも再生可能状態とみなします
- 再生データのパラメタ
- msg.data,msg.payload,msg.statusを消します
- contentTypeにaudio/mp3を指定し、IPなど必要な情報を設定します
- Google Nest Hub (Nextは誤字)
- node-red-contrib-castを利用
- msg.payload
- デバッグノードで情報を出力
イメージ
結果
- ちゃんと音声を読み上げてくれる
- 検証の過程で動画も流せることがわかったので、あとは、レスポンシブルな画面とかを作れるようになったら最強だなぁ
## 最後に
- 英語の成績が上がるかどうかは保証できません(笑)