Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EN MCU
TEMA: NodeMCU
1
1. INTRODUCCIÓN Y DEFINICIÓN
La plataforma nodeMCU es un kit de firmware y desarrollo de código abierto (Open Source)
tanto en software como en hardware, esto implica que puede ser utilizado y modificado por
cualquier persona, tal como se puede ver en la plataforma Arduino. NodeMCU es programado
con LUA que es un lenguaje de programación imperativo y estructurado basado en C y Perl y
está diseñado para ser muy ligero, el código desarrollado en LUA puede ser fácilmente
programado en la placa mediante el IDE de Arduino.
Para los componentes de hardware NodeMCU trabaja con el módulo Wi-fi ESP-M2 y diferentes
versiones de Sistemas en Chip (SoC) que reúnen todo lo necesario para que la placa de desarrollo
funcione automáticamente, estas versiones pueden ser el SoC ESP8266 y el SoC ESP8285
basadas en el ESP-12 que integran al microcontrolador Tensilica L106
Esta plataforma enfocada al Internet de las cosas (IoT), es óptima para adaptarse a las
necesidades actuales de estar siempre conectados a los dispositivos electrónicos que disponemos
ya que cuenta con un módulo Wi-Fi enfocado al desarrollo de aplicaciones donde se requiera
una conexión de múltiples sistemas gobernados por microcontrolador a una red inalámbrica.
Según Luis LLamas. NodeMCU es un nombre que recoge tanto un firmware Open Source y
como a una placa de desarrollo basados en el ESP8266. (Llamas L.)
2
2. CARACTERÍSTICAS Y DESCRIPCIÓN DE LA
ARQUITECTURA DE LA PLATAFORMA
NODEMCU
Esquema general de la arquitectura de NodeMcu:
Kit de desarrollo
Es el nivel superior del esquema, consta de la placa de desarrollo de NodeMCU, esta placa
incorpora componentes que nos permiten programar y conectar el módulo y el microcontrolador
a los circuitos. En el mercado están disponibles diferentes modelos y versiones de varias marcas
con características y diferentes dependiendo del microcontrolador y el Sistema en chip que
incorporan que ayudan a facilitar el desarrollo de proyectos con microcontroladores.
3
Figura 2.2. Placa de desarrollo de NodeMCU.
Fuente. (ElectroArdu.)
● Cuenta con un conversor Serie-USB para poder programar y alimentar a través del USB
Las diferencias que se encuentran de las diferentes versiones se centran en el número de pines a
los que tenemos acceso y el tamaño de cada placa, ya que todas las placas de NodeMCU se
basan en los mismos módulos el ESP-12 y ESP-12E del SoC ESP8266.
Primera generación (V1): Utiliza el módulo ESP-12 basado en el ESP8266 con una memoria
Flash de 4MB. Presenta un inconveniente en su tamaño ya que no permite la conexiones de sus
pines en una Protoboard estandar.
Segunda generación (V2): En esta versión de placa NodeMCU se obtuvieron mejoras de calidad
en el diseño. El tamaño de la placa se reduce facilitando las conexiones en protoboard y se
implementó el módulo ESP-12E, permitiendo tener algunos pines extra.
4
Tercera generación (V3):Es una versión no oficial creada por la empresa Lolin que se caracteriza
por una mejora del puerto USB y adiciona pines de salida 5V directa del USB y un GND
adicional.
SoC ESP8266
Teniendo en consideración las descripción del fabricante se puede decir que es una Plataforma de
Conectividad Inteligente que constituye un conjunto de SoC inalámbricos, diseñados para
programadores de plataformas móviles con restricciones de espacio y potencia. Proporciona
capacidad insuperable para integrar capacidades WiFi dentro de otros sistemas, o para funcionar
como una aplicación independiente, con el menor costo y mínimo requisito de espacio.
(Espressif Systems )
El nombre técnico de este sistema es ESP8266EX, se trata de un Sistema en Chip (SoC) que
consiste en un chip integra la mayoría de los componentes a excepción de una memoria para
almacenar los programas para que el NodeMCU funcione de forma autónoma como si se tratara
de una computadora. (Hernández. L.)
5
Figura 2.4. Diagrama de bloques del SoC ESP8266EX .
Fuente. (Espressif Systems )
El hecho de carecer de una memoria interna puede ser un problema ya que algunos pines de
entrada y salida, tendrán que ser utilizados para conectarse a una memoria Flash externa.
Características principales:
Módulos NodeMcu:
● SDIO 2.0, (H) SPI, UART, I2C, I2S, CONTROL REMOTO IR, PWM, GPIO
Microcontrolador de NodeMCU:
El microcontrolador es la unidad más básica que integra el SoC, que para el caso de nodeMCU,
se trata de un Tensilica L106 de 32 bits, que gobernara y hará el control de todas las entradas,
6
salidas y procesos que logren hacer funcionar el programa diseñado que será almacenado en el
mismo.
7
● Pines de alimentación:
● Pines digitales:
Existen 13 pines digitales del D0 al D12, pero debido a que el ESP8266 hace uso de una
memoria externa en la que almacenar los programas y datos se necesita utilizar pines del propio
sistema. Por lo tanto se dispone para entradas y salidas digitales 9 pines del D0 al D8, mientras
que los pines D9 y D10 correspondientes a Rx (recibir) y Tx (transmitir), deben ser usados
únicamente para transmitir un programa o para la comunicación entre el NodeMCU y el PC a
través del puerto serie, ya que si se usan pueden generar interferencias a la hora de cargar un
programa.
Los pines digitales disponibles pueden ser observados en la figura 2.6 a continuación.
8
Figura 2.7. Pines Digitales NodeMCU.
Fuente. (Hernández. L.)
● Pin analogo:
La placa NodeMCU tiene solo un pin analógico que es el A0 que admite un rango de
valores de 0 a 3,3V con una resolución de 10-bit del Conversor análogo digital (ADC).
Al momento de la programación de la plataforma podremos tener un valor entre 0 y 1023
que se mapea con un voltaje de 0 a 3,3V
● Indicadores LEDs
● Pulsadores
La placa presenta dos pulsadores, una para el botón de RESET (RST) que si lo pulsamos
se resetea la placa y comienza la ejecución desde el principio pasando por la función
setup() y el botón de FLASH cargará un programa o firmware al microcontrolador.
9
3. CONFIGURACIÓN DEL SOFTWARE DE
PLATAFORMA
Configuración de ESP8266 con el software de la plataforma de Arduino
1. Se deben instalar los drivers necesarios para que el microcontrolador ESP8266 ejecute
instrucciones. Estos nos permitirán configurar la gestión del conversor USB a serie. Y ello,
dependerá del sistema operativo en el que se está trabajando. Para SO como MAC o
Linux, no existen mayores inconvenientes al momento de realizar dicha instalación. Sin
embargo, para Windows 7 o versiones inferiores se requiere de su instalación. (Programo
ergo sum)
2. Se debe agregar la ESP8266 al IDE de Arduino. Esto se hace, mediante la barra de
menús, clickando en Archivo → Preferencias y damos click en Gestor de URLs
Adicionales de Tarjetas para colocar el enlace
http://arduino.esp8266.com/stable/package_esp8266com_index.json que permitirá
agregar el paquete de ESP8266. (Programo ergo sum)
10
Y finalmente, procedemos a instalar la placa ESP8266
Una vez realizado este proceso lo que nos queda por hacer es seleccionar la placa
NodeMCU y el puerto en el que está conectada
11
para finalmente comprobar su funcionamiento empleando un código en concreto
(Programo ergo sum)
La mayoría de los IDE tienen autocompletado inteligente de código. Algunos IDE contienen un
compilador, un intérprete, o ambos, tales como NetBeans y Eclipse. Uno de los propósitos de los
IDE es reducir la configuración necesaria para reconstruir múltiples utilidades de desarrollo, en
vez de proveer el mismo set de servicios como una unidad cohesiva. Reduciendo ese tiempo de
ajustes, se puede incrementar la productividad de desarrollo, en casos donde aprender a usar un
IDE es más rápido que integrar manualmente todas las herramientas por separado (Candelario).
Una mejor integración de todos los procesos de desarrollo hace posible mejorar la productividad
en general, más que únicamente ayudando con los ajustes de configuración. Por ejemplo, el
código puede ser continuamente armado, mientras es editado, previendo retroalimentación
instantánea, como cuando hay errores de sintaxis. Esto puede ayudar a aprender un nuevo
lenguaje de programación de una manera más rápida, así como sus librerías asociadas
(Candelario).
Utilizando el entorno de IDE de Arduino, una placa como NodeMCU y un cable USB podemos
tener un entorno de programación en unos pocos minutos (German).
12
ESP - 01
Este módulo es comúnmente llamado Módulo wifi y está diseñado para usar como un transiver
Wifi, para ser controlado de forma serial con un microcontrolador usando comandos AT
(Ronald).
Solo posee los pines de comunicación, de alimentación y dos GPIO, como se muestra a
continuación.
13
A continuación, tenemos la conexión en el protoboard para facilitar la comprensión.
Hay que tener en cuenta que usamos un regulador de 3.3V, esto porque dependiendo del
conversor USB serial que usen los 3.3V no podría tener la suficiente corriente para alimentar el
ESP y esto podría causar que se cuelgue o reinicie el módulo (Ronald).
ESP - 12E
Este módulo es uno de los más usados, tiene disponible todos los pines que el chip ESP8266
posee (Ronald).
Este chip es la base de varias plataformas de IoT, siendo las más populares NodeMCU y Wemos
(Ronald).
14
Figura 4.5 . Módulo ESP - 12E.
Fuente (Ronald).
La conexión de este módulo es mucho más simple que el anterior. En este caso solo necesita
conectar su cable USB y conectar un led en el pin D4, esto para el primer ejemplo que veremos
más adelante. A continuación, tenemos la conexión en el protoboard para facilitar la
comprensión (Ronald).
El pin D4 es el pin GPIO2 del ESP-12E, desde el IDE de arduino nos guiaremos por los GPIO en
lugar de la numeración de pines de la placa:
15
Figura 4.6. Pines GPIO en el NodeMCU
Fuente (Ronald)
● Todos los pines del ESP12E están cableados hasta el interfaz de la NodeMCU, por lo que
tenemos disponible 11 pines de entrada salida y el puerto de entrada analógica.
● Los pines GPIO del 6 al 11 están también conectados pero te recomiendo no usarlos. El
ESP12E utiliza estos pines para conectar la memoria flash. Si los usas, lo más seguro es
que el módulo se reinicie de forma inesperada. Tranquilo, si lo haces no romperás nada.
● La placa tiene 2 botones, uno conectado al pin de RESET y otro al GPIO0, que permite
activar el modo de carga de firmware. Normalmente, no es necesario utilizar estos
botones si usamos el IDE de Arduino.
● Al igual que pasa en las placas de Arduino, la electrónica de NodeMCU, también simula
la secuencia de pulsaciones para entrar en el modo de carga de firmware.
● Los pines GPIO 1 y 3 corresponden con el Rx y el Tx del puerto serie. Estos pines están
protegidos con resistencias de 470 Ohm.
● NodeMCU también facilita el uso del puerto analógico. El ESP8266 tiene un rango de
entrada en este puerto de 0 a 1V pero gracias a un divisor de tensión NodeMCU lo
extiende de 0 a 3.3V.
16
Ejemplo 1
En este ejemplo haremos el hola mundo de microcontroladores que es hacer parpadear un led.
El código e el siguiente:
Si han realizado bien todos los pasos anteriores, debe parpadear el LED, en el caso del
NodeMCU y WeMos notaran que también parpadea el Led del ESP-12E, esto porque el GPIO2
17
generalmente se usa como TX1 para hacer debugging y el Led muestra el estado del pin GPIO2
pero negado (Ronald).
5. PROCESO DE COMPILACIÓN Y
LINKING, DEPURACIÓN.
Para poder compilar y depurar un programa es necesario incluir todos drivers de la placa
NodeMCU e instalar la librería Community Primero debemos instalar la plataforma ESP8266
dirigiéndonos a la barra de menús, seleccionamos Programa → Incluir librería → Administrar
bibliotecas. (Lara)
18
Después de ello lo que nos queda es la depuración y para ello debemos indicar el puerto en el
que se encuentra conectada la placa NodeMCU. Esto se hace dirigiéndonos al menú →
Herramientas → Puerto (Lara)
Luego, cambiamos el tipo de placa a programar por la “Generic ESP8285 Module”, se observará
que algunas opciones cambiarán
19
Se deberán cambiar algunos valores de parámetros que aparecen por defecto, como la
velocidad de subida o el tamaño de la memoria flash (Lara)
Una vez realizado este proceso, el programa ya se puede compilar y descargar en la placa
NodeMCU.
20
6. APLICACIONES
Vamos a indicar las principales campos de las aplicaciones ESP8266EX para el internet de las
cosas:
• Electrodomésticos
Por medio de esta plataforma NodeMCU podemos controlar muchas cosas, como es el
congelador de un refrigerador, el calor que da un microondas, los cuales son programados para
que cumplan con las funciones que conocemos actualmente.
Actualmente, existen muchas casas inteligentes las cuales están programadas para cumplir con
las necesidades de las personas que lo habitan, y muchas de estas hacen contacto con los
dispositivos móviles de las personas por medio de Wi-Fi que es una de las características de esta
plataforma NodeMCU.
Podemos programar por medio de NodeMCU para realizar luminarias cuando no exista luz
ambiental, y de esta manera encender de forma automática luces cuando exista la escasez de la
misma.
• Red de malla
Actualmente, vincular varios dispositivos, ya sean computadores o celulares por medio de Wi-Fi,
es muy fácil, para cada usuario.
A continuación tenemos muchas aplicaciones más con respecto a esta plataforma NodeMCU
como son:
• Cámaras IP
• Redes de sensores
21
• Electrónica usable
(Espressif Systems )
7. CONCLUSIONES Y RECOMENDACIONES
Conclusiones:
● La plataforma NodeMCU, se trata del conjunto de firmware y kit de desarrollo de código
abierto, que se basa en el SoC ESP8266. Es ampliamente utilizada en aplicaciones del
internet de las cosas (IoT), ya que se enfoca en la creación de prototipos que hagan uso de
esta tecnología, por su aclamado módulo WI-Fi que permite la interconexión por red de
varios dispositivos electrónicos. Esta plataforma opera con el lenguaje de programación
LUA y nos facilita la creación de proyectos gracias a que todo el sistema se basa en un
microcontrolador de 32 bits de altas prestaciones.
● Para el uso del NodeMCU, es necesario configurar la plataforma de software en el cual se
va a realizar el código de programación. En este caso, mediante la IDE de Arduino. Para
ello es importante instalar los drivers e incorporar al microcontrolador ESP8266, junto
con sus librerías que serán útiles para realizar la correcta compilación del programa como
tal y así elaborar proyectos y/o aplicaciones que se pueden lograr mediante dicha
plataforma, haciendo gran énfasis en el módulo Wi-Fi que incorpora dicha plataforma.
● El uso de la plataforma NodeMCU, empieza a tomar un mayor impacto en el mundo de
los microcontroladores, debido a que su facilidad de usar Wi - Fi, hace que muchos
usuarios la utilicen, además de que es un componente que lo podemos encontrar en el
mercado a un precio razonable, a comparación de otros componentes los cuales ya son
para desarrollar alguna actividad de alto nivel. Esta plataforma es aplicada es cosas que
diariamente usamos como son los electrodomésticos, casas inteligentes, red de mallas,
monitores para bebés, entre otros.
Recomendaciones:
● Se recomienda revisar varias fuentes de información del tema a tratar, para complementar
cada información encontrada y de esta manera también comprobar que lo que estamos
investigando es correcto, ya que siempre existirá sitios webs donde la información no sea
del todo certera.
22
● Se recomienda usar gráficos para ampliar la explicación acerca del tema a tratar, ya que
una imagen puede decir más que las palabras, y si unimos correctamente la información
escrita con gráficos entonces tendremos una buena comprensión por parte del lector.
● Se recomienda realizar una investigación con antecedentes, de tal manera que permita
sustentar el funcionamiento del tema a tratar en cuestión y tener una mejor percepción y
entendimiento.
8. BIBLIOGRAFÍA
● Candelario, Julio E. 2016. “Implementación de WPS en el firmware NodeMCU para el
ESP8266.” bibling.
https://components101.com/asset/sites/default/files/component_datasheet/ESP8266-Node
MCU-Datasheet.pdf.
● German Martin. 2018. “Cómo programar NodeMCU con el IDE de Arduino.” Programar
Facil. https://programarfacil.com/esp8266/como-programar-nodemcu-ide-arduino/.
https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/#:~:text=NodeMCU%
20es%20una%20placa%20de,microcontrolador%20con%20placa%20de%20desarrollo.
https://www.espai.es/blog/2019/12/nodemcu-la-solucion-wifi-para-arduino/.
https://www.luisllamas.es/esp8266-nodemcu/.
23
https://www.nodemcu.com/index_en.html#fr_54747361d775ef1a3600000f.
https://www.programoergosum.es/tutoriales/configurar-esp8266-con-arduino-ide/.
Mechatronics.
https://naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html.
24