반응형

【 아두이노모듈#25 ESP8266 ep-01 활용하기#1 : 펌웨어 업데이트 에러 해결 (내용보강-완료,영상추가)

 ESP8266은 wifi 통신을 이용하고 인터넷(네트웍)이나 직접 연결(무선)로 제어가 가능한 모듈이며, cpu, 메모리, 입출력 핀을 내장하고 있어서 아두이노 없이 단독으로도 활용가능한 모듈입니다.

모듈 종류는 세부 스팩별로 아래처럼 다양하게 구성되어 있습니다.

다양한 ESP8266 제품군

 그 밖에 ESP12 모듈을 탑재하여 아두이노 처럼 다양한 포트와 확장성을 가지게 하고 사물인터넷(IoT) 구축에 최적화된 보드로, nodeMCU 제품군도 출시되어 있습니다. 

NodeMCU 제품

 사물인터넷, IoT 쪽에 관심이 있다면 우선 ESP8266 esp-01 등과 같은 초기 버전 몇 가지 먼저 다루어 본 후,  NodeMCU 제품군 활용으로 넘어가는 학습이 좋을 듯 합니다.

 

 다른 한편으로 ESP8266 (esp-12e)모듈이 탑재된 아두이노도 있습니다.  기존 아두이노의 경우 비싼 wifi 쉴드를 따로 장착하는 번거러움 없이,  esp-12와 같은 wifi 모듈이 보드에 탑재된 아두이노 버전이라고 이해하시면 되며, 아두이노를 조금이라도 다루어 보셨다면 사용하기에도 크게 어렵지 않습니다.  그리고 최근에는  크기가 작아서 활용도가 높은 D1 mini 제품도 인기가 좋습니다.  Wemos 보드도 차후에 한 번 다루어 보도록 하겠습니다.

아두이노 Wemos D1(좌측) 과 D1 mini (우측)

  그럼, 그 첫 번째 시간으로 ESP8266의 가장 기본이라고 할 수 있는 esp-01 버전에 대해 다루어 볼 텐데요?   가장 기본이지만, 처음 사용하시는 분에게는 결코 만만치 않습니다. 

 그 이유는, esp-01 모듈의 펌웨어 업데이트 라는 관문이 있기 때문이죠.

오늘은 펌웨어 업데이트 필요성과 그 방법에 대해 먼저 다루어 보도록 하겠습니다.

 

ESP-01 WiFi 모듈

Module Espressif ESP8266
ESP8266 Version ESP-01
동작 명령 방식 UART AT Command
안테나 On-Board Ceramic Antenna
통신 방식 802.11 b/g/n 지원
통신 속도(Baud Rate) -115200(디폴트) : 생산된 모듈 펌웨어에 따라 9600(디폴트)도 있음
-소프트웨어-시리얼: ~ 57600bps이하, 이상은 지원X, 불안정
-하드웨어-시리얼 : 9600bps~2000000bps
Flash memory 512KB  ,   ESP-01S 모듈은 (1MB)
프로세서 스피드 80-160Mhz
크기(Size) 14.5 x 24.8 mm

 


 esp-01은 가장 좋은 가성비를 갖고 있어서 많이 활용되는 모듈인데요?   하지만, 큰 난관(?)이 기다리고 있습니다. 

 esp01을 아두이노에 연결하여 이용하고자 할 때, 서로간 시리얼 통신을 사용해야 하는데, 우리가 많이 사용하는 아두이노 '우노' 보드는 시리얼 통신핀을 1개만 가지고 있습니다(하드웨어 시리얼).  그런데 이 시리얼 통신핀은 PC와 통신하는데(코드 전송, 시리얼 모니터 사용 등) 사용되기 때문에 esp-01과 통신을 할 수 없게 됩니다.   그래서, 우노의 디지털 입출력핀을 이용해서 소프트웨어적으로 'SoftwareSerial' 통신 방법을 이용하게 됩니다. 

 'SoftwareSerial'은 통신 속도를 115,200bps까지 지원하지만, PC의 시리얼 데이터 전송 속도는 이상적인 조건에서 최대 57600bps까지만 가능한데요,   이에 비해, esp-01 모듈의 통신 속도는 115200bps로 기본 셋팅 되어 있기 때문에 서로간 통신이 어렵습니다.   

 그래서 나온 해결방법이 통신 속도를 변경할 수 있도록, esp-01의 플래시 메모리에 있는 펌웨어를 업그레이드 해주게 되면 'SoftwareSerial'이 통신가능한 속도로 변경가능해집니다.

 

  이때 안정적인 통신이 이루어지는 9600bps로 변경하여 사용하게 됩니다.   

