Page 1 sur 1

Les Charts API Google et le PHP

Posté : 10 mars 2016, 16:42
par Tryall
Bonjour, pour un projet de fin d'année de la section Terminale SIN, j'ai besoin de créer toute une interface graphique (Site Web) pour afficher en temps réel des valeurs récupéré sur des capteurs (température et niveau d'eau). Toutes les informations dont j'ai besoin sont incluses dans un fichier texte. Ce fichier txt est constamment mis à jour (il fait office de log, de nouvelles valeurs arrivent toutes les minutes en créant une nouvelle ligne dans ce fichier texte avec des informations venant des capteurs).

J'utilise par ailleurs les charts api que propose google (des jauges et des graphiques à ligne) : https://developers.google.com/chart/int ... lery/gauge
https://google-developers.appspot.com/c ... /linechart

Mais me voilà coincé, j'arrive à afficher tout le fichier log (entièrement) dans les LinesCharts sans aucun problème, ça marche parfaitement. Mais pour les jauges, c'est un autre problème. Je dois constamment mettre à jour une variable "Y" toutes les minutes pour récupéré la dernière ligne du fichier log (.txt) et ensuite que cette variable soit posté sur le script de l'API google. présente sur la page HTML qui affiche ces informations. Mais je n'arrive tout simplement pas à faire en sorte que le PHP puisse mettre à jour cette variable dans mon code. J'en viens à la conclusion que je dois utiliser un autre langage, mais le quel ?

Merci énormément pour vos futures réponses, on est assez court niveau temps dans ces projets, et cela compte pour le BAC (coef 12 quand même, ce serait bête de perdre des points à cause d'un vieux problème d'actualisation).

Tryall -

Re: Les Charts API Google et le PHP

Posté : 10 mars 2016, 17:10
par Tryall
J'avance un peu, au moins j'ai une piste : https://developers.google.com/chart/int ... phtml-file

Edit : Toujours pas, je n'arrive pas à adapter ce code à mon fichier .txt, et en plus ça m'étonnerai que ça mette à jour le graphique de façon régulière. :cry:

Re: Les Charts API Google et le PHP

Posté : 10 mars 2016, 20:13
par Ascla
Bonjour,
Php est un langage serveur, c'est à dire qu'il va s'exécuter avant le chargement de la page pour traiter les données, mais ne va plus agir après.
Pour permettre l'actualisation en temps réelle, je ne vois alors qu'une solution : l'utilisation de Javascript avec les requêtes Ajax (qui lui va pouvoir agir constamment lorsque la page est ouverte).
Possèdes tu des connaissances en Javascript ?
Sinon jette un coup d'œil ici : https://openclassrooms.com/courses/un-s ... nt-de-ajax

Re: Les Charts API Google et le PHP

Posté : 11 mars 2016, 22:18
par Tryall
Merci pour votre réponse, je ne connais pas vraiment le javascript, je l'ai survolé lors du début du projet. Est-il possible avec le Javascript de récupérer les dernières variables du log.txt côté serveur comme je voulais le faire avec le php avec un simple script ? Où dois-je apprendre toutes les bases javascripts pour utiliser les requêtes Ajax ?

Merci !

Re: Les Charts API Google et le PHP

Posté : 12 mars 2016, 03:10
par @rthur
Bonjour,

Google donne toutes les infos utiles pour faire cela dans leur doc :
https://developers.google.com/chart/int ... phtml-file

Et sinon il y a un exemple pas mal ici http://www.sdyoung.com/home/home-status ... le-gauges/

Re: Les Charts API Google et le PHP

Posté : 14 mars 2016, 16:03
par Tryall
Je viens de regarder le deuxième lien que vous avez envoyé (J'avais déjà partagé le premier dans mon deuxième post). Malheureusement ces exemples montrent un code assez différent de celui dont je dispose, j'ai du mal à m'y retrouver et à intégrer leur code au mien. Impossible d'avoir un peu d'aide sur la marche à suite ? Je dois faire quoi côté PHP ? Côté Javascript ? Côté Html ?

Merci.

Re: Les Charts API Google et le PHP

Posté : 14 mars 2016, 18:35
par @rthur
Effectivement au temps pour moi, j'avais pas vu que tu avais posté le même lien.

Regarde le 1er exemple complet de mon 2ème lien.

En résumé, il va chercher toutes les 15 secondes les données contenues dans le fichier JSON : https://api.xively.com/v2/feeds/4597774 ... &callback=?
Et ça met à jour la jauge toutes les 15 secondes. La période de rafraichissement est définie ici : setInterval('loadData()', 15000);

Mon conseil serait que tu partes de cet exemple fonctionnel et que tu l'adaptes ensuite à ton besoin.