전자반

전자반 게시판 입니다.

제목아두이노 와이파이 모듈 : ESP82662021-10-10 19:43:57
작성자user icon Level 2
첨부파일ESP8266_flasher.zip (8.58MB)AT 명령어 요약집.pdf (119.2KB)

88x31.png


esp8266은 중국 Espressif Systems에서 생산한 저가형 와이파이 마이크로칩입니다.

이 칩을 이용한 여러 호환 모듈이 있는데 Ai-Thinker에서 만든 ESP-01이 그 중 하나입니다.


아두이노 와이파이 실드는 고가임에 비해 esp 보드는 저렴하기때문에 폭넓게 사용됩니다.


mb-file.php?path=2021%2F10%2F10%2FF3906_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. 핀맵

mb-file.php?path=2021%2F10%2F10%2FF3907_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 전압을 공급하면 고장납니다.


mb-file.php?path=2021%2F10%2F10%2FF3909_2.png
 

아두이노에 전원을 연결하고 장치관리자에서 포트번호를 확인합니다.

mb-file.php?path=2021%2F10%2F10%2FF3910_4.png 

첨부한 플래셔를 다운로드합니다. (ESP8266_flasher.zip)

압축을 해제하면 펌웨어 파일과 플래셔 파일이 있습니다.

첨부한 펌웨어는 AT 명령어를 이용가능한 ai-thinker 펌웨어입니다. 

mb-file.php?path=2021%2F10%2F10%2FF3908_1.png


플래셔를 실행시키고 Bin을 눌러 ai-thinker-0.9.5.2-9600.bin을 선택하고

포트번호를 변경한뒤 Download를 누릅니다.

mb-file.php?path=2021%2F10%2F10%2FF3911_5.png
 

업데이트에 성공하면 Leaving...이 출력됩니다.

mb-file.php?path=2021%2F10%2F10%2FF3912_6.png
이제 아두이노 UNO와 9600bps 속도로 시리얼 통신이 가능합니다.



4. 통신

이제 다음 배선도와 같이 배선합니다.

아두이노 UNO

ESP-01

GND

GND  

3.3V

VCC / CH_PD 

TX(GPIO3)

RX

RX(GPIO2)

TX



mb-file.php?path=2021%2F10%2F10%2FF3913_3.png
 

주의 : 전원은 3.3V를 넣어주세요.


아두이노 UNO에서 GPIO0GPIO1은 하드웨어 시리얼 통신에 이용되므로 GPIO2GPIO3을 소프트웨어 시리얼 통신에 이용합니다.


이때 아두이노 UNO에서는 시리얼 통신으로 5V가 출력되는데 ESP-01은 RX에서 3.3V를 받아야하므로 전압 분배 법칙에 의해 위의 배선도같이 1k옴 저항을 1:2로 나누어 분배합니다. (5V * 2/3 = 3.3V가 됩니다.)


복잡합니다.. 이런 복잡한 배선을 줄이기 위한 어댑터도 존재합니다.

mb-file.php?path=2021%2F10%2F10%2FF3915_20211010_173429.jpg
mb-file.php?path=2021%2F10%2F10%2FF3916_20211010_175135.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를 입력합니다.

mb-file.php?path=2021%2F10%2F10%2FF3914_7.png
 

다음과 같이 OK라고 뜨면 통신이 되고 있는 겁니다.

mb-file.php?path=2021%2F10%2F10%2FF3917_8.png
 

AT+CWMODE=1을 입력합니다. 

와이파이 모드 선택인데 1은 Station모드, 2는 AP모드, 3은 Station + AP모드입니다.

mb-file.php?path=2021%2F10%2F10%2FF3918_9.png
 

AT+CWLAP라고 입력하면 연결가능한 와이파이 목록이 뜹니다.

mb-file.php?path=2021%2F10%2F10%2FF3919_10.png


AT+CWJAP="와이파이 이름","비밀번호"를 입력하면 와이파이 연결이 가능합니다.

mb-file.php?path=2021%2F10%2F10%2FF3921_11.png


자세한 AT 명령은 첨부파일을 참고하세요.

#아두이노# ESP8266# ESP-01# 와이파이 모듈
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)