(단,  esp-01 모듈의 제조 생산 시기별로 기본 업로드 된 펌웨어 버전이 여러가지여서, 펌웨어 업뎃 없이 통신속도 변경이 AT모드에서 가능할 수도 있으니 참고하세요) 

 

 그런데, 해결방법이 펌웨어 업그레이드라고 나왔지만, 이게 만만치 않습니다. 

아두이노나 이런쪽에 경험이 많지 않은 초기학습자의 경우 인터넷의 자료와 방법을 찾아 보면서 해봐도, 한 번에 해결되는 경우가 매우 드물기 때문에, 많은 사람들이 시도하며 끙끙 앓다가 중도에 포기하거나 한 동안 덮어 두는 사태가(?) 벌어지게 되죠. 

 이에 라즈이노IoT에서는 좀더 세심하게 공을 들여서 설명을 드리고자 하오니,  차근 차근 글을 읽으면서 진행해 보시면 좋은 결과가 있을 것 같습니다.  ^^&

 

더보기

 펌웨어 업데이트 하기 (ESP8266-esp01)

 

★ ☆ ★ 펌웨어 업뎃(교체)을 하는 이유  ★ ☆ ★

1. 펌웨어 업뎃(교체)을 하는 이유 ?
 - 펌웨어 업데이트를 해야하는 이유는 몇 가지가 있습니다. 
 생산되는 esp-01 모듈의 제조시기나 업체(카피 제품 등)에 따라 내장된 펌웨어가 다르고, 디폴트 보-레이트(Baud Rate)가 다를 수 있습니다. 
기본적으로는 esp8266은 AI-Thinker사의 AT-커맨드, 즉 명령어 기반의 AT 명령어를 수신하고 해당 명령어를 실행할 수 있는데, 이를 적절히 사용하기 위한 버전의 펌웨어로 업데이트(교체) 하고자 하거나, esp8266의 보-레이트(Baud Rate)를 변경하고자 할 때 진행하게 됩니다.  본 실습에서는 최신 버전 펌웨어로 업뎃을 하는 것은 아닙니다. 실습을 진행하는데 문제가 없는 안정된 버전으로 펌웨어 교체를 하는 것이며, 가지고 있는 다른 버전의 펌웨어로 교체해도 되지만, 보-레이트가 맞지 않거나 할 경우 등, 실습에 문제가 있을 수 있으므로, 여기서 제공하는 펌웨어로 실습을 진행해 보고 다른 버전으로도 테스트를 해보세요.

 그래서 ESP-01 모듈의 펌웨어 업뎃을 반드시 해야 하는 건 아닙니다. 
 모듈 구매 직후에는 보통은 ESP-01 모듈의 기본 펌웨어가 AT-커맨드(명령어)로 바로 통신이 되지 않는 펌웨어 인 경우가 많습니다.  이런 이유로 펌웨어를 바꾸게 되며, 똑 같은 AT-커맨드 펌웨어라 하더라더 버전에 따라 명령어 지원 가지수도 조금씩 다릅니다. 
