ESP-01

ESP-01을 활용한 Wi-Fi 통신 구

이 문서에서는 ESP01 모듈을 이용하여 WiFi를 이용하는 방법에 대해서 살펴본다.

결선도

  • [esp01:GND] to [arduino:GND]

  • [esp01:VCC] to [arduino:5V]

  • [esp01:RX] to [arduino:Digital 3PIN]

  • [esp01:TX] to [arduino:Digital 2PIN]

샘플 코드

샘플코드는 블루투스 통신때와 동일하며, 설정 후에 본격적인 사용이 가능하다.

#include <SoftwareSerial.h>

//RX를 2번, TX를 3번으로 하여 시리얼 생성
//여기서 주의할 점은 
// - esp01의 RX와 연결된 핀이 TX 역할을 수행
// - esp01의 TX와 연결된 핀이 RX 역할을 수행
SoftwareSerial WiFiSerial(2, 3);//RX, TX 순서대로(esp01과 반대로)

void setup(){
  Serial.begin(9600);
  WiFiSerial.begin(9600);
  Serial.println("Enter AT Command");
}

void loop(){
  if(WiFiSerial.available()){
    Serial.write(WiFiSerial.read());
  }
  if(Serial.available()){
    WiFiSerial.write(Serial.read());    
  }
}

컴파일

Ctrl+R 또는 스케치 메뉴의 확인/컴파일을 눌러 컴파일을 진행한다.

업로드

Ctrl+U 또는 스케치 메뉴의 업로드를 눌러 업로드를 진행한다.

실행 결과

AT 명령을 전송하여 연결 여부를 확인한다. OK가 출력되면 정상적으로 연결이 되었다고 판단한다.

정상적으로 연결되지 않은 경우에는 다음을 확인한다.

  1. WiFiSerial.begin(115200);

  2. Serial.begin(9600);

  3. 시리얼 모니터 출력 상태 Both NL & CR 및 9600 보드레이

AT 명령 테스트

AT

AT 명령을 입력하면 OK가 반환되어야 정상 입력이 된 것이다. 글자가 깨진 것은 설정을 통해 변경할 수 있다.

보드레이트 설정

보드레이트를 시리얼과 동일한 속도인 9600으로 변경한다. SoftwareSerial은 115200을 지원하지 않기 때문에 글자가 깨지는 현상이 발생하기 때문이다.

AT+CIOBAUD=9600

펌웨어 업데이트를 한 경우 이 방법이 되지 않으므로 다음 사이트를 참고한다.

보드레이트를 변경한 뒤 반드시 변경한 보드레이트로 코드를 변경해야 한다.

WiFiSerial.begin(9600);

모드 확인

현재 모드를 확인하기 위해서는 다음의 명령을 Console에 입력한다.

AT+CWMODE?

모드 종류

모드의 종류와 설명은 다음과 같다.

  1. Station : Client 모드

  2. AP : Host 모드

  3. Dual : 혼합 모드

모드 변경

WiFi에 연결하기 위해서는 Station 모드로 변경해야 한다.

AT+CWMODE=1

OK가 나오면 성공이다.

와이파이 검색

감지되는 와이파이를 검색하여 출력하도록 다음 명령을 작성한다.

AT+CWLAP

와이파이 접속

와이파이 접속을 위해서는 SSID와 Password가 필요하다.

AT+CWJAP="SSID","Password"

다음 메세지가 출력되면 정상적으로 연결된 것이다.

WIFI CONNECTED
WIFI GOT IP

아이피 주소 확인

다음 명령을 통해 연결된 기기의 아이피 주소를 확인한다.

AT+CIFSR

아이피가 다음 형태로 출력된다.

+CIFSR:STAIP,"192.168.20.131"
+CIFSR:STAMAC,"f4:cf:a2:72:50:16"

다중 연결 설정

와이파이를 이용하여 아두이노를 서버로 사용하려면 다중 연결을 허용해야 한다.

AT+CIPMUX=1

위와 같이 설정하면 다중 연결이 허용 상태가 된다. 설정값의 종류는 다음과 같다.

  • Single Connection : 0

  • Multiple Connection : 1

Last updated