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