NodeMCU
# NodeMCU

NodeMCU es una plataforma IoT de código abierto. Incluye el firmware que se ejecuta en el SoC Wi-Fi ESP8266 de Espressif Systems y el hardware que se basa en el módulo ESP-12. El término "NodeMCU" se refiere al firmware en lugar de a los kits de desarrollo. El firmware utiliza el lenguaje Lua. Se basa en el proyecto eLua y se basa en el SDK no operativo de Espressif para el ESP8266. Utiliza muchos proyectos de código abierto, como lua-cjson, y spiffs.

## Historia

Ampliamente utilizado en aplicaciones del IoT NodeMCU se creó poco después de que saliera el ESP8266. El 30 de diciembre de 2013 cuando Espressif Systems comenzó la producción del ESP8266, NodeMCU comenzó el 13 de octubre de 2014, cuando se enviaron los primeros archivos de firmware del nodemcu a GitHub. Dos meses después, el proyecto se expandió para incluir una plataforma de hardware abierto cuando el desarrollador Huang R comprometio un archivo gerber de una placa ESP8266 llamada devkit v0.9. Más tarde ese mes, Tuan PM dio portabilidad a la biblioteca MQTT de Contiki hacia la plataforma SoC del ESP8266, y se dedicó con el proyecto, así NodeMCU fue capaz de soportar el protocolo IoT MQTT, utilizando Lua para acceder al MQTT. Otra actualización importante se realizó el 30 de enero de 2015, cuando Devsaurus portó u8glib al proyecto NodeMCU, permitiéndole controlar fácilmente pantallas LCD, OLED e incluso VGA.

En el verano de 2015, los creadores abandonaron el proyecto de firmware y un grupo de colaboradores independientes se hizo cargo. En el verano de 2016, NodeMCU incluyó más de 40 módulos diferentes. Debido a las limitaciones de recursos, los usuarios deben seleccionar los módulos relevantes para su proyecto y crear un firmware adaptado a sus necesidades.

## Proyectos relacionados

Arduino Core para el SoC WiFi ESP8266 está disponible en la página GitHub ESP8266. Esto es lo que se conoce popularmente como "ESP8266 Core for Arduino IDE" y se ha convertido en una de las plataformas de desarrollo de software líderes para los distintos módulos y placas de desarrollo basados en ESP8266, incluidas las NodeMCU.

## Pines del NodeMCU

| IO index | ESP8266 pin |
| - | - |
| 0 [*] | GPIO16 |
| 1 | GPIO5 |
| 2 | GPIO4 |
| 3 | GPIO0 |
| 4 | GPIO2 |
| 5 | GPIO14 |
| 6 | GPIO12 |
| 7 | GPIO13 |
| 8 | GPIO15 |
| 9 | GPIO3 |
| 10 | GPIO1 |
| 11 | GPIO9 |
| 12 | GPIO10 |

[*] D0 (GPIO16) Solo se puede utilizar para la lectura / escritura GPIO.

