ESP8266 모듈의 펌웨어서 WiFi 통신을 다루는 예
아두이노 IDE를 이용하여 ESP8266에 펌웨어를 업로드하는 방법은 이 링크를 눌러 확인하세요
테스트 환경
Windows 10
ESP8266 Arduino IDE 1.6.9
ESP-01, USB to TTL 모듈
WiFi 넷트워크에 연결하고 공유기를 통해 할당된 내부 IP주소를 시리얼 통신으로 출력하는 예
/*
* This sketch shows the WiFi event usage
*
* In this example you can receive and process below events.
* Refer to ESP8266WiFiType.h
*
typedef enum {
WIFI_EVENT_STAMODE_CONNECTED = 0,
WIFI_EVENT_STAMODE_DISCONNECTED,
WIFI_EVENT_STAMODE_AUTHMODE_CHANGE,
WIFI_EVENT_STAMODE_GOT_IP,
WIFI_EVENT_STAMODE_DHCP_TIMEOUT,
WIFI_EVENT_SOFTAPMODE_STACONNECTED,
WIFI_EVENT_SOFTAPMODE_STADISCONNECTED,
WIFI_EVENT_SOFTAPMODE_PROBEREQRECVED,
WIFI_EVENT_MAX
} WiFiEvent_t;
*
* hardcopyworld.com
*/
#include <ESP8266WiFi.h>
const char *ssid = "201-1203-office-net";
const char *password = "my_office_pwd";
void WiFiEvent(WiFiEvent_t event)
{
Serial.printf("[WiFi-event] event: %d\n", event);
switch(event)
{
case WIFI_EVENT_STAMODE_GOT_IP:
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
break;
case WIFI_EVENT_STAMODE_DISCONNECTED:
Serial.println("WiFi lost connection");
break;
}
}
void setup()
{
Serial.begin(115200);
//Serial.begin(9600);
// delete old config
WiFi.disconnect(true);
delay(1000);
WiFi.onEvent(WiFiEvent);
WiFi.begin(ssid, password);
Serial.println();
Serial.println();
Serial.println("Wait for WiFi... ");
}
void loop()
{
delay(1000);
}위의 코드를 ESP-01에 업로드 후 시리얼 모니터를 통해 출력된 내용
위의 코드에서 시리얼 통신속도를 115200으로 설정했으므로 아두이노 IDE의 시리얼 모니터 화면의 하단에서 통신속도를 115200으로 설정해주어야 아래와 같은 출력을 확인할 수 있다
Wait for WiFi...
[WiFi-event] event: 0
[WiFi-event] event: 3
WiFi connected
IP address: 192.168.0.12