3 formas simples de programar un módulo ESP8266 12X
Si no está familiarizado con el microcontrolador ESP8266, ¡realmente siento que se lo ha estado perdiendo! Estas cosas son increíbles: ¡son baratas, potentes y, lo mejor de todo, tienen WiFi incorporado!
ESP8266 comenzó su viaje como un complemento WiFi a bordo para placas Arduino más tradicionales, pero poco después, la comunidad se dio cuenta del poder de ellas y agregó soporte para poder programar directamente con Arduino IDE.
En estos días, si está buscando usar un ESP8266 para su proyecto, recomendaría usar una placa de desarrollo como Wemos D1 Mini * (¡$ 2.50 entregados!) O Adafruit Feather Huzzah. Estas placas tienen todos los pines utilizables rotos, son fácilmente programables a través de su conector micro USB y tienen un regulador incorporado de 3.3V.
Pero, ¿qué sucede si desea usar un ESP8266 en un proyecto con una PCB personalizada? La forma más fácil es usar un módulo ESP12, y en este Instructable te mostraré un par de formas simples de programarlos.
* = Enlace afiliado
Paso 1: ¡Mira el video!
Aquí hay un video con toda la información contenida en el Instructable si desea verlo.
En mi canal trabajo mucho con ESP8266s, por lo que quizás valga la pena revisar mi canal en general si ese tipo de cosas te interesan.
Paso 2: Pre-Paso: Configuración para programar el ESP8266
Si nunca antes ha utilizado el ESP8266 o Arduino, necesitaremos un poco de configuración del software. Tengo un video dedicado para esto. Solo dura 5 minutos y pasa por todo lo que necesita configurar.
Si los videos no son lo tuyo, mira la lección 2 de la increíble Clase IoT de Becky, que también incluye todo lo que necesitas.
Antes de pasar a la siguiente sección, debería poder cargar un boceto simple en un ESP8266 (como el ejemplo de parpadeo mencionado en el video y la lección de Becky)
Paso 3: Método 1: Programador de pin "Frog"


Esta es probablemente la forma más fácil de programar un módulo ESP12. Básicamente, simplemente introduce el módulo en la placa y luego se comporta exactamente como una de las placas de desarrollo mencionadas anteriormente. Seleccioné la placa Wemos D1 Mini del menú desplegable de placas al programar.
Las desventajas de este método son:
- El programador es un poco caro si solo está haciendo algunas tablas.
- Las placas solo se pueden programar de esta manera antes de soldarlas a su PCB
El que compré es de Aliexpress, pero creo que el diseñador original es un usuario de Tindie llamado Fred. Se agotaron en ese momento, así que terminé con el Aliexpress, pero los enlazaré a ambos.
- Programador de módulo ESP Pop-in de Aliexpress *
- Programador del módulo ESP de Fred's Frog Pin
* = Enlace afiliado
Paso 4: Método 2: Utilizando básicamente cualquier convertidor de USB a serie





Para el siguiente método, vamos a poner manualmente el módulo ESP en modo de programación y luego usaremos básicamente cualquier convertidor USB a serie para programar el ESP8266, ¡incluso este PL2303 one * que cuesta 50c entregados!
Operación normal:
Antes de comenzar con la programación, primero debemos echar un vistazo a los componentes externos que necesita ejecutar el ESP8266. Para el funcionamiento normal, un módulo ESP-12 necesita lo siguiente
- EN, RST y GPIO 0 necesitan ser elevados usando una resistencia de 10K
- GPIO 15 necesita ser llevado a tierra usando una resistencia de 10K
- Fuente de alimentación de 3.3V capaz de aproximadamente 250mA de corriente (se recomienda un límite entre VCC y GND)
Con la configuración anterior, el ESP8266 cuando se enciende estará en modo de funcionamiento Normal, por lo que ejecutará cualquier boceto que haya programado para él.
Puede comprar placas de conexión para módulos ESP-12 * que son realmente útiles para probar las diferentes configuraciones. Los módulos tienen la configuración de resistencias para el pin EN y GPIO 15, por lo que aún necesitará agregar la resistencia pull-up para RST y GPIO 0,
Habilitación del modo de programación:
Para ponerlo en el modo de programación, GPIO 0 debe ponerse bajo cuando se inicia el ESP. La forma más fácil de hacer esto es agregar botones a GPIO 0 y el pin RST que se conectan a tierra cuando se presiona. Luego, para habilitar el modo flash, simplemente
- Mantenga presionado el botón GPIO 0
- Presione el botón RST
- Luego suelta ambos botones
No necesita realizar esta secuencia en ningún momento en particular durante el proceso de carga ni nada, una vez que el ESP esté en modo de programación permanecerá allí hasta el próximo reinicio, así que solo realice los pasos en cualquier momento antes de cargar.
Programación con un adaptador USB a serie:
Habilitar el modo de programa es solo la mitad de la batalla, ahora necesitamos programar realmente el módulo. La mayoría de los adaptadores USB a serie no pueden proporcionar suficiente corriente al ESP8266, por lo que se recomienda que alimente el ESP8266 utilizando una fuente externa de 3.3V.
Para conectar el programador, debe conectar los siguientes pines (también mostrados en la imagen de arriba):
- Conecte TX del programador a RX del ESP8266 (no es un error tipográfico, las conexiones se invierten)
- Conecte RX del programador a TX del ESP8266
- Conecte la tierra del programador a la tierra del ESP8266
Para cargar su boceto, siga los siguientes pasos:
- Seleccione el número de puerto de su adaptador de serie (Herramientas-> Puerto)
- Habilite el modo de programación en su ESP8266 como se describe arriba
- Haz clic en el botón de carga. (Si falla, verifique dos veces su cableado e intente colocar nuevamente su placa en el modo de programación)
- Haga clic en el botón de reinicio cuando la carga haya finalizado
Aquí están las configuraciones de la placa que utilicé al cargar usando este método:
- Placa: Módulo ESP8266 Genérico
- Modo de flash: DIO
- Tamaño del flash: 4M (3M Spiffs)
- Método de reinicio: ck
- Frecuencia de flash: 40MHz
- Velocidad de carga: 115200
Lo último que se debe tener en cuenta es la definición de LED_BUILIN para un módulo ESP8266 genérico que apunta al pin 1, pero el LED incorporado de un módulo ESP12 está conectado al pin 2 (también está activo bajo como un FYI). Entonces, si está probando un boceto parpadeante, deberá usar el número 2 en lugar de LED_BUILTIN
* = Enlace afiliado
Paso 5: Método 3: Programador de reinicio automático usando un NodeMCU


