SORACOM主催：大阪 IoT もくもく会（Raspberry Piより簡単！Wio LTE /Grove センサー）に参加してみた

# 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での通信が可能です。
。

ハンズオンの詳細は、以下のサイトの資料を見てもらうとして、ここではどんなことをしたかを、簡単にまとめて記載します。

https://github.com/soracom/handson/wiki/Wio-LTE-%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E6%BA%96%E5%82%99

## 2-1 LED点灯
Wio LTEに搭載のフルカラーLEDの点灯です。いわゆるLチカですね。
ソースファイル(ここでは、Arduinoスケッチ)がすでに公開されていますので、それを使用することで、簡単にLED制御ができました。

## 2-2 デバイス稼働時間を SORACOM Harvest で可視化
ここからが、クラウドとの連携です。
まずは、SORACOM Harvestを使います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/307872/49c3f5b7-19ec-e13c-532c-8b3215eda6fe.png)
画像は、ハンズオン資料より

SORACOM Harvestとは・・・IoTデバイスからのデータを保存し、可視化するサービスです。

手順としては以下。
1. SIMカードをSORACOMコンソールで登録(このもくもく会用に配布してただきました。しかも、なんと、**プレゼント**してもらえました。)　
2. SORACOMコンソールから、SIMカードグループ”Harvest(名前は任意)”を作成し、Harvest機能を有効可。
3. 登録したSIMカードを、作成したSIMカードグループ”Harvest”に紐づけ。
4. WioLTEからデータ送信するためのサンプルスケッチがすでに公開されているので、ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでWio LTEからクラウドへデータ送信。
5. SORACOMコンソールSIM管理からデータ確認を実施

これで、SORACOM Harvest上に稼働時間がグラフ化されて表示されます。
WioLTEからの通信を止めると、稼働時間が減っていきます。

ものの30分でできた。すげーーーー！！！！！

##2-3 温湿度センサーのデータを SORACOM Harvest で可視化
![image.png](https://qiita-image-store.s3.amazonaws.com/0/307872/7b497bec-35cd-c47d-1630-01b40c8945c1.png)
画像は、ハンズオン資料より

WioLTEに温湿度センサーを取り付け、2-2のスケッチを少し変更して、温度データも送信されるようにするだけ。
ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでSORACOM Harvest上に温度データ表示されるようになる。

簡単～～～～～～

##2-4 温湿度センサーのデータを SORACOM Funnel 利用して AWS IoT へ転送
SORACOM Funnel利用して、AWS Iotへデータを転送します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/307872/445a7597-869a-1ae7-96b0-250a6d328b14.png)
画像は、ハンズオン資料より
(画像はS3まで記載していますが、ハンズオンではIoT Coreまでを実施しました)

SORACOM Funnelとは・・・デバイスからのデータを特定のクラウドサービスに直接転送するクラウドリソースアダプターです。

1. SORACOM へ認証情報(AWSアクセス用のキー等)を登録
2. SORACOMコンソールから、SIMカードグループ”Funnel(名前は任意)”を作成し、Funnel機能設定を実行。AWSIoTのEndpoint等、認証情報を設定する。
これで、WioLTEからFunnleにアクセスすると、自動的にAWS IoTへ接続して、データ転送してくれる。
3. 登録したSIMカードを、作成したSIMカードグループ”Funnel”に紐づけ。
4. 2-3スケッチを変更し、接続先をSORACOM Funnelに変更。ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。
5. AWS IoT側で受信できているか確認。
これは、SORACOMのmaxさん(エバンジェリストさんが)自ら確認してくれました。確かSlackにデータを転送するようにして、確認してましたねぇ。

これも、30分ぐらいでできたかな？

##2-5 SORACOM Beam を用いた MQTT Pub/Sub 双方向通信
最後に、SORACOM Beamを利用した、MQTT Pub/Sub通信です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/307872/3dc4fa9a-5359-8b86-b13b-8e8b26482812.png)
画像は、ハンズオン資料より

SORACOM Beamとは、IoT デバイスにかかる暗号化等の高負荷処理や接続先の設定を、クラウドにオフロードできるサービスで、IoT デバイスからのデータアップロード時は、3G/LTE 閉域網を通じて Beam のエンドポイントまでデータが送信され、Beam から先のインターネットでは、Beam によって通信が暗号化され、個別のサーバーまで安全にデータを届けることが可能。

1. SORACOM へ認証情報を登録。
ここでは、 Eclipse Mosquittoへ接続するための証明書等を設定
2. SORACOMコンソールから、SIMカードグループ”Beam(名前は任意)”を作成し、Beam機能設定を実行。MQTTエントリポイント等を設定。
3. 登録したSIMカードを、作成したSIMカードグループ”Beam”に紐づけ。
4. すでに公開済みのPubSubClient ライブラリのインストールと、mqtt-lient通知スケッチを使用。ArduinoIDEでコンパイル→Wio LTEへ書き込み→実行。これでWio LTEからクラウドへデータ送信。
5. MQTT WebSocket ClientをWebで開いて、データ受信していることを確認。

この後、ClientからWioLTEへ、LEDの変更指示を出す手順があったのですが、時間の関係で出来ませんでした。

#3 まとめ
SORACOMのサービスを利用すれば、携帯回線を利用して、低料金でどこからでもクラウドサービスにアクセスでき、AWS等のクラウドサービスを併用すれば、データの蓄積・活用が容易にできることを、改めて実感しました。
すごい時代になったものだ。
ひと昔は、サーバー構築だけで一苦労でしたし、WioLTEのような端末側でも、ドライバ書いて、プロトコル実装して・・・・プロトコルの基本的な疎通確認ができて、初めてアプリの開発に着手・・・・・、なんてことをやってました。

もくもく会の2時間弱で、4パターンのクラウドを使ったサービスが利用できたということは、昭和なおっさんからすれば、ほんとにすごいことだと思います。

#4　最後に
FacebookのSORACOMさんのFacebookアカウントを「いいね」したら、SIMカード入れをもらえました。SIMカードを無くさずに済みそうです。

![DSC_0751.JPG](https://qiita-image-store.s3.amazonaws.com/0/307872/81dac15e-3fd2-bd68-ec0e-4530d0ba53f0.jpeg)
![DSC_0752.JPG](https://qiita-image-store.s3.amazonaws.com/0/307872/930ad953-bd76-ceb0-3105-e4694ad8db50.jpeg)