?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

ESP8266이용 웹서버 데이터 가져오기.

페이지 정보

작성자 노드엠시유 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일16-08-04 15:05 조회1,251회 댓글2건

본문

안녕하세요.

현재 아두이노 나노와 ESP8266(esp-01) 모델로 WiFi 통신을 하려고 합니다.

AT 커맨드를 이용해서 서버 정보를 가져오는데 성공하였습니다만,

웹서버에서 가져온 데이터를 저장하여 특정 데이터만 검출하려고 합니다.

데이터를 가져오려는 소스 코드는

String data;

  while (Serial.available())
  {
      char c = Serial.read();
      data += c;
      Serial.write(Serial.read());
  }

과 같습니다.

 

웹서버에서 GET 명령어로 가져온 데이터는

+IPD,245:HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 38
ETag: W/26-ePJJPKJpk5f7kW352v2T+A
Date: Thu, 04 Aug 2016 07:47:21 GMT
Connection: keep-alive

[{"key":1,"isDoor":"1","isKnock":"1"}]
OK
 

다음과 같은데 +IPD,245:HTTP/1.1 200 OK 라는 첫줄의 데이터만 출력이 확인되고

엔터키입력(\n) 때문인지 나머지는 가져올 수 없는 문제가 생겼습니다. 

다른 Serial 관련 함수를 이용해봤지만 결과는 비슷하였습니다.

하단의 [{"key":1,"isDoor":"1","isKnock":"1"}] 라는 데이터를 가져오고 싶은데 방법이 없는지요?

 

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

데이터를 가져오는 코드 자체에 문제가 약간 보입니다. 아래처럼 Serial.read() 함수가 두번 호출되지 않도록 수정하는 것이 좋을 듯 합니다.
  while (Serial.available())  {
      char c = Serial.read();
      data += c;
      Serial.write(c);
  }

일단 이 코드로 다시 데이터를 확인해보세요.