[ESP8266 AT 명령어 세트 표지]
WIFI-ON V1 노드-모듈의 ESP8266 사용의 기본, AT 명령어를 알아봅시다.
글 내용이 길어 필요한 부분만 보셔도 좋을 것 같습니다.
설명에 앞서 참조할 문서는 "ESP8266 AT Instruction Set Ver.2.0.0" 입니다. Ver.3.0은 최근 버전인 만큼 지원되지 않는 AT 명령어가 있어 Ver2.0.0을 참조했습니다.
본 포스팅에 사용한 APPSKIT 구성은 U-HUB V1 허브-모듈과 PWR-ON V1 노드-모듈을 장착한 모듈과, WIFI-ON V1 노드-모듈을 NODE-STAND V1 확장-스탠드에 장착하여 구성했습니다.
(U-HUB V1과 WIFI-ON V1 두 모듈만 결합해서도 사용할 수 있습니다.)
[U-HUB V1, PWR-ON V1, WIFI-ON V1과 NODE-STAND V1 결합 사진]
본 예제는 PC 아두이노 시리얼모니터에서 AT-Command를 WIFI-ON V1 모듈로 직접 전송하려고 합니다. U-HUB V1의 Hardware Serial(RX, TX)를 통해 WIFI-ON V1 노드-모듈의 UART에 직접 연결해서 AT-Command를 테스트해보는 예시입니다.
다음은 위에서 설명한 하드웨어 연결을 도시하였습니다.
[U-HUB V1 허브모듈의 USB 기능을 경유한 WIFI-ON V1의 UART 연결 도시]
본 동작을 위해 U-HUB V1 허브-모듈은 아두이노 개발환경의 보드매니저에서 "Arduino PRO or PRO Mini"를 선택하고 빈 스케치를 업로드합니다.
해당 동작을 위해서 다음과 같은 조작이 필요합니다.
첫째, 빈 스케치를 U-HUB V1 허브-모듈에 업로드하기 위해 WIFI-ON V1 노드-모듈의 "시리얼 선택 스위치"를 위로 올립니다.
둘째, 아두이노 IDE 환경에서 빈스케치를 만들어 U-HUB V1에 업로드합니다.
세째, 아두이노의 Hardware Serial(0번 핀, 1번 핀)과 WIFI-ON V1 모듈의 시리얼 포트를 연결하기 위해 WIFI-ON V1 모듈의 "시리얼 선택 스위치"를 아래로 내립니다.
네째, 아두이노 IDE 환경 내 시리얼 모니터를 실행시키고 통신속도는 "9600"을 선택합니다.
(WIFI-ON V1 노드-모듈은 출고 시 9600bps로 설정되어 있습니다)
다섯째, AT Command를 전송합니다. AT-Command를 전송할 때 유의해야 할 점은 AT-Command 끝에 "Both NL & CR"을 붙여야 합니다.
[아두이노 IDE 환경 내 시리얼모니터 실행 후 옵션 설정 화면]
다음은 위에서 설명한 U-HUB V1 허브모듈의 USB를 경유하여 WIFI-ON V1 노드-모듈의 UART를 통해 AT 명령어를 테스트해 보는 예제 동작 영상입니다.
"AT" 명령어가 내려가면 "OK"로 응답합니다.
"AT+GMR" 명령어는 ESP-12E 모듈의 펌웨어 버전을 출력합니다. ((제조사에 따라 펌웨어 버전과 출력되는 메시지는 다를 수 있습니다.)
[아두이노 시리얼모니터에서 Hardware Serial을 통해 WIFI-ON V1 노드-모듈 직접 제어하기]
먼저 ESP8266의 AT 명령어 유형에는 4가지가 있습니다.
참고. 하기 설명 창의 응답 메시지는 ESP-12E 제조사에 따라 다를 수 있습니다.
다음은 ESP8266의 4가지 AT 명령어 유형입니다.
[ESP8266 AT Instruction Set Type]
Test 유형의 AT 명령어 규칙은 "AT+#####=?" 으로, 해당 AT 명령어에 해당하는 사용법, 내부 파라메타, 파라메타의 범위를 확인할 때 사용합니다.
Query 유형의 AT 명령어 규칙은 "AT+#####?" 으로, 현재 설정되어 있는 파라메터를 반환합니다.
(Test 유형의 규칙과 다른 점은 '=' 가 없습니다.)
Set 유형의 AT 명령어 규칙은 "AT+#####=####,####,####..." 으로 해당 파라메타를 설정합니다.
Execute 유형의 AT 명령어 규칙은 "AT+#####" 으로, 즉각적인 실행을 합니다.
이상으로 ESP8266의 AT 명령어 4가지 유형에 대해 알아보았습니다.
ESP8266의 Basic AT Command를 알아보겠습니다.
다음은 버전 2.0.0에 수록된 ESP8266의 BASIC 명령어 세트입니다.
[ESP8266 BASIC AT COMMANDS]
AT: 모듈이 정상인지 테스트하는 명령어 입니다.
"Response"는 응답이고 "Parameter"는 없습니다.
AT+RST: ESP8266을 리셋시키는 명령어입니다.
AT+GMR: ESP8266의 펌웨어 버전을 표시하는 명령어입니다.
(응답은 매뉴얼 설명과 ESP-12E 모듈 제조사에 따라 다소 차이가 있을 수 있습니다.)
AT+GSLP: ESP8266을 딥-슬립 모드로 진입하는 명령어입니다.
ESP-12E 모듈에서는 본 기능을 지원하지 않습니다. "ERROR"로 응답합니다.
ATE: AT 명령어를 입력 받을 때 피드백하는(echo back) 명령어입니다.
"ATE0"를 보내면 Echo를 off 시켜 보낸 AT 명령어를 반환하지 않습니다.
"ATE1"을 보내면 Echo를 on 시켜 보낸 AT 명령어를 그대로 반환합니다.
AT+RESTORE: ESP-8266을 공장 초기화 값으로 돌려 놓는 명령어입니다.
ESP-12E 제조사에 따라 공장 초기화 시 초기화 되는 파라메터가 다릅니다. UART 통신속도도 공장 초기값인 "115,200bps"로 변경됩니다.
아두이노의 software Serial과 연결하기 위해서는 "9600"으로 변경해야 합니다.
혹시라도 ESP-12E 제조사에 따라 이 명령어를 수행하면 이후 오동작이 발생할 수도 있을 것 같아 필요한 경우가 아니라면 사용하지 않는 것이 낫겠다는 개인적 의견입니다.
AT+UART: ESP8266의 시리얼 통신 환경을 설정하는 명령어입니다. (사용금지)
어떤 이유인지는 모르나, 이 명령어는 사용하지 말라고 권장하고 있으며, 대신 "AT+UART_DEF" 명령어를 사용해야 합니다.
(시리얼모니터 수행 결과 이미지는 생략했습니다.)
AT+UART_CUR: ESP8266의 현재 UART 환경만 변화시키는 명령어입니다,
전원을 껏다 켜거나 리셋을 하면 이전 설정 값으로 복귀합니다.
AT+UART_DEF: ESP8266의 시리얼 통신 환경을 설정하는 명령어입니다. 내부 플래시 메모리에 저장되어 전원을 껏다 켜거나 리셋이 되어도 이 설정을 그대로 유지합니다.
(공백없이 입력합니다.)
다음 AT 명령어 설명 전 참고로 ESP8266의 3가지 전원관리 모드를 지원합니다.
기본 설정은 "modem-sleep" 모드로 설정되어 있습니다.
AT+SLEEP: ESP8266의 sleep 모드를 설정하는 명령어입니다.
"Station" 모드에서만 사용할 수 있으며, 공장 초기값은 "modem-sleep"입니다.
AT+WAKEUPGPIO: ESP8266이 light-sleep 모드에서 깨어날 때 GPIO의 동작을 설정합니다.
ESP-12E 모듈에서는 본 기능을 지원하지 않습니다. "ERROR"로 응답합니다.
AT+RFPOWER: ESP8266의 송신 출력을 설정하는 명령어입니다.
0에서 82까지 설정이 가능합니다.
(최대 출력 설정이 필요하지 않으시다면, 디폴트 값이 얼마인지 확인이 안되어 변경하지 않으시는 것이 좋겠습니다.)
AT+RFVDD: ESP8266에 VDD3P3 핀에 공급되는 전원에 따라 송신 출력을 설정하는 명령어입니다.
설정 범위는 1900~3300 입니다.
(값을 조정해도 "AT+RFVDD?"의 응답 값은 "65535"로 달라지지 않았습니다.)
지금까지 ESP8266의 BASIC AT 명령어(Commands)에 대해 살펴 보았습니다.
WI-FI AT 명령어와 TCP/IP 관련 명령어는 다음 기회에 연재하겠습니다.
이상으로 포스팅을 마치겠습니다.
감사합니다.