/******************************************** ----深圳市晶彩智能有限公司---- File name:40.WIFI Web Servers LED.ino Version:V2.0 说明:WIFI Web Server DHT11Temperature and humidity sensor experiment ********************************************/ #include #include #include #include // Enter your WIFI account and password const char* ssid = "CMCC-404"; const char* password = "12345678"; #define DHTPIN 27 // Digital pins to connect the DHT sensor // Uncomment the sensor type in use: #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Create AsyncWebServer object on port 80 AsyncWebServer server(80); String readDHTTemperature() { // The sensor reading can also be up to 2 seconds "old" (this is a very slow sensor) // Read temperature in degrees Celsius (default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) // float t = dht.readTemperature(true); // Check if any reads failed and exit early (try again). if (isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return "--"; } else { Serial.println(t); return String(t); } } String readDHTHumidity() { // The sensor reading can also be up to 2 seconds "old" (this is a very slow sensor) float h = dht.readHumidity(); if (isnan(h)) { Serial.println("Failed to read from DHT sensor!"); return "--"; } else { Serial.println(h); return String(h); } } const char index_html[] PROGMEM = R"rawliteral(

ESP32 DHT11 Server

Temperature %TEMPERATURE% °C

Humidity %HUMIDITY% %

)rawliteral"; // Replace placeholders with DHT values String processor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return readDHTTemperature(); } else if(var == "HUMIDITY"){ return readDHTHumidity(); } return String(); } void setup(){ // Serial port for debugging Serial.begin(115200); dht.begin(); // Connect to a wireless network WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP32 local IP address Serial.println(WiFi.localIP()); // The root/page of the route server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", readDHTTemperature().c_str()); }); server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/plain", readDHTHumidity().c_str()); }); // Start the server server.begin(); } void loop(){ }