본문 바로가기
앱스킷(APPSKIT) 강좌

[앱스킷](WIFI-ON V1) ESP8266 WIFI 모듈 사용방법 알아보기 - 1편

by 오마이엔지니어 2018. 12. 12.
반응형


[WIFI-ON V1 노드모듈-저전력 블루투스 모듈]

 

 

 

WIFI를 통해 무선 네트워크로 데이터를 전송하고 싶다면?

 

아두이노에서 사용하기 편리한 시리얼 통신 WIFI 모듈을 내장한 WIFI-ON V1 노드-모듈을 출시했습니다.

 

본 포스팅에서는 Espressif systems사의 ESP8266 칩셋이 적용된 "ESP-12E" 모듈을 장착한 WIF-ON V1 노드-모듈을 통해 AT-Command 사용 부터 데이터를 전송하는 예제를 통해 기초적인 제품사용에 대해 수 회에 걸쳐 차근차근 알아보겠습니다.

 

 

 

먼저 ESP8266 관련 기술자료 중 주요 3개 문서를 살펴 보겠습니다.

 

ESP-12E WIFI 모듈은 ESP8266 칩셋을 적용한 WIFI 모듈 중 하나입니다. 

 

지원하는 WIFI 프로토콜로는 802.11b/g/n 이며, UART, I2C, GPIO, ADC 기능을 내장하고 있습니다. 

(WIFI-ON V1 노드-모듈은 U-HUB V1 허브-모듈과 UART를 사용하여 통신합니다.)

 

지원되는 WIFI 모드는 3가지로 STATION, softAP 그리고 softAP+STATION 모드입니다.

STATION 모드는 일종의 무선 랜카드로 볼 수 있으며, softAP는 일종의 무선공유기로 이해하면 좋을 것 같습니다. 

 

*ESP-12E WIFI 모듈 데이터시트 버전 1.0 (링크)

 

 

ESP-12E WIFI 모듈은 아두이노가 WIFI 무선 전송을 할 때 사용할 수 있는 다양한 AT 명령어를 제공합니다. 그 전 버전이 2.0.0 이었는데 최근에 버전에 3.0도 나왔네요.

ESP8266을 사용한 모듈이 워낙 많아서 모든  AT 명령어를 지원하지 않지만 공통적으로 사용되는 기능은 사용할 수 있습니다.

 

ESP-12E WIFI 모듈을 아두이노와 연결해서 사용하는 경우가 빈번합니다. 이때 아두이노의 software Serial과 연결하는 경우가 많기 때문에 UART 통신속도를 "9600bps"로 설정해서 사용합니다.

 

이러한 이유로 ESP8266의 펌웨어 업데이트를 하는 경우가 있는데,

펌웨어를 변경하지 않고 간단한 AT 명령어로 UART 통신 환경을 설정할 수 있습니다.

(UART 통신 환경설정 AT 명령어 예시 - "AT+UART=9600,8,1,0,0")

 

*ESP8266 AT 명령어 SET 버전 2.0.0 (링크)

*ESP8266 AT 명령어 SET 버전 3.0 (링크)

 

 

ESP-12E WIFI 모듈에서 지원하는 AT 명령어를 사용하는 예제 문서입니다.

수록된 예제는 TCP/IP 클라이언트와 UDP 전송, WIFI PASSTHROUGH, TCP 서버로 유용한 예제입니다.

 

*ESP8266 AT 명령어 예제 버전 1.3 (링크)

 

 

이상으로 WIFI-ON V1 노드-모듈을 다루기 위한 기본적인 ESP8266에 관한 문서를 살펴 보았습니다.

 

 

 

이제 WIFI-ON V1 노드-모듈을 알아보겠습니다.

 

WIFI-ON V1 노드-모듈은 한 개의 U-HUB V1 허브-모듈을 장착할 수 있는 슬롯과 ESP-12E WIFI 모듈이 내장되어 있습니다.

 

