Open2

SORACOM Fluxを試す

Y_uuuY_uuu

Wio LTEに書き込んだプログラムはこちらです。テスト用なのでセンサーなどは接続せず、気温20度からスタートして10秒ごとに+1度して送信するようにしています。

#include <WioLTEforArduino.h>
#include "SparkFun_DE2120_Arduino_Library.h" //Click here to get the library: http://librarymanager/All#SparkFun_DE2120

#define BASE_TEMPERATURE (20)
#define RECEIVE_TIMEOUT (10000)

unsigned long sequence = 0;
unsigned long temperature = 0;
int connectId = -1;
WioLTE Wio;

void send() {
  unsigned long sendData[2];
  char recvData[100];

  sendData[0] = sequence;
  sendData[1] = temperature;

  SerialUSB.println("### Send.");
  SerialUSB.printf("Send sequence=%ul, temperature=%ul\n", sequence, temperature);
  if (!Wio.SocketSend(connectId, (byte*)sendData, 8)) {
    SerialUSB.println("### ERROR! ###");
    return;
  }
  
  SerialUSB.println("### Receive.");
  int length;
  length = Wio.SocketReceive(connectId, recvData, sizeof(recvData), RECEIVE_TIMEOUT);
  if (length < 0) {
    SerialUSB.println("### ERROR! ###");
    return;
  }
  if (length == 0) {
    SerialUSB.println("### RECEIVE TIMEOUT! ###");
    return;
  }
  SerialUSB.print("Receive:");
  SerialUSB.println(recvData);
}

void setup() {
  SerialUSB.begin(115200);
  SerialUSB.println("This is a test program for SORACOM Flux.");

  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;
  }

  SerialUSB.println("### Connecting to \"soracom.io\".");
  if (!Wio.Activate("soracom.io", "sora", "sora")) {
    SerialUSB.println("### ERROR! ###");
    return;
  }

  SerialUSB.println("### Open.");
  connectId = Wio.SocketOpen("uni.soracom.io", 23080, WIOLTE_UDP);
  if (connectId < 0) {
    SerialUSB.println("### ERROR! ###");
    return;
  }

  SerialUSB.println("### Setup completed.");
}

void loop() {
  delay(1000 * 10);
  if(connectId < 0) return;
  if(sequence >= 30) return;

  temperature = BASE_TEMPERATURE + sequence;
  send();
  sequence++;
}

Y_uuuY_uuu

このプログラムを実行する際は、SIMグループの「基本設定」→「SORACOM Air for セルラー設定」→「バイナリパーサー」を有効化し、フォーマットを sequence:0:uint:32::little-endian temperature:4:uint:32:little-endian と記述してください。