따라서, 디폴트 펌웨어 버전에 따라 필요없을 수 있으며,  esp8266을 wifi 어뎁터가 아니라 플래시 메모리에 아두이노 처럼 코드를 올려 사용하고자 할 경우에는 펌웨어 업뎃 없이 바로 사용하면 됩니다. 

▶  esp-8266과 통신하는 방법은 크게 두 가지로 볼 수 있는데요, 
1. AT Command 명령어를 이용한 통신은 PC와 연결된 ESP-01과 PC사이에 시리얼통신을 이용한 통신이구요 이 상태에서 아두이노 IDE의 시리얼 통신창에서 AT 명령어를 입력해서 esp8266의 모드를 바꾸거나, 주변 WiFi에 접속 시킬 수 있습니다.  
2. esp8266의 두 번째 사용법은 시리얼 모니터 등으로 AT 명령어를 직접 사용하지 않고 아두이노 코드에서 WiFi통신이 가능한 코드를 넣고 사용하는 방법입니다. 

※ 먼저 펌웨어 업데이트 하는 방법에는 대표적으로 아래의 세 가지가 있습니다. 

1. 아두이노에 펌웨어 업데이트용 결선 형태로 ESP-01을 연결하고 업데이트 하는 방법.

2. 와이파이 USB to ESP8266 시리얼 전용 어댑터를 사용하는 방법.

시판중인 esp-01 전용 wifi 어뎁터 2가지

 

3. 아두이노 프로미니 처럼 PC와의 통신을 위해서는 별도의 USB to UART 통신 모듈이 필요한데, 이런 모듈을 이용하여 펌웨어를 업데이트 하는 방법이 있습니다.

FTDI칩셋의 통신모듈과(좌측)   cp2102호환 칩셋의 통신모듈(우측)

 

▶ 1. 아두이노 우노에 연결하여 업뎃 하기 : 

    [ 연결 회로 ]

※ 주의 : esp-01의 전원으로는 3.3V를 연결해야 합니다. 만약, 5V를 연결하여도 esp-01모듈이 고장나지 않고 버틸 수는 있지만 장시간 5V 전원을 가할 경우 고장이 날 수 있기 때문에 주의해야 합니다.

 또한, 일부 아두이노 호환보드의 경우 비용절감의 문제로 잘 사용되지 않는 3.3V 단자 쪽의 부품을 저출력의 부품을 사용한 결과 출력(전류)이 낮아 esp모듈의 업데이트나 동작이 불안정하기도 합니다.  이럴 때는 5V 단자를 사용하여 아래에서 소개되는 저항의 분배(1:2)를 이용해 3.3V의 출력을 뽑아서 사용하면 해결 될 수 있습니다. 

 

 1. 아두이노로 esp8266(esp-01) 모듈 펌웨어 업데이트 하기! 

 아두이노를 하드웨어 USB to TTL 모듈처럼 이용하는 방법이 가장 확실합니다.  따라서 아두이노의 Reset단자를 GND에 연결하여 MCU는 동작하지 않게 하고 하드웨어적으로 시리얼 통신 하도록 0번, 1번 핀을 이용해 통신하면 됩니다. 

 이때, 0번을  esp-01의 Rx 단자에 연결하고, 1번을  esp-01의 Tx 단자에 연결 하여야 합니다. 그리고 CH_PD 단자가 +3.3V에 함께 연결 되어 있어야 하고, GPIO0 단자는 GND로 연결해야 하며,  반드시 5V 전원을 사용하지 말고 아두이노의 3.3V 전원을 사용해야 esp-01모듈의 손상을 방지 할 수 있습니다.

 

 

 - 아래 zip첨부파일을 다운로드 합니다. (한글 폴더 아래가 아닌 C:\ 루트 드라이버로 옮겨 놓고 압축을 풀어서 사용하세요)

ESP8266-flasher_AT-mode-Updater.zip
8.56MB

 

 - 압축을 풀면 아래와 같은 내용물(파일)이 보입니다.

 

  - 파일 중에서 esp8266_flasher.exe 파일을 실행시키면 아래와 같은 형태로 실행됩니다.

 

