Relevé et enregistrement des mesures | ||
---|---|---|
Précédent | Utiliser une carte Arduino dans une station météo | Suivant |
Le module Arduino étant livré à lui-même il faut repérer les dates à l'aide de son horloge interne. Il est possible d'utiliser l'instruction millis() (format type long) qui donne le nombre de milliseconde écoulées depuis le "reset" de la carte.Le sketch calcule le nombre de secondes, minutes, heures, jours, mois écoulés depuis le reset. L'horloge interne n'est pas stable et présente une importante dérive. Plusieurs essais ont conduit à corriger le nombre de millisecondes en ajoutant 1250 ms par minute. Cela n'est pas très précis.
On peut utiliser petit module un timer externe branché sur la carte Arduino qui est plus précis, mais qui présente un problème de compatibilité avec la carte SD car il utilise le même port SPI avec un paramétrage différent.
Chaque fois que la station envoie des données vers l'ordinateur, toutes les 10 minutes si l'ordinateur structe le port XBee, elle demande la date et l'heure à l'ordinateur qu'elle corrige si besoin.
Un module Xbee est relié au port USB de l'ordinateur. Un programme écrit en Python , ou autre langage, scrute toutes les deux secondes les messages envoyés par la station. Lorsque le réveil a lieu, le sketch Arduino envoie un message "up" ce qui déclenche une demande de relevé de mesures. Le sketch Arduino relève les mesures et les envoie. Ces mesures sont enregistrées dans un fichier type "csv" dans l'ordinateur. Lorsque la station se place en mode veille la station envoie le message"down" ce qui indique au programme Python que la station est inaccessible.
Si l'ordinateur se met en veille, il n'est pas possible de relever les valeurs de la station météo. Le sketch Arduino enregistre systématiquement(en veille ou non) sur la carte SD de la station les données toutes les minutes dans un fichier type "csv" nommé "mm-jj-U.TXT". avec mm: mois, jj :jour. La bibliothèque SD ne gère pas les fichiers dont le nom est différent de la structure ********.***(8 caractères simples+ '.' + ***)
Structure d'une ligne enregistrée dans le fichier csv : "aaaa;mm;jj;hh,mm,ss;tempe;pression;hygrométrie;vent;"
Le sketch Arduino change automatiquement de fichier d'enregistrement chaque jour à 0 h 00. Il y a donc un fichier par jour.
Le programme python comporte une commande permettant de lire le fichier en cours et une autre commande permettant de lire tous les fichiers enregistrés. Les données sont alors stockées dans l'ordinateur dans un fichier de type "csv" .
Date, heure température, pression atm, hygrométrie,vitesse du vent
27/10/2014,1h10,8.36,1025.84,101.38,0.00
27/10/2014,1h11,8.37,1025.89,101.41,0.00
27/10/2014,1h12,8.33,1025.79,101.26,0.00
27/10/2014,1h13,8.29,1025.72,101.23,0.00
27/10/2014,1h14,8.31,1025.76,101.28,0.00
27/10/2014,1h15,8.31,1025.82,101.35,0.00
27/10/2014,1h16,8.38,1025.82,101.50,0.00
27/10/2014,1h17,8.36,1025.80,101.41,0.00
27/10/2014,1h18,8.31,1025.82,101.25,0.00
27/10/2014,1h19,8.29,1025.78,101.28,0.00
27/10/2014,1h20,8.27,1025.80,101.25,0.00
27/10/2014,1h21,8.27,1025.83,101.22,0.00
27/10/2014,1h22,8.29,1025.81,101.36,0.00
27/10/2014,1h23,8.29,1025.95,101.35,0.00
27/10/2014,1h24,8.29,1025.86,101.40,0.00
27/10/2014,1h25,8.29,1025.85,101.40,0.00
27/10/2014,1h26,8.26,1025.87,101.42,0.00
27/10/2014,1h27,8.27,1025.86,101.40,0.00
27/10/2014,1h28,8.24,1025.86,101.35,0.00
27/10/2014,1h29,8.21,1025.85,101.30,0.00
27/10/2014,1h30,8.19,1025.84,101.26,0.00
27/10/2014,1h31,8.18,1025.94,101.23,0.00
27/10/2014,1h32,8.16,1025.88,101.19,0.00
27/10/2014,1h33,8.13,1025.81,101.17,0.00
27/10/2014,1h34,8.12,1025.90,101.14,0.00
27/10/2014,1h35,8.10,1025.86,101.14,0.00
27/10/2014,1h36,8.10,1025.93,101.15,0.00
27/10/2014,1h37,8.09,1025.86,101.17,0.00
27/10/2014,1h38,8.10,1025.83,101.20,0.00
27/10/2014,1h39,8.09,1025.87,101.18,0.00
27/10/2014,1h40,8.07,1025.79,101.17,0.00
27/10/2014,1h41,8.06,1025.78,101.16,0.00
27/10/2014,1h42,8.04,1025.78,101.15,0.00
27/10/2014,1h43,8.04,1025.81,101.15,0.00
27/10/2014,1h44,8.03,1025.76,101.15,0.00
27/10/2014,1h45,8.02,1025.77,101.11,0.00
27/10/2014,1h46,7.98,1025.79,101.03,0.00
27/10/2014,1h47,7.94,1025.78,100.96,0.00
27/10/2014,1h48,7.90,1025.78,100.90,0.00