Edited at
TwilioDay 2

Wio Node と Twilio Studio で簡単な IoT システムを組んでみる


はじめに

積みボードと化していた、Seeed Wio Node をいい加減使おう!ということで触ってみたら、思っていた以上に簡単に IoT システムを作れることがわかり、せっかくなら Twilio と絡めてできないかな?と思ったのがきっかけです。

今回の IoT システムは、「電話をかけると、Wio Node に接続されている温湿度センサの値を取得し、温湿度を音声で教えてくれる」という、IoT ならよくある構成でございます。

電話使った IoT システムって、デモするとウケが良かったり、IoT の例としては結構わかりやすくて個人的におすすめです。


前提条件


  • Twilio のアカウントを開設済みであること。
    初めての方は、トライアルアカウントを利用されることをお勧めします。

  • Twilio の基本的な知識があること。
    Phone Number の取得方法や Studio で作成した Flow へ Phone Number で取得した電話番号を割り当てる、といった手順については記載しません。

  • Wio Node の初期セットアップについては、SHINYA さんの WIO NODE + AZURE LOGIC APPSでお手軽IOT【WIO NODE初期設定編】 を参考にセットアップしました。

  • スマートフォンの OS バージョンやメーカーによって、Wio Node との接続がうまくいかない場合があります。ご注意ください。


必要なデバイス

名称
説明
価格(執筆時)

Wio Node
デバイス本体
1,231円

Grove 温湿度センサ(SHT31)
Wio Node へつなげるセンサー
1,544円

スマートフォン (Android/iOS)
Wio Node のセットアップで使用
-


手順


Wio Node の設定

温湿度センサ(SHT31) を PORT0 へ接続し、アプリにて PORT0 に Temperature&Humidity Sensor (SHT31) を選択し、Wio Node のファームウェアを更新します。

20181201_131438000_iOS.png

更新が完了すると、 "View API" と表示されますので、温度取得の API と 湿度取得の API の URLを確認します。

20181201_131449000_iOS.png

20181201_131506000_iOS.png


Twilio の設定


Studio Flow

無題.png

Wio Node からの取得失敗時は、失敗しましたの案内を流して終了します。

ちゃんとエラー系を組もうかと思ったけど、Studio 初心者なので勘弁してください。


ウィジェット設定


say_welcome (Say/Play)

接続時のウェルカムメッセージ再生

item
value

WIDGET NAME
say_welcome

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
こんにちは。こちらはワイオ・ノードです。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


http_temp (HTTP Request)

Wio Node に接続されている温湿度計の温度を取得

item
value

WIDGET NAME
http_temp

REQUEST METHOD
GET

REQUEST URL
温度取得の API
https://us.wio.seeed.io/v1/node/GroveTempHumiSHT31I2C0/temperature?access_token=XXXXXXXXXX

CONTENT TYPE
From URL Encode

REQUEST BODY


say_temp_ok (Say/Play)

温度取得成功時の音声案内

item
value

WIDGET NAME
say_temp_ok

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
温度は {{widgets.http_temp.parsed.temperature}} 度です。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


say_temp_ng (Say/Play)

温度取得失敗時の音声案内

item
value

WIDGET NAME
say_temp_ng

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
温度の取得に失敗しました。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


http_humi (HTTP Request)

Wio Node に接続されている温湿度計の湿度を取得

item
value

WIDGET NAME
http_humi

REQUEST METHOD
GET

REQUEST URL
湿度取得の API
https://us.wio.seeed.io/v1/node/GroveTempHumiSHT31I2C0/humidity?access_token=XXXXXXXXXX

CONTENT TYPE
From URL Encode

REQUEST BODY


say_humi_ok (Say/Play)

湿度取得成功時の音声案内

item
value

WIDGET NAME
say_humi_ok

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
湿度は {{widgets.http_humi.parsed.humidity}} パーセントです。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


say_humi_ng (Say/Play)

湿度取得失敗時の音声案内

item
value

WIDGET NAME
say_humi_ng

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
湿度の取得に失敗しました。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


say_thanks (Say/Play)

音声サービス終了メッセージ再生

item
value

WIDGET NAME
say_thanks

SAY OR PLAY MESSAGE
Say a Message

TEXT TO SAY
ご利用いただきありがとうございました。またのご利用をお待ちしております。

LANGUAGE
Japanese

MESSAGE VOICE
[Polly]Mizuki または [Polly]Takumi

NUMBER OF LOOPS
1


デモ

https://www.youtube.com/watch?v=hszKF23lm08

https://www.youtube.com/watch?v=hszKF23lm08


おわりに

今回は時間がなかったのでこちらから電話をかけて確認という形になりましたが、できるなら温度のしきい値をトリガーとして逆に電話をかける動きも試してみたかったです。

また Seeed の Grove システムは多種多様なセンサが提供されていますので、PIRセンサで人を検知して電話をかけるとか、リードスイッチで扉の開閉をチェックするとかもできるので、どう Twilio と絡めていくか?というアイディアを考えるのも楽しいかと思います。