그럼 아래 번호 순서대로 작업 진행을 합니다. 

펌웨어 업뎃이 진행되는 모습

 

 

- 1번 'Bin' 버튼을 클릭해서 업데이트용 펌웨어 파일을 불러 옵니다.

 : 바로 위에서 다운받은 파일 중,  v0.9.2.2 AT Firmware.bin 이라는 파일을 선택해 줍니다. 

(만약,  업데이트 후에, AT통신이 안 된다면, v0.9.2.2 AT Firmware.bin 파일로 업뎃했는지 다시 한 번 확인해주세요.  펌웨어의 esp8266 통신속도는 : 9600bps 입니다.  이 걸로 업뎃하게 되면, 갖고 계신 esp-01모듈의 기본 통신속도가 9600bps로 설정됩니다.)

- 2번 아두이노를 연결하면 연결된 시리얼포트 번호가 몇 번인지? 알아내어 그 포트 번호를 적습니다.

 : 포트 번호를 알아내는 방법은 크게 두 가지인데요? 가장 쉬운것은 아두이노 스케치 IDE에서 번호를 알아내는 방법입니다. (아두이노가 연결되면 추가된 포트 번호 옆에 (Arduino Uno) 표시가 뜹니다. 단, 아두이노 우노의 경우만 영어 이름이 표시되고,  나노 혹은 프로미니의 경우 포트 번호만 표시됨) 

 

 또는 키보드 윈도우키 + 'X' 키를 누르면 나타나는 메뉴중 장치관리자를 열어 '포트' 항목에 보이는 아두이노가 연결된 포트 번호를 확인 할 수 있습니다.

- 3번 Download 버튼을 클릭하고, 펌웨어가 아두이노를 통해 ESP-01모듈로 다운로드(업데이트) 되는 과정을 지켜봅니다. 

 : 다운로드 진행표시는 (99%) 까지 나타나고, Leaving...   이표시까지 뜨면 업데이트 성공(완료) 된 겁니다. 

끝에 표시된 ' Failed to leave Flash mode ' 글자는 펌웨어 업데이트와는 관계없으니 무시하셔도 됩니다.

 

※ 만약, 이 단계에서 진행이 잘 안 된다면...  

- 아두이노에 연결한 USB 커넥터 자체를 뽑아서 전원을 종료한 후 다시 아두이노 보드를 꽂아보세요. 
- esp-01 모듈과 아두이노 및 브레드 보드에 연결된 선의 접촉 불량이 있을 수 있습니다. 꼭꼭 잘 눌러 주거나, 
필요한 경우 선을 바꾸어 보세요. 
- 맨 아래 영상에서 처럼, 특별히 연결을 바꾼 것 없지만, 처음에 펌웨어 진행에 Fail.. 이 뜨다가도 선을 만져주거나, 리셋 버튼을 눌러주거나, 아두이노 USB 단자를 제거 후 다시 연결하고 Download 버튼을 눌렀을 때, 펌웨어 업뎃이 잘 진행 된 것을 볼 수 있습니다.  

- 다시 한 번 정리하자면,  아두이노를 빼고(10여초 기다린 후) 다시 연결해서 다운로드 시도를  몇 번 해보세요.  낮은 확률이지만, 10회 시도중 1~2회 정도 업데이트에 성공 합니다.  혹은 5V전원을 연결하거나 하여 esp-01모듈 손상 등 다른 원인으로 인하여 안 될 수 도 있으니, 연결이나 조건을 한 번더 확인해보시기 바라며,  손상이 아닌데도, 아무리 확인해도 문제 없는 것 같은데 안 될 경우에는 ,  아래에 소개되는 2번 esp-01 전용 어댑터를 이용하거나,   3번 USB to TTL 통신모듈을 이용하는 방법으로 진행해 보시기 바랍니다. 
 2번은 테스트를 못해 봤으나,  1번과 3번 방법중에,  3번 USB to TTL(특히, CP2102 모듈을 이용) 을 이용했을 때,  펌웨어 업뎃 성공률이 거의 90% 이상이었습니다.) 

