?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

esp8266에서 서버로 데이터 전송

페이지 정보

작성자 이지웅 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일16-08-10 17:18 조회3,999회 댓글4건

본문

안녕하세요. 도움 많이 받고 있습니다.

esp8266으로 온습도 데이터를 검출하여 서버로 데이터를 전송해 db에 저장하려 합니다.

아무리 자료를 찾아봐도 http request 예제 같은 html을 가져오는 예제밖에는 보이지 않습니다.

get방식으로 전송해서 서버에서는 데이터를 받고 디비로 저장하려고 합니다.

esp8266에서 get방식으로 전달하는 예제좀 부탁드립니다.

혹시 통신과같은 예제들을 참고할만한 서적도 있을까요?

댓글목록

최고관리자님의 댓글

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

아래 링크에 있는 예제를 이용하시면 됩니다.
https://github.com/godstale/ESP8266_Arduino_IDE_Example/blob/master/example/WiFiClient/WiFiClient.ino

코드 마지막 부분을 보시면 아래와 같은 내용이 있습니다. GET request 를 보낸 후 서버가 보내준 응답을 받아서 1 라인씩 출력하는 코드입니다.
  // Read all the lines of the reply from server and print them to Serial
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }

이지웅님의 댓글

이지웅 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

http request를 해와서 json 형식으로 받아서 파싱하려고 하는데요.

HTTP/1.1 200 OK

Date: Fri, 12 Aug 2016 05:37:17 GMT

Server: Apache/2.4.3 (Unix) SVN/1.7.9 PHP/5.4.8

X-Powered-By: PHP/5.4.8

Content-Length: 123

Connection: close

Content-Type: text/html; charset=UTF-8



{"status":"OK","num_results":"","results":[{"time":"","mode_fast":"0","mode_slow":"0","temp":"28","hum":"45.6","idx":"1"}]}

closing connection

위 부분에서 json 형식으로 된 문장만 받아야 하는데... 한번에 저 문장들이 나눠져서 오는데 어떻게 받야아 할까요?
파싱은 aJson 라이브러리를 사용하고 있습니다.
해보니까 스택 오버플로우라는 에러가 나서요.. 에러는 밑과 같습니다..

HTTP/1.1 200 OK

Exception (28):
epc1=0x402022c0 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000018 depc=0x00000000

ctx: cont
sp: 3ffef5b0 end: 3ffef800 offset: 01a0

>>>stack>>>
3ffef750:  3ffe86cc 3ffef790 3ffee7a0 402022bb 
3ffef760:  3ffe8360 00000000 3ffee7a0 3ffef790 
3ffef770:  3ffef790 00000000 3ffee7a0 40202524 
3ffef780:  50545448 312e312f 30303220 004b4f20 
3ffef790:  3ffe8778 00000000 000003e8 00003a34 
3ffef7a0:  00000000 3fff0d24 3fff0d9c 0000000f 
3ffef7b0:  0000000f 00000000 00000000 00000000 
3ffef7c0:  3fff0d4c 0000002f 00000027 402021a8 
3ffef7d0:  3ffe8938 0a14a8c0 feefeffe 3ffee7cc 
3ffef7e0:  3fffdad0 00000000 3ffee7c4 40204510 
3ffef7f0:  feefeffe feefeffe 3ffee7e0 40100718 
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(1,6)

최고관리자님의 댓글

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

수신된 데이터를 파싱하는 부분에서 메모리 사용량이 높은 부분을 체크해보세요. 불필요한 변수, 버퍼가 계속 사용되는지 확인해 봐야 할 것 같습니다.

민스타님의 댓글

민스타 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

운영자님 바쁘신 와중에 죄송하지만...
아래 링크에 있는 예제를 참고 했는데...
#include <ESP8266WiFi.h> 에 대한  라이브러리가 없다고 하는데
어디에서도 그 라이브러리를 구할 수 가 없습니다.
그리고 이게 아두이노우노+모듈 의 환경에서도 사용 가능한 것인가요?
NodeMCU를 사용한 걸로 보입니다만...
알려주시면 감사하겠습니다.
tjdals3035@naver.com