top of page

[제품노트_WIFI-ON V1] ESP8266 WIFI 모듈 3편 "무선 공유기 연결"

ESP8266의 일부 WIFI AT 명령어를 사용하여 무선 공유기와 연결해 보겠습니다.

ESP8266 WIFI 모듈 2편을 보신 분들은 아래 내용을 건너뛰고

(본 편 시작) 부터 참고하시면 됩니다.

 

설명에 앞서 참조할 문서는 "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 노드-모듈 직접 제어하기]

 

(본 편 시작)

필요한 WIFI AT 명령어를 무선 공유기와 연결 순서대로 알아보겠습니다.


무선 공유기에 연결하기 위해서는 WIFI-ON V1 노드-모듈의 WIFI 모드를 "station" 또는 'softAP + station"으로 설정해야 합니다. 여기서는 "softAP + station" 모드로 설정하겠습니다.




첫째, 현재 WIFI-ON V1 노드-모듈의 WIFI 모드를 확인하겠습니다.


이에 필요한 AT 명령어는 "AT+CWMODE" 입니다.

그러나 제조사에서는 이 명령어를 권장하지 않으므로 사용하지 않습니다.


대신 "AT+CWMODE_DEF" 명령어를 사용했습니다.


AT 명령어 순서는 다음과 같습니다.

AT+CWMODE_DEF=? : 파라메타 설정 범위 확인

AT+CWMODE_DEF? : 현재 파라메타 설정 값 확인

AT+CWMODE_DEF=3: softAP + station 모드로 설정 (3으로 설정되어 있으나 예제로써 실행)




둘째, 접속할 수 있는 무선 공유기 리스트와 목표 무선 공유기를 찾습니다.


이에 필요한 AT 명령어는 "AT+CWLAP" 입니다.

이 명령어는 연결할 수 있는 전제 무선 공유기를 검색하거나, "SSID와 MAC 주소" 검색 또는 "SSID" 만 검색이 가능합니다.


"AT+CWLAP" 명령어로 전체 무선 공유기를 검색합니다.

응답은 "+CWLAP:암호화방법,SSID,RSSS,MAC_ADDRESS,FREQ_CHANNEL,FREQ_OFFSET" 값으로 응답합니다.

맨 아래 붉은 박스가 연결할 무선 공유기입니다. SSID는 "TP-LINK_AD12" 입니다.




이제부터는 목표 무선 공유기의 SSID와 PASSWORD를 알고 있다고 가정하겠습니다.




세째, 목표 무선 공유기에 접속합니다.


이에 필요한 AT 명령어는 "AT+CWJAP" 입니다.

그러나 제조사에서는 이 명령어를 권장하지 않으므로 사용하지 않습니다.


대신 "AT+CWJAP_CUR" 명령어를 사용했습니다.

무선 공유기에 연결할 때마다 플래시에 저장할 필요가 없을 것 같아 "AT+CWJAP_DEF" 명령어 대신 이 명령어를 사용했습니다.


"AT+CWJAP_CUR" 명령어로 전체 무선 공유기와 연결합니다.

정상적으로 연결된 경우 "WIFI CONNECTED"와 "WIFI GOT IP" 그리고 "OK" 메시지를 반환합니다.


부여받은 IP 정보를 확인하기 위해 "AT+CIFSR" 명령어를 사용했습니다.


상단의 붉은 박스는 softAP의 IP와 MAC 주소이고, 하단의 붉은 박스는 station의 IP와 MAC 정보입니다.




네째, 목표 무선 공유기에 접속을 종료합니다.


이에 필요한 AT 명령어는 "AT+CWQAP" 입니다.


정상적으로 종료된 경우 "WIFI DISCONNECT"와 "OK" 메시지를 반환합니다.


이 상태의 IP 정보를 확인하기 위해 "AT+CIFSR" 명령어를 사용했습니다.

softAP의 정보는 그대로 남아있고, station의 IP는 초기화되었습니다.




다음은 위 무선 공유기 접속에 대한 동영상입니다.

예제를 위해 무선 공유기의 암호를 간단하게 바꿨습니다.


[WIFI-ON V1 노드-모듈을 사용하여 무선 공유기에 접속하기]



이번에는 시리얼모니터에서 영문 문자 하나를 명령을 주고,

아두이노가 문자 받아서 무선 공유기와 접속하는 예제를 다루겠습니다.



다음은 아래 동작을 위한 하드웨어 연결을 도시하였습니다.

[U-HUB V1 허브모듈과 WIFI-ON V1의 UART 연결 도시]



해당 동작을 위해서는 다음과 같은 조작이 필요합니다.


첫째, 아두이노의 Software Serial(8번 핀, 9번 핀)과 WIFI-ON V1 모듈의 시리얼 포트를 연결하기 위해 "시리얼 선택 스위치"를 위로 올립니다.


둘째, U-HUB V1 허브-모듈의 시리얼 포트(0, 1)에서 문자를 입력받아 WIFI-ON V1 노드-모듈과 연결된 소프트시리얼 포트(8, 9) 간 연결하는 스케치를 업로드합니다.

아래 스케치는 PC의 시리얼모니터에서 영문자를 받아 해당되는 AT 명령어를 Software Serial을 통해 WIFI-ON V1 노드-모듈에 전달합니다.

[시리얼모니터를 통한 무선 공유기 접속 스케치 예제]

세째, 아두이노 IDE 환경 내 시리얼모니터를 실행시키고 통신속도는 "9600"을 선택합니다.


네째, 동작하고자 하는 문자를 시리얼모니터에서 전송합니다.


M: WIFI-ON V1 노드-모듈의 WIFI 모드를 softAP + station으로 설정합니다.

C: 무선 공유기와 연결합니다.

I: 할당 받은 IP를 표시합니다.

D: 연결을 끊습니다.




다음은 위에서 설명한 시리얼모니터의 명령을 받아 WIFI-ON V1 노드-모듈이

무선 공유기와 연결하는 예제 영상입니다.


[시리얼모니터를 통한 무선 공유기 접속 동영상]



지금까지 WIFI-ON V1 노드-모듈을 사용하여 무선 공유기 연결 방법을 살펴 보았습니다.


이상으로 포스팅을 마치겠습니다.


감사합니다.


bottom of page