Pour la programmation, les sources sont disponibles sur https://github.com/tdouez/ESPWaterMeter.
Étapes de programmation de l’ESP8266
- Télécharge l’environnement VSCode + PlateformIO
- il est possible d’utiliser l’environnement Arduino mais il faudra renommer le fichier main.cpp en ESPWaterMeter.ini et le répertoire src en ESPWaterMeter. Et aussi télécharger les librairies :
ESP Async WebServer ESPAsyncTCP AsyncTCP ESPAsyncWiFiManager NTPClient U8g2 ArduinoJson Streaming ArduinoOTA PubSubClient ESPDateTime
- Télécharge le firmware depuis le github
- Branche le câble USB sur l’ESP et sur ton PC
- Après le premier téléversement, il te sera possible de mettre à jour le firmware en OTA (sans câble USB)
- Lance la compilation
- Téléverse le firmware compilé
- Téléverse-les datas sur la zone SPIFFS
- config.json : fichier de config du module
- favicon.ico : icone du site web
- fb.svg : logo fumée bleue
- index.html : index du site web
- jquery.js, notify.js et script.js : javascripts su site web
- w3.css : framwork W3
Attention : Le menu de téléchargement des datas dans la zone SPIFFS peut aussi se trouver dans le menu env:d1_mini_pro->Platform :
Pour gérer la partie wifi, j’utilise la librairie WifiManager donc au premier démarrage, tu devras te connecter au point d’accès « FumeeBleue ». Après avoir configuré l’accès à ton wifi personnel, le module redémarrera et se connectera à ton wifi automatiquement. Si tu as besoin de changer de wifi, il faudra appuyer sur le switch avec une pointe lors de son branchement ; la configuration wifi sera remise à zéro.
L’interface web du module permet d’afficher les données collectées avec un historique des impulsions sur 24h. Cet historique est utilisé pour la détection de fuite.
Le deuxième onglet « config » permet de configurer le module en spécifiant le nom ce celui-ci, le seuil de fuite par jour, etc.
NB : toute modification apportée sur le nom du module ou config MQTT entraînera un reboot de l’ESP lors de la sauvegarde. Le reste des paramètres sont pris en compte à la volée.
Les données MQTT remontées sont les suivantes :
- volume : consommation en litres sur la journée
- pulseCount : nombre d’impulsions sur la journée
- leak : fuite. 0 : pas de fuite, 1 : consommation excessive sur une période de 24h, 2 : consommation continue sur 24h
- flow : débit en litres/heure
- totalPulse : nombre d’impulsions sur 24h