0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

wemos d1で、alexaデバイスを作ってみる。
alexaが、デバイスを発見して、登録する仕組み。

デバイス発見

alexaに、「デバイスを検出して」と指示すると、alexaは、同じWi-Fiルーターに接続されているネットワーク内に、マルチキャスト(SSDPプロトコル)で「だれかスマート家電(Hueブリッジ)はいませんか?」と叫びます。

wemosは、この呼びかけ(UDPポート1900)を常に待ち受けています。
Echoからの呼びかけを検知すると、「私はPhilips Hueのブリッジ(電球の親機)です!」という偽の応答(M-SEARCH応答)を返します。

デバイス登録

alexaは、偽装されたマイコンが指定するHTTPポート(例:fauxmo.createServer で内部的に自動生成されるポート)に対して、機器の詳しい情報を要求します。

wemosは、Philips Hue純正品とそっくりな構成情報(setup.xml という形式のデータ)をEchoに返信します。
このデータの中に、プログラム側で設定した fauxmo.addDevice("ピンクのライト") といったカスタムのデバイス名が含まれています。

結果:alexaは「お、Wi-Fi内にPhilips Hueの照明が見つかったぞ」と勘違いし、Alexaアプリにデバイスとして登録します。

コマンド受信とコールバック実行(制御時)

ユーザー:
「アレクサ、ピンクのライトをつけて」

Alexaの動作:
alexaはwemosに対して「ライトを点灯せよ」という内容のHTTPリクエスト(PUTリクエスト)を直接送信します。

wemosの動作:
fauxmo.onMessage で登録しておいたコールバック関数がトリガーされます。
wemosは受け取ったリクエストから「ON/OFFのどちらか」「明るさ(Brightness)はいくつか」を判定し、GPIOピンを操作してLEDやリレーを動かします。

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?