NodeMCU es una placa de desarrollo , programable en el entorno de arduino (con raíces de lenguaje C ). Es una placa cuya finalidad es dar soporte físico ( alimentación, puertos, acceso a terminales RX, Tx, etc ) al microcontrolador ESP 8266.
Hay muchas otras placas con mayor o menor ventaja, como la ESP 01 ya tratada en la práctica:
Dentro de esta placa, el chip que ejecuta las funciones de
programación se llama ESP8266, que es un chip tipo SoC ( Sytem on a Chip ).
Dentro de ese SOC tenemos el microcontrolador, que en este caso es un
Tensilica L106 de 32-bit
Para
entrar en detalle de esta SOC, deberíamos visitar su hoja de
características, que una vez revisada tomamos los siguientes aspectos mas
relevantes
El procesador de 32 bits Tensilica L106 usado en el ESP8266 alcanza un consumo de energía extra bajo y una velocidad máxima de reloj de 160 MHz.
La CPU incluye las interfaces RAM/ROM programables (iBus)
El tamaño de la memoria RAM < 50 kB
No hay ROM programable en el SoC. Por lo tanto, el programa de usuario debe almacenarse en un flash SPI externo.
El Flash externo ESP8266EX utiliza el flash SPI externo para almacenar programas de usuario, y soporta teóricamente hasta 16 MB de capacidad de memoria.
Mostramos a modo de curiosidad , los diferentes bloques operativos que contiene el ESP8266
El reloj de alta frecuencia del ESP8266EX se utiliza para accionar tanto los mezcladores de transmisión como los de recepción. Este reloj se genera a partir de un oscilador de cristal interno y un cristal externo. La frecuencia del cristal oscila entre 24 MHz y 52 MHz.
El
chip tiene 17 pines GPIO que pueden asignarse como entradas o salidas, y que
además pueden varias funciones mediante la programación de los
registros correspondientes.
Cada GPIO PAD puede configurarse con pull-up o pull-down interno (XPD_DCDC sólo puede configurarse con pull-down interno, otros GPIO PAD sólo pueden configurarse con pull-up interno), o con alta impedancia.
El concepto de pull-up o pull-down ya se ha visto en el módulo de electrónica , y para recordarlo, adjuntamos la imagen.
Esta placa de desarrollo tiene pines que pueden ser utilizados para diferentes propósitos. Para la finalidad de este módulo vamos a usar por defecto , aquellos puertos que sean puros. Se adjunta una imagen donde puede verse lo versátil de los pines
Existen muchas otras características, para lo cual, y en un entorno de
desarrollo más profundo, es conveniente estudiarlas dentro de la
datasheet del
fabricante.
Para programar esta placa, al igual que lo hacemos con la placa de arduino uno, debemos de hacer los mismos paso, pero añadiendo algunos pasos extras, dado que el entorno de programación de
1º Descarga e instala el
IDE de Arduino
2º Luego, necesita instalar el complemento ESP8266 para el IDE de Arduino.
Para ello, vaya a Archivo > Preferencias.
3º Introduzca http://arduino.esp8266.com/stable/package_esp8266com_index.json
en el campo "Additional Board Manager URLs" como se muestra en la siguiente
figura. A continuación, haga clic en el botón "Aceptar".
4º Vaya a Herramientas > Placas > Gestor de tarjetas.
5º Escriba esp8266 y aparece "esp8266 by ESP8266 Community", como se muestra en la siguiente
figura. Pinchar e instalar. Tarda un poco en instalar todo el paquete. Una
vez que aparece INSTALLED , podemos
cerrar.
6º Vaya a Herramientas > Placas y elija su placa ESP8266. Luego, reabra su IDE
de Arduino.
Ahora, en placas, veremos todas aquellas que tienen el ESP8266 como SOC.
7º Elegimos la placa Node Mcu 1.0
8º Ahora vamos a meter nuestro primer programa, usando el Led que trae la misma placa. Ese Led está conectado con una resistencia pull-up y por eso se enciende si el pin está a nivel bajo
Tenemos nuestra placa preparada para pasar a la primera práctica.
2º Ahora toca conectar la placa a la red wifi
Este es el programa que tenemos que cargar
Abrimos la consola desde Herramientas -> Monitor serie
Vemos los símbolos extraños ?
Nuestra placa , aparte de tener el MCU esp8266, tiene otros chips que tienen su función, como por ejemplo, el adaptador de tensión de 5 a 3,3, la memoria externa, etc. Uno muy importante es el chip que permite la conexión entre el MCU y el software. Ese chip para que funcione , hay que instalar el driver CH340G. Además es muy importante que el chip trabaje con los requisitos del fabricante.
La velocidad con la que el IDE ( programa de arduino ) manda los datos a ese chip , viene medidos en baudios ( símbolos de información por segundos ).
Hemos comprobado que se se excede de 9600, la grabación genera una serie de errores, que hemos representado en la siguiente imagen.
La solución es cambiar la línea donde pone Serial.begin(115200); por Serial.begin(9600);
Vemos ahora la pantalla de comunicaciones serie. Hemos marcado en rojo los simbolos que salen de forma errónea si la comunicación serie en baudios no es la correcta
Para terminar esta primera parte. añadir estas líneas para que nos genere más información de la red
Puedes bajar el archivo en Conexión WIFI de Node MCU
Una vez visto la más básico, veremos los siguientes proyectos, con utilidad en la domótica
https://programarfacil.com/esp8266/como-programar-nodemcu-ide-arduino/
Biblio
https://randomnerdtutorials.com/esp8266-web-server-spiffs-nodemcu/
https://randomnerdtutorials.com/esp8266-web-server/
https://programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/#Versiones_de_NodeMCU
https://www.prometec.net/esp8266-con-arduino-ide/
http://www.nodemcu.com/index_en.html
Enlaces del NodeMCU ( ESP 8266 )
Diseño PCB Principios básicos de antenas