[Résolu] Enregistrer des données sur un graphique open office calc via une carte SD

Bonjour, je poste une seconde fois sur le forum car j'ai un petit problème :
je suis en train d'expérimenter avec un shield oled possédant un emport de carte sd, j'ai donc eu la curiosité de chercher comment m'en servir. En bref, j'ai retrouvé un dht11 qui trainait dans mes affaires et j'aimerais m'en servir pour tester l'implémentation de données sur un fichier .csv.
Jusque là tout va bien, j'arrive à récupérer les données, à les afficher sur mon écran et à les envoyer sur le fichier de ma carte. problème, quand j'ouvre le fichier via open office calc, les données sont "mélanger" sur la première colonne du tableau, j'ai donc température,humidité suivie de mes données t° / %H / t°... ainsi de suite sur une colonne. Le truc c'est que j'aimerais en faire un graphique "autonome" qui se met à jour en fonction des données reçu, mais je ne peut déjà pas en faire avec ce que j'ai étant donné que pour faire un graphique il faut avoir les données en colonnes rangées T° | %H à la limite il faudrait faire un saut de colonne mais je ne sais franchement pas comment faire ^^ . Si quelqu'un si connait et peut répondre à mes questions ce serait vraiment super !

PS: j'utilise la lib "SD".

Bonjour liam83

Il faut les enregistrer au format CSV, avec ; comme séparateur.

Pour écrire l'entête des colonnes
sd.println("température;thumidité");
et chaque ligne:
sd.println(String(temperatureValeur) + ";" + String(humiditeValeur));

Essayé avec Excel.

Cordialement
jpbbricole

Open office existe encore ? Je croyais que tout le monde était passé à Libre Office !

Le principe du format csv (comma separated values) est d'utiliser des symboles comme séparateurs entre deux variables. Un grand choix de séparateurs est disponible.
A l'importation dans un tableur, tu as le choix entre différents séparateurs, tu peux aussi fusionner les séparateurs.

Les pays anglo saxons utilisent souvent la virgule qui est déconseillée pour le français.
Un bon choix pour le français est effectivement le " ; " qui est un signe qui ne se rencontre pas souvent.
A noter qu'un simple espace peut provoquer un saut de colonne, c'est une question de configuration à l'importation dans le tableur.

la tabulation permet aussi d'importer simplement dans un tableur et présente l'avantage aussi de rendre le fichier "lisible" en format texte

au lieu de faire comme suggéré

sd.println(String(temperatureValeur) + ";" + String(humiditeValeur));

il vaut mieux préférer pour chaque ligne (en supposant que les valeurs sont dans des float)

sd.print(temperatureValeur, 1); // 1 chiffre après la virgule
sd.write('\t');                 // tabulation, mettre un ';' si vous préférez
sd.println(humiditeValeur,0);   // 0 pour aucun chiffre après la virgule 

qui sera beaucoup plus rapide et plus efficace en coût mémoire.

Bonjour J-M-L

Dans Excel, non, sauf de copier/coller les données séparées par \t.
Avec séparateur TAB ça donne ceci à l'ouverture du fichier CSV:
image
Avec point-virgule ça donne ceci:
image

Je fais l'essai avec OpenOffice,

Cordialement
jpbbricole

Bonjour

Dans OpenOffice, exactement la même chose.

Cordialement
jpbbricole

Sur Numbers (le tableur sur Mac) ça fonctionne directement.

Mais vous avez raison, si vous ouvrez directement le fichier sous excel ça ne fonctionne pas. Si Je passe par le menu "importer" puis je choisi CSV. Il détecte le tab tout seul et là ça fonctionne.

Mais comme Le ';' fonctionne pour les 2, c'est donc un meilleur choix effectivement.

Je viens d'ouvrir avec Libre Office un fichier test.csv dont le contenu est :

sdf kjh oiu
zer 1231 56465
ggg ggqg gdg

Cela fonctionne parfaitement en choisissant la tabulation comme séparateur.
Et en absence de choix spécifique, c'est même l'option que Libre Office prend lui-même par défaut.

Je serai fort surpris que cela ne fonctionne pas avec Excel, mais je n'ai pas Excel je ne peux pas vérifier.

Avec Excel, sans rien faire d'autre que fichier/ouvrire ou un double clic sur le CSV, ça donne ça
image
C'est bien sûre qu'en passant par les outils d'importation, c'est possible, mais le but est de simplifier le traitement des données.

Cordialement
jpbbricole

Woah, bah je m'attendais pas à une réponse aussi claire et rapide ! Je vous remercie beaucoup pour votre soutient. Je m'en vais apposer des points virgules et faire un beau graph. Encore merci !

On ne se comprend pas.
Sous LO Calc je fais ouvrir -> fichier -> test.csv
L'outil d'importation s'affiche automatiquement et me propose, sans rien avoir à faire, une solution parfaitement fonctionnelle, il me suffit de cliquer sur Ok.

Je viens de deux autres essais :

  • en remplaçant les espaces (ce n'étaient pas des tabulations) par des points virgule et là il faut choisir manuellement le séparateur
  • en mettant des "vraies" tabulations. Automatiquement LO se configure en séparateur "espace" et fait correctement le travail.

Conclusion : pas de conclusions hâtives, il faut que le demandeur fasse des essais avec le logiciel dont il dispose pour choisir la solution la plus simple.

L'étape supérieure serait d'écrire une macro (langage pauvre et antédiluvien sous Excel, bien plus puissant, mais aussi plus complexe sous LO et incompatibles entre eux).

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.