[RESOLU]ecrire dans une BDD distante depuis mon PI

Paramétrer le Raspberry Pi B/B+ pour se connecter via Ethernet ou une clé WiFi USB

Modérateurs : Francois, maxty01

estelle
Raspinaute
Messages : 141
Enregistré le : jeu. 24 déc. 2015 17:14

Re: ecrire dans une BDD distante depuis mon PI

Message par estelle » lun. 5 déc. 2016 12:32

Bonjour,

Pour l'instant, je ne modifie pas le programme qui tourne actuellement car je ne suis pas encore assez aguerrie ......

Par contre sur ma page "index" je reçois des posts du PI que j'aimerais afficher en temps réel
En fait c'est des alarmes
J'ai essayé un truc mais cela ne marche pas

Code : Tout sélectionner

<?php
$date=$_POST["datealerte"];
$alarme=$_POST["alerte"];
$num_ruche=$_POST["ruche"];
$pt=$_POST["poidstension"];
//if (($num_ruche==0)and($alarme!=0)){
    $message ="Alerte : $date $alarme : $pt V";//}
//else if (($num_ruche!=0)and($alarme!=0)){
//    $message ="Alerte : ,$date,' ',$alarme, ruche: ,$num_ruche, perte de poids: ,$pt,kg";}
//else {$message='Pas alarme';}
echo $date;
echo $alarme;
echo $num_ruche;
echo $pt;

?>

<!doctype html>
<html lang="en">
<head>
  <meta http-equiv="Refresh" content="5; url=index.html">
	<meta charset="utf-8" />
	<title>Rucher Montminois</title>
	<link rel="stylesheet" href="styles.css" type="text/css" media="screen" />
	<link rel="stylesheet" type="text/css" href="print.css" media="print" />  
	<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<div id="wrapper"><!-- #wrapper -->

	<header><!-- header -->
		<div id="headerlogo"><img src="images/abeille1.png" alt="" /></div>
		<h1>Rucher Montminois</h1>
		<h2>Bonjour et bienvenue sur le site du Rucher Montminois!</h2>
    <h2><?php echo $message ?></h2>
	</header><!-- end of header -->
Vous pouvez m'aider
Merci
Estelle

destroyedlolo
Raspinaute
Messages : 1388
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: ecrire dans une BDD distante depuis mon PI

Message par destroyedlolo » lun. 5 déc. 2016 15:56

Bonjour,

C'est la page que tu appele par ton webservice ?
Dans ce cas, les echo sont renvoyés vers le PI.
Si tu veux connaitre le resultat, je te conseillerai de les sortir dans un log ...
file_put_contents () sera ton amis (sinon, il y a une autre fonction qui va recopier la réponse a la fois sur stdout et sur un fichier, mais je ne l'ai plus sous la main).

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

estelle
Raspinaute
Messages : 141
Enregistré le : jeu. 24 déc. 2015 17:14

Re: ecrire dans une BDD distante depuis mon PI

Message par estelle » lun. 5 déc. 2016 16:45

non c'est ma page index

Je souhaite rafraîchir un message sur ma page index avec les variables post que m'envoyer le PI

En d'autre termes je veux que lorsque j'affiche une page et quelle reste affichée, si des variables viennent du PI, le message de la page évolue

$message ="Alerte : $date $alarme : $pt V";

<header><!-- header -->

<h2><?php echo $message ?></h2>

</header><!-- end of header -->

Je sais pas si je suis assez clair

destroyedlolo
Raspinaute
Messages : 1388
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: ecrire dans une BDD distante depuis mon PI

Message par destroyedlolo » lun. 5 déc. 2016 18:00

Si très ;)

Malheureusement, ca ne marche pas comme ca : tes $date, $alarme et $pt proviennent du tableau $_POST[] ... qui est local à la sessions du webservice provenant du PI.
Ici, tu n'est plus dans la même session, tu es dans celle issue de ton navigateur, donc $_POST[] ne correspondra pas.

Il faut donc que tu passes par un intermédiaire : soit par un table dédiée en BDD, soit (plus efficace), en mémoire partagée si ton hébergeur le permet.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

estelle
Raspinaute
Messages : 141
Enregistré le : jeu. 24 déc. 2015 17:14

