Cami Can Calders, 8 2º-2ª | 08173 Sant Cugat del Valles info@bmotes.com 932504996

WhatsBee blog

Segundo paso: Empezando con el ESP8266 ESP-12E

El motivo por el que seleccioné esta plataforma está explicado en el primer post de esta serie, precio, disponibilidad, información, WiFi, etc.

Hace ya tiempo que paraf los proyectos basados en ESP8266 utilizo las placas NodeMCU, el precio es muy asequible, tienen un factor de forma pequeño y resuelven el tema de la alimentación, la comunicación con el PC durante el desarrollo, etc. No es complicado diseñarf y fabricar una PCB, pero, ¿porqué hacerlo si ya lo hacen otros por nosotros?. Al final es, probablemente, más sencillo construir el producto adaptándolo a la placa que adaptar la placa al producto.

Pero en este caso es un poco diferente, la placa nodeMCU tiene un regulador de 5V a 3,3V, un led, la el chip de la UART para la comunicación por el USB. Todas estas cosas que son su principal ventaja en este proyecto se convierten en su principal inconveniente. Si tenemos la energía racionada ¿para que vamos a estar consumiendo en alimentar un chip que solo usamos en la fase de desarrollo?

Hay varias páginas que documentan que cambios tenemos que hacer en una placa NodeMCU para reducir el consumo o eliminar estas cosas que sobran, pero al final, con tanto cambio nos va a resultar mejor utilizar solo el ESP-12 y fabricar nuestra propia PCB (y nos va a resultar mejor por el sencillo motivo de que tenemos que integrar más cosas).

ESP12e

 Manos a la obra

Vamos a construirlo todo en una placa de prototipos, no es la primera vez que paso de esta fase y acabo encargando unas placas que no funcionan o necesitan demasiadas modificaciones. Lo primero que tenemos que hacer es buscar un adaptador (o hacérnoslo), no voy a profundizar en el tema, cuando compras un ESP-12E mucha gente lo vende con unos adaptadores blancos para la placa de prototipos, se suelda el ESp-12E en el adaptador y se ponen dos filas de headers para pincharlo en la placa de prototipos. Si, ya lo se, no hay conexión para los pads que están en la parte opuesta a la antena y posiblemente los necesitaremos, llegado el momento ya haremos alguna «ñapa».

Hay mucha literatura sobre la circuitería mínima para poner en marcha el ESP-12E, y solo echas de menos la información cuando te pones a intentarlo, básicamente tenemos que poner en un estado determinado unos GPIOS para que bote del programa y otros para que acepte que le subamos el programa. En la propia placa que hemos utilizado veo que hay un par de componentes que ya se encargan de poner en el estado correcto un par de esos pines. No volveré a escribir otro artículo sobre esto, podéis consultar este. pero si que os diré en los puntos que me he atascado.

Adaptador ESP12

Los pines que necesitamos son:

  • EN (CH_PD) Enable Pin a nivel alto.
  • GPIO15 a nivel bajo.
  • GPIO2 a nivel alto.

Además de estos mantendremos el GPIO0 a nivel alto con una resistencia y lo pondremos a nivel bajo puenteándolo a masa en los momentos en los que queramos subir un programa.

Sobre el circuito que hay en el enlace que os he puesto yo no pongo los botones, lo puenteo con los cables en el momento en el que necesito por lo que realmente necesitamos solo tres resistencias para ponerlo en marcha, de momento las pondremos de 10K. Como las resistencias del GPIO15 y del GPIO2 ya vienen en la placa blanca, solo nos hace falta la del GPIO0, la ponemos en la placa de prototipos entre el GPIO0 y el positivo y dejamos un cable suelto en el GPIO0 que enchufaremos a la pista de masa cuando queramos programar.

Errores, problemas, dudas

Esto que os he comentado es así de sencillo, pero la primera vez que lo hice no funcionó todo. La inseguridad te hace buscar problemas complejos donde no los hay, así que a continuación os pongo una lista de problemas que me encontré y soluciones, posiblemente cualquiera se encuentre los mismos:

  • Al arrancar el ESP sale una «ristra» de basura por pantalla, ¿como sabemos en que modo ha arrancado?. Por lo menos en mi caso mis ESP comunican inicialmente a una velocidad de 74880 bauds, si en el programa configuro esa velocidad en el puerto serie podré ver la información inicial (si configuro otra veré la «ristra» y solo cuando arranque el programa veré lo que le mando al puerto serie.
  • El ESP se reinicia constantemente. Leí en algunos foros que es un problema de estabilidad en la línea de alimentación, No me lo creí, di muchas vueltas y al final hice caso. Efectivamente, parece que hay unos picos importantes y hay que poner un condensador cerca del ESP, en mi caso con un electrolítico de 1000 uF fue suficiente.
  • No tengo forma de saber si lo he arrancado en modo programación o no. Al arrancar sale una línea que indica lo siguiente ets Jan  8 2013,rst cause:2, boot mode:(3,6) los dos números que hay después del «mode:» son la clave, si el primero es un uno estás arrancando en modo de programación, si es un 3 es un arranque normal (hay más opciones, pero no entro).
  • Aún así tiene comportamientos extraños. Revisa las soldaduras con una lupa, después de mucho trabajo yo descubrí que solo se ponía en modo de programación si lo apretaba con el dedo y era un problema con las soldaduras. Cuando lo sueldes verifica que el estaño asciende por capilaridad hasta la parte superior de la placa del ESP.
  • Al meter la placa blanca no me queda sitio en la placa de prototipos para meter los cables. Sí, es un problema de como está diseñada, en el link adjunto lo resuelven con unos cables, yo lo resolví usando dos placas de prototipos.
  • ¿cómo comunico con el IDE?, en el pinout del ESP hay dos pines, RX y TX, necesitarás un conversor de UART a USB (como los FTTI), es muy importante que sea de 3,3V, porque los pines del ESP funcionan a esa tensión. Conecta el TX, el RX y la masa, pero no el positivo, habitualmente la tensión de VCC de estos conversores es de 5V aunque el conversor sea de 3,3V.

Y  poco más que contar, en este punto debería de funcionar y debeis de poder subir un programa desde el entorno de Arduino o desde Platformio.

Ir a – Primer paso: Investigación y selección de tecnologías

Dejar un comentario