Guía de inicio en NodeMCU, placa de desarrollo basada en el ESP8266
NodeMCU es una placa de desarrollo totalmente abierta a nivel de software y hardware, basada en el ESP8266. Su misión es simplificarnos las cosas cuando queramos desarrollar dispositivos conectados, por lo que saber cómo exprimir todo su potencial es básico si pretendemos hacerlo en nuestro proyecto. Es una pieza realmente económica, siendo la mejor opción para quienes vayan algo ajustados de presupuesto. Por ese módico precio, la placa te proporciona todo lo necesario para poder llevar a cabo con éxito el proyecto. Ella pone las herramientas, tú el talento y las dotes de programación.
Primeros pasos con el NodeMCU
Antes de empezar, es preciso recalcar que NodeMCU no es un microcontrolador, igual que Arduino MKR1000 tampoco lo es. Estamos hablando de placas de desarrollo que incorporan un chip, el cual contiene el microcontrolador o MCU. Nuestra misión es programar el microcontrolador mediante el kit de desarrollo y poder realizar todo tipo de proyectos dentro de lo que llamamos “el Internet de las Cosas”, IoT por sus siglas en inglés. Esto significa que NodeMCU tiene aplicaciones en muchos de los proyectos que podamos tener en mente, lo que lo hace todavía más útil.
En el NodeMCU, el microcontrolador está ubicado dentro del chip, habitualmente llamado SoC (System on a Chip). A este SoC se le conoce como ESP8266. En efecto, ESP8266 no es un microcontrolador, si nos ponemos estrictos (aunque dentro sí incluye uno, llamado Tensilica L106, de 32-bit). El microcontrolador se va a encargar de gestionar cada entrada, salida y de realizar los cálculos necesarios para hacer funcionar el programa que hayamos cargado.
NodeMCU incluye un módulo ESP-12, que a su vez forma parte de los distintos módulos que conforman el ESP8266. De ahí que afirmemos que NodeMCU está basado en ESP8266. En función de la versión de NodeMCU que tengamos podremos encontrar un módulo ESP-12 o ESP-12E. Estos módulos incorporan la memoria Flash para almacenar los programas y la antena. En este punto empieza la simplificación del acceso a los pines y a los conectores del chip y del microcontrolador.
La placa de desarrollo NodeMCU y sus distintas versiones
Aunque existen varias versiones en el mercado de la placa NodeMCU, lo cierto es que todas comparten las mismas características generales: incluyen un conversor serie-USB para poder programar y alimentar a través del USB, proporciona fácil acceso a los pines y viene de serie con LEDs de indicación de estado, además de incorporar el tradicional botón de reinicio.
A grandes rasgos, tres son las versiones que podrás encontrar de este tipo de placas en el mercado:
- NodeMCU v0.9: es la más tosca, siendo precisamente su principal inconveniente el gran tamaño que presenta. N deja espacio para colocar los pines una vez está conectada a la protoboard, lo que dificulta su uso.
- NodeMCU v1.0: ve reducido su tamaño, encajando perfectamente en la protoboard, además de incorporar el chip ESP-12E y traer algunos pines extra.
- NodeMCU v1.0 / V3: no es una especificación oficial, sino que ha sido creada por Lolin para incluir ciertas mejoras a la versión oficial de la versión 1.0 de NodeMCU. El puerto USB tiene un acabado más resistente, y dos de los pines que no se utilizan en la versión anterior se usan ahora como salida de 5V del USB y un GND extra.
Cómo conectar el NodeMCU al ordenador
Una vez te hayas familiarizado con el tema de los pines, explicado muy eficientemente en el portal Programar Fácil por Luis del Valle, experto programador y fundador del website referente del mundo maker, enfocado principal pero no exclusivamente a la programación con Arduino, es hora de conectar el NodeMCU al PC.
Tal y como explica el propio Luis del Valle en el podcast dedicado a la programación con NodeMCU, accesible desde el enlace web programarfacil.com/podcast/nodemcu-tutorial-paso-a-paso/, para poder cargar un programa al NodeMCU es preciso contar con un conversor USB. Como la placa ya trae de serie un módulo integrado, solo necesitaríamos conectar la placa al ordenador.
Eso sí, tal y como apunta Luis del Valle, en ocasiones este simple paso no basta y es preciso configurarlo de forma manual. Esto se debe precisamente a que, al ser un hardware abierto, cualquiera puede fabricar con él y manejarlo a placer sin ninguna restricción, lo que puede afectar a la compatibilidad de la placa al conectarla a nuestro ordenador, pero gracias a los drivers el problema tiene fácil solución.
Lo habitual es que Windows reconozca el hardware y lo instale de manera automática en el ordenador. Si esto no sucediera, puedes descargar los drivers CP1202, los utilizados por el propio Luis del Valle para la elaboración de este tutorial.
En caso de utilizar MAC, la descarga de drivers es obligatoria para poder instalar la placa en el ordenador. En el propio podcast, Luis del Valle incluye una guía para instalar el driver CP1202 y habilitar el NodeMCU para su uso en nuestro ordenador, lo que simplifica todo el proceso y agiliza su uso.
Conclusiones sobre el uso de NodeMCU para la realización de proyectos
NodeMCU es la placa de programación predilecta tanto para quienes buscan un hardware libre como para quienes pretenden encontrar una alternativa fiable y económica para desarrollar sus proyectos. No solo es una herramienta muy útil para desarrollar programas en dispositivos inteligentes, sino que permite trastear con el propio hardware para construir una placa propia perfectamente ajustada a las necesidades de cada creador.
Eso sí, en determinados aspectos NodeMCU es más ambigua que alternativas como Arduino. Es preciso tener un mínimo de curiosidad para averiguar ciertos aspectos de esta placa y explotar todas sus posibilidades, dejando al usuario ir más por libre. En este sentido difiere enormemente de Arduino, que documenta cada cambio para mantener al tanto a sus usuarios de las actualizaciones.
Con todo, NodeMCU es una de las mejores opciones del momento para programar destinada a todo estudiante de nivel medio, ofreciendo una alternativa más económica y libre que Arduino para desarrollar sus proyectos de programación.