ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

過去の投稿日別表示

[ リスト | 詳細 ]

全1ページ

[1]

Google Homeを使えば音声で家電をコントロールできます。しかし、対応家電の普及はこれからです。
そこで、家電を改造して、Google Homeから制御するといった需要が考えられます。
ここでは、Seeed Studio社のWio Nodeを使って、超簡単にLEDを制御する実験方法について、説明します。

写真左=Google Home、右=Wio Node + LED(実験用)

イメージ 1
Google Home(写真左)を使って、Wio Nodeに接続したLED(写真右)を制御する実験の様子

5分で設定できる「Wio Node」とは

Wio Nodeとは、Seeed Studio社が開発したIoTモジュールです。同社が提供するクラウドサービスを利用することで、遠隔地に設置したWioNodeをインターネット経由で制御することが出来ます。
Wio Nodeには、2つのGrove端子が搭載されており、市販の様々なGroveモジュールを使って機能を拡張することが出来ます。
今回の実験では、Grove LEDモジュールをGrove端子へ接続しました。LED部を自作する場合は、Grove端子のSIG信号へ、負荷抵抗とLEDを直列接続してください。

イメージ 2
Wio Node 本体の大きさは28mm程度しかない。

Wio Nodeをセットアップするには、iOSかAndroidが動作するスマートフォンかタブレット端末が必要です(Google Homeの設定にもスマートフォンが必要)。この実験にパソコンは無くてもスマートフォンで代用できますが、その反対にスマートフォンをパソコンで代用するには、Android開発に関する知識が必要です。
App Storeなどからアプリ「Wio Link」をダウンロードし、アカウントを登録してください。Wio Nodeの左側のFuncボタンを4秒以上、押すとペアリング状態になります。Wio Linkとのペアリングが完了したら、下図のような画面から、LEDを設定してください。

注意しなければならないのは、この図はWio Node本体を裏側から見た図であることです。どちらの端子に設定しても、かまいませんが実際のLEDを接続する端子を間違わないようにしてください。

イメージ 3

設定が完了したら、ファームウェアをWio Nodeへダウンロードし、画面最下部の「View API」ボタンにタッチします。下図のようなWio Node用のAPIが表示されます。
Test Requestの枠内に、0または1を入力し、[POST]ボタンにタッチするとLEDの制御が出来るでしょう。

イメージ 4

Google HomeとIFTTTのセットアップ

今後はGoogle Home側のセットアップです。こちらもApp Storeなどからアプリ「Google Home」をダウンロードし、アカウントを作成(または入力)して設定を行います。

