Lolin D32 & Node 에서 접속 에러 -1 wifi 반환 트러블 슛팅

문제?

lolin d 32 보드로 wifi 구현 (서버는 노드) 하는 중

int httpResponseCode = http.POST(test);

post 후 httpResponseCode에 -1 뜨는 경우의 문제.
(한글 레퍼런스가 없길래, 또 나중에 내가 헤맬까봐 포스팅 올린다아아, 하루를 디버깅하다 보냈다아아)

아마 검색으로 여길 왔다면 이 문제를 겪었을듯.
전체 소스 레퍼런스는 아래에 있다.
http://www.hardcopyworld.com/ngine/aduino/index.php/archives/3317

해결책

http.begin 후 api 송신할 url 주소를 넣는데 저기에 localhost를 사용하면 안된다. 과거 spring이나 react 할때도 서버 걍 api localhost :4000, :3000등으로 잘 사용했었는데 이건 이상하게 안된다. localhost가 아니라 자신의 아이피를 적어줘야한다. 아마 보드가 wifi 물려있으니, 노드도 같은 wifi쓰니 저렇게 192로 시작하는 내부 아이피 사용해도 연결된다.

어떻게 해결했나?

일단 -1 수신해서 통신이 안되는걸 알았고, Postman(api 테스트 프로그램)으로 post url에 데이터를 던져봤는데 못받는 것이었다. (아 이건 mkdirSync() 문제였다 .. mkdir -> mkdirSync)
다시, wifi 접속은 되는데 -1를 계속 수신하길래, 왜 다 맞게 했는데 안되지?? 하고 계속 째려보면서 디버깅하다가 다른 예제를 찾아봤다. 일단 내 ip는 해명못한 문제가 있으니 다른 http://외부 api 테스트 가능 사이트 에다가 post를 던지고 테스트 해보니 잘 되는 것이었다. 그때 정신이 들면서 localhost라서 안되는감??? 이란 생각이 들어
http.begin(localhost 라고 구글링 검색어로 검색을 하니

https://arduino.stackexchange.com/에서... 해결링크
위에서
_Your URL has localhost as the host name. That cannot work. localhost means “self”, the computer initiating the request. In this case it would mean the ESP8266, if it even understood it. You need to use the name or the IP address of the computer running your spring boot app, not localhost.
즉 IP로 하라는 답변이 있었다.

영어문서가 너무 많아졌다 영어로 읽을 순 있는데 너무 많이 보니까 한글보다 확실히 피로도가 쌓인다 그래서 자꾸 구글 한글 번역을 사용하는데 음.. 그래서 어설프게 이해하게 되는 것 같다.
영어 원서를 꾸준히 읽어야 겠다. 이두희님이 프로그래머 고수에게 필요한건 창의력, 논리력이 아니라 90% 인내심이라는 말이 백배 공감간다.

좋은 웹페이지 즐겨찾기