2개의 2.54mm, 1X12로 배열된 헤더핀은 U-HUB V1 허브모듈을 장착하면 전원, 아날로그, 디지털 I/O가 연결됩니다.

 

먼저 각 부 명칭을 알아보겠습니다.

[WIFI-ON V1 각 부 명칭]

 

 

노드모듈을 정면으로 보았을 때, 크게 왼쪽으로 U-HUB V1 허브모듈을 장착할 수 있는 커넥터와 오른쪽중단에 ESP-12E 모듈이 있습니다.

 

WIFI-ON V1 노드-모듈은 802.11b/g/n과 호환되며, 시리얼을 통해 AT-Command로 제어할 수 있습니다. 부가적으로 1개의 ADC 입력과, 5개의 GPIO 입/출력 인터페이스가 연결되어 있습니다.

 

 

U-HUB V1 허브-모듈과 WIFI-ON V1 노드-모듈을 결합해 보았습니다. 

[U-HUB V1과 WIFI-ON V1 결합 후 사진-WIFI 아두이노 코어모듈]

 

 

외형을 살펴보면, U-HUB V1 모듈 착/탈커넥터 사이로 배터리 연결단자, 칩저항으로 연결할 수 있는 패드, 시리얼 선택 스위치, 그리고 부가 신호핀이 배치되어 있습니다.

 [U-HUB 모듈 착/탈커넥터, 리튬 배터리 연결단자와 부가신호 핀] 

 

 

가장 왼쪽에는 리튬이온 배터리 연결단자가 있습니다.

이 기능은 U-HUB V1 허브모듈이 반드시 장착되어야 사용할 수 있는 기능입니다. U-HUB V1 허브모듈에는 리튬이온 배터리 충전기능이 내장되어 있어 이 기능을 이용하는 것입니다.

(U-HUB V1은 3.7[V] 리튬이온 배터리를 지원하며 충전전류는 50[mA]로 제한되어 있습니다.)

 

리튬-이온 전지는 직접 연결하는 것 보다 on/OFF 스위치를 통해 연결하는 것이 좋습니다.

 

 

U-HUB V1 모듈 착/탈 커넥터 사이로 WIFI 모듈의 부팅 모드을 설정하는 "FLASH"와 "UART" 저항 설정부가 위치하고 있습니다. 디폴트 설정으로 "FLASH"에 2012 사이즈DML 10K 저항이 연결되어 있습니다.

 

 

"EXT/INT" 시리얼 선택 스위치는 WIFI-ON V1 노드-모듈의 시리얼 포트를 U-HUB V1 허브-모듈 간섭없이 직접 제어하거나 U-HUB V1 허브모듈의 소프트시리얼 기능을 통해 8번과 9번에 연결시켜 간접 제어를 할 수 있도록 선택하는 기능입니다.

(이해가 다소 어려울 수 있으나 이후 예제를 사용해 보시면 이해에 도움이 될 것 같습니다.)

 

노드-모듈 중앙에는 부가신호 핀으로 전원과 ESP-12E 모듈의 일부 I/O를 따로 연결해 놓았습니다.

필요에 따라서 배선으로 결선하여 사용할 수 있습니다. 

부가신호 핀 설명을 하면, "ADC"은 아날로그 신호 입력, "CHPD"는 칩-인에이블, "3.3R/T"는 3.3V RXD/TXD, "IO0, IO2, IO12, IO13, IO15"는 GPIO 입/출력핀입니다.

 

 

보드 기준 우측 중앙에 ESP-12E 모듈과 U-HUB V1 허브-모듈(아두이노)의 입출력 핀이 1x12 헤더핀에 배치되어 있습니다.

 [EPS-12E WIFI 모듈과 U-HUB V1 허브-모듈 I/Os]

 

 

 

이제 WIFI-ON V1 노드-모듈의 기본적인 사용을 소개하겠습니다.

 

아래 사진은 WIFI-ON V1 노드모듈을 NODE-STAND V1 확장-스탠드에 장착한 사진입니다.

 [WIFI-ON V1과 NODE-STAND V1 결합 사진]

 

 