esp-01을 아두이노에 연결한 모습

 

2.  와이파이 USB to ESP8266 시리얼 전용 어댑터를 사용하는 방법.

.  아래와 같은 전용 어댑터를 이용하면 펌웨어 업데이트가 쉽고 간편할 수 있습니다.  

시판중인 esp-01 전용 wifi 어뎁터 2가지

또한, esp-01 breakout(1500~2000원) 이라는 핀 아웃 커넥터를 이용하면 브레드 보드에 직접 꽂아서 연결할 수 있어서 연결이 깔끔해집니다.

 

3.  USB to UART 통신 모듈을 이용하여 펌웨어를 업데이트 하는 방법.  (CP2102 모듈 추천!!)

 : 개인적으로 성공확률이 높았던 것은,  위에 1번 아두이노 방법과, CP2102 모듈을 이용한 방법이 플래시 업데이트 성공확률이 높았습니다.  연결이 잘못되거나 다른 방법을 사용하여 잘 안 될 경우에는 시간소비와  스트레스가 엄청납니다.  ㅠㅠ

 프로미니 코드 업로드용으로 주로 사용했던, FTDI USB to Serial 모듈은 성공확률이 매우 낮았습니다. (진행되는 도중에 멈춰버리는 현상 자주 나타남) 

하지만 1번 아두이노 경우와 함께,  cp2102의 호환 칩셋을 사용한 USB to TTL(Serial)  모듈로 시도해본 결과 백발 백중 모두 성공하였습니다.  ^^;  하지만, 모듈 구매시,  FTDI USB 모듈의 경우 다음에 다룰 내용에서 펌웨어 업데이트 필요없이(115200으로통신) esp-01과 연결하여 작업하는 경우 3.3V 출력 선택이 가능하기 때문에 FTDI USB 모듈도 같이 구매하는 걸 추천 드립니다

FTDI칩셋의 통신모듈과(좌측)   cp2102호환 칩셋의 통신모듈(우측)

 

cp2102모듈의 경우, 처음 연결할 때 장치관리자에서 ch340 칩셋 드라이버를 업데이트(설치) 해주어야 제대로 사용이 가능합니다. 

 (cp2102 usb to ttl 모듈, 가격 : 2,000원 내외)

 

 

펌웨어 업그레이드 영상 : 
(cp2102 usb to ttl 모듈로 펌웨어 업그레이드 영상은 맨 아래 영상을 참고하세요)

CP2102 (USB to TTL) 모듈을 사용한 펌웨어 업데이트 연결도면

breakout 소켓이 없을 경우, 그냥 점퍼케이블로 바로 연결하세요

 

 

 

 에러 증상과 대처 :

1. 만약 아래와 같은 fail to connect 라는 문자가 떴다면, 

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

        (브레드 보드에 선을 연결할 경우 선의 접촉이 잘 안 될 수 있으니 접촉이 잘 되도록 확인)

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

        (아두이노의 Tx 와 esp-01의 Rx와 연결하고,  아두이노의 Rx와 esp-01의 Tx와  교차로 연결하여야 통신이 됨)

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

       ( ESP-01모듈에 빨간불은 전원이 연결된 표시 이므로, 불이 들어오지 않는다면 ESP-01모듈의 전연연결 선을 체크)

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

       (USB 포트 인식이 안 되거나,  잘 못된 USB 포트 번호를 넣어 진행할 경우 , USB를 다시 꽂아 보고, 정확한 포트번호 기입)

    5. 'CH_PD단자'와  'GPIO 0단자'를 확인한다. 

       (펌웨어 업로드시에는 esp-01모듈을 운용할 때와는 달리  CH_PD단자는 플러스(+3.3V)에 연결하고, GPIO 0단자는 GND(0V)에 연결하여야 펌웨어 업로드가 제대로 진행이 된다.) 

    6. 전원을 5.0V로 잠시 바꾸어 연결하거나,  저항의 1:2 분배 연결을 통해 연결해준다.

       ( 아두이노 호환 보드를 사용하거나 할 경우 3.3V의 출력이 낮아 제대로 진행이 안 될 경우가 있으니, 짧은 시간 동안 아두이노의 5V 전원을 이용해 보거나,  5V단자로 바꾼상태에서 1K옴저항과 2K옴 저항의 분배 방법을 이용하여 높은 전류의 3.3V 전원을 넣어 본다. )

 

 

