개발자/Arduino

Decoding and Encoding JSON with Arduino Nano 33 IoT 3

지구빵집 2020. 10. 12. 05:32
반응형

 

 

Encoding JSON – Generate JSON string, JSON 인코딩 – JSON 문자열 생성

 

다음 JSON 문자열을 인코딩 / 생성하는 방법을 알아 보겠습니다.

 

{"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}

 

여기에서 enconding에 대한 문서를 읽을 수 있습니다. ArduinoJson 라이브러리를 가져옵니다.

 

#include <ArduinoJson.h>

 

Arduino JSON은 사전 할당 된 메모리 풀을 사용하여 객체 트리를 저장하며, 이는 StaticJsonBuffer에 의해 수행됩니다. ArduinoJson Assistant를 사용하여 정확한 버퍼 크기를 계산할 수 있지만, 이 예에서는 200이면 충분합니다.

 

StaticJsonBuffer<200> jsonBuffer;

 

데이터를 보관할 root라는 JsonObject를 만듭니다. 그런 다음 gps 및 1351824120 값을 센서 및 시간 키에 각각 할당합니다.

 

JsonObject& root = jsonBuffer.createObject();
root["sensor"] = "gps";
root["time"] = 1351824120;

 

그런 다음 데이터 키 안에 배열을 유지하려면 다음을 수행합니다.

 

JsonArray& data = root.createNestedArray("data");
data.add(48.756080);
data.add(2.302038);

 

디버깅을 위해 생성 된 JSON을 직렬 모니터에 인쇄해야 할 가능성이 매우 높습니다.

 

root.printTo(Serial);

 

정보를 JSON 문자열로 인코딩 한 후 다음 예제와 같이 다른 장치 또는 웹 서비스에 게시 할 수 있습니다.

 

Arduino 및 Node-RED를 사용한 인코딩 예제

 

이 예에서는 Node-RED 또는 HTTP POST 요청을 수신 할 수있는 유사한 소프트웨어가 필요합니다. 컴퓨터에 Node-RED를 설치할 수 있지만, Raspberry Pi에서 Node-RED를 실행하는 것이 좋습니다. 

 

프로젝트와 관련이 없어 보이고 Node-RED 에 대해 잘 알지도 못한 이유로 여기부터는 안하기로 합니다. ㅠ.ㅠ 중단한 부분은 라즈베리파이 교육에서 완성되면 보기로 하겠습니다. 고생하셨습니다.

 

 

Node-RED는 새롭고 흥미로운 방식으로 하드웨어 장치, API 및 온라인 서비스를 연결하기위한 프로그래밍 도구입니다. 한 번의 클릭으로 런타임에 배포 할 수있는 팔레트의 광범위한 노드를 사용하여 흐름을 쉽게 연결할 수있는 브라우저 기반 편집기를 제공합니다. https://nodered.org/

 

 

 

 

 

 

 

반응형