SORACOM
awsIoT
WioLTE

デバイスシャドウの実装 (Wio LTE + SORACOM Beam)

デバイスシャドウのベストプラクティスを実装しました。


構成

今回使ったデバイスは Wio LTE JP Version という、マイコン+LTEモデムが搭載された、IoTプロトタイプ向けデバイスです。

LTEモデムがついているのでIoTプロダクトに向いているのですが AWS IoT device SDK が対応していません。そのため MQTTS 実装を自力でやる必要があるのですが、そこを SORACOM Beam で肩代わりしています。

SORACOM Beam は以下のような時に使います;


  • TLS 実装が面倒、もしくはそもそも TLS が使えないようなデバイス

  • 証明書の更新など運用面の考慮


実装

https://gist.github.com/ma2shita/5ed0e066975b3715f0f326bc0513a12d に掲載しています。MIT ライセンスです。

センサーデバイスを D38 に取り付けた想定でサンプルも記載しています。シャドウでは d38 というキーで扱っています。


利用の注意点



  • IMPL.; と書いてある4つのポイントがカスタマイズ位置です。

  • SORACOM Air メタデータサービスを有効にすると awsiotcore_thing_name というキーの値を AWS IoT Core の ThingName として利用します。メタデータサービスが使えない場合は SIM の IMSI が ThingName になります。


  • ArduinoJson に依存しまくってます。5.x 系を使っています。

  • PubSubClient は公式から fork したライブラリを使っています。これは MQTT のペイロードサイズを大きくしていることと、Wio LTE ライブラリが PubSubClient 2.7 以上では動かないためです。


解説

実装すべき内容3点が実装済みです。

挙動を動画にまとめました。

Behavior of Device shadow (using AWS IoT Core)

再接続処理も実装済みです。

こちらも以下のような挙動になります。

MQTT reconnect demo


あとがき

やっと全部出し切れた。

EoT