ESP8266
관련상품: http://www.devicemart.co.kr/1279338
# ESP8266 자료
http://www.electrodragon.com/w/Category:ESP8266
#위키자료: https://en.wikipedia.org/wiki/ESP8266
1. 펌웨어 업데이트
: ESP8266 ESP-10 모듈의 시리얼 통신 속도는 기본적으로 115200 bps 로 설정되어 있어 통신속도의 제한이 있는 소프트웨어 시리얼을 사용할 수 없다. 따라서 보드와 ESP-01 모듈 간의 소프트웨어 시리얼 통신을 위해서 ESP-01 모듈의 기본속도를 9600 bps로 설정하기 위해서 펌웨어를 업데이트 한다.
PS. 하드웨어 시리얼: 보드의 0번(RX), 1번(TX) 기능을 이용한 통신(Serial.명령)
소프트웨어 시리얼: MCU가 0,1번을 제외한 디지털 핀 통신. (13번은 수신동작하지 않음)
PS. 펌웨어 업데이트 할 때 핀설정.
- 펌웨어를 업데이트 할 때는 아래 경로로 펌웨어가 업데이트 됨.
. 아두이노 RX, TX와 ESP8266 RX, TX를 동일 핀으로 연결하면, USB자료가 최종 기기로 펌웨어를 업데이트 할 수 있음.
. PC -> USB -> 아두이노 Rx,TX -> ESP8266 RX, TX -> ESP8266모듈
- . TCP 나 wifi 코딩도 소프트시리얼이 아니라 ESP8266 으로 업데이트 된 펌웨어로 동작이 가능하고, (보드는 ESP8266 선택)
ESP8266 모듈에 기본적인 GIPO0과 GPIO1 2개의 디지털 인터페이스로 사용할 수 있음.
간단한 디지털인터페이스는 아두이노 없이, ESP8266모듈만으로 제어가 가능함.
- 소프트웨어 시리얼을 사용할 때는, RX, TX 제외한 핀으로 ESP8266과 연결하고 ESP8266의 기본 통신 기능만 사용함.
1.1 펌웨어 업데이트 준비
- 펌웨어 업데이트 툴: esp8266_flasher.exe
- 펌웨어 : v0.9.2.2 AT Firmware.bin
- 업데이트 핀 연결
1.2 업데이트 핀 설정
왼쪽: ESP8266 <-> 오른쪽:아두이노
VCC <-> 3.3V
CH_PD <-> 3.3V
GPIO0 <-> GND
GND <-> GND
RXD <-> RX
TXD <- > TX
a. 일부 책에서, RX, TX를 교차했는데, 그렇게 하면 Fail Connect 메시지 발생.
b. 아두이노IDE를 종료할 것. 아두이노IDE를 켜두면, Fail Connect 에러가 잘 발생함. 펌웨어 업데이트할 때는 종료한다.
c. esp8266_flasher.exe 실행하고, 업데이트할 펌웨어를 선택하고, download 버튼 클릭.
- firmware 파일의 경로에 한글 경로가 있으면 안됨.
d. 오류시, usb 연결을 on/off하거나, 외부 전원을 on/off 한 후 계속 download를 눌러 update 시도.
e. "Leaving... \n Failed to write to target Flash" 이면 외부 전원으로 변경후, 다시 시도.
"Leaving... \n Failed to leave Flash mode" 이면 무시,
2. 통신 테스트
2.1 동작(통신) 모드 핀 설정
왼쪽: ESP8266 <-> 오른쪽:아두이노
2.2 통신 테스트 스크립트
include <SoftwareSerial.h>
SoftwareSerial ESPserial(2, 3); // RX(2), TX(3)
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
ESPserial.begin(9600);
Serial.println("");
Serial.println("AT Command fro ESP8266 ESP-01 module");
Serial.println("");
}
void loop() {
// put your main code here, to run repeatedly:
if(ESPserial.available()) {
Serial.write(ESPserial.read());
}
if(Serial.available()) {
ESPserial.write(Serial.read());
}
}
2.3 통신 테스트
아두이노 시리얼 모니터 창을 실행하고, 창 왼쪽 하단에 "line ending 없음'을 "Both NL & CR"로 수정하고, AP명령을 실행한다.
AT 명령
|
기능
|
응답
|
AT
|
명령 테스트 (정상 동작 확인)
|
OK
|
AT+RST
|
리셋한다
|
OK
|
AT+GMR
|
펌웨어 버전 확인
|
OK+ADDR:MAC주소
|
AT+RESET
|
초기화 및 모듈 사용 준비
|
OK...ready
|
AT+CWMODE=모드
|
와이파이 모드 설정
1:Station 2:AP 3:Dual |
+CWMODE:모드
OK |
AT+CWMODE?
|
현재 와이파이 모드 확인
|
+CWMODE:모드
OK |
AT+CWLAP
|
AP 목록 출력
|
OK
|
AT+CWJAP="SSID","비번"
|
AP에 연결
|
OK
|
AT+CWJAP?
|
연결된 AP 확인
|
+CWJAP:"AP SSID"
OK |
AT+CWSTAMAC?
|
스테이션MAC주소획득
|
+CWSTAMAC:mac주소
OK |
AT+CWAPMAC?
|
AP MAC 주소 획득
|
+CWAPMAC:mac주소
OK |
AT+CWSAP=ssid,pwd,ch,ecn
- ch: channelid - ecn : . 0 = OPEN . 2 = WPA_PSK . 3 = WPA2_PSK . 4 = WPA_WPA2_PSK AT+CWSAP? |
softAP모드 설정
예) AT+CWSAP="esp_123","12345678",5,3 |
OK
|
AT+CIFSR
|
할당 받은 IP 주소 확인
|
+CIFSR:STAIP,IP주소
+CIFSR:STAMAC,MAC주소 OK |
AT+CIPSTATUS
|
TCP/IP 연결 상태 확인
|
STATUS:2 (IP주소 얻어 옴)
OK |
AT+CIPSTART=종류,주소,포트
|
TCP/UDP연결
|
OK+Set<파라미터>
|
AT+CIPSEND=크기....>데이터
|
특정 바이트 크기의 데이터 전송.
'>'프롬프트가 나올 때까지 기다린 후 데이터를 입력해야 함. |
SEND OK
|
AT+CIPCLOSE
|
TCP/UDP 연결 해제
|
OK (ERROR/UNLINK)
|
+IPD,len:데이터
+IPD,id,len:데이터 |
수신 데이터
|
|
AT+CIPMUX=모드
|
다중 접속 설정
|
OK
|
AT+CIPSERVER=모드,포트
|
TCP 서버 모드로 설정
|
OK
|
PS. ESP8266 AT Command
https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/
Index of all known AT commands
Basic
|
WiFI layer
|
TCPIP Layer
|
AT
|
AT+CWMODE
|
AT+CIPSTATUS
|
AT+RST
|
AT+CWJAP
|
AT+CIPSTART
|
AT+GMR
|
AT+CWLAP
|
AT+CIPSEND
|
AT+GSLP
|
AT+CWQAP
|
AT+CIPCLOSE
|
ATE
|
AT+CWSAP
|
AT+CIFSR
|
|
AT+CWLIF
|
AT+CIPMUX
|
|
AT+CWDHCP
|
AT+CIPSERVER
|
|
AT+CIPSTAMAC
|
AT+CIPMODE
|
|
AT+CIPAPMAC
|
AT+CIPSTO
|
|
AT+CIPSTA
|
AT+CIUPDATE
|
|
AT+CIPAP
|
+IPD
|
끝.
'Programming Language > 아두이노, 라즈베리파이' 카테고리의 다른 글
MOLEX 커넥터 : Wire to Board (0) | 2024.01.08 |
---|---|
아두이노 조도센서 가변 모듈 [SEN040130] (0) | 2024.01.08 |
ESP8266 ESP-01 어댑터 (0) | 2024.01.08 |
ESP8266 라이브러리: 다른 버전 (0) | 2024.01.08 |
아두이노 라이브러리 추가/삭제 (0) | 2024.01.08 |