Module ESP8266 - ESP01

Bonjour à tous,

Pour me présenter rapidement, je suis débutant en Arduino mais je trouve ça tellement cool que je me suis lancé dans un projet d'utiliser le Wifi pour communiquer avec mon Arduino (chacun ses délires :p)

J'ai donc regardé comment communiquer en Wifi, j'ai vu qu'il y avait des shield et de simples modules tels que le ESP8266. Mon choix s'est porté sur ce module pour me faire la main (je ne sais pas si c'est mieux).

J'ai connecté mon module sur une Arduino Uno R3, le Gnd sur le Gnd, Tx vers Rx et Rx vers Tx et CH_PD et VCC sur 3.3V

Le module fonctionne, la petite LED bleue s'allume au démarrage. J'ai donc testé les AT command pour me connecté ce que j'arrive parfaitement à faire.

Pour le moment je suis plutôt content, mais voilà pour la suite de mon projet j'aimerai envoyé des HTTP Request sur un serveur Apache hébergé sur une de mes VM (Linux Mint).

J'ai fais quelques tests, j'ai ping sur mon Windows l'IP de l'ESP8266 qui répond nickel puis celle de ma VM qui répond elle aussi. J'ai utilisé AT+PING pour effectué les mêmes tests à partir du module, je ping mon Windows qui répond mais ma VM ne répond pas...

Alors pour ce qui est des IP :

-Windows: 192.168.1.23
-Linux: 192.168.137.128
-Module ESP: 192.168.1.200

En faisait d'autres tests, j'ai remarqué que je pouvais ping tous mes appareils (NAS, Routeur) qui ont une IP de la forme 192.168.1.xx

Voici le code que j'utilise :

ESP8266.begin(9600);
  delay(500);
  ESP8266.println("AT+RST");

  /* INIT */

  delay(1000);
  ESP8266.println("AT");
  done = ESP8266.find("OK");
  if(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* CLIENT MODE */

  delay(1000);
  ESP8266.println("AT+CWMODE=1");
  done = ESP8266.find("OK");
  if(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* */

  delay(1000);
  ESP8266.println("AT+CIPSTA=\"192.168.1.200\",\"192.168.92.254\",\"255.255.255.0\"");
  //ESP8266.println("AT+CIPSTA=\"192.168.137.10\"");
  done = ESP8266.find("OK");
  while(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* FIND WIFI */

  delay(1000);
  ESP8266.println("AT+CWLAP");
  done = ESP8266.find("OK");
  while(!done) {
    delay(1000);
    done = ESP8266.find("OK");
    delay(3000);
    break;
  }

  /* CONNECTION WIFI SSID */

  ESP8266.println("AT+CWJAP=\""+ssid+"\",\""+password+"\"");
  done = ESP8266.find("OK");
  while(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* MULTIPLE CONNECTION */

  ESP8266.println("AT+CIPMUX=1");
  done = ESP8266.find("OK");
  if(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* DISPLAY IP */

  ESP8266.println("AT+CIFSR");
  done = ESP8266.find("STAIP");
  if(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

  /* PING SERVER */

  delay(1000);
  ESP8266.println("AT+PING=\"192.168.1.10\"");
  done = false;
  if(!done) {
    delay(1000);
    done = ESP8266.find("OK");
  }

Dans ce code je ping mon Windows j'obtiens donc une réponse : "AT+PING="192.168.1.10"+8 OK"
Mais lorsque je remplace par l'IP de Linux: "AT+PING="192.168.137.128"+timeout ERROR"

Je viens donc vous demander vos conseils, je ne sais plus trop vers quoi m'orienter pour régler ce problème, si je n'arrive pas à ping vers ma VM je ne pense pas pouvoir envoyer de données pour la suite.

Si quelqu'un à une solution ou même une piste je suis preneur !

Merci d'avance

Je reviens vers vous pour dire que j'ai enfin résolu mon problème ! si jamais quelqu'un veut faire la même config que moi en faisant tourner un serveur sur une VM il faut s'assurer que le Network Adapter du soft de virtualisation utilisé soit en Bridge et non pas en NAT. Cela permet d'attribuer une adresse IP propre à la VM et donc d'être détecté par le module ESP.

Merci c'est cooll