Le pcDuino est un système de développement informatique qui offre aux utilisateurs une variété de possibilités pour programmer leurs projets. Dans cet article, nous allons vous montrer comment enregistrer une mesure analogique dans un fichier texte à intervalle régulier avec journalisation automatique des données et comment le rendre compatible avec Dygraphs. Nous allons vous guider pas à pas à travers le processus de configuration et de programmation du pcDuino afin que vous puissiez enregistrer et afficher vos données de manière efficace et précise.
Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier avec journalisation automatique des données – compatible Dygraphs
Ce que l’on va faire ici
- Dans ce code, je vous montre comment enregistrer une mesure analogique dans un fichier texte en ajoutant une ligne à intervalle régulier. Ici, nous utilisons une simple résistance variable pour symboliser un capteur analogique qui pourra être de toute sorte.
- Un poit essentiel ici : un nouveau fichier sera créé lorsque l’on changera de jour, automatiquement !! Ce code est donc une sorte de code de datalogging « universel ». Une fois lancé, il gère lui-même la journalisation des données dans des fichiers différents !!
- L’intérêt majeur ici est d’utiliser un format compatible « Dygraphs », une librairie Javascript d’affichage de données.
Pré-requis
- un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
- Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
- ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
Schéma fonctionnel
- On utilise ici une entrée analogique et l’écriture dans le fichier texte.
Matériel nécessaire
Système
- Le pcDuino seul
- +/- une clé USB ou une carte SD si on souhaite enregistrer les données sur un support externe.
E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- une résistance variable,

Instructions de montage
- Connecter la sortie variable de la résistance variable à la broche A2, la deux autres broches de la résistance variable étant connectées entre le 0V et le 3.3V.
Le montage à réaliser
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juillet 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# enregistrer une mesure analogique dans un fichier a intervalle regulier avec journalisation automatique – format dygraphs
# top : lancer ce code suffit pour creer un fichier de data par jour !
from pyduino import * # importe les fonctions Arduino pour Python
# entete declarative
noLoop=True # pour utilisation auto appel de loop
path=« » # rep enregistrement fichiers data
filepath=« » # n
today0=« » # variable memorisation dernier jour pris en compte
#— setup —
def setup():
global path, filepath, today0
# initialisation rep data
myDataPath=(« data/text/ »)
path=homePath()+myDataPath # chemin du répertoire à utiliser
#today0= »2013_09_24″ # pour test
loop() # premier appel loop
# — fin setup —
# — loop —
def loop():
global path, filepath, today0
# MAJ nom fichier si changement de jour
if today0!=today(« _ »,-1) : # si on change de jour – vrai au premier passage !
today0=today(« _ »,-1) # memorise jour courant au format AAAA_MM_JJ
filename=« data_ »+today0+« .txt » # nom du fichier au format data_AAAA_MM_JJtxt
filepath=path+filename # chemin du fichier
print filepath
# dans tous les cas :
#mesure analogique
mesure=analogRead(A2) # mesure sur voie A2
#mesuremV=analogReadmV(A2) # mesure en Mv sur voie A2
#– ajout de chaines au fichier
myFile=open(filepath,‘a’) # ouverture pour ajout de texte – IMPORTANT : append cree le fichier si existe pas !
out=today(« / »,-1) + » « + hour()+« : »+minute()+« : »+second() +« , « + str(mesure) # format today inversé…
myFile.write(out+« \n« ) # ecriture d’une ligne
myFile.close() # fermeture du fichier en ecriture
print (out) # debug
timer(60000, loop) # auto appel de loop toutes les minutes
# NB : ouvrir le fichier dans l’editeur pour verifier son contenu
# — fin loop —
« » »
Les formats possibles dygraphs sont :
2009-07-12
2009/07/12
2009/07/12 12
2009/07/12 12:34
2009/07/12 12:34:56
voir : http://dygraphs.com/data.html
« » »
#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
setup() # appelle la fonction main
while not noLoop: loop() # appelle fonction loop sans fin
Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/SD/WriteTimerAnalogReadDygraphsAutoToday.py
Utilisation
- Vérifier au préalable que le répertoire utilisé existe sur le système et le créer graphiquement au besoin.
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal vide doit apparaître : lors d’un appui sur le bouton poussoir, un message indique qu’une ligne est ajoutée dans le fichier texte :

Discussion technique
- En pratique, il sera préférable de formater la ligne pour un usage simplifié en séparant les éléments utiles par des , simples et saut de ligne de fin de ligne. De cette façon, le fichier sera directement utilisable avec un tableur par exemple.
- D’autre part, on pourra préférer enregistrer les données sur une clé USB ou sur une carte SD plutôt que dans le mémoire NAND système si les quantités de données peuvent être importantes.
- Le code est étonnamment compact pour le résultat obtenu : tout çà grâce à Pyduino !
Articles similaires:
- Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier. – compatible Dygraphs
- Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier.
- Programmer le pcDuino : Pyduino : Fichier : Ajouter une ligne à intervalle régulier dans un fichier texte.
- Programmer le pcDuino : Pyduino : Fichier : Ajouter une ligne de donnée horodatée à intervalle régulier dans un fichier texte, pendant une durée voulue.
- Programmer le pcDuino : Pyduino : Fichier : Ajouter une ligne de donnée horodatée à intervalle régulier dans un fichier texte, avec « journalisation » automatique toutes les minutes.
Articles Liés
- Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier.
Le pcDuino est un système informatique à carte unique qui offre une puissance de traitement…
- Javascript : Afficher des données sur 24H à l'aide de la librairie graphique Dygraphs.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Afficher des données sur 24H multicourbes à l'aide de la librairie graphique Dygraphs.
Le langage de programmation Javascript est un outil puissant pour afficher des données sur des…