코인 Ticker 만들기 #15.json데이터
- 윈드마켓
- 2019년 1월 24일
- 1분 분량
이번 강좌에서는 Json 데이터를 주고받는 방법에 대해서 알아보도록 하겠습니다.
json 데이터라 함은
JavaScript Object Notation의 약자로 자바스크립트를 위한 객체 형식의 자료를 표현한 것을 말합니다.
예를 들어
name1 의 값은 50
name2 의 값은 값2
name3 의 값은 true
를 json 데이터 구조로 표현하면 아래와 같이 표현할 수 있습니다.
{"name1": 50, "name2": "값2", "name3": true}
우선 Json 데이터를 처리하기 위해서는 관련 라이브러리를 아래 경로에서 다운로드받아
아두이노 IDE 가 설치된 경로의 하위경로에 압축을 풀어야 합니다.
1. 아래 경로로 접속합니다.
https://github.com/bblanchon/ArduinoJson
2. [clone or download] 버튼을 클릭하여 라이브러리를 다운받고 아래 경로에 압축해제합니다.
C:\Program Files (x86)\Arduino\libraries
또는 C:\Program Files\Arduino\libraries
3. 아래 경로의 샘플 소스를 아두이노 IDE 에서 열어봅니다.
C:\Program Files (x86)\Arduino\libraries\ArduinoJson-master\examples\JsonParserExample
#include <ArduinoJson.h>
void setup() {
Serial.begin(9600);
while (!Serial) continue;
StaticJsonBuffer<200> jsonBuffer; // json 데이터를 처리할 메모리를 고정길이로 200 byte 잡아줍니다.
// DynamicJsonBuffer jsonBuffer(200); // 가변길이 사용시 이와같이 사용합니다.
// json 샘플 데이터를 생성합니다.
char json[] =
"{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";
// root 라는 객체에 json 샘플 데이터를 파싱(분리작업)해 놓습니다.
JsonObject& root = jsonBuffer.parseObject(json);
// 파싱이 완료되었는지 확인합니다.
if (!root.success()) {
Serial.println("parseObject() failed");
return;
}
// 파싱한 데이터를 각각의 변수에 담습니다.
const char* sensor = root["sensor"];
long time = root["time"];
double latitude = root["data"][0];
double longitude = root["data"][1];
// 각각의 변수 값을 시리얼 모니터를 통해 출력합니다.
Serial.println(sensor);
Serial.println(time);
Serial.println(latitude, 6);
Serial.println(longitude, 6);
}
void loop() {
// 반복은 하지 않습니다.
}
4. 시리얼 모니터를 실행합니다.
setup 에서 한번만 실행되는 소스이므로
아두이노 IDE / 툴 / 시리얼 모니터 메뉴를 통해 미리 시리얼 모니터를 실행해 둡니다.
시리얼 모니터 하단의 옵션을 9600 보드레이트로 설정해 둡니다.
5. 소스를 컴파일하고 Wemos D1 mini 에 업로드합니다.
6. 아래와 같이 시리얼 모니터에 출력되면 정상입니다.

이상으로 json 데이터에 대해서 알아보았습니다.
감사합니다.
Comments