Aide pour débutant ...

Aide pour débutant ... - PHP - Programmation

Marsh Posté le 22-07-2015 à 22:24:03    

Bonjour,
 
je me permets de poster ici pour avoir de l'aide.
Je ne connais absolument rien en php mais j'aurais besoin de réaliser un petit script (enfin je ne sais même pas si on peut appeler cela un script tant cela va vous paraître simple),
 
mais pour moi ne connaissant pas le langage ...
 
Bref, j'utilise une sonde de température avec mon raspberry pi.
Pour voir cette température il suffit de lancer la commande :  
 
cat /sys/bus/w1/devices/28-01155249ccff/w1_slave
 
L'affichage suivant se produit  
a0 01 80 80 1f ff 80 80 f5 : crc=f5 YES
a0 01 80 80 1f ff 80 80 f5 t=26000
 
Pour lire la température on prend la valeur après le t= et on divise par 1000
 
Bref, moi je voudrais faire un script php et afficher juste la temperature, mais je n'y arrive pas.
 
Voici déjà ce que j'avais écrit :  
 

Citation :


temp_ext='cat /sys/bus/w1/devices/28-01155249ccff/w1_slave'
echo temp_ext;


 
Lorsque je lance le script depuis un naviagteur la page reste vierge ...
 
Si une ame charitable veut bien m'aider ....
 
Merci beaucoup.

Reply

Marsh Posté le 22-07-2015 à 22:24:03   

Reply

Marsh Posté le 23-07-2015 à 10:01:42    

Normalement, ça devrait afficher "cat /sys/bus/w1/devices/28-01155249ccff/w1_slave" et non une page vierge. Donc active le reporting_error pour voir afficher les erreurs.
 
Déjà, y'a bien un serveur web genre apache qui tourne sur ton raspberry pi ?
 
Après, on va pas te faire le script ; on va te donner des pistes, la première serait d'ailleurs d'apprendre les bases de php, sans quoi tu vas ramer :o
https://openclassrooms.com/courses/ [...] tion-a-php
 
Ensuite, t'auras besoin de shell_exec() ou escapeshellcmd() pour exécuter ta ligne de commande "cat /sys/bus/w1/devices/28-01155249ccff/w1_slave" (parce qu'echo ne fait que l'afficher et non l'exécuter).
 
Le résultat de l'exécution sera mis dans une variable (ex : $Resultat) que tu vas traiter comme un tableau. Avec ce que tu mets, je pense que c'est une chaîne de caractères qui contient un \n pour afficher sur 2 lignes.
 
Donc un coup de explode('\n', $Resultat) avec le résultat dans $LignesResultat puis un 2ème explode('t=', $LignesResultat[1]) avec le résultat dans $Temp. Ta température sera dans $Temp[1].


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-07-2015 à 11:02:37    

ok. Il y a du taff pour moi.
 
Oui du côté serveur tout est operationnel avec apache.
J'ai une page php qui elle fonctionne bien.
 
Je vais creuser un peu je reviendrai si je bloque ...

Reply

Marsh Posté le 23-07-2015 à 11:21:27    

pour, déjà comment activer le report d'erreurs ?
J'ai trouvé un truc sur le net ,mais bon.
 
J'ai ouvert le fichier php.ini et mis cela à l'intérieur :
 
error_reporting  =  E_ALL
display_errors = On
 
Mais j'ai mis ces lignes dans la section qui parle des erreurs, mais je ne suis pas certain qu'il faille les mettre là !!!
 
(j'ai stoppé apache avant les modifs, puis fait un start)
 
Mais la page reste vierge et rien ne s'affiche concernant les éventuelles erreurs !!!
 
Merci pour votre aide.

Reply

Marsh Posté le 23-07-2015 à 13:20:44    

Manquerait pas un point-virgule là?
 

Code :
  1. temp_ext='cat /sys/bus/w1/devices/28-01155249ccff/w1_slave'; <--- là
  2. echo temp_ext;

Reply

Marsh Posté le 23-07-2015 à 13:48:22    

toujours pareil.
 
Peut-on m'expliquer clairement comment activer le rapport d'erreurs pour commencer.
Parce que là dans le vide je ne vais pas avancer...
 
Merci.

Reply

Marsh Posté le 23-07-2015 à 16:46:12    

Une recherche google t'aurais permis de trouver la réponse :
error_reporting(E_ALL);
 
Et effectivement, il manquait à ; à la fin de la première ligne de ton script d'où un fatal error (mais msg d'erreur non affiché car repporting_error à 0) et donc une page blanche.
 
petit conseil : accepte de perdre un peu de temps au départ pour en gagner par la suite. Vas sur le lien d'openClassroom que je t'ai donné dans mon premier post pour apprendre les bases du PHP sans quoi, tu vas galérer et passer des plombes à faire ton script. :hello:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-07-2015 à 17:28:34    

sauf que je n'ai trouvé nul part où le mettre dans le fameux fichier php.ini .
Faut-il le mettre dans une section particulière ?
 
Et hônnetement je ne pense pas passer des heures juste pour deux lignes de codes.
Je comprends très bien que tu ne veuille pas me donner de réponses.
 
J'ai lu sur openclassrooms le cours sur php.
 
Enfin, même en mettant un ";" à la fin de la ligne cela ne fonctionne pas chez moi ...
 

Reply

Marsh Posté le 23-07-2015 à 17:58:28    

error_reporting() est une fonction php à mettre en début de script.
 
Peut être que ceci peut t'aider aussi : http://stackoverflow.com/questions [...] to-display


---------------
D3
Reply

Marsh Posté le 23-07-2015 à 21:09:27    

bon alors finalement c escript passe :  
 

Citation :

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
$co='cat /sys/bus/w1/devices/28-00043b5118ff/w1_slave | grep "t=" |awk -F "t=" \'{print $2/1000}\'';
echo shell_exec($co);
?>


 
cela me retourne bien la temperature de la sonde....
Maintenant je vais regarder pour enregistrer toutes les temperatures dans une table afin de faire un graph.

Reply

Marsh Posté le 23-07-2015 à 21:09:27   

Reply

Marsh Posté le 24-07-2015 à 09:38:33    

Mysql, c'est peut-être un peu bourrin pour stocker qq températures. Un simple fichier texte (ou xml) pourrait largement suffire ;)
 
error_reporting(E_ALL); est à mettre en début de script. www.php.net, l'aide en ligne de php, est ton ami :hello:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-07-2015 à 11:13:47    

ok, je vais regarder.
Sinon j'ai vu un truc avec munin, pour le graph.
 
Mais bon je pense qu'effectivement stocker les valeurs toutes les 5 minutes dans un ficheir texte serait pas mal...

Reply

Marsh Posté le 28-07-2015 à 11:06:45    

Bon merci à tous pour votre aide.
 
J'ai donc fait une petite page php pour gérer la piscine.
 
En allant sur la page je peux voir la température de l'air et de l'eau.
Démarrer/eteindre la pompe de la filtration et la pompe du panneau solaire.
 
Avec Munin je visualise les courbes de températures sur 24h et sur 1 mois des températures air/eau.
 
Il est certain que la page va pas gagner le concours de la plus belle page web du monde mais cela me suffit largement (je ne suis pas sur la page 10h par jour )
 
Encore merci à tous ceux qui m'ont apporté leur aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed