Lire dans une BDD distante depuis mon PI
Modérateurs : Francois, maxty01
Lire dans une BDD distante depuis mon PI
Bonjour,
Je veux lire avec mon PI le contenu du premier enregistrement de ma base Echange (hébergé chez Free) qui contient deux champs (Camera, Eclairage)
Qui peut m'aider
Estelle
Je veux lire avec mon PI le contenu du premier enregistrement de ma base Echange (hébergé chez Free) qui contient deux champs (Camera, Eclairage)
Qui peut m'aider
Estelle
-
- Modérateur
- Messages : 790
- Enregistré le : dim. 16 nov. 2014 20:53
- Localisation : Charleroi - Belgique
Re: Lire dans une BDD distante depuis mon PI
Bonsoir,
Peux-tu nous donner plus de détails techniques.
Bonne soirée,
Peux-tu nous donner plus de détails techniques.
Bonne soirée,
Il n'y a pas de question stupide, il n'y a que des imbéciles qui ne posent pas de question !
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
RaspBerry Pi : 1 x B+ Raspbian 1 x RPI2 MiniBian
Mieux me connaître ? Regarder mon LinkedIn
Re: Lire dans une BDD distante depuis mon PI
Plus de détails techniques:
Je suis apicultrice et je me sers du PI pour surveiller le poids des ruches (essaimage, vol de ruches, etc..) via des cartes d'entrées analogiques
Le PI écrit toute les 30mn dans la BDD et envoie des alertes sur mon site et un SMS
Le PI n'est pas serveur (je ne veux pas ouvrir de port sur ma Box Free)
Le PI est connecté sur ma Box par Ethenet
J'ai crée un site chez Free et un BDD (MySQL) http://ruches.montminoises.free.fr/index.php
Dans le sens PI => FREE pas de problème
En fait l'idée finale est de pouvoir piloter des sorties TOR, caméra du PI depuis mon site par l’intermédiaire des champs Camera, Eclairage que je mets à 1 par le site
Si le champ Caméra est à 1, le PI active la caméra nocturne et s'il y a effraction pouvoir activer une sortie (éclairage, message,etc...)
Il y a certainement plus simple ....
A+
Je suis apicultrice et je me sers du PI pour surveiller le poids des ruches (essaimage, vol de ruches, etc..) via des cartes d'entrées analogiques
Le PI écrit toute les 30mn dans la BDD et envoie des alertes sur mon site et un SMS
Le PI n'est pas serveur (je ne veux pas ouvrir de port sur ma Box Free)
Le PI est connecté sur ma Box par Ethenet
J'ai crée un site chez Free et un BDD (MySQL) http://ruches.montminoises.free.fr/index.php
Dans le sens PI => FREE pas de problème
En fait l'idée finale est de pouvoir piloter des sorties TOR, caméra du PI depuis mon site par l’intermédiaire des champs Camera, Eclairage que je mets à 1 par le site
Si le champ Caméra est à 1, le PI active la caméra nocturne et s'il y a effraction pouvoir activer une sortie (éclairage, message,etc...)
Il y a certainement plus simple ....
A+
Re: Lire dans une BDD distante depuis mon PI
Bonjour,
Miam le miel
ceci étant je ne comprends pas ou est ton problème : Tu arrive à écrire dans ta base de donnée Free (si j'ai bien compris) via ton Rasp. tu fait donc un 'Insert' SQL, et maintenant tu désire faire un 'Select'. La procédure est donc identique avec juste un appel à une fonction qui dépend de ton langage (PHP,Python, Perl ...)
Cordialement.
Nexen
Miam le miel
ceci étant je ne comprends pas ou est ton problème : Tu arrive à écrire dans ta base de donnée Free (si j'ai bien compris) via ton Rasp. tu fait donc un 'Insert' SQL, et maintenant tu désire faire un 'Select'. La procédure est donc identique avec juste un appel à une fonction qui dépend de ton langage (PHP,Python, Perl ...)
Cordialement.
Nexen
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: Lire dans une BDD distante depuis mon PI
On avait déja parlé de ca autrefois quand tu voulais recuperer d'autre valeur dans ta base.
La réponse que je t'avais proposé est identique a celle que je te ferais aujourd'hui, a savoir
utiliser un script php coté hebergeur de facon a recuper tes données au format json via une requete
http.
exemple de code php pour recuperer les valeur des champs Camera et Eclairage du premier enregistrement de la table Echange:
$cnx = mysqli_connect('ton_db_host','ton_db_user','ton_db_password','ton_db_dbname')
or die('erreur cnx !');
$qry = "SELECT Camera, Eclairage FROM Echange LIMIT 0, 1";
$res =mysqli_fetch_assoc(mysqli_query($cnx,$qry));
mysqli_close($cnx);
echo json_encode($res);
La réponse que je t'avais proposé est identique a celle que je te ferais aujourd'hui, a savoir
utiliser un script php coté hebergeur de facon a recuper tes données au format json via une requete
http.
exemple de code php pour recuperer les valeur des champs Camera et Eclairage du premier enregistrement de la table Echange:
$cnx = mysqli_connect('ton_db_host','ton_db_user','ton_db_password','ton_db_dbname')
or die('erreur cnx !');
$qry = "SELECT Camera, Eclairage FROM Echange LIMIT 0, 1";
$res =mysqli_fetch_assoc(mysqli_query($cnx,$qry));
mysqli_close($cnx);
echo json_encode($res);
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: Lire dans une BDD distante depuis mon PI
Ok c"est la même technique que pour écrire avec un insertBud Spencer a écrit :On avait déja parlé de ca autrefois quand tu voulais recuperer d'autre valeur dans ta base.
La réponse que je t'avais proposé est identique a celle que je te ferais aujourd'hui, a savoir
utiliser un script php coté hebergeur de facon a recuper tes données au format json via une requete
http.
exemple de code php pour recuperer les valeur des champs Camera et Eclairage du premier enregistrement de la table Echange:
$cnx = mysqli_connect('ton_db_host','ton_db_user','ton_db_password','ton_db_dbname')
or die('erreur cnx !');
$qry = "SELECT Camera, Eclairage FROM Echange LIMIT 0, 1";
$res =mysqli_fetch_assoc(mysqli_query($cnx,$qry));
mysqli_close($cnx);
echo json_encode($res);
Ce qui fonctionne bien pour récupérer une variable dans une page PHP
Sauf que je veux récupérer cette valeur dans le PI et dans un prg écrit en Python
C'est sympa de m'aider
A+
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: Lire dans une BDD distante depuis mon PI
J'ai parfaitement compris ce que tu cherches à faire Estelle.estelle a écrit :...
Ce qui fonctionne bien pour récupérer une variable dans une page PHP
Sauf que je veux récupérer cette valeur dans le PI et dans un prg écrit en Python
Si tu mets le code que je t'ais écrit dans une simple page php, quand tu l'appelleras depuis un navigateur, tu afficheras normalement une chaine de caractère structurée au format json qui contiendra tes données. La dessus on est d'accord. Par contre si tu fais l'appel depuis ton programme python (en utilisant de mémoire la lib requests) , tu vas pouvoir récupérer tes valeurs et les placer dans des variables pour ensuite en faire ce que tu veux.
Cela s'apparente à la fonction GET ce que l'on appelle un web service (en plus simple). Cela te permet de récupérer des données pour ton programme depuis ta database sans avoir a t'y connecter a distance et sans l'exposer.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: Lire dans une BDD distante depuis mon PI
Comme pour écrire dans la base:
data = {"datealerte":Date_heure_sql, "alerte":'Batterie OK', "ruche":'0', "poidstension":Tension_batterie}
try:
r = requests.post("http://ruches.montminoises.free.fr/RajoutHisto.php", data = data)
print (r.text)
except:
print("Requests: probleme de transmission tension batterie vers serveur")
Sauf que là je doit récupérer les données....????,
data = {"datealerte":Date_heure_sql, "alerte":'Batterie OK', "ruche":'0', "poidstension":Tension_batterie}
try:
r = requests.post("http://ruches.montminoises.free.fr/RajoutHisto.php", data = data)
print (r.text)
except:
print("Requests: probleme de transmission tension batterie vers serveur")
Sauf que là je doit récupérer les données....????,
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: Lire dans une BDD distante depuis mon PI
Exactement le même modèle sauf que pour récupérer des données tu vas utiliser une requête du type request.GET sur ton url et non pas un request.POSTestelle a écrit :Comme pour écrire dans la base:
data = {"datealerte":Date_heure_sql, "alerte":'Batterie OK', "ruche":'0', "poidstension":Tension_batterie}
try:
r = requests.post("http://ruches.montminoises.free.fr/RajoutHisto.php", data = data)
print (r.text)
except:
print("Requests: probleme de transmission tension batterie vers serveur")
Sauf que là je doit récupérer les données....????,
tu peux trouver un peu plus d'info ici -> http://docs.python-requests.org/en/mast ... uickstart/
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: Lire dans une BDD distante depuis mon PI
Ok pour le GET j'avais compris
Par le GET je lance une page PHP avec interrogation de la BDD et résultat dans un ECHO
Au niveau du PI réponse dans r.text
J'ai juste ?
A+
Par le GET je lance une page PHP avec interrogation de la BDD et résultat dans un ECHO
Au niveau du PI réponse dans r.text
J'ai juste ?
A+