2. 만약 아래와 같은 'Invalid head of packet' 이라는 에러 증상이 나타난다면,

아두이노 코드를 Blink 예제 코드와 같은 기본 코드 혹은 내용을 모두 지우고 업로드 한 아두이노로 펌웨어 업데이트를 진행해본다.   아두이노에 Serial 통신을 사용하거나 하는 등의 기존 코드가 들어 있을 경우 이런 에러가 나타나기도 한다. 

 

 

▶ 3. 펌웨어 완료 후 AT 통신 모드로 확인 및 셋팅 하기 : 

 

※ 위 이미지 처럼 펌웨어 업로드가 완료되면, 아래에 있는 AT-통신모드용 아두이노 연결을 통해 ,  아두이노의 시리얼 통신창을 통해 AT통신 모드로 진입이 된다.  이때 아래와 같은 AT통신을 위한 아두이노 코드를 아두이노에 새로 업로드 해주어야 한다. 

ESP-8266 AT-통신 모드를 위한 연결도면

- AT통신모드에서는 '하드웨어 시리얼'이 아닌 '소프트웨어 시리얼' 통신을  이용해야 하므로 아두이노의 0번, 1번 핀에 연결된 것을 2번, 3번 등의 다른 디지털핀으로 연결해야 합니다. 

- 펌웨어 업데이트 때 'GPIO 0'번 핀을 GND 단자에 연결 하였는데,  이 단자를 제거 해야 합니다. 

- esp-01모듈은 3.3v로 동작되는 것이 원칙이므로, Rx 수신 단자에 수신되는 신호도 3.3v 레벨로 수신되도록 저항을 이용해 연결해 주어야 하는데,   1 ㏀ 3개를 연결하고 1㏀ 두 개가  연결된 쪽에 Rx 수신단자를 연결하면 :  5v x (2/3) = 3.3333...v  전압 레벨의 신호를 입력해 줄 수 있습니다.  

- 만약 위 회로 연결대로 하였으나, AT통신이 안 될 경우 CH_PD 단자와 +전원(3.3v) 사이에 10㏀ 저항을 넣어서 실행해보기 바랍니다. 

위 회로대로 하여도 안 될 경우 10K의 저항을 추가해본다

 

- 아래와 같은 아두이노 코드를 아두이노에 넣어 줍니다.

아두이노의 2번 단자를 수신단자(Rx)로 지정했으면, 여기에 esp-01 모듈의 Tx 단자가 연결되고, 

아두이노의 3번 단자를 송신단자(Tx)로 지정했으면, 여기에 esp-01 모듈의 Rx 단자로, 교차하도록 연결이 되는 식입니다.  이렇게 해야 서로간 데이터를 주고받을 수 있는 통신이 이루어 집니다.

