top of page
블로그: Blog2

코인 Ticker 만들기 #15.json데이터

이번 강좌에서는 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


Join our mailing list

Never miss an update

뉴스레터 구독하기

최신 업데이트를 받아보세요!

대한민국 경기도 수원시 장안구 연무동 21 유천프라자 가동 508호

  • facebook
  • twitter
  • linkedin

©2018 by 윈드마켓. Proudly created with Wix.com

bottom of page