SORACOM LTE-M Buttonアドベントカレンダー18日目「IoTピタゴ○スイッチ作ってみた」

SORACOM LTE-M Button powered by AWS Advent Calendar 2018の18日目の記事を当社が担当しました!
こちらは18日に公開予定の記事です。

はじめに

SORACOM LTE-M Buttonが届いたので、何か面白いものが作りたいなー

。。。。。。(悩み中)

うちの部署では、デジタルとアナログを融合させたサービスを提供している
デジタル、アナログ、デジタル、アナログ、、、、、、、(無限ループ)

そういえば、昔よくピタゴ○スイッチを見て、面白いなーと思っていた

。。。。。。(考え中)

よし、作ろう!!!!

ということで、SORACOMのサービス、AWSのサービスなどを使用して、デジタルとアナログを融合させた簡易なピタゴ○スイッチを作ってみました。(1日目担当の方とネタがかぶってしまいましたorz)

アーキテクチャ説明

一番上に載せているアーキテクチャ図の説明をします。

デバイス側(アナログ)

  • SORACOM LTE-M Button

本記事のメインデバイス
ボタンを押すことで、LTE通信を介して直接AWS Lambdaを実行することが出来ます。
呼び出されたLambdaはIoT Coreに対してパブリッシュを行います。

  • Wio LTE1台

Wio LTEは、超音波距離センサ付きを使用しています。
SORACOM Beamの設定をしており、AWS IoT CoreとMQTT通信を行います。

  • 車(MESH) + MESH SDK

今回は車を動かす動力源としてSonyのMESHを使用しています。
また、AWSと連携をするために、MESH SDKも使用しており、MESH SDKからAPI Gatewayに対してリクエストを投げています。

  • MacBook

IoT Coreに対してサブスクライブをしています。
データをサブスクライブすると、「3、2、1、星」を表示し、車を動かすために、
データをIoT Coreに対してパブリッシュします。

クラウド側(デジタル)

  • AWS

AWS IoTはWio LTE、MacBookとの通信の仲介役として、API GatewayはMESH SDK、IoT.kyoto VISとの通信の仲介役として使用しています。
また、データ保管場所として、DynamoDBも使っています。

  • IoT.kyoto VIS

IoT.kyoto(株式会社KYOSO)の無料の可視化サービスです。
今回はVISの環境をカスタマイズして、新しくデモ用にページを作成しています。

ピタゴ○スイッチ動作の流れ

1. SORACOM LTE-M Buttonを押す
2. Lambdaが呼ばれてIoT Coreの「iot_pythagoraswitch/pytagora_start」トピックに対してデータをパブリッシュする
3. MacBookが「iot_pythagoraswitch/pytagora_start」トピックをサブスクライブしており、データが届くとコンソールにカウントダウンを表示する
4. カウントダウンが終了すると、IoT Coreの「iot_pythagoraswitch/startFlag」トピックに対してデータを送信
5. 「iot_pythagoraswitch/startFlag」トピックにデータが来た場合、IoT CoreのルールエンジンがDynamoDBの車スタートフラグをONにする
6. 車側のMESH SDKがAPI Gatewayに対してポーリングしており、DynamoDBの車スタートフラグがONだと車が走り出す
7. 車がWio LTEの超音波距離センサーにぶつかると、終了という命令をIoT Coreのトピックにパブリッシュする
8. IoT Coreのルールエンジンが終了の命令を受けると、DynamoDBに対して終了のフラグをONにする
9. IoT.kyoto VISの環境で作成した画面は、API Gatewayに対してポーリングしており、DynamoDBの終了フラグがONだと「デジ✕アナ・スイッチ」という文字といおたんを表示する

実際の動いている様子

感想

デジタルとアナログを組み合わせると問題解決が非常に難しくなることを実感しました。
電源ケーブルの不調、SIM通信の不調、プログラムの問題、クラウド側の問題などなどなど。
特に、物理的な問題の場合、再現性が無い問題が起こることもあり、デバッグに苦労しました。

クラウド側からデバイスを制御できるようになると、更に面白いピタゴ○スイッチも考えられると思います。
夢が広がりますね!!
今後は、IoT×ピタゴ○スイッチということで、いろいろと面白いロジックを考えていきたいと思います。
皆さんも是非、チャレンジしてみて下さい。