ESP8266 ¿Qué módulo elegir?
En principio, cualquiera de los módulos wifi ESP8266 puede programarse utilizando los lenguajes que hay disponibles para ellos (también cualquier IDE) así que la elección depende principalmente de la implementación hardware. El matiz más relevante que podría hacerse a esto sería, en todo caso, la cantidad de memoria disponible.
Aunque inicialmente algunos módulos estaban estrechamente vinculados con ciertos lenguajes o entornos de desarrollo, el ejemplo más claro de esto es NodeMCU y el lenguaje Lua, actualmente es relativamente sencillo usar cualquiera de los disponibles con cualquier módulo.
La normativa del sitio (del país) en el que se va a implementar un dispositivo que contenga el módulo wifi ESP8266 seguramente es lo más restrictivo a la hora de diseñar equipos que deban homologarse o autorizarse para su venta. En tales casos, el primer paso es descartar los que no cumplan la normativa correspondiente (que por suerte será raro que estén a la venta) o verificar la homologación del módulo que se haya escogido. Si la serie que se fabrique es lo bastante grande, seguramente se utilicen los componentes directamente en el diseño del circuito (y no un módulo) y el proceso sería entonces el habitual para obtener los correspondientes permisos de comercialización.
Antes de ver la lista con los datos objetivos para elegir vuestra propia opción, permitidme que exponga cuáles son mis recomendaciones para cada escenario y explique por qué lo son.
Tanto si se va a programar en Lua como si no, la solución más completa, que no necesita de otros componentes, perfecta, por ejemplo, para un curso de programación de microcontroladores en el que las redes (wifi) estén involucradas, como en el caso de Internet de las cosas (IoT), es NodeMCU. No necesita un adaptador USB para conectar al ordenador, encaja en una placa de pruebas (protoboard o breadboard) o se puede usar fácilmente con conectores de tipo Dupont. Más que un módulo, se trata de una placa de desarrollo equiparable, por ejemplo, a una placa Arduino.
Si en tu laboratorio o taller no es problema contar con un adaptador USB–UART, la ESP-201 de AI-Thinker es una versión barata de la placa de desarrollo NodeMCU. Está diseñada para ser utiliza con conectores de tipo Dupont más que en una placa de pruebas; de hecho, la versión que se comercializa con las patillas soldadas a la placa suele disponer una de las tiras de manera que no se puede insertar en una breadboard salvo que se retire y se suelde en la superficie contraria. La rotulación de las patillas tampoco es muy amistosa: parte están el anverso y parte en el reverso por alguna excelente razón que desconozco.
Cuando sea necesario desarrollar una aplicación que necesite una buena cantidad de memoria, más de los 4 Mbit habituales, puede utilizarse una versión especial del ESP8266, el módulo ESP-12F de AI-Thinker, que dispone de una memoria flash de 32 Mbit (además de 96 Kbytes de RAM) y tiene un precio excelente, el más barato que he encontrado con esa memoria.
De las 32 patillas de que dispone el encapsulado QFN solamente 17 son de entrada-salida (excluyendo la conexión de antena y el oscilador externo) y de ellas solo dos, GPIO4 y GPIO5 están asignadas en exclusiva como GPIO, ya que las demás comparten función y se debe elegir si se utilizan, por ejemplo, para las comunicaciones serie o para entrada-salida digital genérica.
Así que ninguno de los módulos que incluyen el SoC ESP8266 pueden ir precisamente sobrados de puertos GPIO pero desde la versión ESP-03 aparecieron varios modelos de módulos con más patillas, y las correspondientes funciones disponibles. Estos nuevos módulos, especialmente el ESP-07, el ESP-12 y la mayoría de los que le han seguido, permiten más fácilmente realizar circuitos en los que el ESP8266 no solo se encarga de las comunicaciones wifi sino que es también el microcontrolador que gestiona el dispositivo.
Para poder utilizar cómodamente en las pruebas el mismo módulo que se incluirá en el circuito definitivo, existen placas en cuya superficie soldar el módulo y que cuentan con conexiones para patillas con la separación estándar de una placa de pruebas (una décima de pulgada).
Algunas de estas placas incluyen circuitería para convertir la alimentación y los niveles de tensión de las comunicaciones entre 3,3 V y 5 V de forma que puedan comunicarse también con dispositivos (o con un µC) que funcionen con ese voltaje.
Como este tipo de accesorio estaba inicialmente diseñado para los módulos ESP8266 ESP-07, que no disponen de conexiones en la parte opuesta a la antena, será necesario renunciar a ellas en los modelos más nuevos, como el ESP-12E, ESP-12F, ESP-13…, conectarlas manualmente (con un cable en la parte superior) o diseñar nuestra propia placa-adaptador también con nuestro propio diseño de circuitería extra para convertir el nivel serie, la alimentación, añadir expansores de puertos GPIO… Si no tienes muy claro cómo hacerlo, en artículos anteriores del blog puedes encontrar algún truco para cómo poner pines a un componente de montaje de superficie como estos módulos que usan el ESP8266.
Si en el montaje ya hay un MCU, es decir, el ESP8266 no es el microcontrolador principal del dispositivo, la primera versión del módulo, la ESP-01, es perfectamente funcional e imbatible en precio, especialmente si se compran lotes de varios módulos (cuando se adquiere solamente un módulo, difícilmente superará 1 € de diferencia con otros modelos).
Para resolver el inconveniente de la disposición de las patillas en el módulo ESP-01 a la hora de usarlo en una placa de pruebas (protoboard o breadboard), se puede recurrir a algún accesorio como el de las imágenes de abajo, que además resuelve las diferencias de tensión que existen cuando se usan, por ejemplo, con las placas Arduino de las series alimentadas a 5 V. De forma más artesana, se puede recurrir a alguno de los trucos para conectar a una breadboard un módulo con una tira de pines doble.
Otra ventaja de los accesorios como el que se muestra en las imágenes de abajo, es que disponen de un pulsador (casi siempre), un interruptor o un puente para cargar un nuevo firmware en la memoria flash del SoC wifi ESP8266.
Para usar el ESP8266 en condiciones más específicas, con poco espacio en la placa del montaje, cuando sea necesario contar con una antena externa, en situaciones de presencia de interferencias… necesitarás afinar un poco más; para hacerlo, espero que te resulte útil la siguiente lista de características. He utilizado como referencia la serie de módulos de la compañía AI-Thinker que es la más completa y he añadido la placa de desarrollo NodeMCU porque me parece que es la más popular.
-
ESP-01
Dimensiones: 14,30 mm × 24,80 mm
: 1 Mbit-->
Conexiones: 8 patillas entre alimentación y GPIO
Antena impresa en la PCB
Sin apantallar
Alimentación: 3,3 V
Para ser precisos, las versiones más nuevas incluyen el ESP8266EX y las primitivas el modelo inicial del ESP8266 (sin EX). Aunque ya es difícil encontrar el más antiguo, es importante estar atentos a la hora de elegir el módulo para optar por la versión moderna.
-
ESP-02
Dimensiones: 14,20 mm × 14,20 mm
: 1 Mbit-->
Conexiones: 8 conexiones de superficie (es viable soldar patillas de 0,1 “)
Sin antena en la placa pero con un conector para antena externa
Sin apantallar
Alimentación: 3,3 V
-
ESP-03
Dimensiones: 17,30 mm × 12,10 mm
: 1 Mbit-->
Conexiones: 14 conexiones de superficie en los dos lados mayores
Antena de tipo cerámico
Sin apantallar
Alimentación: 3,3 V
-
ESP-04
Dimensiones: 14,70 mm × 12,10 mm
: 1 Mbit-->
Conexiones: 14 conexiones de superficie en los dos lados mayores
Sin antena
Apantallado
Alimentación: 3,3 V
-
ESP-05
Dimensiones: 14,20 mm × 14,20 mm
: 1 Mbit-->
Conexiones: 8 patillas separádas una décima de pulgada en una única tira
Sin antena en placa pero con un conector para una antena externa
Apantallado
Alimentación: 3,3 V
-
ESP-06
Conexiones: 12 conexiones bajo la placa
Sin antena
Apantallado
Alimentación: 3,3 V
-
ESP-07
Dimensiones: 20,00 mm × 16,00 mm
: 1 Mbit-->
Conexiones: 16 conexiones de superficie en los lados mayores de la placa
Antena cerámica u conector para antena externa
Apantallado
Alimentación: 3,3 V
-
ESP-08
Conexiones: 16 conexiones de superficie en los lados mayores de la placa
Sin antena
Apantallado
Alimentación: 3,3 V
-
ESP-09
Dimensiones: 10,00 mm × 10,00 mm
: 1 Mbit-->
Conexiones: 18 conexiones bajo la placa (6 de las cuales van a masa)
Sin antena
Sin apantallar
Alimentación: 3,3 V
-
ESP-10
Dimensiones: 14,20 mm × 10,00 mm
: 1 Mbit-->
Conexiones: 5 conexiones de superficie en uno de los lados menores
Sin antena
Sin apantallar
Alimentación: 3,3 V
-
ESP-11
Dimensiones: 17,30 mm × 12,10 mm
: 1 Mbit-->
Conexiones: 8 conexiones de superficie en el lado opuesto a la antena
Antena cerámica
Apantallado
Alimentación: 3,3 V
-
ESP-12
Dimensiones: 24,00 mm × 16,00 mm
: 1 Mbit-->
Conexiones: 16 conexiones de superficie dispuestas en los dos lados mayores
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
-
ESP-12-E — ESP-12-F
Dimensiones: 24,00 mm × 16,00 mm
: 1 Mbit-->
Conexiones: 22 conexiones de superficie dispuestas en tres lados (8+8+6)
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
-
ESP-13
Conexiones: 18 conexiones de superficie situadas en los dos lados menores
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
-
ESP-14
Incluye un STM8 que se encarga de controlar el ESP8266 por medio de órdenes AT
Dimensiones: 24,30 mm × 16,20 mm
Conexiones: 22 conexiones de superficie dispuestas en tres lados (8+8+6)
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
-
ESP-WROOM
Dimensiones: 18,00 mm × 20,00 mm
Conexiones: 18 conexiones de superficie dispuestas en los lados mayores
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
-
NodeMCU
Basado en ESP-12
Dimensiones: 30,85 mm × 47,35 mm
Conexiones: 30 patillas separadas una décima de pulgada y USB
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V y 5 V
Pulsadores user y programación (flash)
-
ESP-201
Dimensiones: 26,00 mm × 33,50 mm
Conexiones: 26 patillas separadas una décima de pulgada y distribuidas en dos tiras de 11 a cada lado (que encajan en una placa de pruebas) y 4 perpendiculares que, al estar soldadas en el mismo lado, no es posible usar en una placa de pruebas.
Antena impresa en la placa y conector para una antena externa. Debe elegirse entre una opción u otra desoldando un puente (una resistencia de 0 Ω, por defecto utiliza el conector externo por lo que la mayoría de las placas ESP-201 se venden con una pequeña (especie de) antena. Algunas versiones antiguas tienen el conector de antena mal soldado (girado 180°) y es necesario recolocarlo o la antena (externa) no sirve de nada.
Sin apantallar
Alimentación: 3,3 V
Otros módulos o placas de desarrollo que incorporan el ESP8266
Ni más ni menos que por la extraordinaria diferencia del precio base, que se incrementa con unos abultados gastos de envío, en el sur de Europa no se utilizan mucho las excelentes placas de Adafruit o de SparkFun y sospecho que excepto en el norte de América tendrán difícil competir con sus contrapartes chinas. Las alternativas que sí pueden verse por aquí son las de la casa WeMos (que también viene de China) y las de Olimex, que llega desde Europa y tiene una excelente calidad.
La D1 mini pro de WeMos es una placa de desarrollo equiparable a la NodeMCU, ya que dispone de un conector USB, puede usarse en una placa de pruebas, puede alimentarse a 5 V, tiene un botón de reset, 4 MB de memoria flash… aunque en un formato más reducido ya que tiene 16 patillas a una décima de pulgada.
Existen muchos módulos con sensores y actuadores que pueden conectarse de manera muy sencilla para utilizarse con la WeMos D1 mini pro, un poco al estilo de los «escudos» (shields) de Arduino. Aunque no he encontrado un kit completo, seguramente se comercializará algo parecido y, entre otras cosas por precio, sería una alternativa muy buena para un aula de programación de microcontroladores.
Olimex comercializa dos productos basados en el ESP8266: el MOD-WIFI-ESP8266 y el MOD-WIFI-ESP8266-DEV, que vienen a ser, como sus prosaicos nombres sugieren, un módulo (10 patillas) y una placa de desarrollo (22 patillas que además encajan en una placa de pruebas). Ambos dispositivos tienen 2 MB de memoria flash y una antena impresa en la placa de circuito pero permiten fácilmente añadir una antena externa. Olimex también ofrece un par de placas para hacer pruebas con la versión de desarrollo, pero por su precio-componentes no son muy competitivos comparándolos con otros módulos genéricos.
La serie de productos de Adafruit que incluyen el SoC ESP8266 está formada por la placa HUZZAH ESP8266 breakout y la placa Feather HUZZAH (con wifi ESP8266). La primera es su opción para desarrollo y la segunda, aunque es bastante versátil, está diseñada principalmente para producción, como sugiere su conexión (más o menos estándar) a batería externa, que en la placa HUZZAH ESP8266 breakout es sólo una patilla. Además, en la opción para desarrollo, pueden encontrarse tanto un pulsador de reset, presente también en la de producción, como otro de programación que las placas Feather HUZZAH no incluyen. La placa de producción cuenta también con un conector USB
Ambos productos de Adafruit se pueden utilizar con patillas de un décimo de pulgada de separación y cuentan con 26 conectores en el caso de la placa Adafruit HUZZAH ESP8266 breakout y 32 conectores la placa Adafruit Feather HUZZAH. Las dos están basadas en el módulo ESP-12, así que, salvo por las características del circuito en el que se dispone (como la conexión de batería) las prestaciones son las mismas que tiene este dispositivo.
La casa SparkFun comercializa cuatro productos basados en el SoC wifi ESP8266. Por un lado, ofrece el escudo para Arduino SparkFun WiFi Shield cuya principal característica es, precisamente esa: poder disponerse fácilmente sobre una placa Arduino.
Por otra parte, SparkFun también cuenta con la placa Blynk Board, cuyo objetivo principal es desarrollar productos para teléfonos móviles como una opción de entrada a la Internet de las cosas. Sus conectores son bastante sencillos de utilizar, incluso por usuarios que no estén habituados al montaje de componentes electrónicos: se pueden conectar con pinzas de cocodrilo además de en una placa de pruebas (protoboard o breadboard) y dispone de conectores verticales con guías para los sensores además de una conexión USB. Existen varios juegos de sensores para pruebas y se vende con una suscripción a una especie de nube para las aplicaciones desarrolladas con este dispositivo.
Las opciones de SparkFun que seguramente resultarán más interesantes a los desarrolladores cercanos a la electrónica son las de la serie Thing: la placa ESP8266 Thing para explotación y la placa ESP8266 Thing – Dev Board, para desarrollo. Una de las diferencias más destacables que existe entre ellas es la posibilidad de alimentar cómodamente la versión de producción con una batería. Ambas disponen de un interruptor (no recuerdo ninguna otra placa ESP8266 que lo tenga), conexión USB, 20 espacios (10+10) para pines de una décima de pulgada y un conector para una antena externa.
Por supuesto, hay muchas más placas de desarrollo o de aplicación que utilizan el ESP8266 pero, en general, se centran en añadir valor integrando otros componentes y sobre todo aportando opciones de desarrollo, especialmente para usar la nube, como es el caso de Blynk Board de SparkFun o ESPresso Lite diseñada por Espert y que distribuye Cytron.
Post Comment