본문 바로가기
Arduino(아두이노) 활용 강좌

ESP-12E ESP8266 WIFI 모듈 펌웨어 업데이트 후 시리얼 통신으로 AT Command 통신 해 보기

by 오마이엔지니어 2017. 11. 28.
반응형


ESP8266 Wifi 모듈 (ESP-12E)를 CP2102 Micro USB to TTL 모듈을 사용해서 펌웨어 업데이트를 해보고
이어서 아두이노 IDE의 시리얼 모니터로 AT Command 통신을 해보는 프로젝트 입니다


ESP8266 은 32Bit ARM-core 기반의 Wifi 모듈로 ADC, I2C, UART 등의 기능을 할수있는 MCU가 탑재되어
아두이노 (Arduino) 와 같은 마이크로 컨트롤 보드와 연결해 사용하거나 독립적으로 프로그래밍이 가능합니다
ATcommand를 통해 아두이노 시리얼 모니터에서 명령어를 전송하여 Wifi통신을 제어할 수 있습니다
그밖의 다양한 무선 Wifi 프로젝트를 테스트 해 보는데 유용합니다




ESP8266 모듈은 프로세서 GPIO 핀의 갯수 또는 SMD & DIP 타입 등의 차이에 따라 위 이미지 처럼 여러가지 종류가 있습니다
사양을 확인해서 각자의 프로젝트와 개발환경에 맞춰서 제품을 선택해서 사용하면 됩니다
본 프로젝트에서는 NodeMCU 나 Wemos 보드등에 많이 탑재되는 SMD타입의 ESP-12E 모듈 을 사용하였습니다




<ESP8266 (ESP-12E) 이미지>

ESP-12E 는 위 이미지 처럼 SMD 타입 이기 때문에 배선을 쉽게 하기위해 DIP타입으로 변환해 주는
ESP8266 변환보드를 사용하였습니다


ESP8266 모듈은 기본 통신 속도가 115000bps 이므로

아두이노와 연결해 시리얼 통신을 하기 위해서 통신 속도를 9600bps 로 설정해 주어야 합니다
(NodeMCU 보드나 Wemos 보드 처럼 115200bps 통신속도로 사용해도 무방합니다)


이를 위해 펌웨어 업데이트 후 아두이노와 연결하여 테스트를 하도록 합니다
펌웨어 업데이트를 하기 위해서는 USB to UART 또는 USB to TTL 모듈이 필요합니다

아두이노와 직접 연결하여 업데이트 하는 방법도 있지만 ESP8266 모듈은 기본적으로 3.3V 로 동작하지만
아두이노의 TX, RX 출력은 고정 5V 출력 이기때문에 잘못하면 ESP8266 모듈은 물론 아두이노 보드에 손상이 갈수 있는

위험이 따르므로 USB to TTL 모듈로 안전하게 펌웨어 업데이트를 하도록 하는게 좋겠습니다

본 프로젝트에서는 CP2102 Micro USB to TTL 모듈 을 사용하였습니다


ESP8266 펌웨어 업데이트 프로그램

ESP8266_flasher_V00170901_00_Cloud Update Ready.zip



ESP8266 펌웨어 업데이트 파일

ESP8266_AT_V00180902_02_baudrate watchdog added.zip





프로젝트 동영상-ESP-12E 펌웨어 업데이트 동영상


펌웨어 업데이트를 시작하면 Micro USB to TTL 모듈의 동작 LED와 ESP-12E 모듈의 파란불이 깜박입니다

펌웨어 업데이트가 정상적으로 끝나면 ESP-12E 모듈의 파란불이 꺼집니다
<펌웨어 업데이트연결이 끊기거나 업로드가 99%에 도달하지 못하고 실패한다면

USB허브를 사용하지 말고 PC의 USB포트에 바로 연결해서 테스트하고 COM포트를 점검해 보고 재시도를 해봅시다>


사용된 부품

ESP8266 (ESP-12E) 모듈
CP2102 Micro USB to TTL
ESP8266 변환보드

미니 브래드 보드

점퍼케이블



프로젝트 동영상-펌웨어 업데이트 후 WIFI 검색결과 확인해 보고 연결해 보기


펌웨어 업데이트가 끝나면 GND와 연결된 GPIO 0 핀을 배선 제거해 줍니다

GPIO 0핀은 펌웨어 업로드 할때(플래시 모드)만 GND와 연결합니다


펌웨어 업데이트가 끝나면 GND와 연결된 GPIO 0 핀을 배선 제거해 주고 일정시간 기다리면 무선 네트워크에 ESP_XXXXXX

라는 이름으로 WIFI 가 검색이 됩니다 (연결을 시도해서 이상없이 연결되는지 확인해 봅시다)



만일 WIFI 검색이 되지 않는다면 Micro USB to TTL 모듈에 배선된 3.3V 전원을 제거했다가 다시 연결해 봅시다

