Comment changer le baudrate de ESP8266 (12e) de façon permanente?

11

IMPORTANT: NE PAS UTILISER AT+IPR=9600! (voir mise à jour)

J'ai un module ESP8266 12E qui communique à 115 200 bauds. Depuis que je l'utilise avec un Arduino Nano avec SoftwareSerial, les choses deviennent désordonnées. J'ai donc trouvé que je devais réduire le débit en bauds du module ESP.

J'ai trouvé ce lien sur la façon de le faire.

Je me demande

  • S'agit-il d'un changement permanent ou devez-vous le faire à chaque fois après la mise sous tension du module?

  • Puis-je obtenir le même résultat en envoyant la commande depuis l'Arduino via SoftSerial? Eh bien, je suppose que non depuis que j'ai essayé et j'ai toujours une erreur sur AT+CIOBAUD=9600ou AT+IPR=9600.

  • J'ai lu quelque part que dans les versions plus récentes du firmware de l'ESP8266, le débit en bauds par défaut était de 9 600. Quelqu'un peut-il confirmer cela et si oui, est-il préférable de flasher ce nouveau firmware?

Fournisseur du module:

Ai-Thinker Technology Co.,Ltd.

Je pense que la version actuelle du firmware est 0.3.0. Si j'envoie, AT+GMRje reçois:

sending AT+GMR

response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
 SDK versioo:0.3.0
 Ai�½½
 ‚Šj

Encore une fois des ordures à cause du débit en bauds qui est trop élevé.

Autres informations sur le module:

sending AT+RST
response: ?AT+RST
OK
WRT
"%M
<99CT
 ets Jan  8 2013,rst catse:2, boot lode:(3,7)
load 0x40100000ntail 4
chksum 0x89
ld tail 4
chm3 tail 8 r 0 aM
 ón't use rtc mem dat`
sl��oÌÿ
Ai-Thinker Technology Co.,Ltd.

MISE À JOUR

(*) J'ai utilisé un module FTDI232 pour envoyer AT+IPR=9600à mon module ESP8266-12E et je l'ai maçonné !

NE PAS UTILISER AT+IPR=9600SUR UN ESP8266 (-12E).

Je n'ai pas réussi à le récupérer jusqu'à présent! J'ai essayé de le re-flasher mais j'obtiens des exceptions de tête invalides.

Sur un nouveau module, j'ai envoyé la AT+CIOBAUD=9600commande et cela a fonctionné. En permanence!

Mes spécifications de module:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 
mvermand
la source
Vous pourriez essayer le matériel série? Ou tirez la broche de réinitialisation vers le bas, puis parlez à l'ESP directement via USB. Pourrait vérifier si ceux-ci fonctionnent.
Paul
@Paul: le nano n'a qu'un seul ensemble de ports série matériels. Donc, si j'utilise ceux que je ne peux plus envoyer de données au moniteur série Arduino, ce qui rend difficile la compréhension de ce qui se passe ... Je suppose que je devrai aller pour la mise à niveau du firmware.
mvermand
vous pourriez bien utiliser le logiciel serialport pour le débogage? Vous aurez cependant besoin d'un câble "usb-serial / ttl".
Paul
1
stackoverflow.com/questions/34248581/… Cela répondra à votre question.
N.Sinha
1
Il semble que le réglage de la vitesse de transmission avec AT + IPR = 9600 brique également un ESP01 . J'ai essayé plusieurs suggestions dans ce fil pour le récupérer. La solution dans le lien fourni par Marco Andre Silva a fonctionné pour moi.
Steffe

Réponses:

10

Selon la version récente de l'interpréteur de jeu d'instructions AT dont dispose votre puce, les deux instructions que vous avez essayées peuvent ne pas être valides; ils ne sont pas répertoriés dans le document ESP8266 AT Instruction Set d' Espressif . Les recherches "CIOBAUD" ou "IPR" dans le document actuel (version 1.5.3) ne renvoient aucun résultat.

