GrovePiの光センサの値をGoogle home に喋らせる

GrovePiに接続した光センサの値をGoogle home に喋らせます。

SeedWikiで紹介されている grove_light_sensor.py のコードのうち、光センサの値の取得部分を利用し、google-home-notifier(Node.js)のURLを叩くためのコードを追加します。

google-home-notifierのURLを叩くために、次のサイトを参考にしました。

Pythonでcurlコマンドを使用する方法とは【メンターが回答】 | TechAcademyマガジン

作成したプログラムは次のとおりです。ファイル名は、speak_light_sensor.py です。

試行のために、あらかじめ google-home-notifier を起動しておきます。

作成したspeak_light_sensor.pyの実行結果は次のとおりです。Google homeがセンサの値を読み上げました。<Response [200]>は、google-home-notifierのHTTPレスポンスです。

RaspberryPiにGrovePiを載せる

RaspberryPi3modelBGrovePi+ を載せ、Groveの光センサとLEDを接続します。後に、光センサの値をGoogle home に喋らせる準備です。

参考サイト:Seeed Wiki

光センサはポートA0に、LEDはポートD4に接続します。

開発環境をSetting Up The Software – Dexter Industries(クイックスタート)の手順に従って構築します。

GitHubリポジトリから、ソフトウェア群をクローンして、光センサ用のPythonプログラムを実行します。しかし、エラーが発生しました。

エラーメッセージをキーワードに調べると、解決策にたどり着きました。

Grove Piで光量の取得エラー。ファームウェアのアップデートで解決

ここで、GrovePi+を提供しているDexter Industriesの公式サイトに、ファームウェアのアップデート方法が掲載されていることを知り、実行してみました。

ファームウェアのアップデートに失敗(汗)。原因は、GrovePi+の接続不良でした。トラブルは、物理層から疑うべきです。再度、ファームウェアのアップデートを試みて無事成功し、光センサのプログラムも無事動作しました。

google-home-notifierのインストールと設定

参考にさせて頂いたのがこちらの方法です。

GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます

Node.jsは前回にインストール済みですので、それ以降の作業のみ示します。

example.js中のGoogle homeのIPアドレス、言語を変更してからサービスを起動します。

指定のURLにアクセスして、Google home に喋らせようとすと、”Error: get key failed from google”が返ってきます。

対処方法として、参考にさせて頂いたのがこちらです。本当に助かりました。

動かなくなりがちな Google Home Notifier の対応

このサイトの教えに従って修正したのがこのファイル達です。

以下のコマンドで、Google Homeが話すことを確認しました。

Raspberry Pi に Node.js をインストールする一番の方法

Google home mini を購入して、RaspberryPiに、Groveセンサーで取得した部屋の温度を喋らせたいと思います。

google-home-notifierを走らせるのに、Node.js や npm の最新版を入れる必要があるようですが、どうもしっくりこない。

一番、しっくりきたのがこの方法です。

https://github.com/blobsmith/raspberryTestNode/wiki/Node.js-installation-with-nvm-on-Raspberry-pi

RaspberryPiからSwitchBotを操作する

RaspberryPi3B + Raspbian GNU/Linux 9.4 (stretch)上のpython3スクリプトから、SwitchBotを操作することができましたので作業ログを載せておきます。途中で発生した障害やその対処も入っています。

参考サイト
https://github.com/OpenWonderLabs/python-host/
https://github.com/OpenWonderLabs/python-host/blob/master/README.md
https://qiita.com/utsuki_protein/items/5e66b53c55359efbec66