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=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