AI Cloud CODE DeepLearning IBM Cloud Jetson LINE Node Red Python エッジ チャットボット 子供

赤ちゃんをJetson NanoのエッジAIにも見守ってもらう④ - LINEからJetson Nano操作 -

ai baby monitor system

赤ちゃんが泣くと、LINEで通知来るようにしたので

通知が来たら音楽をかけてあげれるようにしたいと思います

家にいる嫁は迷惑かもしれませんが(笑)

スポンサーリンク

システム構成

システム構成は下記図になります。まだWatson Assistantは使わないです。

Node Redから音楽再生指示をするときは、XSERVERを経由せず、直接Jetson nanoに指示できればスマートだと思いますが、とりあえずこの方法で

  1. LINEからかけたい音楽を指定します
  2. 指示された音楽の種類をNodeRedからXSERVERにファイル保存します
  3. Jetson nanoが定期的(数秒)にXSERVERに音楽指示ないか確認
  4. 指示があれば、対象の音楽再生

参照

LINEとNodeRedでチャットボット作る記事は、下記参照ください。

LINEのリッチメニュー

LINE Official Account Managerのホーム>リッチメニューから設定します。

今回だと、下記のように設定しています。

メニューのアクションは3つ

  • 今:写真で今の様子を見る
  • 音楽:音楽の再生(今回)
  • モニタ:動画で今の様子を見る

Node Redの設定

リッチメニューで音楽を押した場合

メニューの音楽を押すといったん、音楽の種類リストを表示させます。

Node Red側で音楽と受け取ったら、下記のJSONを返信しています。

LINEから受け取ったメッセージが「楽しい」「眠り」

しっかり作るなら、要求が「音楽再生」+「楽しい」OR「眠り」ですが、
とりあえずは、メッセージが「楽しい」OR「眠り」を受け取った場合、
XSERVERにリクエストを送るようにします。

http://***/music.php?type=1みたいに、パラメータのtypeで音楽の種類を指定しています。
1:楽しい
2:眠る

switchのNodeの部分で「楽しい」OR「眠り」で分けて、リクエストを変更しています。

上記、フローのJSON

音楽再生要求をXSERVERに保存

Node RedからXSERVERがhttp://***/music.php?type=1のリクエストを受けたら、

単純にファイルに音楽の種類を保存します。

XSERVERにmusic.phpを用意して、中身を下記にしています。

music.txtというファイルを作って、中身をtype=1 or 2で書き込んでいるだけになります。

Jetson nanoで再生

Jetson Nanoでは、定期的にXSERVER上にmusic.txtがないか確認して、
ファイルがあれば、中身の数字で流す音楽を決めます。

Jetson nanoでUSBスピーカーで再生する方法が不明だったので、HDMIで再生しています。

Jetson Nano にpygameをインストール

mp3を再生するのにpygameのライブラリを使います。

下記をインストールする必要があります。

再生要求確認

FTPでXSERVER上のmusic.txtを確認して、再生する音楽を選びます。

再生

再生する音楽のファイルが確認できれば、pygameを使って再生。

最後に

AIで状態(赤ちゃんが泣く)を検知して、遠隔で操作(音楽再生)することができました。

エッジAIを活用できてきているのではないでしょうか?

状態を検知できているなら、それを集計して見える化するのも良いと思いますし、エッジAIは
色々活用の幅は広がると思います。

-AI, Cloud, CODE, DeepLearning, IBM Cloud, Jetson, LINE, Node Red, Python, エッジ, チャットボット, 子供
-, , ,

© 2020 ひつじ工房 Powered by AFFINGER5