Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier. – compatible Dygraphs

Électroniquemis à jour le 23 avril 2023

Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de possibilités de programmation. Il est particulièrement utile pour les applications qui nécessitent l’enregistrement de mesures analogiques à intervalle régulier. Grâce à sa compatibilité avec Dygraphs, le pcDuino permet aux utilisateurs de stocker ces mesures dans des fichiers texte, ce qui leur permet de les analyser et de les visualiser facilement. Dans cet article, nous allons examiner en détail comment programmer le pcDuino pour enregistrer des mesures analogiques dans un fichier texte à intervalle régulier et comment utiliser Dygraphs pour visualiser ces données.

Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier. – 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.
  • 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 :

#!/usr/bin/python
# -*- 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 _ format dygraphs

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative
noLoop=True

compt=0  # compteur

filepath=«  »

#— setup —
def setup():

        global filepath

ÉlectroniqueChamp électrique : les notions fondamentales expliquées simplement

        myDataPath=(« data/text/ »)

        path=homePath()+myDataPath  # chemin du répertoire à utiliser
        filename=« data_ »+today(« _ »,-1)+« .txt » # nom du fichier
        filepath=path+filename # chemin du fichier

        print filepath

        if exists(filepath):
                print « Le fichier existe »
        else :
                print « Le fichier n’existe pas : creation du fichier »
                myFile=open(filepath,‘w’) # création du fichier
                myFile.close()

        loop() # premier appel loop

# — fin setup —

# — loop —
def loop():

        global filepath, compt

        #mesure analogique
        mesure=analogRead(A2) # mesure sur voie A2
        mesuremV=analogReadmV(A2) # mesure en Mv sur voie A2

        myFile=open(filepath,‘a’) # ouverture pour ajout de texte

        #– ajout de chaines au fichier

        #out=(str(compt)+ »: »+nowdatetime()+ »: « + str(mesure) +  » soit  » + str(mesuremV) +  » millivolts. »)
        out=today(‘/’, –1)+ » « + hour()+« : »+minute()+« : »+second() +« , «  + str(mesure) # format today inversé…

        «  » »
        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
        «  » »

        myFile.write(out+« \n« ) # ecriture d’une ligne

ÉlectroniqueBien chauffer son atelier d’électronique : confort, sécurité et continuité de travail

        myFile.close() # fermeture du fichier en ecriture

        print (out) # debug

        compt=compt+1 # incrémente compteur

        timer(1000, loop) # auto appel de loop toutes les secondes

        # NB : ouvrir le fichier dans l’editeur pour verifier son contenu

# — fin loop —

#— 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/WriteTimerAnalogReadDygraphs.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.

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction