Forum Linux.embarqué Communication arduino-Raspy et serveur web (HighCharts)

Posté par  . Licence CC By‑SA.
2
4
avr.
2017

Bonjour à tous !

Je suis étudiant en Terminale S sciences de l'ingénieur et nous avons un projet de fin d'année qui consiste à gérer le niveau d'eau d'un moulin (en régulant l'ouverture ou la fermeture des vannes du moulin). Les données de la hauteur d'eau sont envoyer sur une Raspberry pi et traitée pour les envoyer sur le web avec un graphique d'historique de hauteur d'eau géré par le plugin web Highcharts. Je gère la Raspberry.
L'arduino m'envoie des données sur une page web que je télécharge à l'aide d'un Wget puis je voudrais les rentrer dans un fichier .json qui serais un tableau, afin qu'Highcharts puisse le lire correctement.

Mon fichier .json est censé être sous cette forme:
[[temps, hauteur_d'eau, température], [temps_2, hauteur_d'eau_2, température_2], etc…]

Voici mon fichier requestDist.sh qui permet de récuperer la hauteur d'eau et la température depuis l'arduino.
https://pastebin.com/WR21QXDi

Cependant, le fichier .json que cela me donne n'est pas du tout celui espéré, c'est à dire que je n'arrive pas gérer le dernier crochet de fermeture du fichier étant donné que je récupère les valeurs d'hauteur d'eau et de température toute les minutes par exemple. De plus je ne comprend pas comment utiliser le temps qui est censé correspondre à la date de récupération des valeur pour quHighcharts puisse le lire.

Merci d'avance pour votre aide
Bonne journée à tous !

  • # Communication arduino raspberry

    Posté par  . Évalué à 1. Dernière modification le 04 avril 2017 à 17:18.

    Hello,
    Pourquoi utilise tu une communication avec wget entre l'arduino et le pi ?
    J'aurais plus vu un bus type i2c :
    http://www.pihomeserver.fr/2013/08/13/raspberry-pi-home-server-arduino-lier-les-deux-via-bus-i2c/
    Note : tu as peut être une vraie raison d'utiliser un wget, et ma communication n'est pas forcément la meilleure mais j'avoue que ta communication me surprend un peu.
    Tu pourrais aussi choisir un autre langage de programmation comme le python ou le c (faudrait que tu te renseigne sur comment utiliser les pin avec le shell si tu veux absolument l'utiliser)
    Bon courage !
    Marc

    • [^] # Re: Communication arduino raspberry

      Posté par  . Évalué à 2.

      Bonjour,

      Ah j'ai sans doute omis de le mentionner mais l'arduino et la Rasp sont très éloigné j'ai donc un CPL connecté à l'arduino (ce qui la connecte à ma box et donc au reseau local de chez moi) et la Raspy est branchée au niveau de la box, il y a plus de 50 60 mètres entre les 2 endroits, on avais donc éliminé dans notre demarche de projet, la communication en I2C.

      Oui cela pourrait m'aider mais nous sommes très en retard sur le délais malheureusement. Je vais donc tout de même me pencher sur la question malgré le fait que trouver une solution en bash m'arrangerais d'avantage.
      Je tiendrais ce topic au jus sur mon avancée !

      Merci pour la réponse et bonne soirée !

      Victor

      • [^] # Re: Communication arduino raspberry

        Posté par  . Évalué à 1.

        Ah j'ai sans doute omis de le mentionner mais l'arduino et la Rasp sont très éloigné j'ai donc un CPL connecté à l'arduino (ce qui la connecte à ma box et donc au reseau local de chez moi) et la Raspy est branchée au niveau de la box, il y a plus de 50 60 mètres entre les 2 endroits, on avais donc éliminé dans notre demarche de projet, la communication en I2C.

        OK, sûr que ça limite tes possibilités au niveau des bus.

        une solution en bash m'arrangerais d'avantage.

        Le bash fonctionnera certainement c'est juste que perso, je fais que des petits scripts et n'aime pas bash quand ca devient trop long.

        Je tiendrais ce topic au jus sur mon avancée !

        Merci c'est sympa ! J'ai conscience que j'ai pas du tout répondu à tes questions, j'étais juste un peu curieux ;)

  • # reecrit ton json

    Posté par  . Évalué à 4.

    de ce que je vois tu ouvre le [
    puis tu ecris les date,valeur
    separée par des virgules.

    ajoute juste 2 lignes

    echo '['
    echo -n $array
    echo ','
    echo ']'

    et quand tu veux rajouter une nouvelle valeur à ton tableau precedent.
    tu prend l'ancien json, tu enleves la ligne qui contient juste le [ d'ouverture
    et la derniere ligne contenant le ] de fermeture.

    et tu reinjectes

    voire tu supprimes juste la derniere ligne et tu ajoutes simplement la nouvelle mesure.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.