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 €

Processing : Fichiers : Enregistrer des données à intervalle régulier dans un fichier texte au format CSV

Électroniquemis à jour le 22 avril 2023

Le traitement des données est une tâche importante pour de nombreuses applications. Une des méthodes les plus courantes pour enregistrer des données est le format CSV (Comma Separated Values). Ce format est très pratique car il permet de stocker des données sous forme de tableau, ce qui facilite leur analyse et leur manipulation. Dans ce tutoriel, nous allons voir comment enregistrer des données à intervalle régulier dans un fichier texte au format CSV à l’aide du logiciel Processing.

Processing : Fichiers : Enregistrer des données à intervalle régulier dans un fichier texte au format CSV

Explication

  • Ce programme utilise un objet PrintWriter que l’on initialise avec un fichier existant ce qui va permettre d’ajouter les données au fichier sans l’effacer lors de la création comme le ferait l’instruction createWriter()
  • Un message est écrit dans le fichier à intervalle régulier, posant la base du datalogging avec stockage dans un fichier texte. Le format des données est ici « CSV like » ce qui permet de les utiliser immédiatement dans un tableur par simple copier-coller.

Ressources utiles

  • Aucune

Le programme

// Programme processing
// généré avec le générateur de code Processing
// du site www.mon-club-elec.fr
// par X. HINAULT – tous droits réservés

// Programme écrit le : 7/9/2011.

// ——- Licence du code de ce programme : GPL v3—–
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License,
//  or any later version.
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.

/////////////// Description du programme ////////////

// XXXXXXXXXXXXXXXXXXXXXX ENTETE DECLARATIVE XXXXXXXXXXXXXXXXXXXXXX

// inclusion des librairies utilisées

// déclaration objets

//—- pour écriture dans fichier texte
PrintWriter output = null; // initialise un objet PrintWriter pour stocker le flux de donnée à écrire dans le fichier

String cheminAbsoluFichier=« /home/hinault/Bureau/trans/datalog.txt »;
// le fichier doit exister – chemin entier obligatoire

// déclaration variables globales
int second0=second();
// XXXXXXXXXXXXXXXXXXXXXX  Fonction SETUP XXXXXXXXXXXXXXXXXXXXXX

DesPrincipes d’utilisation des alimentations avec une carte Arduino et des servomoteurs

void setup(){ // fonction d’initialisation exécutée 1 fois au démarrage

// — initialisation des objets et fonctionnalités utilisées —

       //—– ouvre le fichier de datalogging texte —
       output=ouvreFichier(cheminAbsoluFichier);   // ouvre le fichier existant dans un PrintWriter
        //le fichier doit exister – chemin entier obligatoire

       output.println(« ———— Debut Nouvel enregistrement ————-« ); // Ajoute la ligne au fichier
       output.print(day()+« / »+month()+« / »+year()+« ; »); //Ecrit la date dans le fichier suivi ;
       output.println(hour()+« : »+minute()+« : »+second()+« ; »); // Ecrit l’heure dans le fichier
       output.println(« ———— Format CSV  ————-« ); // Ajoute la ligne au fichier
       output.println(« Jour/mois/annee; heure:minutes:secondes; valeur; »); // Ajoute la ligne au fichier

} // fin fonction Setup

// XXXXXXXXXXXXXXXXXXXXXX Fonction Draw XXXXXXXXXXXXXXXXXXXX

void  draw() { // fonction exécutée en boucle

       if (second()>second0) { //si une seconde de passée

       second0=second(); //réinitialise second0

       //—– Code type pour datalogging dans fichier texte —

       //Ecriture d’une ligne dans le fichier au format « Jour/mois/annee; heure:minutes:secondes; valeur; »
       output.print(day()+« / »+month()+« / »+year()+« ; »); //Ecrit la date dans le fichier suivi ;
       output.print(hour()+« : »+minute()+« : »+second()+« ; »); // Ecrit l’heure dans le fichier
       output.print(000); // Ecrit la valeur dans le fichier
       output.println(); // Ajoute saut de ligne

       output.flush(); // Ecrit les données du PrintWriter dans le fichier

       } // fin if second()> second0

        // while(true); // stoppe boucle draw

} // fin de la fonction draw()

// XXXXXXXXXXXXXXXXXXXXXX Autres Fonctions XXXXXXXXXXXXXXXXXXXXXX

DesAteliers Arduino : des supports PDF didactiques pour apprendre et approfondir Arduino pas à pas !

//—– Fonction ouvre Fichier—

PrintWriter ouvreFichier( String cheminAbsoluFichier) {

// ouvre le fichier existant dans un PrintWriter- le fichier doit exister – chemin entier obligatoire
// adapté de la source suivante : http://processing.org/discourse/yabb2/YaBB.pl?num=1267767630

       PrintWriter pw=null;

       try //obligé ici…
       {
       // ouvre le fichier existant – le fichier doit exister – chemin entier obligatoire
       pw = new PrintWriter(new BufferedWriter(new FileWriter(cheminAbsoluFichier, true))); // true means: « append »
       }

       catch (IOException e)
       {
       // Report problem or handle it
       }

       return (pw); // renvoie l’objet pw

} // fin de ouvreFichier

//XXXXXXXXXXXXXXXXXX Fin du programme XXXXXXXXXXXXXXXXX
 

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