WiFiEvent_t event

WiFiEvent_t เป็นประเภทของตัวแปรที่ใช้ในระบบ ESP32 สำหรับจัดการเหตุการณ์ที่เกิดขึ้นกับการเชื่อมต่อ Wi-Fi โดยจะเก็บค่าสถานะต่าง ๆ ของการเชื่อมต่อ Wi-Fi

ประเภท WiFiEvent_t นี้ประกอบไปด้วยเหตุการณ์ที่เกิดขึ้นในระหว่างการเชื่อมต่อและการตัดการเชื่อมต่อ Wi-Fi โดยเหตุการณ์ที่พบได้ใน WiFiEvent_t

ตารางที่แสดงหมายเลขของเหตุการณ์ (event number) และความหมายของแต่ละเหตุการณ์ในระบบ Wi-Fi ของ ESP32

หมายเลขเหตุการณ์ (Event Number)ชื่อเหตุการณ์ (Event Name)คำอธิบาย
0SYSTEM_EVENT_WIFI_READYWi-Fi พร้อมใช้งาน
1SYSTEM_EVENT_SCAN_DONEการสแกนเครือข่าย Wi-Fi เสร็จสิ้น
2SYSTEM_EVENT_STA_STARTเริ่มต้นการเชื่อมต่อ Wi-Fi ในโหมด STA
3SYSTEM_EVENT_STA_STOPหยุดการทำงานของ Wi-Fi ในโหมด STA
4SYSTEM_EVENT_STA_CONNECTEDเชื่อมต่อ Wi-Fi สำเร็จ (แต่ยังไม่ได้รับ IP)
5SYSTEM_EVENT_STA_GOT_IPได้รับ IP address จาก DHCP หลังจากเชื่อมต่อ Wi-Fi สำเร็จ
6SYSTEM_EVENT_STA_DISCONNECTEDขาดการเชื่อมต่อ Wi-Fi
7SYSTEM_EVENT_AP_STARTเริ่มต้นทำงานในโหมด AP (Access Point)
8SYSTEM_EVENT_AP_STOPหยุดทำงานในโหมด AP
9SYSTEM_EVENT_AP_STACONNECTEDอุปกรณ์ (เช่น สมาร์ทโฟน) เชื่อมต่อกับ ESP32 ในโหมด AP
10SYSTEM_EVENT_AP_STADISCONNECTEDอุปกรณ์ (เช่น สมาร์ทโฟน) ตัดการเชื่อมต่อจาก ESP32 ในโหมด AP
11SYSTEM_EVENT_AP_STAIPASSIGNEDอุปกรณ์ที่เชื่อมต่อในโหมด AP ได้รับ IP address จาก DHCP
12SYSTEM_EVENT_AP_STAIPLEASEDIP address ที่มอบให้กับอุปกรณ์ในโหมด AP ถูกปล่อยคืน
13SYSTEM_EVENT_AP_STAERRORเกิดข้อผิดพลาดในการเชื่อมต่อของอุปกรณ์ในโหมด AP
14SYSTEM_EVENT_STA_BSS_RSSI_LOWระดับสัญญาณ Wi-Fi (RSSI) ต่ำในโหมด STA

ตัวอย่างการใช้งาน
marvinroger/AsyncMqttClient byMarvin ROGER
https://registry.platformio.org/libraries/marvinroger/AsyncMqttClient/installation

void WiFiEvent(WiFiEvent_t event)
{
  Serial.printf("[WiFi-event] event: %d\n", event);
  switch (event)
  {
  case SYSTEM_EVENT_STA_GOT_IP:
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
    connectToMqtt();
    break;
  case SYSTEM_EVENT_STA_DISCONNECTED:
    Serial.println("WiFi lost connection");
    xTimerStop(mqttReconnectTimer, 0); // ensure we don't reconnect to MQTT while reconnecting to Wi-Fi
    xTimerStart(wifiReconnectTimer, 0);
    break;
  }
}

Leave a Comment