6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IoTLTAdvent Calendar 2018

Day 17

WioLTEでモバイルデータ通信(LTE)を使ったIoT開発入門

Posted at

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万円したような記憶があるんですよね。(もし僕が知らなかっただけで前から安いやつあったで!!ということならぜひ教えてください:bow:
それに比べたら、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は神

公式リンク

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?