본문 바로가기

IoT/ESP8266 WiFi Comm

ESP8266 WiFi example

ESP8266 모듈의 펌웨어서 WiFi 통신을 다루는 예



아두이노 IDE를 이용하여 ESP8266에 펌웨어를 업로드하는 방법은 이 링크를 눌러 확인하세요


테스트 환경

Windows 10

ESP8266 Arduino IDE 1.6.9

ESP-01, USB to TTL 모듈


https://github.com/godstale/ESP8266_Arduino_IDE_Example/blob/master/example/WiFiClientEvents/WiFiClientEvents.ino


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