Connexion ESP8266 Arduino

Lenki31
mer, 06/03/2020 - 21:23
Bonjour à tous,
Lorsque j'essaie de connecter mon Arduino avec mon esp8266, voici ce que le moniteur série m'affiche:
La config est la suivante:
RX->RX, TX->TX, 115200 bauds
Pouvez-vous m'aider à régler ce problème pour que je puisse utiliser les commandes AT?
Le tuto dispo sur votre site ne marche absolument pas et je dirais même que le fonctionnement que je décris plus haut est un peu aléatoire (mon esp8266 ne démarre pas systématiquement quand je le branche sur mon alim externe 3,3V...)
Merci d'avance pour votre grande aide !
Electroniquement
Marcmdjg
jeu, 06/04/2020 - 12:14
salut lenk,
ton esp ne peut pas communiquer si tes branchements sont comme tu le décrit...
il faut croisser tx rx et vice versa,
le rx réception doit recevoir du tx (transmission) de ton second appareil...
j'oubliais, les 2 systèmes, ici esp et l'arduino doivent avoir la même masse, donc ton GND de ta source (batterie) reliée aux 2 (esp et arduino), sinon le langage sera mal interprété (après ton arduino peut être alimenté en 12v et ton esp en 5 ou 3v avec un convertisseur, l'essentiel c'est que le GND de ta source soit identique, pas 2 batteries pour chaque systèmes).
@+
Walter
jeu, 06/04/2020 - 10:38
Quel est ton esp8266, un esp8266-01?
Ce qui est décrit dans le site est à ma connaissance fonctionnel.
Peut tu décrire complètement tes branchements.
Lenki31
jeu, 06/04/2020 - 15:00
Bonjour et merci pour vos retours !
Les masses sont bien interconnectées entre elles. Pour info mon arduino est alimenté en USB et l'esp en 3,3v via une petite alim de breadboard externe.
Concernant la version de l'esp je ne sais pas comment le savoir.
Sur le µc principal il est bien marqué esp8266 (quand je m'arrache les yeux :D)
En branchant TX->RX et RX->TX, même après un temps relativement long (>3min), le moniteur affiche rien
Comment savoir si l'esp est un 01 ou non?
Dans le doute, une photo de mon branchement ci-dessous.
Merci encore !
Walter
jeu, 06/04/2020 - 15:57
C'est un esp8266-01.
du coup tu pourrais nous faire un petit schema de ton branchement?
Lenki31
jeu, 06/04/2020 - 17:59
Ok merci pour la précision.
Voici mon schéma de câblage, rien de bien particulier à mon avis
Je précise que les batteries sont : côté arduino l'alimentation usb du pc, côté esp une alimentation externe
smsgsic
mar, 08/04/2020 - 13:02
Le problème c'est que le schéma ne correspond pas à ton ESP8266-01 !
daghari mabrouk
ven, 04/07/2023 - 02:38
j'utilise une carte arduino mega pour faire fonctionner un code téléversé sur un module ESP8266 /01 à l'aide d'une liaison usb assuré par un adaptateur usb ; parceque le basculement ne s'est pas fait sur cet adaptateur j'ai pensé utliliser la carte mega ; ça m'a réussi une seule fois , et dans les autres fois , échec total ; dés que je connecte la carte au module ,je met le moniteur série et je reçois une succession de "?" ,bien rythmées , sans interruption ,pourquoi ?
daghari mabrouk
ven, 04/07/2023 - 02:41
le code en question ,fait que le module esp01 devienne un client wifi local , reçoit des requêtes "GET" en html et renvoie l'état d'une led sur une page web
Louis.D
ven, 04/07/2023 - 09:34
Si tu reçois des "?" c'est que la vitesse en bauds de ton moniteur série n'est pas la même que ce que tu as programmé dans ton ESP8266-01 ! Adapte le débit série !!!
Donne nous ici le code que tu as téléversé dans ton ESP8266-01 si tu veux une aide plus précise !
daghari mabrouk
lun, 04/10/2023 - 01:59
//ESP8266_LED_Control.ino
/*
This is a demo of ESP8266 WiFi Module in standalone mode (without Arduino) controlling an LED via a Web page.
This code also demostrates that PWM is available on the ESP8266, so we can dim the LED.
Analog Input is available on the ESP8266 but this pin is not wired up on ESP-01 board.
The ESP can also support interrupts.
This demo uses the Arduino IDE and the Arduino Boards Manager to upload the program to the ESP2866 with an FTDI Programmer.
N.B. This overwrites any Firmware that was previously on the ESP8266.
See: http://www.instructables.com/id/ESP8266-WiFi-Module-for-Dummies/ for the details on how to set the board up and upload the code to the ESP8266
Also see: http://www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP826...
*/
// Include the ESP8266 Library. This library is automatically provided by the ESP8266 Board Manager and does not need to be installed manually.
#include <ESP8266WiFi.h>
String codeVersion = "Version 1.0 Aug 2016 by TonesB";
// WiFi Router Login - change these to your router settings
const char* SSID = "";
const char* password = "";
// Setup GPIO2
int pinGPIO2 = 2; //To control LED
int ledStatus = 0; //0=off,1=on,2=dimmed
// Create the ESP Web Server on port 80
WiFiServer WebServer(80);
// Web Client
WiFiClient client;
void setup() {
Serial.begin(115200);
delay(10);
// Setup the GPIO2 LED Pin - this demo also uses PWM to dim the LED.
pinMode(pinGPIO2, OUTPUT);
digitalWrite(pinGPIO2, LOW);
ledStatus = 0;
// Connect to WiFi network
Serial.println();
WiFi.disconnect();
WiFi.mode(WIFI_STA);
Serial.print("Connecting to ");
Serial.println(SSID);
WiFi.begin(SSID, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected to WiFi");
// Start the Web Server
WebServer.begin();
Serial.println("Web Server started");
// Print the IP address
Serial.print("connect to the ESP8266 URL: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a user has connected
client = WebServer.available();
if (!client) { //restart loop
return;
}
// Wait until the user sends some data
Serial.println("New User");
while (!client.available()) {
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r\n');
Serial.println(request);
client.flush();
// Process the request:
if (request.indexOf("/LED=ON") != -1) {
analogWrite(pinGPIO2, 1023);
ledStatus = 1;
}
if (request.indexOf("/LED=OFF") != -1) {
analogWrite(pinGPIO2, 0);
ledStatus = 0;
}
if (request.indexOf("/LED=DIM") != -1) {
analogWrite(pinGPIO2, 512);
ledStatus = 2;
}
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html; charset=UTF-8");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<title>ESP8266 Demo</title>");
client.println("</head>");
client.println("<body>");
client.println("<a href=\"/\">Refresh Status</a>");
client.println("</br></br>");
//check the LED status
if (ledStatus == 0) {
client.print("LED is Off</br>");
client.println("Turn the LED <a href=\"/LED=ON\">ON</a></br>");
client.println("Set LED to <a href=\"/LED=DIM\">DIM</a></br>");
} else if (ledStatus == 1) {
client.print("LED is On</br>");
client.println("Turn the LED <a href=\"/LED=OFF\">OFF</a></br>");
client.println("Set LED to <a href=\"/LED=DIM\">DIM</a></br>");
} else if (ledStatus == 2) {
client.print("LED is Dimmed</br>");
client.println("Turn the LED <a href=\"/LED=OFF\">OFF</a></br>");
client.println("Turn the LED <a href=\"/LED=ON\">ON</a></br>");
}
client.println("</br>");
client.println("<a href=\"http://www.instructables.com/id/ESP8266-WiFi-Module-for-Dummies/\" target=\"_blank\">See the Instructables Page: ESP8266 WiFi Module for Dummies</a></br>");
client.println("<a href=\"http://www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP826...\" target=\"_blank\">See the Instructables Page: The Simple Guide to Flashing Your ESP8266 Firmware</a></br>");
client.println("</br>");
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("User disconnected");
Serial.println("");
ceci est le code que j'utilise pour flasher mon esp01 , et ça m'a réussi une seule fois , j'ai utliilisé alors une carte arduino mega ;pour ce qui est de la vitesse du moniteur elle est identique au code , càd 115200 ; ce code par ailleurs marche bien, sur le nodemcu 12E lolin ,et ne rate jamais
Jetfuzz
ven, 04/07/2023 - 09:58
hello.
est ce que ton ESP supporte une tension de 5 volts (de l'arduino) sur l'entrée RX s'il est alimenté en 3 volts ?
et, est ce que l’Arduino va interpréter un état haut a 3 volts (de l'ESP) sur son RX alors qu'il est alimenter en 5Volts ?
cordialement
Jetfuzz
daghari mabrouk
dim, 04/09/2023 - 02:47
je comprends mais j'ai déjà essayé d'alimenter l'esp par une alimentation externe, mais à ce moment quel branchement faut-il pour communiquer l'esp avec le pc à travers le nodemcu 12E (ou l'arduino mega) ; notamment en ce qui concerne les Tx et Rx , est-ce qu'il faut les inverser ou pas ?
Walter
dim, 04/09/2023 - 08:52
Je ne suis pas sûre que tu es bien compris le commentaire de Jetfuzz.
Il y a un risque d'envoyer directement du 5V, sur les broches de l'ESP qui supporterais que 3.3V
Sinon oui, pour toutes connexions série, tu doit relier la broche qui émet(TX), sur la broche qui réceptionne(RX) de l'autre coté.
Donc faire de même avec la broche qui récpetionne(RX)
Louis.D
dim, 04/09/2023 - 13:59
Les pins TX et RX des ESP8266 sont capables de supporter jusquà 5.8 Volt sans aucun soucis !
Par contre daghari mabrouk évite de mettre tes SSID et PASSWORD dans les messages que tu postes sur le net on ne sait jamais sur qui tu peux tomber.
Je te recommande d'une part de les supprimer dans ton message ici et pour éviter de recommencer crée un fichier "MaWifi.h" dans le même repertoire que ton programme ino, contenant les instructions suivantes :
const char* SSID = "Ton SSID";
const char* password = "Ton PASSWORD";
sauvegarde et relance Arduino ide !!
NB : le plus simple pour programmer un ESP266-01 est d'utiliser ce système:
http://les-electroniciens.com/discussions/programateur-esp8266-facile-realiser
Remplace ton code par celui-ci :
Attention si tu utilises un Arduino UNO pour programmer ton ESP8266 il te faut passer de 115200 à 9600 bauds !!!!
Tu peux remarquer que sous la ligne:
#include <ESP8266WiFi.h>
J'ai rajouté :
#include "MaWifi.h"
Ce qui te permet de faire des copier/coller de ton code sur le NET sans aucun risque !
J'ai fait deux ou trois retouches sur ton code et voila le résultat en Vidéo
daghari mabrouk
lun, 04/10/2023 - 02:18
tout ça est beau , mais mon problème ne se situe pas à ce niveau; je te parle d'un esp01 dans lequel j'ai téléversé le code , l'ennui c'est au moment du basculement vers le fonctionnement ; le moniteur série n'affiche rien ou alors des symboles inutilisables ; l'esp01 en fin de compte ne se connecte pas à mon wifi ; dans la vidéo ,j'aimerai que tu me décris succinctement les liaisons que tu emploies pour relier l'esp01 à une carte ESP8266 12E lolin ,par exemple ou à la carte arduino méga ; étant donné que l'esp01 n'est pas doté d'un "basculement" automatique , le reset se faisant par contact entre les broches GND et EN
Louis.D
lun, 04/10/2023 - 11:35
As-tu modifié le débit du port série à 9600 bauds ?
Tu veux relier un ESP01 à un ESP8266 12E lolin ??
Arduino UNO ou Méga les numéros des pins sont identiques !
daghari mabrouk
mar, 04/11/2023 - 03:30
j'ai fait ce schema de connexion , le programme ne se téléverse pas sur l'esp01; et j'ai changé la vitesse en 9600 bauds ; est-ce qu'il y a des questions auxquelles je n'ai pas répondu ?
je te fais remarquer qu'en connectant l'esp8266 nodemcu lolin , avec les connexions suivantes :
1-vcc esp01----vcc lolin /2-GND---GND / Tx---Tx /4-Rx---Rx /5-GPIO 0--GND Lolin/6-RST---RST/7-EN--VCC Lolin , j'obtiens un téléversement du code sur l'esp01 ; mais au moment ou je mets le moniteur série, à la même vitesse que celle du code, après avoir débranché la broche GPIO 0 , je fais le reset manuel de l'esp01 , la connexion au wifi local ne se fait pas , je vois à l'écran des symboles, des lettres, des ? ,etc ,rien de lisible ; pourtant j'avais travaillé avec l'application " Blynk" ,en utilisant la bibliothèque Blynk ,tout marchait sans problème ; j'obtiens des objets connectés,qui allument les lumières de la maison avec une stabilité idéale ; mais comme Blynk a cessé de fournir ses services , j'ai essayé de travailler avec la méthode du "webserver " avec le code que j'ai mentionné plus haut ; jusque là j'ai réussi une seule fois à obtenir un objet connecté , un module esp01 qui s'est connecté à mon réseau; lorsque j'utilise la carte de développement Lolin ,tout se passe bien , mais cette plaque est à la fois chère et encombrante ; alors que me conseilles tu à entreprendre ,avec mes respects ,merci .
Louis.D
mar, 04/11/2023 - 18:45
Dans toutes les configurations il faut mettre à 9600 Bauds ! Dans le code, dans le moniteur série et dans le LOLIN !
Par contre TX LOLIN doit être avec RX ESP01 et RX ESP01 avec TX LOLIN !!!!
Explcation TX est la pin qui transmet des données qui doivent être reçues par le récepteur sur sa pin RX et inversement ! Si tu relies les TX ensemble c'est comme si deux personnes parlais ensemble et ne pouvaient pas écouter, en n'écoutant pas l'autre. De même si deux personnes écoutent en même temps elles n'entendront rien ! Dans un dialogue le premier parle (TX1 de LOLIN) et le second écoute (RX de ESP01) , puis inversement quand la réponse se fait depuis celui qui écoutait qui devient celui qui parle (TX ESP01) et celui qui parlait passe en écoute (RX de LOLIN) .
Si tu doutes de mes affirmations regarde ici le propriétaire de ce site ! Notament à 1 mn 30 de cette vidéo !
Donc tu ne téléverses pas dans l'ESP01 mais peut être dans LOLIN comme ceux sont deux ESP8266.
Mais ce n'est pas suffisant !
Il faut passer l'ESP01 en mode programmation et pour ce faire il faut faire un court circuit entre GND et GPIO 0 de l'ESP01 avant de le mettre sous tension Puis mettre l'ESP01 sous tension et seulement après retirer le courcuit. Là enfin tu peux téléverser ! Sans cela tu ne programmeras jamais ton ESP01. Pour les autres ESP 8266, ESP8566, ESP32 il vaux mieux appuyer sur le bouton reset avant de les mettre sous tension ! (cela peux marcher sans, mais pas toujours)
Si je ne t'ai rien dit avant c'est que tu affirmais téléverser le code dans l'ESP01 alors que ce n'était pas vrai, même si tu en étais persuadé, désolé !
La prochaine fois évite d'affirmer des actions que tu ne sais pas réaliser, cela t'évitera des déconvenues !
Demande plutôt comment réaliser la chose de A à Z !
Walter
mar, 04/11/2023 - 19:52
Pour être encore plus précis, au redémarrage de ton ESP-01, il faut remettre le GPIO0 à VCC.
et bien sûre rebooter l'ESP après le upload du programme.
Louis.D
mer, 04/12/2023 - 14:46
Walter où as-tu vu cela ?
GPIO 0, 1, 2 et 3 n'ont nul besoin d'être reliés à quoi que se soit sauf comme entrées ou ou sorties selon les besoin du programme il ne faut pas raconter n'importe quoi à un débutant si tu veux qu'il fasse sont expérience. GPIO 1 et 3 sont TX et RX ! Seul GPOI 0 sert à passer en mode programmation (téléversement) en le reliant à la masse avant alimentation de l'ESP10
!
Cliquez sur l'mage accéder au lien ! Et descendez quelques lignes plus bas et vous trouverez ce schéma !
Méfiez-vous sur le NET il y a plein de fakes, je ne sais pas ce que les posteurs ont derrière la tête ou tout simplement ils ne savent pas programmer. Je vous certifie que tout ce que je donne comme explication ici est la parfaite vérité ! Je n'ai jamais eu aucun démenti que ce soit sur mes codes ou les instructions que je donne par contre si vous regardez les frères Poulin dur dur des conneries les une derrières kjes autres !
Walter
mer, 04/12/2023 - 15:33
Ou as tu vu, que je parlais de TX, RX ou autre ?
Je parle uniquement de GPIO0, qui ne doit pas être connecté à GND, lorsque l'on reboot, si on ne veut pas rentrer dans le mode Flash
le plus simple étant de le porté à VCC ou à rien, ayant déjà eu des soucis après programmation d'ESP nu, je préfère le câbler à VCC.
Louis.D
mer, 04/12/2023 - 17:35
Pas besoin de mettre GPIO 0 Au 3.3 V ! J'ai programmé moult ESP8266-01 sans aucun problème en applicant les instructions que je donne ici !
TX et RX ne te concerne pas Walter! C'est pour daghari mabrouk c'est lui qui les mets ensemble sans les croiser !
Walter
mer, 04/12/2023 - 21:15
Non, ce n'est pas nécessaire, mais cela n'est pas interdit non plus.
Comme indiqué suite à des déboires, je ne laisse plus de broche en l'air.
Mais ce qui est important, c'est de ne pas laisser au GND, lors du reboot.
daghari mabrouk
mer, 04/12/2023 - 17:49
oui comme tu dis :pauvre débutant ; j'ai lu un peu partout que en reliant les broches EN et GND sur le 8266 nodemcu (Lolin) , on le met à l'état passif , c'est à dire que le microcontroleur ne peut plus "recevoir" un code ; son rôle est de fournir un lien parallèle à l'esp01 qui n'en a pas , est-ce exact ?
d'autre part et dans ces conditions les broches Tx et Rx des deux modules respectifs ne doivent pas être "inversées" car on a pas besoin de communication entre les deux ;
en regardant la vidéo sur le site "U=RI , Ep 16 " , j'ai eu beaucoup de difficulté :
1/ dans le schéma de cablage il est indiqué qu'il faut branchez à la fois VCC et EN sur le 3,3 v de l'arduino uno , comment doit-on manipuler (moi je l'ai fait sur une breadboard)
2/ le module esp01 qu'on utilise peut-il avoir été déjà employé dans un autre téléversement ? est-ce que en sortie d'usine ,ces modules peuvent-ils comporter des différences entre eux ?
3/ l'auteur dit qu'il faut ouvrir le skectch " blink" avant de connecter l'arduino uno, pour que le port parallèle ne soit pas utilisé par un autre programme; ensuite il poursuit en disant qu'il faut juste ouvrir le moniteur série , sans aucun sketch, pour appliquer les commandes "AT" à l'esp01 ; comment est-ce possible ?! moi j'utilise l'IDE arduino 2.0.4 ,et à chaque fois que je l'ouvre ,il y a toujours un sketch à l'écran ...
4/pour faire l'expérience décrite dans la vidéo , j'au utilisé un module esp 01-S (sans led rouge) , qui n'a jamais servi (envoyé par le site Aliexpress) , j'ai branché l'esp et l'arduino comme indiqué sur le schéma de câblage, avec comme board "ESP8266 module" ,vitesse "9600 bauds" ,"both NL et..." , en appuyant sur "reset" de l'arduino je reçois " Initialise le système , puis une série de numéros qui ressemblent à une adresse MAC ; malgré toutes mes tentatives , je n'ai reçu aucun "OK" de la part du moniteur série !! je désespère vraiment avec ces histoires , on fait tout ce qui est demandé , le résultat ne vient pas ,je compte sur vous pour m'éclairer, merci.
Walter
mer, 04/12/2023 - 21:23
Normalement les ESP-01 ont un firmware d'origine, qui permet à un autre micro-controleur de les contrôler via des commandes AT.
Si tu téléverse un programme sur ton esp-01, tu écrase ce programme et tu ne pourra plus y accéder via des commandes AT.
Pour les TX et RX, si tu les connectes, tu les inverses, si tu n'a pas besoin de faire communiquer les deux microcontrôleur, tu ne les relient pas entre eux.
Que veux tu faire exactement, parce que cela ne me semble pas très claire.
daghari mabrouk
jeu, 04/13/2023 - 04:47
je souhaite allumer les lampes de ma maison par wifi ,utilisant des esp01 ;il y a deux ans je l'avais fait utilisant l'application "Blynk ; tout allait très bien ,vu que le code est écrit dans IDE arduino avec une bilbliothèque "Blynk" ; mais voilà que blynk devient payante et a cessé de fonctionner dans mon réseau wifi local ; pour détourner ce problème , j'ai opté pour un codage de esp01 en webserver ; la page web permet si téléversée dans l'esp de donner des requêtes "GET" à l'esp et de renseigner l'état de la sortie " GPIO" utilisé (GPIO2 en l'occurence) ; ce code est publié plus haut ;
j'avais essayé de faire téléversé et fonctionné le code sur l'esp ; en général le code est téléversé sans difficulté , mais au moment du basculement vers l'état de fonctionnement ,le moniteur série affiche des symboles illisibles ,et surtout qui défilent sans discontinuer ; jusque là je n'ai réussi à faire fonctionner qu'un seul objet connecté ,utilisant la carte arduino méga ; mais depuis je n'ai pas eu la chance d'en fabriquer un deuxième ;
entretemps ,on me conseille de programmer l'esp par les commandes "AT" ; j'ai donc suivi la vidéo sur youtube ,sur le site "U=RI ,Ep 16 ; là on parle de relier l'arduino uno et l'esp01 ,ensuite ouvrir le moniteur série et applique les commandes AT ,ceci devrait aboutir à attribuer une adresse IP local à l'esp ,mais aussi l'utiliser comme serveur web ; j'en suis là ,mais je ne réussis pas ,malgré que j'ai suivi les recommandations de l'interlocuteur , je n'obtiens pas de réponses aux commades AT