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