Go Down

Topic: ESP8266 faire appelle à une API à partir d'arduino ! (Read 1 time) previous topic - next topic

TheSnowyx

Bonjour, bonsoir  :) ,
Je suis un débutant dans l'Arduino.
J'ai besoin de vous pour récupérer le texte que nous renvoie un script php, par exemple celui ci : "http://furmeca.890m.com/rfid.php"
J'ai tout d'abord utilisé les commandes AT pour me connecter au réseau Wifi et tout fonctionne parfaitement.
Je voudrais que mon programme se connecte à une Livebox puis que toutes les 10 secondes mon ESP8622 fasse une recette à L'API ci-dessous et stocke le texte renvoyé dans une variable String.
Merci de me répondre.
Cordialement Adrien

fdufnews

Peut-être qu'en regardant l'exemple BasicHTTPClient.ino, qui est installé avec le package ESP8266, tu pourrais trouver ton bonheur.

Artouste

Je suis un débutant dans l'Arduino.
J'ai besoin de vous pour récupérer le texte que nous renvoie un script php, par exemple celui ci : "http://furmeca.890m.com/rfid.php"
...
J'ai tout d'abord utilisé les commandes AT pour me connecter au réseau Wifi et tout fonctionne parfaitement.
Bonsoir
tu veux faire le traitement où ?
sur l'arduino par commande AT ?
ou directement sur l'esp8266 programmé sous IDE arduino ?

TheSnowyx

Bonsoir, merci de m'avoir répondu.
J'ai trouvé une solution en passant par les commande AT :

-AT+RST

-AT+CIPSTART="TCP", "api.thingspeak.com",80

-AT+CIPSEND=90

-"GET /apps/thinghttp/send_request?api_key=***********\r\nHost:api.thingspeak.com\r\n\r\n\r\n\r\n\r\n"

donc sa marche à merveille mais j'aimerai comprendre deux, trois trucs.

-Qu'est-ce que TCP et UDP ?
-Comment trouver une longueur de 90 ?
-Et Les \r\n à la fin sont il indispensable ?

Merci

TheSnowyx


J-M-L

Quote
-Qu'est-ce que TCP et UDP ?
Voici la réponse

90 c'est le nombre d'octets dans votre requête
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

TheSnowyx

Merci de ta réponse,
maintenant je cherche à faire donc la requête :
"GET /apps/thinghttp/send_request?api_key=***********\r\nHost:api.thingspeak.com\r\n\r\n\r\n\r\n\r\n"
le plus rapidement possible sans qu'il y est des erreur.
J'ai trouvé une solution mais elle est lente (une requête toutes les 12 secondes)
Je fait un reset entre chaque requête mais il y aurai une autre solution plus rapide?
merci de me repondre. :)

J-M-L

Bonjour

Quote
J'ai trouvé une solution mais elle est lente (une requête toutes les 12 secondes)
si vous montriez votre solution, on pourrait vous dire où c'est lent...
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

al1fch

Bonjour

ThingSpeak, dans la version gratuite , est limitée à "une requete toutes les 15s environ", 1 par seconde dans les diverses versions payantes. Une requete unique peut mettre à jour les 8 champs (maxi) d'un 'canal"
https://thingspeak.com/prices

TheSnowyx

Merci de vos réponse, donc faire moins de 12sec n'aurai aucune utilité.

Sinon pour ma solution, même si il n'y a pas d'utilité:
mon prog :

-AT+RST -> delay de 5sec
-AT+CIPSTART="TCP", "api.thingspeak.com",80  -> delay de 3sec
-AT+CIPSEND=90  -> delay de 3sec
-"GET /apps/thinghttp/send_request?api_key=***********\r\nHost:api.thingspeak.com"  -> delay de 3sec

puis je recommence.

donc je cherche une solution plus rapide. (ex : ne pas reset le module wifi  = -5sec)

merci de me repondre
cordialement Adrien

J-M-L

Pourquoi faut il un delay de 5 secondes après le reset? cest ridicule, la carte ne met pas 5 secondes à revenir dispo
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Go Up