SORACOM 바이너리 파서로 위치 정보를 보자!
8991 단어 WioLTE_M1_NB1SORACOMArduino
경위
WioLTE M1/NB를 사용하고 있는 사람이 생각하는 것, LTE-M의 통신료의 높이에 놀란 사람도 있다고 생각합니다.
어떻게든 패킷 사용료를 줄이려고 하면, 바이너리로 데이터를 UDP등으로 보내는 것입니다만, 위치 정보를 어떻게 바이너리 데이터로 하면 좋을까? 라고 고민하고 있는 분이 반드시 있다고 생각하기 때문에, 샘플을 만들어 보았습니다.
바이너리 파서 설정
SORACOM 콘솔에서 아래와 같이 바이너리 파서를 설정했다고 해서, float의 변수에 위치 정보가 들어 있다고 해서 UDP 패킷으로 보내는 데이터를 작성해, 실제로, SORACOM에 송신했을 때에 서버에 도착한 결과 또한 함께 공개합니다.
바이너리 파서 형식을 만드는 데 도움이되는 Playground
SORACOM Blog에서 "새로운 기능 : 바이너리 파서를 쉽게 시도 할 수있게되었습니다"가 나왔기 때문에 사용해 보았습니다.
( htps : // bg. 소라코 m. jp/bぉg/2019/06/21/비나 ry-rr rp ぁ yg 로운 d/ )
여기에서 코드
데이터 작성만 게재하고 있습니다.
sample.ide
// SORACOMバイナリパーサーを使ってGPSデータを送るとしたらのサンプル
// Programed by kazuyuki Eguchi
// パーサーのフォーマット
// lng::float:32 lat::float:32
#include <WioCellLibforArduino.h>
void setup() {
SerialUSB.begin(115200);
delay(4000);
SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");
float lng = 139.725328;
float lat = 35.62754;
// double型の大きさを調べて見よう
SerialUSB.printf("sizeof(lng)=%d",sizeof(lng));
SerialUSB.println("");
int lng_i = *( ( int* )&lng );
int lat_i = *( ( int* )&lat );
SerialUSB.printf( "lng=%f ( %08x )",lng,lng_i);
SerialUSB.println("");
SerialUSB.printf( "lat=%f ( %08x )",lat,lat_i);
SerialUSB.println("");
// 送信するデータを作ってみよう
char data[8];
data[0] = (lng_i >> 24) & 0xff;
data[1] = (lng_i >> 16) & 0xff;
data[2] = (lng_i >> 8) & 0xff;
data[3] = lng_i & 0xff;
data[4] = (lat_i >> 24) & 0xff;
data[5] = (lat_i >> 16) & 0xff;
data[6] = (lat_i >> 8) & 0xff;
data[7] = lat_i & 0xff;
// 人間がデータを確認するために16進数の文字列で表現しているよ(Webでの確認するため)
SerialUSB.printf("data=%02x%02x%02x%02x%02x%02x%02x%02x",data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7]);
SerialUSB.println("");
}
void loop() {
}
서버에서 수신한 결과
{"lng":139.72532653808594,"lat":35.627540588378906}
되었습니다!
이상, 참고까지
Reference
이 문제에 관하여(SORACOM 바이너리 파서로 위치 정보를 보자!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KazuyukiEguchi/items/be823fd27f242b3cb277텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)