#include #define STA_SSID "YOUR-SSID" #define STA_PASS "YOUR-PASS" #define AP_SSID "ESP32-WIFI-EXTENDER" #define AP_PASS "password" IPAddress ap_ip(192, 168, 4, 1); IPAddress ap_mask(255, 255, 255, 0); IPAddress ap_leaseStart(192, 168, 4, 2); IPAddress ap_dns(8, 8, 4, 4); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Network.onEvent(onEvent); WiFi.AP.begin(); WiFi.AP.config(ap_ip, ap_ip, ap_mask, ap_leaseStart, ap_dns); WiFi.AP.create(AP_SSID, AP_PASS); if (!WiFi.AP.waitStatusBits(ESP_NETIF_STARTED_BIT, 1000)) { Serial.println("Failed to start AP!"); return; } WiFi.begin(STA_SSID, STA_PASS); } void loop() { delay(20000); } void onEvent(arduino_event_id_t event, arduino_event_info_t info) { switch (event) { case ARDUINO_EVENT_WIFI_STA_START: Serial.println("STA Started"); break; case ARDUINO_EVENT_WIFI_STA_CONNECTED: Serial.println("STA Connected"); break; case ARDUINO_EVENT_WIFI_STA_GOT_IP: Serial.println("STA Got IP"); Serial.println(WiFi.STA); WiFi.AP.enableNAPT(true); break; case ARDUINO_EVENT_WIFI_STA_LOST_IP: Serial.println("STA Lost IP"); WiFi.AP.enableNAPT(false); break; case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: Serial.println("STA Disconnected"); WiFi.AP.enableNAPT(false); break; case ARDUINO_EVENT_WIFI_STA_STOP: Serial.println("STA Stopped"); break; case ARDUINO_EVENT_WIFI_AP_START: Serial.println("AP Started"); Serial.println(WiFi.AP); break; case ARDUINO_EVENT_WIFI_AP_STACONNECTED: Serial.println("AP STA Connected"); break; case ARDUINO_EVENT_WIFI_AP_STADISCONNECTED: Serial.println("AP STA Disconnected"); break; case ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED: Serial.print("AP STA IP Assigned: "); Serial.println(IPAddress(info.wifi_ap_staipassigned.ip.addr)); break; case ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED: Serial.println("AP Probe Request Received"); break; case ARDUINO_EVENT_WIFI_AP_STOP: Serial.println("AP Stopped"); break; default: break; } }