/******************************************************************************************** Balance connectée avec ESP32 ou ESP8266 et HX711 La masse mesurée par la balance s'affiche dans une page web. Pour plus d'infos: https://electroniqueamateur.blogspot.com/2020/11/balance-connectee-base-desp32esp8266.html ********************************************************************************************/ // inclusion des bibliothèques utiles #include "HX711.h" const int broche_DT = 5; const int broche_SCK = 4; HX711 balance; // pour la communication WiFi #if defined ARDUINO_ARCH_ESP8266 // s'il s'agit d'un ESP8266 #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #elif defined ARDUINO_ARCH_ESP32 // s'il s'agit d'un ESP32 #include "WiFi.h" #include <WebServer.h> #endif #include <WiFiClient.h> const char* ssid = "**********"; const char* password = "**********"; #if defined ARDUINO_ARCH_ESP8266 // s'il s'agit d'un ESP8266 ESP8266WebServer server(80); #elif defined ARDUINO_ARCH_ESP32 // s'il s'agit d'un ESP32 WebServer server(80); #endif void handle_root() { String mesure = String(balance.get_units(10)); // C'est ici qu'on construit la page web: server.send(200, "html", "<head> <title>ESP8266 / ESP32</title> <meta http-equiv=Refresh content=2></head> " "<body> <H1>Balance ESP8266 / ESP32</H1>" "<p>Masse mesurée: " + mesure + " grammes</p>" "<p>Visitez <a href=http://electroniqueamateur.blogspot.ca/>Électronique en Amateur</a>!</p></body>"); delay(100); } void setup(void) { // Affichage dans le moniteur série: Serial.begin(115200); // Connexion au réseau WiFi WiFi.begin(ssid, password); Serial.print("\n\r \n\rConnection au reseau en cours"); // On attend la connexion while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Nom du reseau WiFi: "); Serial.println(ssid); Serial.print("Adresse IP de la page web: "); Serial.println(WiFi.localIP()); server.on("/", handle_root); server.begin(); Serial.println("Le serveur web est en fonction."); Serial.println("Initialisation de la balance..."); balance.begin(broche_DT, broche_SCK); while (!balance.is_ready()) { ; } balance.set_scale(382); //le paramètre dépend de votre cellule de charge. balance.tare(); //ajustement du zéro Serial.println("La balance est prete!"); } void loop(void) { server.handleClient(); }