본 설명에서는 위 사진 처럼 U-HUB V1과 PWR-ON V1을 결합하여 NODE-STAND V1에 장착하고, WIFI-ON V1을 NODE-STAND V1에 장착해서 동작시켜 보겠습니다.

(U-HUB V1과 WIFI-ON V1 두 모듈만 결합해서도 사용할 수 있습니다.)

 

다음 동작 설명은 PC 아두이노 시리얼모니터에서 AT-Command를  WIFI-ON V1 모듈로 전송하려고 합니다. U-HUB V1의 Hardware Serial(RX, TX)를 통해 WIFI-ON V1 노드-모듈의 UART에 직접 연결해서 AT-Command를  테스트해보는 예시입니다.

 

이 구조는 WIFI-ON V1 노드-모듈의 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 명령어를 테스트해 보는 예제 동작 영상입니다.

 [아두이노 시리얼모니터에서 Hardware Serial을 통해 WIFI-ON V1 모듈 직접 제어하기] 

 

 

상기 방식으로 WIFI-ON V1  노드-모듈의 AT-Command를 테스트하여 기본 사용을 익힐 수 있습니다.

 

 

 

다음은 아두이노의 소프트시리얼을 사용한 예제를 동작시켜 보겠습니다.

 

다음 동작 설명은 PC 아두이노 시리얼모니터는 아두이노(U-HUB V1)에 연결하고 ESP-12E 모듈의 UART는 아두이노(U-HUB V1)의 Software Serial(8번 핀, 9번 핀)로 연결해서 AT-Command를  테스트해보는 예시입니다.

 

이 구조는 아두이노가 BLE 모듈을 직접 제어할 때 일반적으로 사용합니다.

 [U-HUB V1 허브모듈의 소프트시리얼을 경유한 WIFI-ON V1의 UART 연결 도시]

 

 

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

 

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

 

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

 

(아래 스케치는 아두이노 "시리얼 모니터"를 통해 Hardware Serial port와 WIFI-ON V1과 연결된 Software Serial port간 데이터를 전송하는 예제입니다.

example code.txt


/*                                                                                                                    */
#include <SoftwareSerial.h>
 
SoftwareSerial SerialESP12(8, 9);
 
byte bDataFromWiFi;
byte bDataFromPC;
 
void setup()
{
  Serial.begin(9600);
  SerialESP12.begin(9600);
}
 
void loop() {
 
  SerialESP12.listen();
 
  while(SerialESP12.available() > 0)
  {
    bDataFromWiFi = SerialESP12.read();
    Serial.write(bDataFromWiFi);
  }
 
  while(Serial.available() > 0)
  {
    bDataFromPC = Serial.read();
    SerialESP12.write(bDataFromPC);
  }
}

 [시리얼모니터를 통한 아두이노시리얼과 소프트시리얼 Pass-through 스케치 예제]

 

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

 

네째, AT 명령어를 전송합니다. AT 명령어를 전송할 때 유의해야 할 점은 AT 명령어 끝에 "Both NL & CR"을 붙여야 합니다.

 [아두이노 IDE 환경 내 시리얼모니터 실행 후 옵션 설정 화면]

 

 

다음은 위에서 설명한 U-HUB V1 허브모듈의 USB를 경유하여 WIFI-ON V1 노드-모듈의 UART를 통해 AT 명령어를  전송하는 예제 영상입니다. (동영상 후반부)

 [아두이노 Software Serial을 통해 WIFI-ON V1 모듈 간접 제어하기] 

 

 

 

WIFI-ON V1 노드-모듈을 기본적인 동작과 Hardware Serial 포트를 통한 직접 통신과 Software Serial 포트를 통한 간접 통신에 대한 이해에 도움이 되었으면 합니다.

 

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

 

감사합니다.

앱스킷 구매처
앱스킷 공식 홈페이지

example code.txt
0.0MB
반응형

댓글