WiFiを使ったIoTは、ESP8266やESP32を使った例が一般的になってきましたが、モバイルデータ通信(以後LTE)を使ったIoTはまだそれほど多く例がありません。
一因として、LTEが使えるIoT開発ボードは高価なので手を出しづらい
ということがあるのではないでしょうか。
WioLTE
そんな人にオススメの開発ボードがWioLTE
です。
https://soracom.jp/products/module/wio_lte/
Wio LTE JP Version は、Seeed社が開発しているマイコンモジュールです。Grove コネクターと STM32F4 マイコン、LTE モジュールが搭載されています。Arduino IDE で素早くプロトタイピングすることができます。
紹介したいことは公式のこの一文がすべて説明してくれているので、つまりそういうことです。
Groveセンサーが使えたり、Arduinoライクにプログラミングできたりといろいろ嬉しいポイントはあるのですが、それ以上になんと言ってもこの価格。
¥9,800 (税別・送料別)
安くない?????
少し前のLTE対応開発ボードって2,3万円したような記憶があるんですよね。(もし僕が知らなかっただけで前から安いやつあったで!!ということならぜひ教えてください)
それに比べたら、WioLTEは税別で1万円を切る安心価格。大変嬉しい。
WioLTEの開発環境セットアップ
ArduinoIDE
を使って開発を行います。
ボードの追加
ボードマネージャでSeeed Wio LTE Cat.1
を追加します。
https://seeedjp.github.io/Wiki/Wio_LTE_for_Arduino/AddWioLTEBoard-ja.html
ライブラリの追加
ライブラリマネージャでWio LTE for Arduino
を追加します。
https://seeedjp.github.io/Wiki/Wio_LTE_for_Arduino/AddWioLTELibrary-ja.html
Groveセンサーを使ってみる
ライブラリの追加によってスケッチ例が追加されているので、grove-temparature-and-humidity-sensor
を選択してみます。
使うセンサーはこちら。
http://wiki.seeedstudio.com/Grove-TemperatureAndHumidity_Sensor/
#include <WioLTEforArduino.h>
#define SENSOR_PIN (WIOLTE_D38)
void setup()
{
TemperatureAndHumidityBegin(SENSOR_PIN);
}
void loop()
{
float temp;
float humi;
if (!TemperatureAndHumidityRead(&temp, &humi)) {
SerialUSB.println("ERROR!");
goto err;
}
SerialUSB.print("Current humidity = ");
SerialUSB.print(humi);
SerialUSB.print("% ");
SerialUSB.print("temperature = ");
SerialUSB.print(temp);
SerialUSB.println("C");
err:
delay(2000);
}
// 以降、温湿度の計算ロジックが続くので割愛
Groveセンサーを接続してスケッチを実行すると、温湿度がシリアルモニタに表示されます。
LTEを使ってみる
先程のスケッチ例の中にGetRSSI
というサンプルがあるので、このスケッチを使ってLTE回線に接続します。(WioLTEにはあらかじめアクティベート済みのSIMカードを挿しておきます)
#include <WioLTEforArduino.h>
#include <limits.h>
#define INTERVAL (5000)
WioLTE Wio;
void setup() {
delay(200);
SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");
SerialUSB.println("### I/O Initialize.");
Wio.Init();
SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyLTE(true);
delay(500);
SerialUSB.println("### Turn on or reset.");
if (!Wio.TurnOnOrReset()) {
SerialUSB.println("### ERROR! ###");
return;
}
delay(3000);
SerialUSB.println("### Setup completed.");
}
void loop() {
SerialUSB.println("### Get RSSI.");
int rssi = Wio.GetReceivedSignalStrength();
if (rssi == INT_MIN) {
SerialUSB.println("### ERROR! ###");
goto err;
}
SerialUSB.print("RSSI:");
SerialUSB.print(rssi);
SerialUSB.println("");
err:
delay(INTERVAL);
}
スケッチを実行すると、LTE回線のRSSI(受信信号強度)がシリアルモニタに表示されます。
LTE接続ができたら、あとはloop()
でセンサーから情報取得→データアップロードをするだけです。
既存のサンプルスケッチの組み合わせでモバイルデータ通信(LTE)を使ったIoT
を簡単に実現することができます。
まとめ
- WioLTEは初めてのモバイルデータ通信(LTE)を使ったIoTにオススメの開発ボード
- ArduinoIDEに各種ライブラリをインストールするだけですぐ開発を始められます
- Groveは神
公式リンク