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가 출력되면 정상적으로 연결이 되었다고 판단한다.
AT 명령 테스트
AT
AT 명령을 입력하면 OK가 반환되어야 정상 입력이 된 것이다.
글자가 깨진 것은 설정을 통해 변경할 수 있다.
보드레이트 설정
보드레이트를 시리얼과 동일한 속도인 9600으로 변경한다. SoftwareSerial은 115200을 지원하지 않기 때문에 글자가 깨지는 현상이 발생하기 때문이다.
AT+CIOBAUD=9600펌웨어 업데이트를 한 경우 이 방법이 되지 않으므로 다음 사이트를 참고한다.
보드레이트를 변경한 뒤 반드시 변경한 보드레이트로 코드를 변경해야 한다.
WiFiSerial.begin(9600);모드 확인
현재 모드를 확인하기 위해서는 다음의 명령을 Console에 입력한다.
AT+CWMODE?모드 종류
모드의 종류와 설명은 다음과 같다.
Station : Client 모드
AP : Host 모드
Dual : 혼합 모드
모드 변경
WiFi에 연결하기 위해서는 Station 모드로 변경해야 한다.
AT+CWMODE=1OK가 나오면 성공이다.
와이파이 검색
감지되는 와이파이를 검색하여 출력하도록 다음 명령을 작성한다.
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