Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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は神

公式リンク

https://dev.soracom.io/jp/start/lte_hw_wio-lte/

iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away