그래도 검색이 되지 않는다면 Micro USB to TTL 모듈에 배선된 3.3V 전원을 5V에 연결한 후 다시 확인해 보면 검색이 될수 있습니다
이는 프로젝트에 사용된 ESP-12E 모듈이 SoftAP 모드로 설정되어 있기 때문입니다
(모드와 관련한 자세한 내용은 하단 AT Command 통신하기 에서 설명하도록 하겠습니다)

 


ESP-12E 는 ESP-01 보다 GPIO 핀도 많고 여러가지 확장성이 뛰어나긴 하지만 펌웨어 업데이트 과정도 힘들고
번거로운점이 한두가지가 아닌것 같습니다

초보자들에겐 통신 및 플래시 회로와 USB포트와 리셋이 구성된 NodeMCU 모듈이나 Wemos 보드를 사용하는것을 권장 합니다

(계속되는 펌웨어 업로드 실패에도 좌절하지 않을 끈기와 열정 그리고 테스트 하기에 충분한 시간이 있는

엔지니어 및 관련 전공자 분들만 사용하시길 권장합니다^^)



ESP-12E 모듈을 사용해서 아두이노 IDE 시리얼 모니터로 AT Command 통신해 보기
펌웨어 업로드가 정상적으로 끝났다면 아두이노 IDE를 실행시키고 아래 이미지 처럼 구성과 배선한 후

ESP-12E 모듈로 AT Command 명령을 해서 통신을 할수가 있습니다


사용된 부품

ESP8266 (ESP-12E) 모듈
CP2102 Micro USB to TTL
ESP8266 변환보드

미니 브래드 보드

점퍼케이블
Nero FTDI Basic Breakout (Socket Type)



ESP-12E 모드는 크게 3가지 모드가 있습니다

1번 Station (저전력 모드, Wifi 검색이 안됨, AT통신은 가능함)
2번 SoftAP
3번 SoftAP+station


프로젝트에 사용된 ESP-12E 모듈은 2번 SoftAP 모드로 설정되어 있기 때문에 CP2102 TTL 을 사용해서 5V로 전원을 공급해 줍니다
(1번 Station 모드의 경우는 3.3V 로 전원을 인가하는 것이 맞습니다)
하지만 TX, RX 는 반드시 3.3V 전압으로 통신해야 하기 때문에 FTDI 모듈을 사용해서 3.3V로 TX, RX 를 연결해 줍니다
그리고 FTDI 모듈의 GND 는 -5V로 접지 시킵니다



배선방법
ESP-12E

VCC: +5V 에 연결
GND: GND 에 연결
CH_PC: +5V 에 연결

GPIO 15: -5V 에 연결

TX: FTDI 모듈의 RX에 연결
RX: FTDI 모듈의 TX에 연결

FTDI 모듈은 점퍼설정을 3.3V로 해서 3.3V로 통신하고 GND는 GND로 접지시킵니다


ESP-12E 모드는 크게 3가지 모드가 있습니다

1번 Station (저전력 모드, WIFI 검색이 안됨, AT통신은 가능함)
2번 SoftAP
3번 SoftAP+station


모드 확인하는 방법은 아래와 같이 시리얼 통신을 해서 AT Command 를 입력해 주면 됩니다

아두이노 IDE의 시리얼 모니터에
AT+CWMODE? 입력하면

+CWMODE:1~3까지 숫자가 표시됨





모드 변경하는 방법

AT+CWMOD=변경하고자 하는 모드 번호 입력


ESP-12E는 전원공급을 3.3V 로 하는것이 맞지만 2번과 3번 (SoftAP 또는 SoftAP+station) 모드의 경우
전원 전류 부족으로 인해 모듈이 정상동작을 하지 않을 수 있습니다

때문에 CP2102 TTL 로 5V 전원공급을 해서 사용하였습니다

1번 Station 모드 같은 경우에는 저전력 모드 이기 때문에 아두이노의 3.3V 전원 공급으로도
사용이 가능합니다 (다만 아두이노의 종류에 따라 전류가 부족하면 역시 정상동작 하지 않을 수 있습니다)

위와 같이 배선하고 WIFI 가 정상적으로 검색 되는지 확인한 후 (1번 Station 모드는 WIFI 검색이 안됨, AT통신은 가능함)

아두이노 IDE를 실행 후 FTDI 모듈이 연결된 COM 포트를 확인후 포트를 지정해 주고, 보드는 아두이노 우노로 설정
시리얼 모니터를 켜고 AT 커맨드를 입력해 보면서 통신해 봅시다

프로젝트 동영상-펌웨어 업데이트 후 아두이노 IDE 의 시리얼 모니터로 AT 통신해 보기


ESP8266_flasher_V00170901_00_Cloud Update Ready.zip
8.63MB
ESP8266_AT_V00180902_02_baudrate watchdog added.zip
0.13MB
반응형

댓글