ESP8266 api rest

Bonjour à tous,

Je sollicite votre aide, Je souhaiterai faire un appel api sur une api que j'ai déjà en fonctionnement sur arduino via Esp8266.

Pour positionner l'état de mon projet, j'ai un arduino uno avec un esp8266, j'arrive d'ores et déjà à envoyer mes command AT pour lesquels j'ai des réponses.

Et à me connecter à mon réseau wifi (je vois le esp8266 connecté à mon réseau sur mon routeur)

Pour être franc, je suis pas bon en environnement de codage pour arduino encore, les installations de librairies etc.

A chaque fois que j'ajoute une librairie, il me manque un fichier :slight_smile: (dernièrement par exemple avec l'inclusion de esp8266Wifi.h)

Contents/Java/libraries/ESP8266WiFi/src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory

Mon but final est d'avoir des arduino qui communiquent avec mon api en GET et en POST pour faire le lien entre eux...

Je ne sais pas si je suis clair dans mon explication :frowning: et là je suis bloqué à l'appel de mon URL pour l'API

Quelqu'un pourrait m'aider ?

Mon code qui fonctionne avec les commandes AT

//#include <ESP8266WiFi.h>;
//#include <ESP8266HTTPCLIENT.h>;
#include <SoftwareSerial.h>
#define RX 10
#define TX 11

String AP = "ssid";     
String PASS = "mdp"; 
int countTrueCommand;
int countTimeCommand; 
boolean found = false; 
int valSensor = 1;
SoftwareSerial esp8266(RX,TX); 
 
  
void setup() {
  Serial.begin(9600);
  esp8266.begin(115200);
  sendCommand("AT",5,"OK");
  sendCommand("AT+CWMODE=1",5,"OK");
  sendCommand("AT+CWJAP=\""+ AP +"\",\""+ PASS +"\"",20,"OK");
}
void loop() {
 sendCommand("AT+RST",5,"OK");
 sendCommand("AT",5,"OK");
}

void sendCommand(String command, int maxTime, char readReplay[]) {
  Serial.print(countTrueCommand);
  Serial.print(". at command => ");
  Serial.print(command);
  Serial.print(" ");
  while(countTimeCommand < (maxTime*1))
  {
    esp8266.println(command);//at+cipsend
    if(esp8266.find(readReplay))//ok
    {
      found = true;
      Serial.write(Serial.read());  
      break;
    }
  
    countTimeCommand++;
  }
  
  if(found == true)
  {
    Serial.println("Il a trouvé qqch");
    countTrueCommand++;
    countTimeCommand = 0;
  }
  
  if(found == false)
  {
    Serial.println("Il a rien trouvé");
    countTrueCommand = 0;
    countTimeCommand = 0;
  }
  
  found = false;
 }

NB : J'essaye vraiment de garder l'arduino comme type de carte pour pouvoir piloter autre chose avec. (on trouve bcp de tutos qui passent uniquement par le esp8266, j'imagine que c'est ça qui me pose problème au niveau des librairie)

Si jamais j'ai dis une grosse bêtise dans tous ça :frowning: ... dsl j'apprend le truc :slight_smile:

Merci d'avance

ESP8266WiFi.h est un fichier à inclure dédié à l'ESP8266

Je ne vois pas trop ce que tu pourrais en faire dans un code avr (UNO).

Oui c'est bien ce que je me disais :slight_smile:

Mais du coup on peut bien appeler des url en POST ou GET via les commande AT ? (pour l'API)

J'avais vu un bout de code qui disais qu'il fallait compter le nombre de bytes avant d'envoyer la requête, mais impossible de remettre al main sur ce bout de code pour le tester :frowning:

Je cherche encore :slight_smile:

Merci pour le retour rapide en tous cas

Mais du coup on peut bien appeler des url en POST ou GET via les commande AT ? (pour l'API)

Absolument aucune idée. Je n'utilise jamais ce genre de montage UNO / ESP8266.
C'est contre performant et complètement dépassé.
Un ESP8266 sait tout faire mieux qu'une UNO, à part si l'on a besoin de plusieurs pins ADC.