Bonjour,
J’ai cherché dans les moteurs de recherche mais j’ai peut être mal cherché car je ne trouve aucune solution pour lire des données d’une base mysql avec un esp32 ou 8266. Je trouve partout comment insérer des données dans la base mais nulle part comment les lire.
Dans mon projet j’ai une page en php qui va récupérer des données d’un json sur une api externe et les réinsérer dans ma propre bdd, cette partie fonctionne, et je voudrais pouvoir relire sur mon esp ces données que le php a traité correctement et inséré dans ma bdd. Merci d’avance à tout ceux qui pourraient l’aiguilleur.
Autre chose : y’a t’il une solution sur esp pour récupérer l’heure locale en ayant des infos de localisation (soit ville et pays, ce serait le plus simple, soit coordonnées latitude/longitude, je pense pouvoir mettre ça en place d’une façon)? Merci.
Salut.
Tout dépend de la manière de procéder.
Soit l'ESP32 adresse directement une requête MYSQL à la base de données.
Soit l'ESP32 adresse une requête HTTP au serveur PHP. Celui-ci retourne en général une réponse au format JSON que le client interprète.
Oui. Il suffit de configurer la gestion de l'heure via configTzTime() :
Bonjour,
la solution que j'utilise avec un serveur maria_sql et des esp32, il y a plus propre comme script...
// dans l'entête
#include <MySQL_Generic.h> // pour accès sql version 1.7.2
String sql1 ;
MySQL_Connection conn((Client *)&client);
MySQL_Query sql_query = MySQL_Query(&conn);
//dans loop
sql1 = String("SELECT") +" h_duree FROM automate.`arrosage` WHERE boitier='TOU' and zone = 'Z0'";// la requette
le_retour_sql = lect_sql();
// fin
//fonction lecture mysql avec retour
String lect_sql(){
String toto;
row_values *row = NULL;
String head_count ;
MySQL_Query query_mem = MySQL_Query(&conn);
query_mem.get_columns();
do {
row = query_mem.get_next_row();
if (row != NULL) {
head_count = row->values[0];
toto = row->values[0];
}
}
while (row != NULL);
sql_query.close();
conn.close();
return toto;
}
pour ce qui est de l'heure, je récupère l'heure du serveur maria_sql
sql1 = String("SELECT") +" curtime()'";
@hbachetti le mieux serait que l’esp adresse directement une requête mysql au server je pense. Pour l’heure je vais me pencher dessus, merci.
@deb_un merci, est-ce que ça fonctionne avec un serveur mysql? Je n’ai pas trop eu le temps de lire le code mais je ne vois pas où on entre les nom de serveur, identifiant, mot de passe et nom de la base.
Bon, en allant vite j'ai oublié la moitié des infos...
ça fait un bon moment que je n'y ai pas touché
Le plus simple => prendre l'exemple de la bibliothèque
exemple MySQL_MariaDB Generic WiFi BasicSelectWiFi
Voila
Oui et non, c'est le plus simple ou rapide, le mieux ca dépend ce que l'on recherche.
En règle général d'un point de vue sécurité, on essaye de ne pas exposer directement les base de données.
Ce qui n'est pas faux.
Il vaut peut être mieux un serveur "sql" bien sécurisé, qu'une chaine serveurs "web/sql" passoire.
Tout dépend de la sécurité que l'on a et que l'on met en place.
Il y a diverses écoles, chacun son approche, le tout c'est que ce soit sécurisé au mieux
Cela n'a pas vraiment de sens.
La chaine complète doit avoir le même niveau de sécurité.
Dans le même genre de phrase de comptoir, a quoi bon sécuriser un serveur SQL, si tu peux te connecter en ssh anonyme avec les droits super user sur la machine qui l'héberge
Je ne vois pas trop le rapport avec votre âge ?
Si je vous ais vexer avec mon message sur ce qui est fait en générale, j'en suis navré car cela n'était pas mon souhait, surtout que cela ne vous était pas du tout adressé
Après si ma réponse n'apporte rien, surement à cause de mon âge avancé et des mauvaises habitude de programmation que j'ai dû prendre.
Mais si les conventions ont changés, je serais ravi de me mettre à la page.
Personnellement j'essaye de respecter et d'être dans une certaine mesure tolérant, pas parce que l'on me l'a inculqué, mais parce que j'adhère à ces principes.
D'ailleurs tu pourra remarquer que je n'ai en aucun cas, dit que ta réponse ne servait à rien!!!
Encore une fois, mon but n'était pas de te vexer.
Si tu veux que l'on développe si tel ou tel principe de fonctionnement est plus ou moins sécuritaire, on peut créer un thread dédié, je suis toujours près à apprendre.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.