1 はじめに
去る2019年2月22日に、株式会社ソラコムさん主催の、IoTもくもく会に参加してきました。大阪初開催なのかな?
その時の内容を備忘録的に記載しておきます。
2 実施内容
Wio LTE /Grove センサーを使って以下のハンズオンを実施しました。
ステップ 1: LED点灯
ステップ 2: デバイス稼働時間を SORACOM Harvest で可視化
ステップ 3: 温湿度センサーのデータを SORACOM Harvest で可視化
ステップ 4: 温湿度センサーのデータを SORACOM Funnel 利用して AWS IoT へ転送
ステップ 5: SORACOM Beam を用いた MQTT Pub/Sub 双方向通信
Wio LTEとは
Seeed社が開発しているマイコンモジュールで、Arduino IDEで開発ができます。また、LTE モジュールが搭載されていますので、LTEでの通信が可能です。
。
ハンズオンの詳細は、以下のサイトの資料を見てもらうとして、ここではどんなことをしたかを、簡単にまとめて記載します。
2-1 LED点灯
Wio LTEに搭載のフルカラーLEDの点灯です。いわゆるLチカですね。
ソースファイル(ここでは、Arduinoスケッチ)がすでに公開されていますので、それを使用することで、簡単にLED制御ができました。
2-2 デバイス稼働時間を SORACOM Harvest で可視化
ここからが、クラウドとの連携です。
まずは、SORACOM Harvestを使います。
画像は、ハンズオン資料より
SORACOM Harvestとは・・・IoTデバイスからのデータを保存し、可視化するサービスです。
手順としては以下。
- SIMカードをSORACOMコンソールで登録(このもくもく会用に配布してただきました。しかも、なんと、プレゼントしてもらえました。)
- SORACOMコンソールから、SIMカードグループ”Harvest(名前は任意)”を作成し、Harvest機能を有効可。
- 登録したSIMカードを、作成したSIMカードグループ”Harvest”に紐づけ。
- WioLTEからデータ送信するためのサンプルスケッチがすでに公開されているので、ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでWio LTEからクラウドへデータ送信。
- SORACOMコンソールSIM管理からデータ確認を実施
これで、SORACOM Harvest上に稼働時間がグラフ化されて表示されます。
WioLTEからの通信を止めると、稼働時間が減っていきます。
ものの30分でできた。すげーーーー!!!!!
2-3 温湿度センサーのデータを SORACOM Harvest で可視化
WioLTEに温湿度センサーを取り付け、2-2のスケッチを少し変更して、温度データも送信されるようにするだけ。
ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでSORACOM Harvest上に温度データ表示されるようになる。
簡単~~~~~~
2-4 温湿度センサーのデータを SORACOM Funnel 利用して AWS IoT へ転送
SORACOM Funnel利用して、AWS Iotへデータを転送します。
画像は、ハンズオン資料より
(画像はS3まで記載していますが、ハンズオンではIoT Coreまでを実施しました)
SORACOM Funnelとは・・・デバイスからのデータを特定のクラウドサービスに直接転送するクラウドリソースアダプターです。
- SORACOM へ認証情報(AWSアクセス用のキー等)を登録
- SORACOMコンソールから、SIMカードグループ”Funnel(名前は任意)”を作成し、Funnel機能設定を実行。AWSIoTのEndpoint等、認証情報を設定する。
これで、WioLTEからFunnleにアクセスすると、自動的にAWS IoTへ接続して、データ転送してくれる。 - 登録したSIMカードを、作成したSIMカードグループ”Funnel”に紐づけ。
- 2-3スケッチを変更し、接続先をSORACOM Funnelに変更。ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。
- AWS IoT側で受信できているか確認。
これは、SORACOMのmaxさん(エバンジェリストさんが)自ら確認してくれました。確かSlackにデータを転送するようにして、確認してましたねぇ。
これも、30分ぐらいでできたかな?
2-5 SORACOM Beam を用いた MQTT Pub/Sub 双方向通信
最後に、SORACOM Beamを利用した、MQTT Pub/Sub通信です。
画像は、ハンズオン資料より
SORACOM Beamとは、IoT デバイスにかかる暗号化等の高負荷処理や接続先の設定を、クラウドにオフロードできるサービスで、IoT デバイスからのデータアップロード時は、3G/LTE 閉域網を通じて Beam のエンドポイントまでデータが送信され、Beam から先のインターネットでは、Beam によって通信が暗号化され、個別のサーバーまで安全にデータを届けることが可能。
- SORACOM へ認証情報を登録。
ここでは、 Eclipse Mosquittoへ接続するための証明書等を設定 - SORACOMコンソールから、SIMカードグループ”Beam(名前は任意)”を作成し、Beam機能設定を実行。MQTTエントリポイント等を設定。
- 登録したSIMカードを、作成したSIMカードグループ”Beam”に紐づけ。
- すでに公開済みのPubSubClient ライブラリのインストールと、mqtt-lient通知スケッチを使用。ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでWio LTEからクラウドへデータ送信。
- MQTT WebSocket ClientをWebで開いて、データ受信していることを確認。
この後、ClientからWioLTEへ、LEDの変更指示を出す手順があったのですが、時間の関係で出来ませんでした。
3 まとめ
SORACOMのサービスを利用すれば、携帯回線を利用して、低料金でどこからでもクラウドサービスにアクセスでき、AWS等のクラウドサービスを併用すれば、データの蓄積・活用が容易にできることを、改めて実感しました。
すごい時代になったものだ。
ひと昔は、サーバー構築だけで一苦労でしたし、WioLTEのような端末側でも、ドライバ書いて、プロトコル実装して・・・・プロトコルの基本的な疎通確認ができて、初めてアプリの開発に着手・・・・・、なんてことをやってました。
もくもく会の2時間弱で、4パターンのクラウドを使ったサービスが利用できたということは、昭和なおっさんからすれば、ほんとにすごいことだと思います。
4 最後に
FacebookのSORACOMさんのFacebookアカウントを「いいね」したら、SIMカード入れをもらえました。SIMカードを無くさずに済みそうです。