====== ESP01 & Arduino ======
L'ESP01 (ESP8266) peut servir d'interface WiFi à un Arduino.
{{:documentation:microcontroleurs:arduino:modules:esp01_arduino:esp01_adaptateur_01.jpg?direct&200 |}}{{:documentation:microcontroleurs:arduino:modules:esp01_arduino:esp01_adaptateur_03.jpg?direct&200 |}}
{{:documentation:microcontroleurs:arduino:modules:esp01_arduino:esp01_adaptateur_02.jpg?direct&200 |}}
{{:documentation:microcontroleurs:arduino:modules:esp01_arduino:esp01_adaptateur_04.jpg?direct&200|}}
===== Interfaçage avec l'Arduino =====
L'ESP01 (le 8266 en général) fonctionne en 3,3V et nécessite une adaptation de niveaux pour la liaison série TX/RX.
C'est à ça que sert cette platine (en plus d'alimenter l'ESP01 en 3,3V) :\\
{{:documentation:microcontroleurs:arduino:modules:esp01_arduino:esp-01_adaptera-web.jpg?direct&400|}}
\\
===== Initialisation ESP-01 =====
Utiliser « SoftwareSerial » pour pouvoir utiliser les broches qu'on veut au lieu de TxD / RxD qui servent à la liaison Arduino <-> PC.
#include
SoftwareSerial ESP8266(10, 11);
/****************************************************************/
/* Fonction qui initialise l'ESP8266 */
/****************************************************************/
void initESP8266()
{
Serial.println("**********************************************************");
Serial.println("**************** DEBUT DE L'INITIALISATION ***************");
Serial.println("**********************************************************");
envoieAuESP8266("AT+RST");
recoitDuESP8266(2000);
Serial.println("**********************************************************");
envoieAuESP8266("AT+CWMODE=3");
recoitDuESP8266(5000);
Serial.println("**********************************************************");
envoieAuESP8266("AT+CWJAP=\""+ NomduReseauWifi + "\",\"" + MotDePasse +"\"");
recoitDuESP8266(10000);
Serial.println("**********************************************************");
envoieAuESP8266("AT+CIFSR");
recoitDuESP8266(1000);
Serial.println("**********************************************************");
envoieAuESP8266("AT+CIPMUX=1");
recoitDuESP8266(1000);
Serial.println("**********************************************************");
envoieAuESP8266("AT+CIPSERVER=1,80");
recoitDuESP8266(1000);
Serial.println("**********************************************************");
Serial.println("***************** INITIALISATION TERMINEE ****************");
Serial.println("**********************************************************");
Serial.println("");
}
/****************************************************************/
/* Fonction qui envoie une commande à l'ESP8266 */
/****************************************************************/
void envoieAuESP8266(String commande)
{
ESP8266.println(commande);
}
/****************************************************************/
/*Fonction qui lit et affiche les messages envoyés par l'ESP8266*/
/****************************************************************/
void recoitDuESP8266(const int timeout)
{
String reponse = "";
long int time = millis();
while( (time+timeout) > millis())
{
while(ESP8266.available())
{
char c = ESP8266.read();
reponse+=c;
}
}
Serial.print(reponse);
}