Anthias
mail
2 connectés     # #

e

Capteurs ESP32 et MySQL

Page en phase brouillon

w


Introduction
Remplissage base MySQL
Les grands principes

Conclusion

Maj : 25/06/21

Abstract :
The purpose of this page is to manage a collection of various wireless sensors, thrue an ESP32, filling a table of a database on a site by WiFi link.
Results can be read on this HTML page, and displayed by curves.
This page is a part of my project <Nextion> arduino

Résumé :
Le but de cette page est de gérer une collection de différents capteurs sans fil, via un ESP32, en remplissant un tableau d'une base de données sur un site par lien WiFi.
Les résultats peuvent être lus sur cette page HTML, et affichés par des courbes.

Cette page fait partie de mon projet <Nextion> arduino

Compteur Geiger
----> .
24 h
.
4 jours
.
1 mois
.
1 an
   

Temperature °C
balise 2

----> .
24 h
.
4 jours
.
1 mois
.
1 an

Temperature °C
balise 3

----> .
24 h
.
4 jours
.
1 mois
.
1 an
   

Tension Volts
Master

---->

Tension Volts
balise 3

---->

   

.
Master

----> .
1 an

.
Nord (1)

---->

.
1 an

.
Ouest (2)

---->

.
1 an

.
balise 3

---->

.
1 an
   

WiFi connect
milliSeconds

---->

.
1 an

Pour les experts seulement :
Debug
calculs


Nombre de lignes


 

 

Les zones grisées
ne sont pas encore
ouvertes au public !

 

 

Format
d'affichage

Température t°C
Nord par BME280

---->

.
1 an

Température t °C
bureau par BME280

---->

.
1 an

Température t °C
bureau par RTC DS3231

---->

.
1 an
   

Pression QNH clock hPa
par BME280 Nord

---->

.
1 an

Pression QNH clock hPa
par BME280 bureau

---->

.
1 an

Ecarts b BME280
bureau - Nord

---->

.
1 an
   

Humidité p %
par BME280 Nord

---->

.
1 an

Humidité p %
par BME280 bureau

---->

.
1 an
   

Capteur solaire s lux
par TSL2561 Nord

---->

.
1 an

Capteur solaire s lux
par TSL2561 Ouest

---->

.
1 an

Haut de page

arduino  Introduction

Mon projet domotique a commencé en implantant de nombreux capteurs sur une collection de cartes à base d’Arduino Due et en affichant les résultats sous forme de courbes graphiques. Cette approche avait des défauts majeurs :
p Chaque carte vivant sa vie indépendante, tous les résultats et le temps divergeaient.
p Les longs fils étaient sensibles aux parasites ce qui induisait des plantages.
p Les données n’étaient pas visibles de l’extérieur par smartphone, tablette et PC.

La nouvelle approche est basée sur un ESP32 principal dit « Central ».
Cet ESP32 « Central » collecte les résultats de diverses «Balises » réparties dans la maison, et toutes les minutes paires envoie l’ensemble des mesures à une base de données externe (WiFi -> Réseau).
Divers « Clients» à distance (Réseau et Wifi) exploitent cette base pour sensorr les courbes, sur PC, tablette , smartphone ou Nextion.
La liaison des balises autonomes vers le central se fait en ESPNow unidirectionel à très faible consommation, car le temps d’activité (3.3 V et 150 mA)  est inférieur à la seconde pour une mise en sommeil de 2 minutes -1 seconde,  à consommation quasi nulle (100 microAmp). La balise n’écoute pas pour limiter au maximum son temps d’activité. Chaque balise est calée pour émettre à un temps très précis (minute impaire +55 sec , + 50 sec…).
Les petites batteries ont un an d’autonomie. Une page détaillera cela ainsi que la synchronisation des horloges.

Haut de page

arduino  Remplissage base MySQL

Pour envoyer des données à une base sur un serveur, il y a deux approches principales :
p Utiliser un « connecteur ». Arduino en fournit de base et il y a de très nombreux exemples. Cela n’a besoin d’aucun autre fichier.
p Envoyer ses données en « Post » vers un fichier PHP qui se chargera de les insérer dans la base.

Les résultats sont équivalents. Cette page utilise la méthode « Post » en se basant au début sur un excellent tutorial des époux Santos :Random Nerd Tutorials
Je ne reviendrai pas sur cette première phase consistant à déposer ses données dans une base MySql, leurs explications sont suffisantes.

La page arduino Domotique Nextion explique le choix de la période des 2 minutes entre les enregistrements, soit 720 points par jour utilisés ici.

Pour l’affichage de 1 à 4 jours, les données sont sauvées dans une table de : 24h * 60m / 2m * 4j = 720 * 4 = 2880 lignes.
Pour l’affichage sur un mois les données sont sauvées dans une autre table toutes les heures entières, soit : 24 heures * 30 jours = 720 points.
Pour l’affichage sur un an, seules les données à 12:00 et minuit sont conservées, soit : 365 jours * 2 = 730 points

Haut de page

arduino  Les grands principes

L’ESP32 maître est en écoute permanente en ESPNow de toutes les balises qui émettent chacune pendant moins d’une seconde aux minutes impaires, aux secondes 55, 50, 45, etc..,
Chaque minute paire, à la seconde zéro,le maître passe en émission WiFi (environ une seconde) pour envoyer toutes les données collectées à un fichier post-esp-data.php sur le serveur dont la fonction est de tout copier dans une nouvelle ligne de la base.
Cette page HTML, domus.php est l’interface client permettant les choix.
Une fois les choix validés et le bouton d’exécution cliqué, cette page passe les sélections du client à une page esp-data.php qui lance la récupération des données dans la base, fait les calculs et affiche la courbe dans la page domus.php.

Pour le moment seul le minimum est affiché en public. D’autres capteurs seront rajoutés par la suite.
Le propriétaire de la base a seul accès à un menu plus complet, permettant de piloter les chauffages, climatisations, alarmes..

Haut de page

arduino  Conclusion

Le développement est très interminable car le manque de fiabilité est un problème très lourd à résoudre. Quand on se connecte et que l’on se déconnecte du WiFi, il y a des échecs fréquents. En temps normal on ne s’en aperçoit pas car cela se raccroche au bout d’un temps variable, mais quand il s’agit d’envoyer un paquet de données synchrone, cela fait un trou dans la base de données.
Le compteur C0 (master) montre ces problèmes récurrents.
Le compteur « WiFi connect milliSeconds » montre les difficultés de l’accrochage en passant du mode WiFi au mode ESPNow toutes les deux minutes.
En contrepartie les liaisons ESPNow semblent fiables car très peu de paquets sont perdus (hors les trous liés aux erreurs du master en WiFi), voir les compteurs C1…C3 pour les esclaves.

Autre problème non résolu les cartes plantent de temps en temps (et restent plantées), sans aucune raison expliquée, et ce malgré les chiens de garde. Aux heures ouvrables, les coupures sont souvent dues à des tests et reprogrammations.

Page en début d'écriture....

Haut de page

© Christian Couderc 1999-2021     Toute reproduction interdite sans mon autorisation


* Page vue   3330   fois       IP : 52.23.219.12

 Haut de page         Dernière retouche le 28 Novembre 2021 á 08 h         Retour page précédente

   Collector