IoTサービスへのデータ送信 (Spresense)
Có thể bạn quan tâm
サンプルソースコード
概要
IIJ IoTの基本動作である、データ送信を実装してみます。
当サンプルでは、httpプロトコルを使用して、定期的にIIJ IoTサービスにデータ送信を行います。今回は、乱数値を送信しています。
ソースコード
spresense_iijiot_datasend.ino #include <LTE.h> #include <LTEClient.h> #include <ArduinoHttpClient.h> #include <Arduino_JSON.h> //--- TODO: 使用するSIMのAPN情報に書き換えてください。 const char apn[] = "iot.iijmobile.jp"; // "h.iijmobile.biz"; const char lte_user[] = "mobile@iot"; const char lte_pass[] = "iot"; //--- const int delay_sec = 60; const char* iij_iot_host = "gw.iot.iij.jp"; const char* iij_iot_path = "/v1"; LTE lteAccess; LTEClient client; /* setup関数 */ void setup() { Serial.begin(115200); Serial.println("\nstart."); delay(3000); while (true) { //LTE接続 if (lteAccess.begin() == LTE_SEARCHING) { if (lteAccess.attach(apn, lte_user, lte_pass) == LTE_READY) { Serial.println("attach succeeded."); break; } Serial.println("An error occurred, shutdown and try again."); lteAccess.shutdown(); sleep(1); } } //乱数を初期化 randomSeed(lteAccess.getTime()); } /* IIJ IoTサービスにデータ送信する 引数 const char* ns : 送信する namespace値 const char* name : 送信する name値 const double value : 送信する value値 戻り値 bool true:送信成功 false:送信失敗 */ bool send_data(const char* ns, const char* name, const double value) { //JSONオブジェクトを作成 JSONVar body; if (ns != nullptr && strlen(ns) > 0) { body["namespace"] = ns; } body["name"] = name; body["value"] = value; //JSONを文字列に変換 String body_string = JSON.stringify(body); Serial.println("POST: " + body_string); //JSON文字列をIIJ IoTサービスにPOST HttpClient http(client, iij_iot_host, 80); http.beginRequest(); http.post(iij_iot_path); http.sendHeader("Content-type", "application/json"); http.sendHeader("Content-length", body_string.length()); http.beginBody(); http.print(body_string); http.endRequest(); int status_code = http.responseStatusCode(); return status_code >= 200 && status_code < 300; } /* loop関数 */ void loop() { //乱数を生成する int value = random(10000); //データ送信する bool ok = send_data("spresense", "test", value); Serial.println(ok ? "OK" : "NG"); //待つ delay(delay_sec * 1000L); }実行結果
Spresenseは、LTE回線接続後、60秒ごとに乱数をデータ送信します。結果はシリアルモニタに出力されます。
start. attach succeeded. POST: {"namespace":"spresense","name":"test","value":6012} OK POST: {"namespace":"spresense","name":"test","value":538} OKIIJ IoTサービスのコントロールパネルにログインし、デバイスモニタリングの画面を確認すると、送信したデータのグラフが表示されていることが確認できます。

各種情報へのリンク
IIJ IoTサービスマニュアル
- Gateway API
Spresense
- Spresense Arduino 開発ガイド
- Spresense Arduino Library APIリファレンス
Arduino_JSON
- Arduino_JSON Library for Arduino
ArduinoHttpClient
- ArduinoHttpClient
Từ khóa » Http://iijmobile.biz
-
法人向けモバイルサービス「IIJモバイル」サポート専用サイト
-
IIJモバイルサービス/タイプI 法人向けSIM・高速モバイル通信(フル ...
-
タイプK(定額プランライト) - インターネットイニシアティブ(IIJ)
-
APN Setting Method - IIJmio
-
IIJ Expands High-speed Data Communications Terminals For IIJ Mobile
-
[PDF] IIJモバイルサービス セットアップガイド[MR04LN]
-
プリセットされたAPNの一覧 - CANDY LINE INC.
-
デバイスコントロール ビューア機能を用いたデバイスへのリモート ...
-
[PDF] モバイル接続サービス 開通ガイド (YAMAHA機器)
-
LTE-M 動作確認SIM List - Spresense - Sony Developer World