From a65bd61d4d13311361b56a2e45fa5dfee0a21cb7 Mon Sep 17 00:00:00 2001 From: Nils Schulte Date: Sun, 14 Sep 2025 19:00:35 +0200 Subject: [PATCH] wifi test --- src/main.cpp | 77 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4bb1a5a..7c194ba 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,40 +1,66 @@ #include "Arduino.h" #include +#include "esp_wifi.h" #include "USB.h" USBCDC usbserial; #define Serial usbserial -const char *ssid = "Galaxy S23 BD46"; -const char *password = "nvbuxw2kciuztqh"; +const char *ssid = "/dev/null"; +const char *password = "Wohnzimmerbodenfuge"; + +// WARNING: This function is called from a separate FreeRTOS task (thread)! +void WiFiEvent(WiFiEvent_t event) { + Serial.printf("[WiFi-event] event: %d\n", event); -void WiFiEvent(WiFiEvent_t event, WiFiEventInfo_t info) { switch (event) { - case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: - Serial.printf("Disconnected from WiFi, reason: %d\n\r", info.wifi_sta_disconnected.reason); - break; - case ARDUINO_EVENT_WIFI_STA_CONNECTED: - Serial.println("Connected to AP!"); - break; + case ARDUINO_EVENT_WIFI_READY: Serial.println("WiFi interface ready"); break; + case ARDUINO_EVENT_WIFI_SCAN_DONE: Serial.println("Completed scan for access points"); break; + case ARDUINO_EVENT_WIFI_STA_START: Serial.println("WiFi client started"); break; + case ARDUINO_EVENT_WIFI_STA_STOP: Serial.println("WiFi clients stopped"); break; + case ARDUINO_EVENT_WIFI_STA_CONNECTED: Serial.println("Connected to access point"); break; + case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: Serial.println("Disconnected from WiFi access point"); break; + case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE: Serial.println("Authentication mode of access point has changed"); break; case ARDUINO_EVENT_WIFI_STA_GOT_IP: - Serial.print("Got IP: "); + Serial.print("Obtained IP address: "); Serial.println(WiFi.localIP()); break; - default: - Serial.printf("WiFi event: %d\n\r", event); - break; + case ARDUINO_EVENT_WIFI_STA_LOST_IP: Serial.println("Lost IP address and IP address is reset to 0"); break; + case ARDUINO_EVENT_WPS_ER_SUCCESS: Serial.println("WiFi Protected Setup (WPS): succeeded in enrollee mode"); break; + case ARDUINO_EVENT_WPS_ER_FAILED: Serial.println("WiFi Protected Setup (WPS): failed in enrollee mode"); break; + case ARDUINO_EVENT_WPS_ER_TIMEOUT: Serial.println("WiFi Protected Setup (WPS): timeout in enrollee mode"); break; + case ARDUINO_EVENT_WPS_ER_PIN: Serial.println("WiFi Protected Setup (WPS): pin code in enrollee mode"); break; + case ARDUINO_EVENT_WIFI_AP_START: Serial.println("WiFi access point started"); break; + case ARDUINO_EVENT_WIFI_AP_STOP: Serial.println("WiFi access point stopped"); break; + case ARDUINO_EVENT_WIFI_AP_STACONNECTED: Serial.println("Client connected"); break; + case ARDUINO_EVENT_WIFI_AP_STADISCONNECTED: Serial.println("Client disconnected"); break; + case ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED: Serial.println("Assigned IP address to client"); break; + case ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED: Serial.println("Received probe request"); break; + case ARDUINO_EVENT_WIFI_AP_GOT_IP6: Serial.println("AP IPv6 is preferred"); break; + case ARDUINO_EVENT_WIFI_STA_GOT_IP6: Serial.println("STA IPv6 is preferred"); break; + case ARDUINO_EVENT_ETH_GOT_IP6: Serial.println("Ethernet IPv6 is preferred"); break; + case ARDUINO_EVENT_ETH_START: Serial.println("Ethernet started"); break; + case ARDUINO_EVENT_ETH_STOP: Serial.println("Ethernet stopped"); break; + case ARDUINO_EVENT_ETH_CONNECTED: Serial.println("Ethernet connected"); break; + case ARDUINO_EVENT_ETH_DISCONNECTED: Serial.println("Ethernet disconnected"); break; + case ARDUINO_EVENT_ETH_GOT_IP: Serial.println("Obtained IP address"); break; + default: break; } } +NetworkServer server(80); + void setup() { Serial.begin(); USB.begin(); Serial.setDebugOutput(true); Serial.println(); + //WiFi.useStaticBuffers(true); delay(2000); Serial.println("Scanning for Wi-Fi networks..."); int n = WiFi.scanNetworks(); + //WiFi.setTxPower(WIFI_POWER_8_5dBm); for (int i = 0; i < n; ++i) { Serial.printf("%d: %s (%d dBm) CH %d Enc %d\n\r", i + 1, WiFi.SSID(i).c_str(), @@ -42,15 +68,36 @@ void setup() { WiFi.encryptionType(i)); } delay(2000); + //Serial.printf("max tx power: %d\r\n", esp_wifi_get_max_tx_power()); + + WiFi.setTxPower(WIFI_POWER_2dBm); + // You can remove the password parameter if you want the AP to be open. + // a valid password must have more than 7 characters + //if (!WiFi.softAP(ssid, password)) { + // while (1) { + // Serial.println("Soft AP creation failed.");delay(1000);} + //} + //IPAddress myIP = WiFi.softAPIP(); + //Serial.print("AP IP address: "); + //Serial.println(myIP); + //server.begin(); +// + //return; WiFi.mode(WIFI_STA); WiFi.disconnect(true); delay(100); - WiFi.onEvent(WiFiEvent); - WiFi.begin(ssid, password); + // Register event handler + WiFi.onEvent(WiFiEvent, ARDUINO_EVENT_WIFI_STA_START); + WiFi.onEvent(WiFiEvent, ARDUINO_EVENT_WIFI_STA_CONNECTED); + WiFi.onEvent(WiFiEvent, ARDUINO_EVENT_WIFI_STA_GOT_IP); + WiFi.onEvent(WiFiEvent, ARDUINO_EVENT_WIFI_STA_DISCONNECTED); + + WiFi.begin(ssid, password); } void loop() { + //WiFi.begin(ssid, password); delay(1000); } \ No newline at end of file