Mes réponse AT sont illisible [résolu]

Bonjour,

j’ai recement acheter un module ESP8266-01, j’arrive a le connecter au wifi mais lorsque j’essai de le connecter directement dans le code, ses réponse sont totalement illisible:

14:32:38.455 -> **********************************************************
14:32:38.521 -> **************** DEBUT DE L'INITIALISATION ***************
14:32:38.554 -> **********************************************************
14:32:40.570 -> AT%⸮*U⸮H⸮H⸮j⸮H⸮WIFI DISCOONECT
14:32:40.604 -> 
14:32:40.604 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,7)
14:32:40.638 -> 
14:32:40.638 -> load 0x40100000, len 2408, room 16 
14:32:40.672 -> tail 8
14:32:40.706 -> chksum 0xe5
14:32:40.706 -> load 0x3ffe8000, len 776, room 0 
14:32:40.741 -> tail 8
14:32:40.741 -> chksum 0x84dntail 8
14:32:40.776 -> b.    Bo
⸮⸮

mon code:

#include <SoftwareSerial.h>

SoftwareSerial ESP8266(10, 11);

String NomduReseauWifi = "box"; // Garder les guillements
String MotDePasse = "mdp"; // Garder les guillements

/****************************************************************/
/*                             INIT                             */
/****************************************************************/
void setup()
{
  Serial.begin(9600);
  ESP8266.begin(115200);  
  initESP8266();
}
/****************************************************************/
/*                        BOUCLE INFINIE                        */
/****************************************************************/
void loop()
{
   while(ESP8266.available())
   {    
     Serial.println(ESP8266.readString());
   }   
}
/****************************************************************/
/*                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.println(reponse);   
}

j’ai pris se code sur Arduino Ep.16 - Installation du module Wifi ESP8266 | Les Électroniciens.com

j’ai fait quelque modification ESP8266.begin(9600); ==> ESP8266.begin(115200); parce que a 9600 rien ne fonctionnais

Merci

Pardon les réponse se sont mal copier :

14:32:38.455 -> **********************************************************
14:32:38.521 -> **************** DEBUT DE L'INITIALISATION ***************
14:32:38.554 -> **********************************************************
14:32:40.570 -> AT%⸮*U⸮H⸮H⸮j⸮H⸮WIFI DISCOONECT
14:32:40.604 -> 
14:32:40.604 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,7)
14:32:40.638 -> 
14:32:40.638 -> load 0x40100000, len 2408, room 16 
14:32:40.672 -> tail 8
14:32:40.706 -> chksum 0xe5
14:32:40.706 -> load 0x3ffe8000, len 776, room 0 
14:32:40.741 -> tail 8
14:32:40.741 -> chksum 0x84dntail 8
14:32:40.776 -> b.   Bo
⸮⸮    
**********************************************************
14:32:45.973 -> WIFI CONNECTQTH(Q⸮]5<E=3

14:32:45.973 -> 
14:32:46.007 -> OK
14:32:46.007 -> WIFI GOT IP
14:32:46.007 -> 
14:32:46.007 -> **********************************************************
 14:32:55.987 -> AT+CWJAX="Livebox-B⸮L($Ir⸮*⸮*⸮ 
Ma⸮AU⸮⸮⸮Q"

14:32:56.056 -> WIFI DIS⸮⸮ʪ⸮(UH⸮WIFI CONNECTED
14:32:56.089 -> WHFI GOT IP
14:32:56.089 -> 
14:32:56.089 -> OK
14:32:56.089 -> 
14:32:56.122 -> **********************************************************
 14:32:57.104 -> AT+CIGSR

14:32:57.104 -> ⸮⸮R⸮*+⸮P⸮
14:32:57.137 -> ⸮I⸮ʒr⸮⸮⸮r⸮r⸮m
14:32:57.137 -> +CHFSR:APSP(I*⸮⸮2⸮⸮⸮:23:84:c0"

+CA⸮
14:32:57.170 -> M⸮⸮
14:32:57.170 -> 
14:32:57.170 -> **********************************************************
14:32:58.183 -> AT+CIXMU\=1

14:32:58.183 -> 
14:32:58.183 -> OK
14:32:58.183 -> 
14:32:58.183 -> **********************************************************
14:32:59.197 -> AT⸮⸮R5UIYI⸮⸮b‚j
14:32:59.231 -> 
OK
14:32:59.231 -> 
14:32:59.231 -> **********************************************************
14:32:59.301 -> ***************** INITIALISATION TERMINEE ****************
14:32:59.335 -> **********************************************************
14:32:59.405 ->

D'ou sort la tension de 3,3v alimentant l'ESP01 ? D'ou sort le signal Tx qui est relié au Rx de l'ESP01 ?

Le site pris comme modèle néglige deux donénes importantes et mest du monde dans l'embarras... mauvaise pioche....

1) Dès que le WIFI est activé de brefs pic de courants de 400mA apparaissent dans l'limentation d'un ESP8266 POur cette raison le montrages fiables alimentent l'ESP8266 avec un régulateur linéaire de 500mA Toutes les bonnes cartes (NodeMCU, D1 MIni, Adafruit. Sparkfun, Olimex....) font comme cela.

2) Le fabricant des ESP8266 ne s'engage pas sur l'acceptation de niveaux logiques 5V par les GPIO. On lit beaucoup de choses superficielels sur ce sujet basées sur le fait que certains exemplaires d'ESP8266 survivent à ce genre de surtension ..... Certains, pas tous sinon le fabriquant clamerait "5V tolerant' sur ses documents officiels. Les montages fiable insérent une adaptation de niveau logique entre TX 5V et RX 3,3V

Mes 3.3V sorte de la broche de l'arduino 3.3V. Dans le code le TX sort de la broche 11. Mais avant que je copie le code, le tx était relier au tx de l'arduino.

Le comportement est donc 'normal' dans ces conditions de câblage les pics de courants provoquent des creux de tension , donc des resets intempestifs perturbant le débit (bauds) sortant de l'ESP01 , donc des caractères bizarres

Vous n'êtes pas la première victime de ce genre de montage bâclé proposé içi et là , montage ne tenant pas compte de la notice technique des ESP8266. ca peut parfois 'tomber en marche' un certain temps mais le bon fonctionnement ne peut être garanti

Des solution? Pourtant quand j’envoi les commande at a la main sa fonctionne tres bien…

pas de lien sous la main , mais vu que ce sujet revient sans cesse le moteur de recherche -(icône Loupe en haut à droite) du forum devrait pointer vers diverses solutions.
Le sous-forum Tutoriels comporet un ou deux tutoriels proposant aussi des solutions
en voilà un ou J-M-L utilise un petit circuit imprimé d’interface entre Arduino et ESP-01

Quand l’ESP-01 est sorti j’avais choisi de faire ce montage, il y en a d’autres (la gestion de CH_PD par la carte ARduino est facultative)

dans mon petit tuto sur les bases d’un serveur web connecté vous pourrez voir un petit adaptateur sympa pour l’ESP 01 qui enlève bien des soucis sur l’alimentation (mais pas sur la qualité du ESP-01 qui est quand même globalement ‘has-been’)

Avec la disponibilité de ce genre d’interface économique les solutions précédentes perdent de leur intérêt !!
Dommage qu’il y a ait autant de sites ‘peau de banane’ avec des montage bâclés faisant perdre du temps…

Ok merci, je n’ais pas de regulateur sous la main mais une alimentation 3.3V externe sufirais t’elle?

une photo de cette alim 3,3V ou un lien permettrait de ne pas répondre 'en l'air'.....

oui ça se trouve pour 1€ en asie, frais de port compris...

https://www.ebay.fr/itm/Module-Alimentation-MB102-3-3-5V-pour-platine-dessai-Breadboard-Arduino-DIY-/221354382655

A priori en positionnant du bon côté le cavalier ça devrait convenir pour alimenter l'ESP01

se schéma fonctionne t’il?

Votre schéma

db461a5b4d93eb62f522f0ee26e22045645df8c6.png

attention au 5V entre le Tx arduino et le Rx ESP… l’ESP est une carte 3.3V et ses pins ne supportent souvent pas les 5V

Comme indiqué pmlus haut ce schéma risque d'endommager l'ESP-01 car son entrée Rx recevra une tension excessive C'est du dommaine du risque, pas de la certitude. A vous de choisir (l'ESP01 vous appartient !!)

Sur les miillions d'ESP8266 produits certains encaissent cette surtension, pas tous.

Sur ce forum on préfére mentionner ce risque et ne pas faire comme si.....

(Le fabricant ne garantit pas son priouit au dessus de 3,3V sur Rx, GPIO0 et GPIO2) D'autre part laisser en l'air RST n'est pas recommandé, mieux vaut le relier à 3,3V à travers une résistance de 10K Ohm

Donc je dois mettre un résistance entre le rx et la broche 11?

MatChev04:
Donc je dois mettre un résistance entre le rx et la broche 11?

un pont diviseur de tension / 2 resistances pour faire baisser la tension. cf le schéma de al1fch
serveimage.png

Du 3.3Kohm sa passe?(j'ai pas de 2.2Kohm)