Mes arduinos et wemos sont tous considérés comme des clients web !!!
voila, j'arrive à envoyer dans ma base de données les variables sortantes de mes wemos D1 (R1 et R2)
de mes cartes uno et mega avec bouclier ethernet
Tout ce ptit monde accede au net via un routeur dédié
on m'a dit de placer la page dans une variable
mais comment faire ?
la parser comme en PHP et eliminer le code dont on a rien a faire ?
ca prend pas trop de memoire pour un arduino ?
Dans la mesure où ta page ne comporte pas beaucoup de lignes, le plus simple est de compter les retours chariot. Il te suffira ensuite de stocker les lignes 2 et 3 dans des variables.
Pour une vue générale du client Web, voir ici.
Il te suffira de modifier la boucle de réception des caractères pour intercepter tes 2 lignes.
Le plus simple est de mettre une place une sorte de web service de consultation côté php, à une uri dédiée, et qui retournerait non pas une page html destinée à un navigateur, mais un flux texte destiné à être exploité par un programme.
Les formats de flux texte usuellement utilisés sur le web sont json ou xml, mais c'est pénible à décoder avec un arduino. Cela pourrait aussi être un bête csv
Par exemple minimaliste : http://starenda.info/API/toto.php pourrait retourner la valeur de toto, sous forme d'une simple chaîne de caractères.
MErci bricolo
mais aurais tu un exemple car je desire placer la ligne 2 qui le premier resultat de ma bdd dans nom_précedent (dans les arduino)
et le resultat de la ligne 3 dans etat_prec
bisur, je peux n afficher que ca ^^
ESP1 ou uno1
et le chiffre sur la ligne du dessous
binoclard:
et donc comment je fais pour sortir juste les 2 lignes ?
je n'ai pas de code a presenter cest la le probleme
je sais appeler une page par une url, mais comme je n'attends aucun retour , je ne la stocke pas coté arduino
et la justement je veux appeler une page et la stocker pour traiter le retour
Merci
Hello, je te conseille d'encoder tes données quand tu les envoies dans ta base de données par exemple si tu as une carte arduino mega qui t'envoie 39 par exemple tu l'encode comme ça ==> AM_39_untimestamp et en php tu fait un explode("_", "AM_39_untimestamp") et tu récupère un array avec en clé 0 AM pour Arduino Mega, 39 en clé 1 pour la valeur et en clé 2 le timestamp ainsi tu compare les timestampes des dernières valeurs entré pour avoir tes 2 dernières lignes
Skew:
Hello, je te conseille d'encoder tes données quand tu les envoies dans ta base de données par exemple si tu as une carte arduino mega qui t'envoie 39 par exemple tu l'encode comme ça ==> AM_39_untimestamp et en php tu fait un explode("_", "AM_39_untimestamp") et tu récupère un array avec en clé 0 AM pour Arduino Mega, 39 en clé 1 pour la valeur et en clé 2 le timestamp ainsi tu compare les timestampes des dernières valeurs entré pour avoir tes 2 dernières lignes
avant de penser sécurité et encodage , je veux recuperer mes données issues de la base soit
ESP01 (ca sera ESP ou UNO ou MEG et XX pour le numero de la carte)
et
1 (ca ira de 1 à 9 pour l'etat de la carte qui lit cet etat)
ESP01 lit l'état de ESP02
ESP02 lit l'état de ESP03
ESP03 lit l'etat de UNO01
UNO 01 lit l'etat de MEG01 et de MEG02
J'ai pas mal avancé !!
je sais maintenant recevoir les données dans une variable
maintenant comment mettre les 5 premiers caracteres de ma variable String a_recevoir;
dans la variable String canton_prec;
et le chiffre qui suis (soit le 6 caractere)
dans la variable String etat_prec;
et donc il récupere dans carte_prec le nom de la carte
et dans etat_prec son etat
voila c'est simple quand on comprend
Encore un grand merci a tous (Jml / Skew / bricoleau ) et aussi merci pour votre patience (je suis nul, mais j'essaie d'évoluer, meme si c est pas gagné )
, et surtout à zlika qui m'a donné la solution miracle
dans l'absolu bien sûr il vaudrait mieux se passer de la classe String (même si sur ESP on a plus de mémoire) et utiliser des cStrings et les fonctions des librairies standard stdlib.h et string.h
par exemple la fonction strncpy() va copier n caractères d'une cString à une autre.