#include #include #include #define DHTTYPE DHT11 #define DHTPIN 17 // D7 = GPIO17 on XIAO ESP32-C6 const char* ssid = "iPhoneBENI"; const char* password = "FabAcademy26"; DHT dht(DHTPIN, DHTTYPE); WebServer server(80); float temperature = 0.0; float humidity = 0.0; void handleRoot() { String html = ""; html += ""; html += ""; html += "XIAO ESP32-C6 Sensor"; html += ""; html += "

XIAO ESP32-C6 Sensor Node

"; html += "

Temperature: " + String(temperature, 1) + " °C

"; html += "

Humidity: " + String(humidity, 1) + " %

"; html += ""; server.send(200, "text/html", html); } void handleData() { String json = "{"; json += "\"temperature\":" + String(temperature, 1) + ","; json += "\"humidity\":" + String(humidity, 1); json += "}"; server.send(200, "application/json", json); } void printWiFiStatus() { wl_status_t status = WiFi.status(); Serial.print("WiFi status: "); switch (status) { case WL_NO_SHIELD: Serial.println("WL_NO_SHIELD"); break; case WL_IDLE_STATUS: Serial.println("WL_IDLE_STATUS"); break; case WL_NO_SSID_AVAIL: Serial.println("WL_NO_SSID_AVAIL"); break; case WL_SCAN_COMPLETED: Serial.println("WL_SCAN_COMPLETED"); break; case WL_CONNECTED: Serial.println("WL_CONNECTED"); break; case WL_CONNECT_FAILED: Serial.println("WL_CONNECT_FAILED"); break; case WL_CONNECTION_LOST:Serial.println("WL_CONNECTION_LOST"); break; case WL_DISCONNECTED: Serial.println("WL_DISCONNECTED"); break; default: Serial.println("UNKNOWN"); break; } } void setup() { Serial.begin(115200); delay(2000); Serial.println(); Serial.println("Booting..."); dht.begin(); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.print("Connecting to Wi-Fi"); int attempts = 0; while (WiFi.status() != WL_CONNECTED && attempts < 30) { delay(500); Serial.print("."); attempts++; } Serial.println(); if (WiFi.status() == WL_CONNECTED) { Serial.println("Wi-Fi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.on("/data", handleData); server.begin(); Serial.println("Web server started"); } else { Serial.println("Wi-Fi connection failed"); printWiFiStatus(); } } void loop() { if (WiFi.status() == WL_CONNECTED) { float newHumidity = dht.readHumidity(); float newTemperature = dht.readTemperature(); if (!isnan(newHumidity) && !isnan(newTemperature)) { humidity = newHumidity; temperature = newTemperature; Serial.print("# Temp: "); Serial.print(temperature); Serial.print(" °C | Hum: "); Serial.print(humidity); Serial.println(" %"); } else { Serial.println("Error reading from DHT11 sensor"); } server.handleClient(); } else { Serial.println("Not connected to Wi-Fi"); printWiFiStatus(); } delay(2000); }