Les commandes de débit en bauds sont désormais "AT + UART_CUR" et "AT + UART_DEF" qui configurent respectivement l'UART entier pour la session en cours ou les sessions en cours et futures. Le prototype du manuel pour la commande est:

AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

Je les ai utilisés et je peux confirmer qu'ils fonctionnent.

Ce que j'ai trouvé en utilisant le logiciel série, c'est qu'il peut pousser 115200 bauds assez bien pour envoyer des commandes à l'appareil (bien que je ne construise pas une application qui en dépend), mais il ne peut lire de manière fiable que jusqu'à 9600 bauds. J'ai pu changer les débits en bauds de mes appareils de 115200 bauds à 9600 via le logiciel série; vous devez juste vous attendre à ce que les ordures reviennent et l'ignorer:

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.
JRobert
la source
3

J'ai connecté un module FTDI232 à 115200 bauds et je pouvais lire les spécifications du module ESP8266 maintenant:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

Après cela, j'ai envoyé la AT+IPR=9600commande, qui a d'abord semblé faire l'affaire. Mais après le redémarrage du module, tout ce que j'ai obtenu était une réponse poubelle, à n'importe quel débit.

NE PAS ENVOYER À + IPR = 9600 À VOTRE MODULE ESP8266 (12e)

Peut-être que la AT+UART_DEFcommande - comme mentionné par JRobert - fonctionne, mais j'ai utilisé la AT+CIOBAUD=9600commande et cela a fonctionné. En permanence!

J'espère que cela peut aider les autres.

mvermand
la source
3

J'ai également briqué mon Esp avec la même commande. Après des heures de recherche, j'ai trouvé un moyen de réinitialiser l'esp. https://developer.mbed.org/users/sschocke/code/WiFiLamp/wiki/Updating-ESP8266-Firmware J'ai dû régler le débit en bauds à 115200 au lieu de 9600, et entre les fichiers téléchargés, j'ai dû déconnecter l'esp de l'alimentation . J'espère que cela vous aide, vous et tous ceux qui ont fait de même et trouvé votre message sur Google.

Dirk Pitt
la source
Le cycle d'alimentation de l'ESP entre chaque fichier était aussi la clé pour moi - d'autres sites combinent tous les fichiers en une seule esptool.pycommande, mais cela n'a pas fonctionné pour moi. Ce n'est qu'après l'avoir divisé en commandes individuelles, une par fichier et en alternant entre chacune, que j'ai finalement pu restaurer le firmware AT. Merci pour l'astuce!
davA
De plus, j'ai essayé d'utiliser le esptool.pyqui vient avec l'ESP32 IDF (v2.1-beta1) et que l'on fonctionne avec succès avec une seule commande pour flasher tous les fichiers sur mon ESP8266 (qu'il prend également en charge) - donc un seul cycle d'alimentation + GPIO0- GND requis.
davA
0

On dirait que vous avez un problème d'alimentation. Quelle est votre puissance nominale? et essayez d'ajouter un petit condensateur entre vcc et la masse. Aussi, c'est une bonne idée de mettre à jour le firmware à 0.9 qui a corrigé le problème de vitesse de transmission.

Vous pouvez trouver un nouveau firmware sur https://github.com/espressif/esp8266_at

NccWarp9
la source
Je ne pense pas que ce soit un problème d'alimentation. J'ai une alimentation externe qui est plus que capable. J'ai essayé sans avant et puis l'Arduino a continué de redémarrer ... J'ai trouvé sur un forum que c'était dû à des problèmes d'alimentation. Alors maintenant, je vais bien. Je pense vraiment que le problème est que le SoftSerial ne peut pas faire face à la vitesse de transmission de 115k.
mvermand
1
esp est vraiment difficile, ajoutez un petit condensateur entre vcc et la masse. J'alimente également le mien à partir d'une source d'alimentation externe et je subis des redémarrages.
NccWarp9