아두이노에서 ESP8266(ESP-01) 초기 사용하기(펌웨어)
아두이노에서 ESP8266(ESP-01) 초기 사용하기(펌웨어)
무선이더넷(ESP8266)칩셋의 저가 이더넷 모듈로서 가성비 대비 높은 수준?을 자랑하는 ESP-01을 소개합니다.
ESP-01 모듈 |
|
이 모듈은 초기상태의 펌웨어는 기본 전송 속도가 115,200bps로 설정되어 있습니다.
아두이노 우노처럼 시리얼 포트가 적거나 없는 보드에서는 속도 차이가 발생합니다.
소프트웨어 시리얼(Software Serial)로 시리얼 포트를 구성하면, 최대 57,600bps를 지원합니다.
시리얼 포트의 속도 차이를 변경하기 위해서 초기 구입시 펌웨어 업데이트를 통해 이러한 문제를 해결할 수 있습니다.
물론 아두이노 메가(Mega 2560)나 아두이노 듀에(Due)을 가지고 있는 분들은 초기 속도 등의 문제가 해결되기 때문에 해당이 없습니다.
1. 아두이노 메가 2560를 활용한 펌웨어 업데이트 방법(회로 구성)
아두이노 메가2560 보드를 활용하여 펌웨어 업데이트를 하는 방법을 소개합니다.
ESP-01은 3.3V를 지원합니다. 펌웨어 업데이트를 할 때는 이처럼 구성을 해줘야 합니다.
도면 파일: |
2. 아두이노 우노(Arduino Uno)를 활용한 펌웨어 업데이트 방법(회로구성)
ESP-01은 3.3V를 지원합니다. 펌웨어 업데이트를 할 때는 이처럼 구성을 해줘야 합니다.
도면 파일: |
3. 공통 - 펌웨어 프로그램 실행과 업데이트
(1) 아두이노 프로그램에서 소스코드를 이처럼 작성하고 업로드합니다.
|
아두이노 화면 |
(2) 아두이노와 PC 간에 연결된 COM포트를 확인합니다.
(3) 아래에 첨부되는 펌웨어 실행 파일 및 펌웨어를 다운받습니다.
첨부파일: ESP8266_flasher_V00170901_00_Cloud Update Ready.zip
(4) 첨부된 플래시 업데이트를 실행합니다.
esp8266_flasher 파일 실행 |
(5) 앞서 COM포트를 입력한 후 Download 버튼을 누릅니다.
플래시 업데이트 진행 |
(6) 플래시(Flash) 업데이트가 진행이 정상적으로 되었다면, 아래처럼 메시지가 뜹니다.
플래시 업데이트가 정상적으로 수행되었을 때 |
(오류)
* failed to connect 오류가 뜰 경우
-> 아두이노와 ESP8266이 제대로 연결되었는지 확인합니다.
연결이 잘 되었더라도 재 연결해보고, 10초 정도 기다린 후 다시 시도해봅니다.
* invalid head of packet error 오류가 뜰 경우
-> 아두이노 보드에 이미 다른 스케치가 올라가 있는 경우 발생합니다.
Blink 예제를 불러와 보드에 업로드 시킨 후 다시 시도해봅니다.
4. 아두이노 메가 2560 - 태스트 해보기
아두이노 메가와 ESP-01 연결하기 도면: |
이처럼 회로를 아두이노와 연결을 합니다. 차이점은 GPIO0에 케이블이 제거가 되었다는 것입니다.
어떤 자료를 살펴보면, 회로를 저항없이 직접 연결한 경우가 있는데, ESP-01은 3.3V 출력의 전원에서 동작합니다.
회로에 전력 과부하로 부품에 고장을 일으킬 수 있습니다.
위의 그림처럼 회로를 결선한 후에 소스코드를 아래처럼 작성합니다.
void setup() { |
아두이노 소스코드 |
아래의 그림처럼 AT 명령을 입력했을 때, OK가 뜬다면 정상입니다.
AT 명령어)
ESP8266 모듈에서 사용하는 통신 명령어입니다.
메가 보드, 우노 보드 등을 통해서 명령어를 보내면 ESP8266 모듈이 특정 응답을 하며 통신합니다.
명령 | AT |
응답 | OK |
설명 | 모듈이 정상 동작하고 있다는 TEST 명령어 OK가 돌아오면 정상, 아무 대답이 없을 때는 비정상 상태입니다. |
명령 | 응답 | 설명 |
AT+GMR | 펌웨어 버전 | 모듈 버전 확인 명령어 |
AT+CWMODE | WIFI 모드 확인 또는 설정 명령 | AT+CWMODE?: 현재 ESP8266의 모드 확인 명령 - AT+CWMODE?: 현재의 ESP8266 모드 확인 명령 AT+CWMODE=1 (Station Mode, Wifi 디바이스 기능으로 설정) AT+CWMODE=2 (AP Mode, Access Point 기능으로 설정) AT+CWMODE=3 (Station Mode + AP, 디바이스 + AP 설정) |
AT+CWLAP | AP 리스트 출력 명령 | AP 리스트 출력 명령 |
AT+CWJAP | AT 접속 명령 - AT+CWJAP?: 현재 접속되어 있는 AP정보 출력 명령 - AT+CWJAP="ssid", "password" -> 보안이 안되어 있는 AP접속: AT+CWJAP="ssid", "" | |
AT+CWQAP | AP 접속해제 명령 |
5. ESP-01에 대한 문제점
해당 ESP-01을 사용할 때 문제점은 로드 시간이 있다는 것입니다.
아두이노 메가나 우노는 빨리 켜지는 방면 느리다는 것입니다.
또는 아두이노 메가나 우노를 켰을 때, Wifi가 바로 작동하냐는 것입니다.
빨리 작동하지 않습니다.
그리고 동작이 잘 안 됩니다.
참고 자료
1. https://github.com/Stadslab/ESP8266_example
2. -) smile man 아두이노+ESP8266 WiFi Cactus Micro 보드, http://orasman.tistory.com/281
3. Serial WiFi 모듈 (ESP8266) 활용편 Hard Copy Arduino, http://www.hardcopyworld.com/ngine/aduino/index.php/archives/1257
4. [당일배송] 아두이노 WIFI ESP8266 모듈(ESP-01) / Arduino Module, http://eduino.kr/product/%EB%8B%B9%EC%9D%BC%EB%B0%B0%EC%86%A1-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-wifi-esp8266-%EB%AA%A8%EB%93%88esp-01-arduino-module/48/?page_4=6&page_6=2
5. ESP8266을 사용해 보기(1), https://kocoafab.cc/tutorial/view/592
6. Arduino Uno에 ESP8266 WiFi 모듈을 연결하여 사용하는 방법, http://webnautes.tistory.com/755
7. The ESP8266 Part 1 - Serial WIFI Module for Arduino, http://www.instructables.com/id/The-ESP8266-Part-1-Serial-WIFI-Module-for-Arduino/
8. Arduino-ESP8266WiFi.h at master · esp8266-Arduino · GitHub, https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/src/ESP8266WiFi.h