- 시리얼 모니터 통신속도는 9600으로 하세요. esp8266의 통신속도를 9600으로 했다면, 시리얼 통신 속도도 9600으로 해야, 본 게시글에서 안내드리는 AT명령어 대부분이 적용됩니다.
- 만약 esp8266의 통신속도를 115200으로 했을 때는, 시리얼 모니터 통신속도는 9600이나 115200으로 하여도 별 상관없이 시리얼 모니터창에 잘 입력(응답)됩니다. 
그리고 설정한 대로,  시리얼 모니터 통신창 하단의 속도를 동일하게 맞추어 주세요. 
- 그리고,  esp-01의 통신 속도는 9600에 맞추어 줍니다. (코드에서, ESP-wifi.begin(9600) 부분!)  본 게시글에 링크드린,  펌웨어(

 

- 위 코드를 첨부로 올립니다.(zip 압축)

wifi_test2.zip
0.00MB

- 이제 준비가 완료 되면, 아두이노의 시리얼모니터 창을 열고 명령 라인에 'AT'를 입력해 봅니다.

 - 그리고 아래처럼 'OK'라는 응답이 떨어지면, AT모드 진입과 통신 성공입니다.

단, 이때 시리얼모니터 창에 Both NL & CR 로 하시고,  코드와 동일하게 9600보드레이트 으로 설정 되어 있어야 해요.  

 

만약~!!!
다른 펌웨어로 업뎃할 경우, 통신속도가 9600이 아니라 115200일 수 있습니다.
따라서 아래와 같이 응답신호에 OK가 뜨지 않고, 물음표가 뜨는 경우나 아무 응답이 없을 때는, 아두이노의 esp8266 통신속도를 바꾸어 주어야 AT 통신에 문제가 없습니다.

esp-01 모듈의 통신속도를 115200으로 맞추어 주세요 (ESP_wifi.begin(115200) 으로 코드 수정후 업로드) 하세요.  
그러면, 아래 처럼, 제대로 응답신호 글자가 표시 됩니다. 
 

 위, 코드 (115200) 다운로드 받기

wifi_test2_115200.zip
0.00MB

 

 

【 AT(명령어) 통신 테스트 및 설정 】

 

 1) AT   :  기본적으로 'OK'라는 응답을 통해 통신을 확인하는 명령어 입니다.

 

 2) AT+GMR
           :  esp-01 wifi 모듈의 버전을 확인 하는 명령어 입니다.

 3) AT+CWMODE
           :  WiFi 모드 확인 및 설정 명령

  - AT+CWMODE?    (명령어 입력시 끝에 물음표를 붙여야 한다)

           : 현재의 WiFi 모드 확인

             1번은 (Station Mode, AP(WiFi 공유기)에 접속할 수 있는 기기로 설정)
             2번은 (AP Mode, Access Point(WiFi 공유기) 기능으로 설정)
             3번은 (AP + Station Mode,  접속기기 + AP , 복합 모드 설정)

명령라인에 : ' AT+CWMODE? ' 를 입력 후 엔터

 

아래는 복합모드로 설정한 모습이다.   명령라인에, ' AT+CWMODE=3 ' 을 입력 후 엔터키를 누른다. 

명령라인에 : ' AT+CWMODE=3 ' 을 입력 후 엔터

 

 4) AT+CWLAP        ( 여기는 ?물음표 붙이지 마세요~!)
           :  주변의 AP(WiFi공유기) 리스트를 시리얼 모니터 창에 출력 명령

 5) AT+CWJAP="SSID","비번"
           :  특정 AP에 연결  (주의: 명령어 사이 사이 공백이 없어야 함)

   - 만약, 비번없이 보안이 안 되어 있는 AP에 접속할 경우,

    - AT+CWJAP="SSID",""  으로 입력 하면 됩니다.

 

6) AT+CWSAP="SSID","비번","채널 id","보안방식"
           :  AP모드 사용시, SSID, 비번, 채널, 보안방식을 설정하는 명령어

           보안방식

              0 : OPEN
              2 : WPA_PSK
              3 : WPA2_PSK
              4 : WPA_WPA2_PSK

 

 

7) AT+CWJAP?

           :  연결된 AP 확인

 

8) AT+CWQAP

         : AP 접속 해제 명령

 

 

9) AT+CIFSR

           :  할당 받은 IP 주소 확인

 

