====== 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); }