Tengo un módulo ESP8266 12E que se comunica a 115.200 baudios. Como lo uso con un Arduino Nano con SoftwareSerial las cosas se complican. Así que he descubierto que debo reducir la velocidad en baudios del módulo ESP.
Encontré este enlace sobre cómo hacerlo.
**Me pregunto
¿Es un cambio permanente o hay que hacerlo cada vez que se enciende el módulo?
¿Puedo lograr lo mismo enviando el comando desde el Arduino a través de SoftSerial? Bueno, creo que no ya que lo he intentado y siempre me da error en AT+CIOBAUD=9600
o AT+IPR=9600
.
He leído en alguna parte que en las nuevas versiones de firmware de la ESP8266, la velocidad en baudios por defecto a 9.600. ¿Alguien puede confirmar esto y si es así, es mejor flashear este nuevo firmware?
El módulo's proveedor:
Ai-Thinker Technology Co.,Ltd.
Creo que la versión actual del firmware es 0.3.0. Si envío AT+GMR
obtengo:
sending AT+GMR
response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
SDK versioo:0.3.0
Ai�½½
‚Šj
De nuevo algo de basura debido a la tasa de baudios que es demasiado alta.
Otra información sobre el módulo:
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.
ACTUALIZACIÓN
(*) He usado un módulo FTDI232 para enviar AT+IPR=9600
a mi módulo ESP8266-12E ¡y lo he brickeado!
NO USE AT+IPR=9600
EN UN ESP8266(-12E).
Hasta ahora no he conseguido recuperarlo. Intenté re-flashearlo pero obtengo Invalid head exceptions.
En un módulo nuevo envié el comando AT+CIOBAUD=9600
y funcionó. ¡Permanentemente!
Especificaciones de mi módulo:
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
Dependiendo de lo reciente que sea la versión del intérprete del juego de instrucciones AT de su chip, las dos instrucciones que ha probado pueden no ser válidas; no aparecen en el documento ESP8266 AT Instruction Set de Espressif. La búsqueda de "CIOBAUD" o "IPR" en el documento actual (versión 1.5.3) no da ningún resultado.
Los comandos de velocidad de transmisión son ahora "AT+UART_CUR" y "AT+UART_DEF" que configuran toda la UART para la sesión actual o la sesión actual y futuras, respectivamente. El manual's prototipo para el comando es:
AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>
Example:
AT+UART_DEF=115200, 8, 1, 0, 3
Los he utilizado y puedo confirmar que funcionan.
Lo que he encontrado usando software serie es que puede empujar 115200 baudios lo suficientemente bien como para enviar comandos al dispositivo (aunque yo no construiría una aplicación que dependa de ello) pero sólo puede leer de forma fiable hasta 9600 baudios. He sido capaz de cambiar la velocidad de transmisión de mis dispositivos de 115200 baudios a 9600 baudios a través del software serie; sólo tienes que esperar que vuelva basura e ignorarla:
// 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.
He conectado un módulo FTDI232 a 115200 baudios y ya puedo leer las especificaciones del módulo ESP8266:
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
Después de eso envié el comando AT+IPR=9600
, que al principio parecía hacer el truco.
Pero después de reiniciar el módulo, todo lo que obtuve fue respuesta basura, en cualquier velocidad de transmisión.
NO ENVÍE AT+IPR=9600 A SU MÓDULO ESP8266(12e).
Puede que el comando AT+UART_DEF
- como menciona JRobert - funcione, pero yo usé el comando AT+CIOBAUD=9600
y funcionó. ¡Permanentemente!
Espero que esto pueda ayudar a otros.
Parece que tienes un problema con la fuente de alimentación. ¿Cuál es la capacidad de su fuente de alimentación? y tratar de añadir un pequeño condensador entre VCC y tierra. También es una buena idea para actualizar el firmware a 0,9 que tiene problema de velocidad de transmisión fija.
Puede encontrar el nuevo firmware en https://github.com/espressif/esp8266_at