Re: ecrire dans une BDD distante depuis mon PI

Message par estelle » lun. 5 déc. 2016 18:17

J'ai essayé cela

Image

J'ai bien compris que l'envoi post est sur unn tour de cycle c'est pour cela que je teste le contenu des post
S'il est null je ne rafraichie pas ma variable intermédiaire

estelle
Raspinaute
Messages : 141
Enregistré le : jeu. 24 déc. 2015 17:14

Re: ecrire dans une BDD distante depuis mon PI

Message par estelle » lun. 5 déc. 2016 18:23

Dans le PI j'ai fait cela : r.text

Code : Tout sélectionner

data = {"datealerte":Date_heure_sql, "alerte":'Tension batterie', "ruche":'0', "poidstension":Tension_batterie}
      r = requests.post("http://ruches.montminoises.free.fr/RajoutHisto.php", data = data) 
      print (r.text)
      r = requests.post("http://ruches.montminoises.free.fr/index.php", data = data)
      print (r.text)
Justement pour afficher le passage dans index
Vu sur la recopie d'écran
Modifié en dernier par estelle le lun. 5 déc. 2016 18:30, modifié 1 fois.

Bud Spencer
Raspinaute
Messages : 850
Enregistré le : lun. 15 août 2016 21:38

Re: ecrire dans une BDD distante depuis mon PI

Message par Bud Spencer » lun. 5 déc. 2016 20:19

Un timer interval sur une commande ajax qui va chercher la dernière tension enregistrée dans les db_log ...
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

estelle
Raspinaute
Messages : 141
Enregistré le : jeu. 24 déc. 2015 17:14

Re: ecrire dans une BDD distante depuis mon PI

Message par estelle » lun. 5 déc. 2016 20:29

oui j'ai lu un truc comme cela avec AJAX

Tu peux m'aider ?

destroyedlolo
Raspinaute
Messages : 1388
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: ecrire dans une BDD distante depuis mon PI

Message par destroyedlolo » lun. 5 déc. 2016 20:31

C'est exactement ce que je disais : les valeurs sont affichées sur le PI car le $_POST est rempli dans sa session, alors qu'il n'y a pas d'erreur sur page web car ce n'est pas la même session et donc $_POST est vide.
estelle a écrit :J'ai bien compris que l'envoi post est sur unn tour de cycle c'est pour cela que je teste le contenu des post
S'il est null je ne rafraichie pas ma variable intermédiaire
Ca ne marche pas non plus car les variables, même globales, restent dans la session courante.

Quelques réponses là avec des exemples de code : http://stackoverflow.com/questions/5605 ... -processes
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Bud Spencer
Raspinaute
Messages : 850
Enregistré le : lun. 15 août 2016 21:38

Re: ecrire dans une BDD distante depuis mon PI

Message par Bud Spencer » mar. 6 déc. 2016 08:50

estelle a écrit :oui j'ai lu un truc comme cela avec AJAX

Tu peux m'aider ?

Le principe est très simple a mettre en œuvre. Il suffit d'écrire un script PHP qui récupère la dernière tension mesurée dans la base et si elle est inferieur a une valeur paramètre, ca retourne 'Alarme Batterie'.
Coté client, dans ta page d'index, juste un petit script en JS qui fait une requete httpRequest sur le script serveur avec un setinterval et tu rattaches le résultat dans l'élément DOM concerné pour l'affichage.

Tu peux aussi retourner simplement la tension depuis ton script php et faire la comparaison dans le script de la page d'accueil, ce qui ne change pas grand chose.

En fait c'est comme si tu incluais la lecture de la valeur dans ta page d'index pour gérer l'affichage de l'alarme, sauf qu'avec ajax, tu n'es pas obligé de recharger la page. C'est un script JS qui se charge d'aller récupérer périodiquement la valeur et il met a jour juste l'élément DOM concerné (un <div> ou un <p> par exemple)

Si personne ne le fait, je veux bien te faire un bout de code, mais perso, je n'ais plus de serveur php et ca m'obligerais à en réinstaller juste pour tester ca. Si j'en trouve le temps dans la semaine et que tu n'as pas la solution, je le ferais.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Le réseau sur le Raspberry Pï »