ESP8266 사용을 위한 펌웨어 업데이트하기

by 김민정 | 2017-01-12 18:35
esp8266 iot 무선 연결 사물인터넷 아두이노 아두이노 무선 펌웨어 업데이트

재료

  • 점프 와이어 7개
  • esp8266 1개
  • 아두이노 우노 1개
  • USB 케이블 1개

    ESP8266칩을 사용하기 위해서는 모듈 내부를 세팅해주어야 합니다. 기본적으로 ESP8266 안에는 CPU, 메로리, 입출력 핀을 내장하고 있어서 아두이노가 없어도 독립적으로 프로그래밍하여 작동이 가능합니다. 그러나 우리는 아두이노를 사용할 것이기 때문에 아두이노에 맞도록 설정해주어야 합니다.

 

    그래서 이번 포스팅에서는 ESP8266 칩을 사용하기 위한 펌웨어 업데이트를 해보도록 하겠습니다. 먼저 ESP8266의 각각의 핀이 어떤 것을 의미하는지 알려드릴게요.

                                                 ① 3.3V     ② RST            ③ CH_PD       ④ TX 

                                                 ⑤ RX        ⑥ GPIO 0      ⑦ GPIO 2        ⑧ GND


    각각 핀의 기능에 맞게 연결해주시면 됩니다. 여기서 보시면 알겠지만 ESP8266은 3.3V를 사용합니다. 그래서 아두이노에 연결해주실 때에도 3.3V에 연결해주셔야 합니다. 그렇지 않으면 아두이노와 모듈에 지나친 전압이 가해져서 고장나게 될 수도 있습니다. 연결하는 방법은 아래의 회로도를 통해서 다시 한 번 알려드리겠습니다.




여기에서도 마찬가지로 3.3V에 연결해주어야 합니다.


    연결을 다 마치셨으면 아래의 링크로 가서 펌웨어를 업데이트 할 수 있는 프로그램을 다운 받습니다.

- https://docs.google.com/file/d/0B3dUKfqzZnlwVGc1YnFyUjgxelE/edit

그런 후에 이제는 펌웨어를 아래의 링크로 가서 다운 받습니다.

- https://docs.google.com/file/d/0B3dUKfqzZnlwdUJUc2hkZDUyVjA/edit

마지막으로 ESP8266 개발 라이브러리를 아두이노 IDE Library 폴더에 복사해줍니다.

- https://github.com/Diaoul/arduino-ESP8266


첫 번째 링크를 통해서 받은 파일이 있는 위치에 두 번째 링크에서 받은 펌웨어 bin 파일을 넣어주세요. 그런 후에 esp8266_flasher.exe 파일을 실행시키면 다음과 같은 창이 뜨는 것을 확인할 수 있습니다.


여기서 주의하실 점은 파일이 있는 링크안에 한국말로 된 주소가 포함되면 안된다는 겁니다. 한국말로 포함된 주소가 있으면 위의 Bin 박스를 클릭해도 아무 것도 들어가지 않습니다. 그러므로 한국말로 된 링크가 없는 곳으로 디렉토리를 옮겨주신 후에 진행해주세요. 포트 넘버를 장치관리자에서 확인하신 뒤에 그 포트 넘버로 수정해주시고 Bin 박스를 눌러서 펌웨어를 가져옵니다.



그런 후에 다운로드 버튼을 눌러주시면 됩니다. 99%에서 leaving이라는 문자가 나왔다면 성공적으로 펌웨어를 업데이트한 것이므로 종료하셔도 됩니다.

그러나 fail to connect 라는 문자가 떴다면

    1. 전원을 연결한 선을 뺐다가 다시 꽂는다.

    2. TX와 RX 선이 제대로 연결되었는지 확인한다.

    3. ESP8266에 빨간 불이 들어왔는지 확인한다.

    4. 아두이노 USB 포트를 다시 뺐다가 연결한다.

    5. GPIO 0에 GND가 제대로 연결되었는지 확인한다.

    6. 전원을 5.0V로 바꾸어 껴준다.

    : ESP8266 모듈은 순간적으로 300mA 이상 전류를 잡아먹기 때문에 아두이노의 3.3V 핀을 사용하면 안될 경우가     있습니다. 다운받는 도중에 계속 Failed to write to target Flash 에러 메시지가 뜬다면 한번 시도해보시는게 좋을      것 같습니다.

(참고) http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=lecture_tip&wr_id=82

위의 과정을 반복적으로 해주시면 연결이 됩니다.




만약 이 오류말고 invalid head of packet 이라는 오류가 발생한다면 아두이노 초기화가 필요한 상태임을 의미합니다. 그렇기 때문에 저의 경우에는 아래와 같은 코드를 아두이노에 업로드함으로써 초기화해주면서 문제가 해결되었습니다.


                        


다음과 같은 화면이 뜬다면 펌웨어 업데이트가 완료된 것입니다.



만약 Leaving ... 다음에 오류 메시지가 뜨더라도 문제는 없으니 신경쓰지 않으셔도 됩니다.


이제 펌웨어 업데이트가 완료되었으니 제대로 펌웨어가 업데이트 되었는지 기본적인 통신 체크를 통해서 확인해봅시다. 먼저 아두이노 전원을 제거하신 후에, 펌웨어 업데이트를 위해서 연결해놓았던 GPIO 0 핀을 빼줍니다. 이 핀이 연결되어있는 상태에서는 통신이 되지 않습니다. 그런 후에 다시 아두이노를 PC와 연결해줍니다.




그런 후에 아두이노 IDE를 통해서 시리얼 모니터를 켜시고 라인 엔딩을 Both NL & CR로 설정해줍니다. 업데이트를 9600 보드레이트로 했으니 보드레이트도 9600으로 둡니다. 시리얼 모니터에 AT를 입력했을 때 OK라는 문자가 전송된다면 정상적으로 동작함을 의미함으로 제대로 업데이트 되었음을 확인할 수 있습니다. 만약에 ERROR 메시지가 전송되었다면 다시 한 번 AT를 입력해보세요. 그러면 OK를 전송해주는 것을 확인할 수 있습니다.


 이제까지 ESP8266을 사용하기 위한 펌웨어를 업데이트를 해보았으니, 다음에는 ESP8266을 와이파이 공유기에 연결하는 방법에 대해서 알아보도록 하겠습니다.

댓글 13

사물 인터넷(IoT)

ESP8266 사용을 위한 펌웨어 업데이트하기

by 김민정

MADE BY

김민정

사물인터넷, 아두이노