また、Google Homeから入力した音声を Wio Nodeへ橋渡しする必要があります。IFTTT(https://ifttt.com/)はクラウド間の橋渡しを行うのに便利なサービスです。
「If THIS then THAT」の「THIS」にトリガ項目を、「THAT」にアクション項目を設定し、トリガが発生した時に、アクションを動作させます。ここでは、Google Homeから音声で「LEDをつけて」と話したことをトリガにして、Wio NodeのLEDの点灯アクションを行います。

イメージ 5

IFTTTの画面右上のアカウント表示から「New Applet」を選択し、「this」の部分をクリックし、「Google Assistant」を選択してください。次に、GoogleのアカウントをIFTTTと連携すると、下図のような画面が表示されるので、「Say a simple phrase」を選択してください。

イメージ 6

選択すると、設定画面(下図の左側)が開きます。これらの設定方法について、図の後で説明します。

イメージ 7

Google Assistant 左図の画面

最初の枠には認識させたい音声を入力します。ここでは、「led をつけて」と入力しました。「led」の後には半角スペースが必要です。「つけて」は全角ひらがなです。2番目と3番目の枠への入力は必須ではありませんが、命令となる言葉を入れておきます。
最後から2番目の枠には、音声認識に成功した時に応答するメッセージを入力します。ここでは、「led をつけました」と入力しました。
最後に「Japanese」を選択し、「Create trigger」をクリックしてください。

Maker Webhooks 右図の画面

こんどは、期待の音声が入力された時の動作内容を設定します。アクション用のサービスには「Webhooks」を選択します。以前は「Maker Webhooks」と呼んでいたと思うのですが、「Maker」がとれて単に「Webhooks」と呼ぶようです(URLは以前と同じhttps://ifttt.com/maker_webhooks)。
Webhooksの画面では、上図の右のように入力すると、Wio Nodeへデータを送信することが出来ます。最初の枠には、Wio Nodeの「View API」で表示されたURLを入力します。URLには、ON/OFFの指示と、個々のWio Nodeを特定するためのトークン(token)が含まれています。下記のように「1」を指定すると点灯、「0」で消灯です。
Methodの部分で「POST」を選択してから、「Create Atction」をクリックして入力を完了させてください。

「OK Google, エルイーディーをつけて」と音声で命令すると、Wio NodeのLEDが点灯します。Groove LEDの場合、半固定の可変抵抗がついているので、精密ドライバーなどで回して輝度を調整してください(位置によっては点灯しない場合もあります)。

イメージ 8

LEDが点灯したら、こんどは消してみましょう。点灯の時と同じように、IFTTTへ「led を消して」「led 消して」「led 消灯」を追加登録します。「led」の後には半角スペース、「消して」は、ひらがなでは無く漢字を使用してください。また、WebhooksのURLには消灯用の「0」を指定してください。

手持ちの家電へ組み込む

超簡単でしたね。Wio Nodeを手持ちの家電へ組み込み、音声でコントロールすることも容易であることが分かったと思います。ただし、実際の家電に組み込むときには、いくつかの注意が必要です。
まず、Wio Nodeへ供給する電源です。当然ですが、AC 100Vを供給してはいけません。DC 5Vが必要です。多くの家電の内部には5Vの電源回路が含まれているので、それを利用する方法が考えられます。ただし、Wio Node用に60〜100mAほどの余力が必要です。また本来であれば、電源容量の合計や電源回路の発熱などを考慮しなければなりません。少なくとも、動作時に電圧が低下しないかどうかの確認をしておきましょう。
信号の接続先は、家電製品内のEnable信号やスイッチ、ボタンなどの回路になるでしょう。この場合、信号電圧の確認も必要です。Wio Nodeの電源入力は5Vですが、Grove端子の入出力信号は3.3Vです。必要に応じて変換回路や論理和回路を追加しましょう。

なお、家電の改造によって人命にかかわる火災などの事故が発生する恐れがあります。そのような場合であっても、当方は一切の責任を負いません。本ブログなどに書かれた情報に誤りがあったとしても同様です。

ボクにもわかるWi-FiモジュールESP8266

by ボクにもわかる電子工作
https://bokunimo.net/


セキュリティに関するご注意

ここでは、インターネットから宅内の機器を制御する手段として、Wio Nodeを使用しましたが、アクセス用のTalkenが流出するとサイバー攻撃の対象になる可能性があります。この場合、外部から対象機器が制御されるだけにとどまらず、家庭内の全てのネットワーク機器が危機にさらされる可能性も(少ないが)在りえます。Wio Nodeに限らず、Blinkやngrokなどを使った場合も、同様です。
Talkenの流出には十分に注意するとともに、攻撃者が乱数を使って適合するTalkenを探し当てる可能性もあることも知ったうえで、ご利用ください。現時点では、多くのシステムが、親切にもTalkenが適合したかどうかを知らせてくれるので、攻撃者にとってTalkenを探し当てやすくなっています。
なお、ゲートウェイ(ブロードバンドルーター)の設定を変更する方法も考えられますが、ネットワークセキュリティに関する知識が不十分なまま、家庭内の機器をインターネットへ曝すような行為は、極めて危険です。少なくとも、Wio NodeやBlink、ngrokなどを用い、外部からのアクセスが必要な機器ごとに、対象機器から外部サービスへのトンネルを生成する、またはVPNで接続するといった方法を利用しましょう。

開く コメント(0)

日本語に対応したGoogle Homeを使って、IchigoJamに接続した7セグメントLEDの制御を行ってみました。
「OK Google, 数字の7を送信」と話すと、「数字の7を送信しました」と答え、7セグメントLEDに「7」の数字が表示されます。

イメージ 1
日本語に対応したGoogle Home            IchigoJamへ接続した7セグメントLED

IchigoJam側は、以前に紹介したAmbientを利用した方法を使用しました。ハードウェア構成と製作方法、IchigoJam BASIC用のプログラムについては、下記をご覧ください。
クラウドサービスAmbientからIchigoJamのLEDを制御する
Google Home側は、IFTTTと連携し、Google Homeが認識した数値を、Ambientへ送信するようにしました。
音声認識した数値データは、以下のような経路で7セグメントLEDへ到達します。
Google Home ---> IFTTT ---> Ambient ---> Mixjuice ---> IchigoJam ---> LED
本ブログでは、Google HomeとAmbientとの連携方法(アンダーライン部)について、説明します。

IFTTT(https://ifttt.com/)では、Triger入力側(This)に「Google Assistant」を、Action出力側(That)に「Maker Webhooks」を選択します。まずは、Thisにタッチして、Google Assistantを選択してください。GoogleのアカウントをIFTTTと連携すると、下図のような画面が表示されるので、「Say a phrase with a number」を選択してください。

イメージ 3

選択すると、設定画面(下図の左側)が開きます。これらの設定方法について、図の後で説明します。

イメージ 2

Google Assistant 左図の画面

最初の枠には認識させたい音声を入力します。ここでは、「数字の # を送信」と入力しました。「#」の前後には半角スペースが必要です。最後から2番目の枠には、音声認識に成功した時に応答するメッセージを入力します。ここでは、オウム返しで「数字の # を送信しました」と入力しました。
最後に「Japanese」を選択し、「Create trigger」をクリックしてください。

Maker Webhooks 右図の画面

こんどは、期待の音声が入力された時のアクション内容を設定します。アクション用のサービスには「Webhooks」を選択します。上図の右画面のように入力すると、Ambientへデータを送信することが出来ます。
最初の枠には、AmbientのURLを入力します。「725」はボクが公開しているチャネル番号です。動作確認用として、使っていただくには問題ありませんが、頻繁にアクセスするのは避けてください。
Methodは、POST、Content Typeはapplication/jsonです。Bodyの部分に、Ambientで取得したライトキー(writeKey)と、Ambientへ送信するデータを記述します。
ここでは、データd7番に、音声認識した数字 NumberField を指定しています。NumberField の部分は「Add ingredient」から選択するか「{{NumberField}}」のように二重の{{と}}で囲います。

以上で、設定は完了です。

「OK Google, 数字の7を送信」や「ねぇ、グーグル、数字の3を送信」と音声で命令すると、IchigoJamの7 セグメントLEDに数字が表示されます。

気になる消費電力

24時間つけっぱなしになるGoogle Home。気になる消費電力と月間電気代(1分間の積算電力量から24円/kWで換算)を測定してみました。
待機時(音声待ち受け時) 1.6〜2.2 W  月間電気代 33.7円 
待機時(ミュート)        1.9〜2.2W  月間電気代 35.6円
動作中             2.0〜2.4W
音楽再生(音量5)       2.2〜2.8W  月間電気代 40.8円
音楽再生時には、そこそこ大きな重低音が響くので、もっと大きな電力を消費するのかと思いましたが、24時間、音楽をかけっぱなしでも月間40円程度でした。

おわりに

部屋に置くスマートスピーカーによる音声認識は、家で過ごしている時なら、いつでも手軽に使えます。スマートフォンとの最大の違いは、カバンなどから取り出す必要が無いことでしょう。
操作したいときに、手元に何のデバイスも保持せずに、声だけで機器を操作することが出来るのです。
また、マイクの性能も高く、通常の広さの室内であれば、部屋の端から話しても認識してくれます。目の前にあるときは、小声でも認識しました。自宅に居るときであれば、スマートフォンの音声認識よりも、ずっと実用的だと感じました。

イメージ 4
IchigoJam + MixJuiceの組み合わせによるIoT端末の一例。プログラムはBASIC言語で作成した(関連リンク参照)

関連リンク:
クラウドサービスAmbientからIchigoJamのLEDを制御する
https://blogs.yahoo.co.jp/bokunimowakaru/55744431.html

by ボクにもわかるIchigoJamマイコンボード

開く コメント(0)

全1ページ

[1]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事