======== ESP32: Mesure de temperature ======== ==== Liens Web ==== [[https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/| ESP32 : DHT11/22]] [[https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-web-server-arduino-ide/|ESP32 : ServeurWeb1 DHT11/22]] [[https://microcontrollerslab.com/esp32-dht11-dht22-web-server/|ESP32 : ServeurWeb2 DHT11/22]] [[https://projetsdiy.fr/esp8266-dht22-mqtt-projet-objet-connecte/|ESP32 : Objet connecté DGT11/22]] [[https://thingsboard.io/docs/samples/esp32/gpio-control-pico-kit-dht22-sensor/|ESP32 PicoKit : DHT22]] [[https://github.com/bertmelis/esp32DHT|ESP32 : Librairie DHT22]] [[https://lastminuteengineers.com/dht11-dht22-arduino-tutorial/|DHT11/22]] [[https://roboindia.com/tutorials/DHT-sensor-arduino/|ARduino : DHT11/22]] ==== Test en réel sur carte ESP32 ==== === Matériel === **ESP32 TTGO LORA 32 V2.0** [[https://github.com/LilyGO/TTGO-LORA32|Caracteristiques ESP32 TTGO LORA 32 V2.0]] {{ :start:arduino:esp32:htb1v_abbtni8kjjsszbq6z4kfxah.resized.jpg?direct&400 |}} ** DHT 22 ** [[https://www.didel.com/DHT22.pdf|Caractéristiques DHT22 PDF FR]] {{ :start:arduino:esp32:dht22-pinout-800x800.jpg?direct&300 |}} {{ :start:arduino:esp32:capture_du_2021-03-16_12-38-57.png?direct&600 |}} === Branchement === ESP32 Lora32 V2 + DHT22 {{ :start:arduino:esp32:capture_du_2021-03-16_12-21-43.jpg?direct&400 |}} === Librairies à installer=== ** DHT ** [[https://github.com/adafruit/DHT-sensor-library| DHT-sensor-Library]] **ESPAsyncWebServer** [[https://github.com/me-no-dev/ESPAsyncWebServer|ESPAsyncWebServer.zip]] **AsyncTCP** [[https://github.com/me-no-dev/AsyncTCP|AsyncTCP.zip]] **Adafruit_Sensor** [[https://github.com/adafruit/Adafruit_Sensor|Adafruit_Sensor.zip]] === Programmes === /********* Rui Santos Complete project details at https://randomnerdtutorials.com *********/ // Import required libraries #include "WiFi.h" #include "ESPAsyncWebServer.h" #include #include // Replace with your network credentials const char* ssid = "xxxxxxxxxxxx"; const char* password = "xxxxxxxxxxxxxx"; #define DHTPIN 13 // Digital pin connected to the DHT sensor // Uncomment the type of sensor in use: //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); // Create AsyncWebServer object on port 80 AsyncWebServer server(80); String readDHTTemperature() { // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) //float t = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return "--"; } else { Serial.println(t); return String(t); } } String readDHTHumidity() { // Sensor readings may also be up to 2 seconds 'old' (its 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 Serveur DHT 22

Temperature %TEMPERATURE% °C

Humidite %HUMIDITY% %

)rawliteral"; // Replaces placeholder 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 purposes Serial.begin(115200); dht.begin(); // Connect to Wi-Fi 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()); // Route for root / web page 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 server server.begin(); } void loop(){ }
=== Ecran serveur web === {{ :start:arduino:esp32:capture_du_2021-03-16_12-45-05.png?direct&600 |}}