Arduino Uno 로 ESP8266 Wifi 모듈을 사용해 시리얼 모니터로 AT 커맨드 통신을 해보는 프로젝트 입니다
ESP8266 은 32Bit ARM-core 기반의 Wifi 모듈로 ADC, I2C, UART 등의 기능을 할수있는 MCU가 탑재되어
아두이노 (Arduino) 와 같은 마이크로 컨트롤 보드와 연결해 사용하거나 독립적으로 프로그래밍이 가능합니다
ATcommand를 통해 아두이노 시리얼 모니터에서 명령어를 전송하여 Wifi통신을 제어할 수 있습니다
그밖의 다양한 무선 Wifi 프로젝트를 테스트 해 보는데 유용합니다
ESP8266 모듈은 프로세서 GPIO 핀의 갯수 또는 SMD & DIP 타입 등의 차이에 따라 위 이미지 처럼 여러가지 종류가 있습니다
사양을 확인해서 각자의 프로젝트와 개발환경에 맞춰서 제품을 선택해서 사용하면 됩니다
본 프로젝트에서는 가장 기본적인 ESP-01 모듈을 사용하였습니다
<ESP8266 (ESP-01) 이미지>
테스트를 진행하기 전에 먼저 ESP8266 모듈은 기본 통신 속도가 115000bps 이므로
아두이노와 연결해 시리얼 통신을 하기 위해서 통신 속도를 9600bps 로 설정해 주어야 합니다
<사실 꼭 통신 속도를 9600bps 로 사용해야만 하는것은 아닙니다 아두이노 IDE 의 시리얼 모니터에서 통신속도를 115200 으로
설정하고 통신을 해도 상관없습니다, 다만 대부분의 아두이노 레퍼런스들이 9600을 기본으로 했기 때문에
이를 토대로 테스트 하는것일 뿐입니다 하지만 ESP8266 ESP-12E 가 탑재된 Wemos 보드 라던가 Nodemcu Lua WIFI 모듈은
라이브러리의 레퍼런스가 115200 통신속도를 기반으로 하고 있습니다 펌웨어 업데이트 없이 115200으로 통신해도 상관없습니다>
본 테스트에서는 펌웨어 업데이트 후 아두이노와 연결하여 테스트를 하도록 합니다
펌웨어 업데이트를 하기 위해서는 USB to UART 또는 USB to TTL 모듈이 필요합니다
아두이노와 직접 연결하여 업데이트 하는 방법도 있지만 ESP8266 모듈은 기본적으로 3.3V 로 동작하지만
아두이노의 TX, RX 출력은 고정 5V 출력 이기때문에 잘못하면 ESP8266 모듈은 물론 아두이노 보드에 손상이 갈수 있는
위험이 따르므로 USB to TTL 모듈로 안전하게 펌웨어 업데이트를 하도록 하는게 좋겠습니다
본 프로젝트에서는 USB to TTL 모듈 을 사용하였습니다
ESP8266 펌웨어 업데이트 프로그램
ESP8266_flasher_V00170901_00_Cloud Update Ready.zip
ESP8266 펌웨어 업데이트 파일
ESP8266_AT_V00180902_02_baudrate watchdog added.zip
펌웨어 업데이트 동영상
펌웨어 업데이트를 시작하면 모듈에 파란불이 깜박입니다 펌웨어 업데이트가 정상적으로 끝나면 파란불이 꺼집니다
펌웨어 업데이트가 끝났으면 아래와 같은 방법으로 AT커맨드 테스트를 해봅니다
<AT커맨드 테스트 하기>
기본적으로 펌웨어 업데이트가 되어 있어야 합니다
1.아두이노 우노에 일단 Arduino IDE를 실행시킨후 파일->예제->Basic->Blink 스케치를 업로드 해 줍니다
이때 ESP8266 모듈과 아두이노 우노는 연결하지 않고 업로드 합니다
업로드 중 에러가 날수 있습니다
2.Blink 스케치 업로드가 끝나면 하단 구성 배선도를 참조해서 배선합니다
펌웨어가 정상적으로 업로드 된 상태라면 배선이 완료되면 무선 WIFI 에 ESPXXX 식의 이름이 뜹니다
WIFI를 선택해서 연결시켜 줍니다
3.Arduino IDE 실행후 시리얼 모니터를 열고 하단 이미지와 같이 Both NL & CR 그리고 9600 보드레이트로 설정합니다
AT 커맨드를 보냈을 때 OK 메시지가 나오면 ESP8266 Wifi 모듈의 펌웨어가 제대로 업데이트 된것입니다
AT 커맨드가 잘 된다면 펌웨어의 버전을 확인하는 AT+GMR 명령을 입력하면 이미지와 같이
펌웨어 버전정보를 ESP8266 에서 보내주게 됩니다
AT커맨드 정리 사이트
http://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/#AT
사용된 부품
Arduino Uno R3 (Italy)
미니 브래드 보드
점퍼케이블
사용된 키트
구성 배선도
사용된 예제소스
(Blink) Arduino IDE를 실행시킨후 파일->예제->Basic->Blink 스케치를
업로드
주의사항
Blink 스케치 업로드시 ESP8266 모듈과 아두이노 우노는 연결하지 않고 업로드 합니다
업로드 중 에러가 날수 있습니다
Arduino IDE 실행후 시리얼 모니터를 열고 Both NL & CR 그리고 9600 보드레이트로 설정합니다
프로젝트 동영상
펌웨어 업로드 없이 AT커맨드 만으로도 통신 속도를 9600bps 으로 변경할 수 있습니다
ESP-01 모듈 경우 생산업체에 따라서 출고될 때 마다 안에 들어있는 펌웨어가 다른 경우를 확인할 수 있습니다
모듈에 AI-Cloud 마킹이 안되어 있는 ESP-01 제품 같은 경우 안에 Farylink 펌웨어가 업로드 되어 출고 되고 있습니다
배선은 위의 구성배선도와 동일하게 배선하고 시리얼 모니터 에서
AT+GMR를 쳐보면 펌웨어를 확인할 수 있습니다
Farylink 는 기본 통신속도가 115200bps 로 잡혀 있는데 9600bps 으로 바꾸고 싶다면 위 이미지 처럼
AT+UART_DEF=9600,8,1,0,0
을 입력해 주면 통신 속도가 9600 으로 변경 됩니다 (OK 가 나오면 성공 ERROR 가 나오면 실패 입니다)
위 이미지 처럼
AT+UART_DEF=9600,8,1,0,0 입력해 주고 변경을 완료한 것을 확인할 수 있습니다
하지만 펌웨어에 따라서 위 명령어로 변경을 할 수 없을수도 있습니다
이 경우 AT+UART=9600,1,0,0 을 입력해 보거나 펌웨어 정보를 확인해서 변경을 시도해야 합니다
프로젝트 동영상-ESP-01 모듈을 사용해서 AT커맨드로 통신속도 조정해 보기
'Arduino(아두이노) 키트 강좌' 카테고리의 다른 글
Step.29-Arduino Uno 와 XBee USB Adapter 2개를 사용해서 무선 XBee 통신으로 LED 밝기 제어해 보기 (0) | 2018.01.19 |
---|---|
Step.28-Arduino Uno 로 ENC28J60 이더넷 모듈을 사용해 이더넷 접속 웹브라우저로 확인해 보기 (0) | 2016.06.11 |
Step.26-XBee USB Adapter 를 사용해서 XBee 모듈간 통신 테스트 하기 (1) | 2016.05.27 |
Step.25-Arduino Uno 로 IR 적외선 원격제어 키트를 이용해 적외선 송수신 테스트 하기 (0) | 2015.11.20 |
Step.24-Arduino Uno 로 HMC5883L/QMC5883L 지자기 센서를 이용해 X, Y, Z 축 위치값 테스트 하기 (0) | 2015.11.20 |
댓글