Si usó alguna placa de desarrollo ESP, habrá notado que, básicamente, todas ellas no requieren que active manualmente el modo de programación con los botones, entonces, ¿cómo lo hacen?
La mayoría de los chips USB a serie tienen pines adicionales que emiten señales en diferentes etapas del proceso de carga y, con el uso de algunos circuitos externos, es posible activar el nivel bajo de GPIO 0 y los restablecimientos necesarios. RuiMoteiro tiene un instructable sobre este tema utilizando una placa FTDI y ESP8266.
Pero creo que hay un enfoque más simple para esto, y lo que es aún mejor es que hay una buena posibilidad de que ya tenga todo lo que necesita para hacerlo. Puede usar una placa de desarrollo ESP8266 como NodeMCU como programador *.
¿Cuál es la ventaja de usar un NodeMCU?
Las principales ventajas de usar NodeMCU como programador son las siguientes:
- Puede alimentar el ESP8266 directamente desde los pines de 3V del NodeMCU
- Manejará el restablecimiento automático / habilitación del modo de programación
- Cuesta alrededor de $ 2.50 entregados (¡y se puede usar como placa de desarrollo regular cuando no se programan otros!)
Puede usar este mismo enfoque con cualquier placa de desarrollo que exponga el pin de habilitación de chip del ESP8266.
¿Como funciona?
Se me ocurrió la idea de un YouTuber llamado Mika Kurkela, en su video estaba usando el NodeMCU para programar un módulo ESP-01, pero podemos usar la misma idea para el módulo ESP12.
Básicamente vamos a deshabilitar el ESP8266 en el NodeMCU al forzar el pin EN bajo, esto evitará que el módulo ESP8266 en el NodeMCU se inicie. Luego, vamos a conectar todos los pines relevantes de la placa NodeMCU a nuestro ESP8266 externo.
Cableado
Para conectarlo, necesitará el cableado ESP8266 estándar como se muestra en el paso anterior y luego agregar las siguientes conexiones (también se muestra en la imagen de arriba):
- Conecte 3V del NodeMCU a VCC del ESP8266
- Conecte GND a GND
- Conecte TX del NodeMCU a TX del ESP8266 (Esto es diferente al paso anterior)
- Conecte RX de NodeMCU a RX de ESP8266
- Conecte el D3 del NodeMCU al GPIO 0 del ESP8266 (D3 es GPIO 0 del ESP8266)
- Conecte el RST del NodeMCU al RST del ESP8266
- Conecte EN del NodeMCU a GND
Subiendo un boceto
Una vez que haya conectado el ESP8266, debe hacer lo siguiente:
- Seleccione el número de puerto de NodeMCU (Herramientas-> Puerto)
- Seleccione el tipo de placa "NodeMCU 1.0 (Módulo ESP12-E)"
- Haga clic en cargar
¡Y eso es! Activará automáticamente el modo de programación y se restablecerá automáticamente cuando termine de cargar, por lo que comenzará a ejecutar el boceto.
Usando esto en tus diseños de tablero
Para utilizar este método en los diseños de su tablero, simplemente necesita romper los siguientes pines:
- Suelo
- GPIO 0
- VCC
- TX
- RX
- RST
Y cuando desee programar sus tableros, conéctelo como se indica arriba.
Espero que encuentre útil este Instructable, si tiene alguna pregunta, ¡no dude en preguntar!
* = Enlace afiliado