BTS Mesure BTS Mesure
pH IOTMySQLressources phpjaugegraphesrobotGyro

Architecture du site

L'esp8266 se connecte en client Wifi à l'aide de la bibliothèque ESP8266WiFi

const char* host = "bts2m.free.fr";  // Adresse du serveur

Le programme arduino crée une url et utilise la méthode GET pour envoyer les données des capteurs.

Exemple d'url à générer : /PH/sql.php?Text=38.2&Tpiscine=24.5&pH=7.2&pile=3.85

// Mise en forme et envoi de la requête GET au serveur
String url = "/PH/sql.php?Text="+String(tCTN,1)+"&Tpiscine="+String(t,1)
		+"&pH="+String(pH,1)+"&pile="+String(pile,2);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
                   "Host: " + host + "\r\n" + 
                   "Connection: close\r\n\r\n");        

 

 

Le script sql.php                                              MySQL

Ce script réceptionne les mesures sur le serveur par la méthode GET et transfère les données dans la base MySQL.

L'ESP8266 recoit une confirmation avec en retour les valeurs des consignes :

connection au serveur réussie !

Insertion réussie : t-piscine = 24.5°C, text =38.2°C, pH = 7.2, pile = 3.85 V

Ch=25 Cb=22

pH_H=7.6 pH_B=7

L'ESP8266 identifie et isole dans la réponse les consignes Ch,  Cb, pH_H et  pH_B.

int pos=reponse.indexOf("Cb=");
if
(pos>0) Cb=reponse.substring(pos+3,pos+7).toFloat();

Une fois la transmission des mesures confirmée, l'ESP8266 se met en deep-sleep (veille) pour 10 min soit 600.106 µs.

ESP.deepSleep(600e6);

Le réveil et reset s'effectue au bout de 10 minutes si on a bien relié la sortie D0 à RST...

Durant le deep sleep la consommation est de 20 µA = 0,020 mA contre 170 mA lors de l'émission Wifi.

Cela permet de réduire considérablement la quantité d'électricité consommée :

  • Nb de transmission par jour = 6 par heure * 24 heures soit 144 transmissions/jour
  • Durée de transmission par jour = 144 *  env. 10s = 1440 s soit environ 0,4 h/jour
  • Ce qui correspond à une consommation de : 170mA * 0,4 h/jour = 68 mAh / jour
  • A cela il faut ajouter la conso. de veille : 0,020 mA * 23,6 h = 0,472 mAh/jour
  • Il faut aussi ajouter la conso. des capteurs et les pertes du boost de la batterie qui eux ne sont pas mis en veille.

La consommation de l'ESP8266 en veille est quasiment négligeable.

Cela permet d'augmenter considérablement l'autonomie du montage.

Cf l'étude expérimentale ci-dessous.

 

 

 

Le script sql_grapheT2.php                            graphes

Ce script établit les requêtes SQL nécéssaires pour lire les mesures dans la table 'piscine' et les consignes dans la table 'consignes'.

Il assemble ces mesures point par point : [date format UNIX, mesures],

Ainsi nous pouvons utiliser la bibliothèque apexCharts pour tracer les courbes souhaitées.

Dans cet exemple nous avons mis 2 courbes en synchro,
dont celle de l'évolution de la tension de la batterie en fonction du temps jusqu'à épuisement de cette batterie.

 

 

Le script sql_gauge.php                                   jauge

Ce script permet d'afficher les dernières mesures sous forme de jauges à l'aide de la bibliothèque Google Charts

Il permet aussi de modifier les consignes pH haut et pH bas à l'aide d'un formulaire et de la méthode POST.