IT

AT COMMAND로 HTTP 연결시 문제

변화의 물결1 2024. 3. 6. 00:03

안녕하세요.  

 

 CAT.M1 IoT 모뎀을 이용해서 제품 개발하는 중에 AT COMMAND 명령을 통해서 HTTP 연결을 시도해 보았습니다.

 TCP로 연결은 되었으나 HTTP 구조로 데이터를 전달하려니 문제가 발생했습니다.

 


첫 번째는 종단을 알려주는 문자를 모르는 듯했습니다. 
 \r\n\r\n\r\n  끝에 6바이트를 붙임으로써 문장의 끝을 알려주는 것이 해결되었습니다.

 


두 번째로 HTTP1.1 마지막에 호스트가 없다고 리턴 값을 받았습니다.
HTTP1.1과 Host: 주소 사이에도 구분해 줄 수 있는 \r\n 2바이트를 추가해 주어야
정상적으로 http response 값을 받을 수 있었습니다.

 


그러나 모뎀 버퍼가 1500 까지다 보니, 한 번에 웹페이지 전체를 받지 못했습니다.

통째로 받으려면 조금 다른 방법으로 사용해야 할 것 같고 IoT 모델로 할 경우 1500 바이트 정도면 충분히 

상태정보를 받을 수 있을 것이라 생각됩니다.

 


예) 지역에 날씨를 가져오기

(모뎀에 맞게 at command들을 python 명령어로 변환해 주었습니다.)

   

at_modem.at_qiopen(1,0,"TCP","www.kma.go.kr",80);  utime.sleep_ms(100)
send_msg = "GET /wid/queryDFSRSS.jsp?zone=4113552000 HTTP/1.1\r\nHost: www.kma.go.kr\r\n\r\n\r\n"

at_modem.write(send_msg)

 

 

 


<참고 사이트 (참고로 아래의 모뎀을 사용하지는 않았다.)>
https://www.esp8266.com/viewtopic.php?f=12&t=13556

반응형