본문 바로가기

Hardware/Arduino and Friends

아두이노에서 인터넷을 연결하기 위한 ESP8266 준비하기

아두이노는 사용해보면 볼 수록 참 간편하게 잘 만들었습니다. 뭔가 정말 간단한 것 하나 테스트할때, 아두이노 보드와 인터넷만 있으면 편하게 IDE를 다운받아 - 그것도 무료로 - 간단하게 테스트해 볼 수 있으니 말이죠. 그러다가 ESP8266아라는 wifi 모듈을 알게 되었습니다. 그 착한 가격까지~^^. 그래서 또 한 번 테스트를 해보---- 해볼려고 했는데 문제가 하나 생겼습니다. 생각보다는 쉽게 접근할 수 없더군요. 그래서 역시 언제나 그렇듯 저를 위해 그 과정을 기록에 남깁니다.^^.

ESP8266 펌웨어 업그레이드

먼저 8266이라는 모듈을 목표로하고 나서 여기저기 확인하고 공부해보니... 목적에 따라 몇몇 종류의 F/W가 배포되고 있는 듯 합니다. 그 중에서 아두이노에서 접근하기 위해 검색해 본 결과 제가 종종 도움을 받는 코코아팹(kocoafab)에 펌웨어 업그레이드에 관한 좋은 글이 있어서 참조해서 따라해봅니다. 코코아팹의 원본글[바로가기]을 직접 읽어보시길 권합니다.

먼저 FTDI칩이 내장된 usb2serial 모듈과 ESP8266 모듈을 위 그림처럼 연결해서 PC에 연결합니다.

이 때 주의해야 할 것은 FTDI의 Vcc 출력이 3.3V여야 한다는 거죠. 저는 주변에서 뭔가 이런게 있으면 좋겠다 싶으면 서랍에서 해당 부품이 튀어나오는 귀인이 있어서 2011년에 만든 로보티즈의 USB 모듈을 얻을 수 있었습니다.^^ 이때 플래시를 다운로드하는 모드는 GPIO0, GPIO15(ESP-01은 의미없음)은 GND, CH_PD는 Vcc에 연결하면 됩니다.

바로 저 아이입니다.^^ 뭐 아무튼 잘 얻어서

저렇게 못 생겼지만 연결했습니다. 사실 제가 연구용으로 사용하는 메인 PC는 맥인데, 펌웨어 업그레이드를 맥에서 수행하는 방법이 계속 실패해서 그냥 휴대용으로 사용하는 윈도우 개인 PC에서 가뿐하게 진행했습니다. 아까 참조로 했다는 코코아팹의 글에서 안내하는 펌웨어 다운로더[바로가기]와 펌웨어[바로가기]를 다운받아서 실행하면 됩니다.

그러면 저렇게 진행됩니다. 생각보다 느리게 진행되어서 살짝 기다렸습니다.

갑자기 Failed to leave Flash mode라는 메세지가 나타났는데, 99%에서 Leaving이라는 말이 나오면 문제가 없다는 글을 믿고(^^) 진행했습니다.^^

ESP8266 공유기에 연결해보기

이제 업그레이드된 펌웨어를 가지고 공유기에 연결을 해보겠습니다.... 여기서는 대네브[바로가기]라는 고수님의 블로그에서 얻은 지식으로 진행을 합니다. 이제 공유기와 연결을 하기 위해서는 PC에서 ESP8266에 연결할 필요가 있는데, 여기서는 아두이노 보드와 RX-RX, TX-TX로 연결하고 아두이노 IDE의 시리얼 모니터로 진행합니다. 이게 제일 편해 보이더라구요^^

아두이노와 ESP8266보드는 위 그림처럼 연결했습니다.

뭐 큰 어려움은 없었지요^^. 펌웨어를 바꾸는 플래쉬모드와 달리 통신을 위한 모드에서는 GPIO0는 VCC에, GPIO15(ESP-01은 의미 없음)은 GND에, CH_PD는 Vcc에 연결합니다.

그렇게 연결된 모습입니다. 뭐~ 지저분하지만^^ 이제... 

아두이노를 그냥 열고~~~ 시리얼 모니터를 연결합니다.

AT

그리고, AT라고 명령을 날려서 OK라고 응답이 오면 일단 성공입니다.^^

AT+GMR

AT+GMR이라고 명령을 주면 현재 펌웨어 버전을 알 수 있습니다.

AT+CWMODE=[num], AT+CWMODE?

AT+CWMODE라고 입력하고 =기호 뒤에 숫자를 1,2,3을 넣을 수 있는데, 1은 client, 2는 Host, 3은 Dual입니다. 그리고 AT+CWMODE?로 하면 현재 모드를 알려줍니다.

AT+CWLAP

AT+CWLAP이라는 명령을 주면 현재 연결 가능한 목록이 나타납니다.

AT+CWJAP="SSID of AP", "password", AT+CWJAP?

AT+CWJAP을 입력하고 SSIDpassword를 입력하면 공유기에 찰싹(^^) 달라 붙습니다. 그리고 AT+CWJAP?를 입력하면 현재 연결된 wifi를 보여줍니다.

AT+CIFSR

AT+CIFSR을 이용하면 IP를 알 수 있습니다.

ping 테스트

이제~~ 정상인지 확인할 마지막 방법을 사용해야죠... PING 테스트~~

방금 알아낸 IP로 PC의 터미널을 열어서 짠~~ PING을 날려주면 됩니다. 어찌나 기쁜지...

아두이노 모듈치고는 꽤 긴 준비 시간이었습니다. 이런 실험을 준비할 수 있게 해준 제가 본문에 참조했다고 소개한 분들께 감사드리며, 다음은 이제 ESP8266을 이용해서 뭔가를 해볼려고 합니다.^^

반응형