|

Affichage des valeurs DHT22 via un serveur Web rafraichi automatiquement avec LittleFS avec un ESP32

Prérequis :

  • 1 x Carte ESP32
  • 1 x DHT22
  • 1 x résistance 10KΩ
  • Fils de connexion

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

Code Arduino :
#include <Arduino.h>
#include <AsyncTCP.h>
#include <WiFi.h>
#include <WebServer.h>
#include <LittleFS.h>
#include <ESPAsyncWebServer.h>

const char *ssid = "......";  // "Votre Nom_du_routeur"
const char *password = "......";  // "Votre Mot_de_passe_du_routeur"
AsyncWebServer server(80);

#include "DHT.h"
#define DHTPIN 4 
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

float Temp = 0;
float Hum = 0;


void setup() {
  Serial.begin(115200);

  Serial.println(F("DHTxx test!"));
  dht.begin();

  delay(10);
  if (!LittleFS.begin()) {
    Serial.println("An Error has occurred while mounting LittleFS");
    return;
  }

  // Connectez-vous au Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  // Imprimer l'adresse IP locale ESP
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/index.html", "text/html");
  });

  server.on("/lire_Temp", HTTP_GET, [](AsyncWebServerRequest *request) {
    String BufferTemp1 = String(Temp);
    request->send(200, "text/plain", BufferTemp1);
  });

  server.on("/lire_Hum", HTTP_GET, [](AsyncWebServerRequest *request) {
    String BufferHum1 = String(Hum);
    request->send(200, "text/plain", BufferHum1);
  });

  server.on("/script.js", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/script.js", "text/javascript");
  });

  server.begin();
}


void loop() {

  float h = dht.readHumidity();
  float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }
  Temp = t;
  Hum = h;
  delay(2000);

}




Code HTML :
<!DOCTYPE html>
<html lang="fr">

<head>
    <title>ESP</title>
    <meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8" />
    <script type="text/javascript" src="https://webapps1.chicago.gov/cdn/jQuery-3.4.1/jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="script.js"></script>  
    </head>

<body>
    <center>
    <div>
        <h3>Température :</h3>
        <h2><span id="Temp"></span>  °C<h2>
    </div>
    <div>
        <h3>Humidité :</h3>
        <h2><span id="Hum"></span>  %<h2>
    </div>
    </center>
</body>

</html>
Code Javascript :
function getDataTemp() {
    var xhttp = new XMLHttpRequest();

    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Temp").innerHTML = this.responseText;
        }
    };
    
    xhttp.open("GET", "lire_Temp", true);
    xhttp.send();

};

function getDataHum() {
    var xhttp = new XMLHttpRequest();

    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Hum").innerHTML = this.responseText;
        }
    };
    
    xhttp.open("GET", "lire_Hum", true);
    xhttp.send();

};


function functioninterval() {
    getDataTemp();
    getDataHum();
 }
 
setInterval( functioninterval, 1000 );

getDataTemp();
getDataHum();

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *