![저작자표시-비영리-변경금지 88x31.png](https://licensebuttons.net/l/by-nc-nd/3.0/88x31.png)
esp8266은 중국 Espressif Systems에서 생산한 저가형 와이파이 마이크로칩입니다. 이 칩을 이용한 여러 호환 모듈이 있는데 Ai-Thinker에서 만든 ESP-01이 그 중 하나입니다.
아두이노 와이파이 실드는 고가임에 비해 esp 보드는 저렴하기때문에 폭넓게 사용됩니다.
![ESP-01.jpg mb-file.php?path=2021%2F10%2F10%2FF3906_ESP-01.jpg](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3906_ESP-01.jpg)
ESP-01을 이용하여 아두이노 UNO와 통신을 해보도록 하겠습니다.
1. 사양
모듈 |
Espressif ESP8266 |
ESP8266 버전 |
ESP-01 |
동작명령 |
UART AT command |
안테나 |
On-board ceramic antenna |
통신방식 |
802.11 b/g/n 지원 |
통신속도 |
9600 bps |
플래쉬 메모리 |
16M Byte |
프로세서 스피드 |
80-160 Mhz |
크기 |
14.5 x 24.8 mm |
동작전압 |
3.3V |
2. 핀맵 ![ESP-01_pinmap.jpg mb-file.php?path=2021%2F10%2F10%2FF3907_ESP-01_pinmap.jpg](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3907_ESP-01_pinmap.jpg)
3. 펌웨어 업데이트
ESP-01의 경우 초기 통신속도가 115200bps이지만 아두이노UNO의 소프트웨어 시리얼 통신 속도는 57600bps까지만 지원되므로 통신속도를 9600bps로 변경해야합니다.
하드웨어 시리얼이 2개 이상인 아두이노 MEGA 또는 DUE의 경우 생략가능합니다.
ESP-01의 펌웨어 업데이트는 USB to TTL 시리얼 케이블을 이용하거나 아두이노를 이용하여 업데이트 할 수 있습니다.
다음 배선도에 따라 배선합니다. 아두이노 UNO는 시리얼 통신장치로 이용되므로 RESET을 GND에 연결합니다.
아두이노 UNO |
ESP-01 |
GND |
GND / GPIO0 |
GND - RESET |
|
3.3V |
VCC / CH_PD |
TX |
TX |
RX |
RX |
주의 : ESP 모듈은 3.3V의 전압으로 작동합니다. 5V 전압을 공급하면 고장납니다.
![2.png mb-file.php?path=2021%2F10%2F10%2FF3909_2.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3909_2.png)
아두이노에 전원을 연결하고 장치관리자에서 포트번호를 확인합니다.
첨부한 플래셔를 다운로드합니다. (ESP8266_flasher.zip) 압축을 해제하면 펌웨어 파일과 플래셔 파일이 있습니다. 첨부한 펌웨어는 AT 명령어를 이용가능한 ai-thinker 펌웨어입니다. ![1.png mb-file.php?path=2021%2F10%2F10%2FF3908_1.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3908_1.png)
플래셔를 실행시키고 Bin을 눌러 ai-thinker-0.9.5.2-9600.bin을 선택하고 포트번호를 변경한뒤 Download를 누릅니다. ![5.png mb-file.php?path=2021%2F10%2F10%2FF3911_5.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3911_5.png)
업데이트에 성공하면 Leaving...이 출력됩니다. ![6.png mb-file.php?path=2021%2F10%2F10%2FF3912_6.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3912_6.png) 이제 아두이노 UNO와 9600bps 속도로 시리얼 통신이 가능합니다.
4. 통신 이제 다음 배선도와 같이 배선합니다.
아두이노 UNO |
ESP-01 |
GND |
GND |
3.3V |
VCC / CH_PD |
TX(GPIO3) |
RX |
RX(GPIO2) |
TX |
![3.png mb-file.php?path=2021%2F10%2F10%2FF3913_3.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3913_3.png)
주의 : 전원은 3.3V를 넣어주세요.
아두이노 UNO에서 GPIO0과 GPIO1은 하드웨어 시리얼 통신에 이용되므로 GPIO2와 GPIO3을 소프트웨어 시리얼 통신에 이용합니다.
이때 아두이노 UNO에서는 시리얼 통신으로 5V가 출력되는데 ESP-01은 RX에서 3.3V를 받아야하므로 전압 분배 법칙에 의해 위의 배선도같이 1k옴 저항을 1:2로 나누어 분배합니다. (5V * 2/3 = 3.3V가 됩니다.)
복잡합니다.. 이런 복잡한 배선을 줄이기 위한 어댑터도 존재합니다. ![20211010_173429.jpg mb-file.php?path=2021%2F10%2F10%2FF3915_20211010_173429.jpg](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3915_20211010_173429.jpg)
아두이노 UNO |
ESP-01 어댑터 |
VCC(5V) |
VCC |
GND |
GND |
RX(GPIO2) |
TX |
TX(GPIO3) | RX |
다음과 같이 프로그래밍합니다.
#include <SoftwareSerial.h>
#define RXD 2 #define TXD 3
SoftwareSerial wifi(RXD, TXD);
void setup() { Serial.begin(9600); wifi.begin(9600); wifi.setTimeout(5000); delay(1000); }
void loop() { if (Serial.available()) { wifi.write(Serial.read()); } if (wifi.available()) { Serial.write(wifi.read()); } } |
아두이노 UNO에 업로드하고 시리얼 모니터를 열어 AT를 입력합니다. ![7.png mb-file.php?path=2021%2F10%2F10%2FF3914_7.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3914_7.png)
다음과 같이 OK라고 뜨면 통신이 되고 있는 겁니다. ![8.png mb-file.php?path=2021%2F10%2F10%2FF3917_8.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3917_8.png)
AT+CWMODE=1을 입력합니다. 와이파이 모드 선택인데 1은 Station모드, 2는 AP모드, 3은 Station + AP모드입니다. ![9.png mb-file.php?path=2021%2F10%2F10%2FF3918_9.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3918_9.png)
AT+CWLAP라고 입력하면 연결가능한 와이파이 목록이 뜹니다. ![10.png mb-file.php?path=2021%2F10%2F10%2FF3919_10.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3919_10.png)
AT+CWJAP="와이파이 이름","비밀번호"를 입력하면 와이파이 연결이 가능합니다.
![11.png mb-file.php?path=2021%2F10%2F10%2FF3921_11.png](https://www.robotstory.co.kr/wp-content/uploads/mangboard/2021/10/10/F3921_11.png)
자세한 AT 명령은 첨부파일을 참고하세요. |