Node MCU
Node MCU
Node MCU
NodeMCU
eSP-8266
INterNet de laS CoSaS
En la actualidad existen infinidad de dispositivos electrónicos que interactúan con
nosotros en nuestra vida cotidiana y la necesidad de comunicarnos con ellos, de com-
partir información y realizar funciones a distancia mediante el uso de internet es cada
vez mayor. Para lograr esta conexión, es necesario el uso de una interfase entre estos
dispositivos y el mundo del internet. Por lo que esta investigación nos llevara a cono-
cer más a fondo un módulo Wifi ESP8266 de bajo costo, ideal para aplicaciones de inter-
net de las cosas (IOT) y saber cómo elegir el más adecuado para nuestros futuros
proyectos, enfocados en el internet de las cosas. Se obtuvo como resultado de este
análisis, que existen factores importantes para la elección de estos dispositivos, como
lo son la normativa de comunicación en cada país, la cantidad de memoria y sobre todo
el costo beneficio, dependiendo del hardware con que se cuenta en el proyecto.
Concluimos que antes de adquirir un módulo ESP8266 debemos realizar un análisis,
tomando en cuenta estos factores para una correcta elección.
Proyectos Electrónicos 3
Artículo de tapa
Qué es NodeMCU
NodeMCU es un nombre que recoge tanto un firmware Open Source y como a una placa de
desarrollo basados en el ESP8266. La página oficial de NodeMCU está disponible en
http://nodemcu.com
En principio el nombre NodeMCU se refería principalmente al firmware. Actualmente esto se
ha invertido y cuando hablamos de NodeMCU normalmente nos referimos a la placa de desar-
rollo.
El firmware NodeMCU fue creado poco después de aparecer el ESP8266, el 30 de diciem-
bre de 2013. Unos meses después, en octubre de 2014 se publicó la primera versión del
firmware NodeMCU en Github. Dos meses más tarde se publicaba la primera placa de desar-
rollo NodeMCU, denominada devkit v0.9, siendo también Open Hardware.
En esos primeros momentos del ESP8266 apenas había información y la poca que había era
confusa. La mayoría del interés de la comunidad se limitaba al ESP01, que se consideraba más
un módulo Wifi barato para procesadores como Arduino que una placa de desarrollo independi-
ente.
El firmware NodeMCU podía grabarse en un ESP8266, tras lo cual podíamos programarlo
con el lenguaje script Lua. La programación el Lua permitía la conexión y programación del
ESP8266 de una forma mucho más sencilla que las herramientas oficiales proporcionadas por
Espressif.
Lua es un lenguaje de programación imperativo y estructurado, creado en 1993 por Roberto
Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes. Está basado en C y Perl, y está
diseñado para ser muy ligero. Ha sido implementado en una gran variedad de dispositivos
embebidos, desde videoconsolas a robots industriales. La página oficial es https://www.lua.org/.
Con el paso del tiempo y la aparición de otras alternativas para programar ESP8266, como
(especialmente) con C++ con el entorno del Arduino y otras como MicroPython, el interés en Lua
ha disminuido considerablemente.
A pesar de que la programación en Lua tenía aspectos interesantes, no es un lenguaje tan
extendido como C++ y Python. Además, nunca consiguieron hacerlo totalmente estable en el
ESP8266. Por otro lado, al ser un lenguaje interpretado (en lugar de compilado) el rendimiento
y aprovechamiento de los recursos es inferior.
En 2015 el equipo de desarrollo original dejo de mantener el firmware de NodeMCU. Aunque
sigue siendo mantenido por una comunidad de desarrolladores el interés en el firmware ha
caído casi por completo. Por este motivo, actualmente nos referimos con NodeMCU más a la
placa de desarrollo que al firmware.
No obstante, aunque actualmente el firmware haya caído un poco en el olvido, no hay que
olvidar la contribución que el proyecto NodeMCU, tanto firmware como placa de desarrollo, han
supuesto para la proliferación e implantación del ESP826.
Básicamente, la placa de desarrollo NodeMCU está basada en el ESP12E y expone las fun-
cionalidades y capacidad del mismo. Pero, además, añade las siguientes ventajas propias de
placas de desarrollo:
4 Microcontroladores
Alimentación a través del USB
Terminales (pines) para facilitar la conexión
LED y botón de reset integrados
La versión 0.9 era fea (bueno, para gustos), amarilla-anaranjada y muy ancha. Con unas
dimensiones de 47x21mm ocupaba 10 hileras de pins de una placa breadboard, por lo que la
tapa por completo. Esto la hacía muy poco práctica de usar porque no deja pines libres en la
breadboard para realizar conexiones.
La siguiente versión del NodeMCU es la v1.0 V2. De forma resumida Amica, una compañía
creada por el alemán Gerwin Janssen, fabricó su propia versión mejorada de la v0.9.
Al equipo original de NodeMCU le gustó y la declararon versión "oficial" de NodeMCU.
Proyectos Electrónicos 5
Artículo de tapa
Llegamos a lo que a veces se denomina "tercera generación", la versión 1.0 V3. Básicamente
el fabricante Lolin/Wemos decidió crear su propio diseño "mejorado" con unos cuantos cambios
menores.
6 Microcontroladores
El cambio principal es que la V3 monta un conversor serial CH340G en lugar del CP2102. El
fabricante asegura que hace que el puerto USB sea más robusto. Por otro lado, reusaron los
dos pines reservados de la V2 para sacar un GND y un VUSB.
Por lo demás, las especificaciones son las mismas. Por contra, el modelo v1.0 V3 vuelve a
ser ancho y tapar toda la breadboard, lo cual es un auténtico problema a la hora de realizar mon-
tajes con bredboard
Aun así, la 1.0 V3 es seguramente el modelo más vendido ahora mismo. Aunque mucha
gente busca la V2 porque son prácticamente iguales en funcionalidades, pero al ser estrecha es
más cómoda de usar en una breadboard.
Como la versión V3 es una versión creada por Lolin/Wemos, en ocasiones se le ha tachado
de "no oficial" (por el mismo NodeMCU). Pero teniendo en cuenta que es open hardware, el pro-
pio concepto de "no oficial" no tiene mucho sentido.
Algo que debe saber es que los vendedores de Mercado Libre, eBay y AliExpress (y otros)
lo mezclan todo! Por ejemplo, lo mismo ponen "NodeMCU Lua Lolin V2" que "NodeMCU Amica
devkit v3".
Así, al buen tun tun. Pero la parte más divertida es que he visto versiones marcadas como
V3 que en realidad son estrechas. Versiones que venden como V2 que son anchas.
La mejor forma de diferencias entre V2 y V3 de un vistazo es fijarnos en el conversor serial
que monta. El CP2102 que es cuadrado, o el CH340G que es más alargado.
Proyectos Electrónicos 7
Artículo de tapa
Hay una gran variedad de pequeñas variaciones y fabricantes que denominan igual (y a
veces equivocadamente) a sus placas de desarrollo. Así que puede haber pequeñas diferencias
en la placa de desarrollo que tengas
A continuación vemos una tabla de resumen con los pines, sus funciones, y algunas de sus
peculiaridades.
8 Microcontroladores
Proyectos Electrónicos 9
Artículo de tapa
Una de las primeras dificultades al usar placas de desarrollo basadas en el ESP8266 es con-
seguir su esquema de patillaje. Más aún porque los fabricantes no mantienen un mismo criterio
al asignar los pines de su placa con los del ESP8266. Esto nos puede llevar a más de un que-
bradero de cabeza.
Por eso es importante dedicar un rato a entender los pines y hardware del ESP8266. Porque,
aunque las denominaciones cambien en las placas de desarrollo siempre tendrán en común las
características del ESP826, de forma que solo con conocer la equivalencia entre los pines
sabremos usar cualquier placa de desarrollo.
Por otro lado, el ESP12E es el módulo con SoC ESP8266 más empleado en placas de desar-
rollo. Entender su Pinout está muy relacionado con entender el ESP8266, prescindiendo de
pines que no nos aportan demasiado (internos).
Por último, entender el pinout y el hardware del ESP8266 y el ESP12E nos permitirán usar-
los de forma independiente, sin una placa de desarrollo. Aunque tendremos que incluir nuestra
propia electrónica (resistencias, divisores, reguladores de tensión.
Así que vamos a empezar a profundizar en el hardware del ESP8266 y del módulo ESP12E,
viendo su esquema de patillaje y, a continuación, veremos alguno de los detalles de su hard-
ware.
10 Microcontroladores
El ESP8266 tiene 32 pines disponibles, de los cuales 17 son GPIO, 1 es un ADC, y el resto
esencialmente están relacionados con la alimentación y control del ESP8266.
Como vemos, el ESP12E tiene 22 pines. Mantiene los 17 pines GPIO, el pin ADC, pero
reduce los pines de alimentación a 2 (Vcc y GND) y los de control a CHIP_EN (encender apa-
gar el ESP12E) y EXT_RSTB (para hacer reset).
Es decir, en el ESP12E tenemos disponibles la mayoría de pines "importantes" del SoC,
mientras que el módulo se encarga de conectar eléctricamente la mayoría de pines de ali-
mentación y control.
Este es uno de los motivos del éxito y alta implementación del ESP12E, ya que nos ofrece
todas las funciones del ESP8266. Otros módulos, por ejemplo como el ESP01 o incluso el
ESP12S, que prescinden de algunos GPIO para tener un número menor de pines o menor
tamaño.
Espero que con estos datos puedan tener una “idea” para reconocer el producto que van a
comprar.
Lo que puede cambiar es el nombre que han rotulado en cada pin o que tenga el LED inte-
grado en otro pin o, en casos más raros, que hayan conectado los pines de forma distinta con
el ESP12E.
Pero mirando el pinout del ESP12E seréis capaces de lidiar con cualquier placa NodeMCU
Proyectos Electrónicos 11
Artículo de tapa
12 Microcontroladores
Proyectos Electrónicos 13
Artículo de tapa
14 Microcontroladores
Proyectos Electrónicos 15
Artículo de tapa
16 Microcontroladores
Proyectos Electrónicos 17
Artículo de tapa
aunque tengan pequeñas variaciones
iNTrodUCCióN iNTerNeT de las Cosas
El internet de las cosas (IOT) consiste en que diferentes cosas u objetos tengan la capaci-
dad de conectarse a internet en cualquier momento y en cualquier lugar. En un sentido más téc-
nico, consiste en la integración de sensores y dispositivos en objetos cotidianos que estén
conectados a internet a través de redes fijas e inalámbricas. De esta manera, cualquier objeto
es susceptible de ser conectado y manifestarse en la red. Además, el IOT implica que todo
objeto puede ser una fuente de información. (Tojeiro, 2014).
El internet de las cosas está presente en nuestro día a día. En nuestro entorno laboral, en
nuestra casa, en la escuela, en el supermercado, etc.Un ejemplo de ello sería una máquina
expendedora de refrescos que funciona con la publicación de un tweet, o con un hashtag en la
página de la propia empresa o con un like en Facebook.
En definitiva, el objetivo ideal del IOT sería lograr que cualquier objeto tenga vida propia a
través de internet y con ello una identidad. Tojeiro, 2014).
desarrollo HiPóTesis
Para desarrollar aplicaciones IOT es necesario
conocer e identificar las ventajas y desventajas de los dispositivos que nos llevarían a lograr
nuestro propósito, la conexión a internet, por lo que iniciaremos definiendo cual será nuestra
manera de conectarnos.
¿QUe es Wifi?
Wifi es una tecnología de comunicación inalámbrica que permite conectar a internet equipos
electrónicos, como computadoras, tablet´s, smartphones o celulares, etc., mediante el uso de
radiofrecuencias o infrarrojos para la trasmisión de la información.
El funcionamiento aparente de una red Wi-Fi es muy similar al de una red Ethernet, solo que
sin cables. No obstante, además de las direcciones IP y las direcciones MAC, en esta tec-
nología inalámbrica hay que tener en cuenta otros conceptos:
18 Microcontroladores
de estándares.
Dependiendo de la compatibilidad con uno o más de dichos estándares, encontraremos dis-
positivos que pueden formar parte de redes Wi-Fi 802.11b, 802.11g o 802.11n entre otros.
Punto de acceso (aP): un punto de acceso es un equipo de red inalámbrico (puede ser un
computador con el software adecuado, o un dispositivo hardware específico) que se encarga
de gestionar de forma centralizada las comunicaciones de todos los dispositivos que forman la
red Wi-Fi. No solo se utiliza para controlar las comunicaciones internas de la red, sino que tam-
bién hace de puente en las comunicaciones con las redes externas (redes Ethernet e Internet),
a modo de “transformador de señal” entre redes inalámbricas y cableadas.
Modo: un dispositivo Wi-Fi puede tener un rol determinado dentro de la red, y esto se con-
figura estableciendo su modo de funcionamiento. El modo Station o (“Managed”) es el modo en
el que un dispositivo es un mero cliente que se conecta a un punto de acceso para tener conec-
tividad. El modo AP o (“Master”) es el modo en el que un dispositivo puede trabajar él mismo
como punto de acceso (si dispone del firmware adecuado).
ssid: es un dato emitido por el punto de acceso que identifica la red inalámbrica a la que
pertenece. En otras palabras, es el “nombre de la red” que los terminales son capaces de ver
para poderse conectar.
Canal: la banda de frecuencias electromagnéticas en la que trabaja una red Wi- fi (la banda
de los 2,4 GHz, generalmente) se divide en varios canales. Concretamente, el estándar subdi-
vide el rango de los 2,4 GHz en 14 canales separados entre sí por 5 MHz (aunque cada país
aplica sus propias restricciones al número de canales disponibles. (Torrente, 2013).
MeTodoloGía
Como ya se mencionó antes analizaremos el módulo ESP8266 ideal para aplicaciones IOT
por su bajo costo, sus características, sus variantes y aplicaciones.Iniciaremos analizando sus
Proyectos Electrónicos 19
Artículo de tapa
características generales:
ProCesador
El system on a chip (SoC) ESP8266EX usa un microcontrolador Tensilica Xtensa L106, que
El SoC describe la tendencia cada vez más frecuente de usar tecnologías de fabricación que
integran todos o gran parte de los módulos que componen un computador o cualquier otro sis-
tema informático o electrónico en un único circuito integrado o chip.
El procesador funciona por defecto a 80 MHz, pero puede ir hasta 160 MHz, tiene ~ 80kB de
DRAM (Data RAM), y ~ 35kB IRAM (Instruction RAM). La IRAM se carga en el arranque con
lo que el usuario quiere mantener en el procesador, aunque el procesador puede ejecutar el
código directamente fuera del flash externo a una velocidad más baja.
a) Arquitectura
Tiene una arquitectura de Harvard, con lo cual la CPU puede tanto leer una instrucción como
realizar un acceso a la memoria de datos al mismo tiempo, incluso sin una memoria caché.
En consecuencia, una arquitectura de computadores Harvard puede ser más rápida para un
circuito complejo, debido a que la instrucción obtiene acceso a datos y no compite por una única
20 Microcontroladores
vía de memoria. (Kolban, 2016).
VariaNTes del esP8266eX
Como ya lo hemos dicho el ESP8266 es solo un procesador, pero su versión varia a la hora
de construirlo sobre una placa impresa ya que sus características de construcción difieren en
diferentes aspectos.
Existen diferentes marcas fabricantes de estas excelentes variantes basadas en ESP8266.
AI-Thinker la empresa China es una de las más importantes, con una extensa variedad de
módulos de una excelente calidad a nivel global. Wemos (Compañía China) y Olimex (Europa)
también aportan sus propias versiones.
Las compañías Norte Americanas Adafruit y SparkFun no se pueden quedar atrás, fabri-
cando dos modelos más de estas poderosas tarjetas Wi-fi. A continuación, revisaremos cada
una de estas variantes de la global AI-Thinker.
esP-01:
Dimensiones: 14,30 mm × 24,80 mm
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 mod-
elo inicial del ESP8266 (sin EX).
esP-02:
Dimensiones: 14,20 mm × 14,20 mm
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
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
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
Conexiones: 8 patillas separadas una décima de pulgada en una única tira
Sin antena en placa, con un conector para antena externa
Apantallado
Alimentación: 3,3 V
Proyectos Electrónicos 21
Artículo de tapa
esP-06:
Dimensiones: 14,20 mm × 14,70 mm
Conexiones: 12 conexiones bajo la placa
Sin antena
Apantallado
Alimentación: 3,3 V
esP-07:
Dimensiones: 20,00 mm × 16,00 mm
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:
Dimensiones: 17,00 mm × 16,00 mm
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
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
Conexiones: 5 conexiones de superficie en uno de los lados menores
Sin antena
Sin apantallar
Alimentación: 3,3 V
esP-11:
Dimensiones: 14,20 mm × 10,00 mm
Conexiones: 5 conexiones de superficie en uno de los lados menores
Sin antena
Sin apantallar
Alimentación: 3,3 V
esP-12:
Dimensiones: 24,00 mm × 16,00 mm
Conexiones: 16 conexiones de superficie dispuestas en los dos lados mayores
Antena impresa en la PCB
Apantallado
22 Microcontroladores
Alimentación: 3,3 V
esP-12-e — esP-12-f:
Dimensiones: 24,00 mm × 16,00 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-13:
Dimensiones: 18,00 mm × 20,00 mm
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 conexionesdesuperficiedispuestas en los lados mayores
Antena impresa en la PCB
Apantallado
Alimentación: 3,3 V
NodeMCU:
Como vimos, está 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)
Es la versión más empleada en la actualidad para aplicaciones comunes.
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
Proyectos Electrónicos 23
Artículo de tapa
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
figura - ESP-201
Otras compañías fabricantes de placas basadas en microcontroladores ESP son las com-
pañías Wemos proveniente de china y la europea Olimex.
Wemos:
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
Una Variante de este modelo es el D1 Mini que a diferencia del Pro este está basado en el
ESP-14.
olimex:
Olimex comercializa dos productos basados en el ESP8266: el MOD-WIFI-ESP8266 y
24 Microcontroladores
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 cir-
cuito, pero permiten fácilmente añadir una antena externa. Olimex también ofrece un par de pla-
cas para hacer pruebas con la versión de desarrollo, pero por su precio-componentes no son
adafruit:
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, pre-
sente también en la de producción, como otro de programación que las placas Feather HUZ-
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.
Proyectos Electrónicos 25
Artículo de tapa
Ambos productos de Adafruit se pueden utilizar con patillas de un décimo de pulgada de sep-
aración y cuentan con 26 conectores en el caso de la placa Adafruit HUZZAH ESP8266 break-
out 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 conex-
ión de batería) las prestaciones son las mismas que tiene este dispositivo.
sparkfun:
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, pre-
cisamente 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 coco-
drilo 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.
Las opciones de SparkFun que seguramente resultarán más interesantes a los desarrol-
ladores 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
26 Microcontroladores
figura - ESP8266 Thing (Izquierda) ESP8266 Thing- DEV (Derecha) de Sparkfun
difereNTes leGUajes de ProGraMaCióN ardUiNo ide
Uno de los entornos de desarrollo integrado (IDE) más usado es en definitiva Arduino ya que
es una plataforma libre lo que nos permite descargar desde Internet de manera gratuita.
Además de proporcionar un editor de lenguaje C de Alto nivel, más herramientas para com-
pilar e implementar, Arduino IDE proporciona bibliotecas pre-suministradas de rutinas C que
“ocultan” complejos detalles de la implementación que de otra manera podrían ser necesarios
cuando se programa.
Arduino entra en conexión con ESP8266 gracias a una cantidad de personas que han con-
struido un proyecto Open Source Github que proporciona un “plug-in” o “extensión” a la her-
ramienta IDE. Lo que hace esta extensión es permitir escribir bocetos en el IDE de Arduino que
aprovechan las interfaces de la biblioteca Arduino que, en tiempo de compilación y despliegue,
generan código que se ejecutará en el ESP8266.
El ESP8266 Arduino además incluye librerías para comunicar con WiFi utilizando TCP y
UDP, crear servidores, usar un sistema de archivos en la memoria flash, trabajar con tarjetas
SD, servos, y demás periféricos.
lua NodeMCU
Es un firmware para el ESP8266 basado en el Espressif Non-OS SDK y usa el lenguaje de
programación Lua.
Lua es un potente lenguaje de scripting disponible en entornos de ESP8266. La aplicación
más popular de Lua para el ESP8266 se conoce como el NodeMCU Lua Firmware y está
disponible en su repositorio GitHub.
javascript
El JavaScript es un lenguaje de alto nivel interpretado. Algunas de sus construcciones cen-
trales son mecanografía suelta, orientación a objetos, soporte de funciones lambda, soporte de
cierres y, lo que es más importante, se ha convertido en el lenguaje de la web.
Espruino es un proyecto de código abierto para proporcionar un tiempo de ejecución de
JavaScript para dispositivos integrados. Se ha implementado para los procesadores ARM
Cortex M3 / M4 y otros. Actualmente está en desarrollo para implementarlo en el ESP8266.
esP8266 basic
ESP8266 Basic proporciona un editor de lenguaje Basic en la propia página, ESP8266
Basic, proporciona bibliotecas pre- suministradas de rutinas que “ocultan” complejos detalles de
la implementación que de otra manera podrían ser necesarios.
El entorno de desarrollo como bien se ha dicho es vía web, donde accederemos al propio
ESP8266 y podremos escribir nuestro código para flashearlo. Además, dispone de un sistema
de archivos en la memoria flash. (Ubach, 2017)
aPliCaCióN
Ejemplo de aplicación utilizando un ESP8266
Monitoreo de temperatura utilizando una placa de Wemos, un Sensor DHT11 y la
plataforma de desarrollo de aplicaciones móviles Blynk
Proyectos Electrónicos 27
Artículo de tapa
desarrollo de la marca Wemos modelo D1 mini, es el monitoreo de una variable de temper-
atura el cual se puede realizar programando directamente el microcontrolador por medio de la
plataforma de desarrollo libre de Arduino.
Como primer paso descargaremos el instalador del IDE de desarrollo de Arduino directo de
la siguiente página de internet oficial de Arduino:
https://www.arduino.cc/en/main/software
Una vez descargado el instalador procedemos a instalarlo siguiendo los sencillos pasos de
instalación.Ya instalado nuestro IDE de programación para Arduino procederemos a descargar
la interfase entre el IDE de Arduino y la placa de desarrollo Wemos D1 mini siguiendo la sigu-
iente ruta:
Abrir el IDE
Abrir la pestaña de Herramientas
Abrir la pestaña de Placa:
Seleccionar Gestor de Tarjetas
Cuanto de abre la ventana del gestor
Buscar la tarjeta ESP8266 y descargar.
Ahora ya podemos programar de manera directa nuestra placa de desarrollo D1 mini como
si fuera una placa de Arduino.
ACLARACIÓN:
En diferentes oportunidades hemos explicado como utilizar el IDE de ARDUINO y no es
objeto de este tutorial expandirnos en el tema; es por eso que sólo explicaremos los pasos a
seguir sin detenernos en los detalles.
Si desea más información sobre ARDUINO puede dirijirse al sector de búsqueda de nuestra
web: www.webelectronica.com.ar
Una vez realizada la descarga de las librerías, descargamos en nuestro celular la aplicación
Blynk del Appstore para Apple o PlayStore en Android según sea nuestro teléfono celular y
creamos una cuenta y contraseña para obtener un numero Token que incluiremos en el pro-
grama del microcontrolador.
El siguiente paso es construir el circuito utilizando el siguiente diagrama de conexiones de
28 Microcontroladores
Fritzing.
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
Proyectos Electrónicos 29
Artículo de tapa
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println (“Failed to read from DHT sensor!”);
return;
}
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
30 Microcontroladores
figura - Cargando el programa al D1 mini utilizando IDE de Arduino
A continuación, creamos la aplicación móvil para el monitoreo con la plataforma
BlynkPodemos utilizar un graficador en tiempo real y un display para que nos muestre el dato
Una vez implementado nuestro sistema de monitoreo podremos tener las lecturas de la tem-
peratura en cualquier lugar a través de internet casi en tiempo real ya que se genera un
pequeño retraso en la transferencia de información ocasionada por la velocidad de la conexión
a internet la cual puede variar entre 1 y 6 segundo.
resUlTados
Una vez que analizamos cada una de las marcas más reconocidas a nivel mundial y sus vari-
antes en cada una de ellas al igual de cada uno de los lenguajes disponibles de programación,
nos pudimos dar cuenta en principio que cualquiera de los módulos wifi ESP8266 puede pro-
gramarse 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 memo-
ria disponible.
Aunque inicialmente algunos módulos estaban estrechamente vinculados con ciertos lengua-
jes 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.
Otro criterio relevante que considerar es la normativa de uso ya que es diferente en cada país
Proyectos Electrónicos 31
Artículo de tapa
lo que puede ocasionar problemas si se quiere comercializar.Un punto importante para tener en
cuenta es también es el lenguaje de programación a utilizar. Hemos visto que Lua ModeMCU
es una opción muy completa IDE de Arduino es un lenguaje más simple para el momento de
realizar la programación y su IDE esta complemente disponible desde el internet.
disCUsióN
Una buena Opción para nuestros proyectos es el la ESP-201 de AI-Thinker es una versión
barata de la placa de desarrollo NodeMCU, si no tenemos problemas para conseguir un adap-
tador USB–UART, 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.
Cuando sea necesario desarrollar una aplicación donde se requiera 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) además es el más barato que he encontrado con esa memoria.Si en el mon-
taje 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 ya que su costo va desde los 2 dólares.
Conclusiones
Como conclusión determinamos que existen diferentes aspectos importantes a considerar
antes de escoger un módulo para nuestro proyecto. Inicialmente debemos revisar la normativa
que rige dentro del país donde queremos implementar y producir si ese es el caso nuestro pro-
ducto a desarrollar. Otro punto importante es cual es mejor leguaje de programación dependi-
endo de nuestra experiencia y habilidad para la elaboración del software. Otro punto importante
es la memoria que se requiere en nuestro modulo ya que dependiendo de la aplicación puede
ser importante que no nos falte capacidad. Y por último es determinar es el costo- beneficio del
módulo a comprar, ya que si nuestro proyecto ya cuenta con un microcontrolador principal
podemos adquirir un módulo ESP más pequeño para que solo trabaje a la par con nuestro
microcontrolador principal.
referencia
ESP8266. (27/06/2016) [Articulo], España, https://github.com/esp8266/Arduino
Kolban, Neil. (2016) Kolban’s Book on ESP8266, (1ra ed.).
Tojeiro Calaza, German. (2014) “Taller de Arduino un enfoque práctico para principiantes”.(1ra ed.), MARCOMBO,
pp 261- 262.
Torrente Artero, Óscar. (Febrero 2013) Arduino Curso práctico de formación, (1ra ed.), Alfaomega, pp. 534-535.
Ventura, Víctor (2016 junio 2).[en línea]. Disponible en: https://polaridad.es/esp8266- modulo-wifi-elegircaracteristi-
cas/ Ubach Granados, Carles. (abril 2017). Programando directamente un ESP8266, Memoria de tesis Ingeniería
32 Microcontroladores