10) AT+CIPSTATUS

           :  TCP/IP 연결 상태 확인   (만약, STATUS:2  이면, IP 주소을 획득한 상태)

 

11) AT+CIPSTART=종류,주소,포트

           :  TCP/UDP 연결  

 

12) AT+CIPSEND=크기  ,    > 표시후 '데이터' 입력 후 엔터

           :  특정 바이트 크기의 데이터를 보내기 위한 명령어

 

 

13) AT+CIPCLOSE

           :  TCP/UDP 연결 해제

 

 

14) AT+CIPMUX=모드

           :  다중 접속 설정 (서버코드를 돌리기 위해서는 다중 접속설정이 필요)

              예, esp-01 모듈에 연결된 led를 wifi공유기로 연결된 PC나 핫스팟으로 연결된 스마트폰으로 켜거나 끄려고 할 때, 다중접속모드를 멀티서버('1')로 설정 되어 있어야 함.

           -   AT+CIPMUX=0: Single 클라이언트
           -   AT+CIPMUX=1:Multiple 서버

 

15) AT+CIPSERVER=모드,포트

         :  TCP 서버 모드로 설정  ( AT+CIPMUX=1, '다중접속모드' 인 상태에서 실행)

         : 모드'0'은 서버를 의미하므로, 항상 1로 고정함. HTTP 접속인 경우 80포트 고정,      

 

16) AT+CWLIF

         :  모듈의 SoftAP에 접속된 station 리스트를 보여준다.

17). AT+CWDHCP : DHCP 활성/비활성 설정(AP mode)

18). AT+CIPSTAMAC : Station Mode의 MAC 주소 설정(Station Mode)

19). AT+CIPAPMAC :  AP Mode의 MAC 주소 설정(AP Mode)

20). AT+CIPSTA : Station Mode의 IP 주소를 설정(고정 IP)

21). AT+CIPAP : AP Mode의 IP 주소를 설정

 

22) AT+RST

         :  새로 리스타트(Restart) 시킨다. 

 

이상과 같이 AT 명령어 모드에서 사용가능한 주요 명령어를 정리 하였는데요,

각 AT 명령어 별로 좀더 상세한 설명(영문)을 참조하려면 아래 링크를 살펴보세요.

https://github.com/espressif/ESP8266_AT/wiki/AT

 

espressif/ESP8266_AT

This project is not maintained, please use https://github.com/espressif/esp-at. - espressif/ESP8266_AT

github.com

또한, 정리된 AT명령어 요약집 pdf 파일을 공유합니다.

AT 명령어 요약집.pdf
0.12MB

 

▶ LED등 회로 연결하여 운용을 할 때는 아래와 같은 형태로 연결하면 됩니다.

   ( 기본 AT-mode 연결과 유사하며, Reset 단자를 연결하거나, GPIO 0번, GPIO 1번 핀을 활용 할 수 있습니다,  플래시(업뎃) 모드 일 때 GND에 연결 되었던 GPIO 0번 단자는 반드시 GND에서 오픈 시켜주어야 함)

 - 리셋 단자에는 4.7K의 풀업 저항과 함께 GND로 연결 되는 스위치를 달아 리셋 할 수 있도록 활용하게 됩니다. 

 - 각 GPIO 핀으로 스위치와 같은 형태로 입력을 받거나,  LED와 같은 부품을 달아 출력으로 사용할 수 있습니다.

 

【 본 게시글의 펌웨어 업데이트 모습(에러해결 모습) 및 AT 모드 진입 영상 】

 

 

 

그럼, 시간에는 esp-01 모듈을 활용한 예제를 다루어 보도록 하겠습니다. 

 

 

아래 이어지는 응용 강좌를 클릭해보세요~

【 아두이노모듈#27】 ESP8266 esp-01 활용하기#3 : LED 깜빡이기 

【 아두이노모듈#28】 ESP8266 esp-01 활용하기#4 : 스마트폰으로 LED 컨트롤 하기

반응형