WIZnet Developer Forum

펌웨어 문의

안녕하세요.
현재 위즈넷 와이파이 제품 WizFi210으로 개발중에 있습니다.
HTTPCONF Command를 사용하여야 하는데 펌웨어가 필요한 것 같습니다.

안녕하세요

요청하신 펌웨어 작성하신 e-mail로 보내드렸습니다.

감사합니다.

현재 HTTP PUT을 이용하여 DATA를 Web으로 전송 하려 합니다.

HTTP Data Transfer문서를 참조하였습니다만 이해되지 않는 부분이 있습니다.

data를 send할 경우 <예제>

[ESC]
[S]
[CID number]

PUT/v2/feeds/34428.csv HTTP/1.1
User-Agent: curl/7.19.5(i485-pc-linux-gnu) libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3libidn/1.15
Host: api.pachube.com
Accept:/
X-PachubeApiKey:_5TVUszs376KgB2OUHoH4-o6OZ5CV5ie_6dzl!YnROl
Content-Length:12
Content-Type:application/x-www.form-urlencoded

Sensor-A,250
[ESC]
[E]

예제를 TEST할 경우
S0

400 Bad Request... ....

응답이 옵니다.(저희가 test하고자 하는 웹으로 할 경우 응답이 없습니다.)

저희측에서 Test할 경우 위 예제에서 참조해야 할 부분이 무엇인지…

안녕하세요

실례지만 질문을 정확히 이해하지 못했습니다.

  1. WizFi210이 client 역할로 pachube.com으로 requset한 예제의 응답이 정상인 상황인가요? 그리고 제 3의(테스트하시고자 하는) 서버에 requset 하려는데 응답이 없다는 질문이신가요?

  2. 아니면 WizFi210이 웹서버이고, 다른 WizFi210을 client로 사용해서 웹서버에 접속하시려는 건가요?

예제를 보자면 1번 상황인것 같긴한데…
어떻게 구성되어 있고, test하고자 하는 웹이 다른 클라우드 서버인지 아니면 운영하시는 서버인지 정보가 너무 부족합니다.

만약 1번 상황에 다른 클라우드 서버에 requst를 보내고 응답이 없으신거라면,
그 클라우드 서버에서 제공하는 api document를 보시고 클라우드 서버에 맞는 method 포맷을 구성하셔야 하구요
destination을 클라우드 서버가 아닌, hercules 같은 terminal 프로그램에서 TCP server를 생성하셔서 구성한 포맷대로 전송이 되는지 확인해보세요
hercules에 보낼때 패킷을 캡쳐해보셔도 좋구요

만약 pachube.com(xyvely,com)에서 테스트 하실거면
https://personal.xively.com/dev/docs/api/communicating/http/http_headers/
에서 어떤 http header가 필요한지 확인해보시구요.

https://github.com/Wiznet/Arduino_WizFi250/blob/master/Software/WizFi250/Examples/WizFi250XivelyClient/WizFi250XivelyClient.ino
저희 github에서 제공하는 Xively example도 보시면 좋을 것 같습니다.(senddata에서 http header 포맷이요)

만약 다른 문제라면, 위에 말씀드린것 같이 더 정확한 상황을 알려주시길 바랍니다.

답변 감사합니다.

저희측에서 보내고자하는 HOST와 DATA입니다. (아래 data method 포맷 구성을 어찌 해야 하는지요…?)

웹 서버 <------ WizFi210(Client / Data Send)

PUT HTTP/1.1
Host: erp.imetis.co.kr/request.php
pcode : 1
id : device
data0 : D1
data1 : 1
data2 : 2
Connetion: keep-alive

DATA 아래와 같은 구성으로 web 서버로 send 할 경우 web서버에서는 GET방식으로 Data를 받습니다.
erp.imetis.co.kr/request.php?pcode=1&id=device&data0=D1&data1=1&data2=2

답변 부탁 드립니다.

안녕하세요

꼭 PUT을 사용해야 하는 이유가 있나요??
아래 적으신대로 GET으로 충분히 가능해보입니다.

그리고 먼저 요청하셨던 HTTPCONF 커맨드로도 http header를 생성할 수 있지만, 메모리가 따로 할당되어야 하고
약간의 응용으로 요청하신 수준의 동작은 구현할 수 있습니다.

이 예제는 금일 중으로 테스트 후 방법에 대해서 링크 남겨드리겠습니다.
링크는 제 블로그에 업로드 후 링크 남겨드려고 합니다. host는 가릴 예정이지만 혹시나 공개되는걸 원치 않으시면 확인 후 알려주시면 삭제하겠습니다.

https://wizdaniel.wordpress.com/2015/05/21/wizfi210_get/
에서 확인해주시길 바랍니다.

답변감사합니다.

data를 send할 경우
[color=#FF0000]S0[DATA…]E [/color]>> HEX (0x1B 0x53 0x30 Data… 0x1B 0x45) 인가요??
’\r’, ‘\n’을 마지막 E [’\r’ ‘\n’]부분에 추가 하면 에러라고 응답이 옵니다.

또한 블로그에서 보면 보낸 데이터는 시리얼 창에 표시되지 않는다. 라고 쓰셨는데

제가 보낸 값이 return되지 않는다는 것인가요??
저는 제가 보낸 data가 return되는 현상이 있습니다.

안녕하세요…

알고계신 것 처럼 <0>는 hex값으로 입력해주시면 됩니다.
추가로 \r\n을 입력하지 않으셔야 합니다.

  1. 보낸 데이터라 return 되는게 정상입니다.
    그런데 저는 블로그에 '보낸 데이터가 시리얼 창에 표시되지 않는다’라고 적었습니다.
    그 이유는, 데이터를 보낼 때 키보드로 입력한게 아니라 hercules 툴에서 제공하는 ‘send file’ 이라는 기능을 사용했기 때문입니다.

http method 형식을 미리 text 파일로 저장한 후에 send file을 하게 되면 text 파일의 내용을 전송할 수 있습니다.
이 기능으로 바로 serial로 보내버리기 때문에 시리얼 창에 표시되지 않은 것입니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.