NodeMCU is a module to implement an IoT platform (Internet of Things), or the Internet of things, open source. Use a firmware running on the ESP8266 SoC from Espressif Systems that we already analyzed in this blog, and a hardware based on the ESP-12 module, with 11 GPIO connections, one of them 10-bit analog (1024 possible digital values), as you could read in that same article to which I refer .
The term NodeMCU refers to firmware and not the dev kits, although lately it is used as a synonym for the entire full platform. Also, you should know that these modules used Lua as a language, in the beginning, but as you will see that has evolved. In fact, they were building on the eLua project and Espressif's non-working SDK for the ESP8266, and using open source projects to compose the missing pieces like lua-cjson, spiffs, etc. In case you don't know, Lua is an imperative and structured programming language that is light enough to be used as an interpreted language with extensible semantics.
Table of Contents
It has become very popular This module is one of those who use the ESP8266, since it is being used to a great extent for IoT projects, so fashionable today. After commercializing the ESP8266 from Espressif Systems in 2013, a year later, in October 2014, the first NodeMCU firmware files began to be submitted to GitHub. Two months later, at the end of that year, the project began to expand to include an open hardware platform as well.
Little by little he developed and added more libraries to the project, such as Contiki's MQTT so that the platform supports the IoT MQTT protocol, using Lua for access. Another major update was coming in 2015, when Devsaurus ported the u8glib library to NodeMCU, allowing you to easily control LCD, OLED and VGA displays. Little by little all the original developers abandoned the project in the summer of 2015 and gave way to independent collaborators. In 2016, NodeMCU already included more than 40 different modules ...
It would also include the ESP8266 Core for Arduino IDE, to work with the platform with Arduino development boards, which allowed many users and makers to create their own projects using this platform.
As for the Pinout, was already discussed in the other blog post about the ESP8266, but the most prominent pins are:
- Pin 0 *: GPIO 16 for GPIO read / write only.
- Pin 1: GPIO 5
- Pin 2: GPIO 4
- Pint 3: GPIO 0
- Pin 4: GPIO 2
- Pin 5: GPIO 14
- Pin 6: GPIO 12
- Pin 7: GPIO 13
- Pin 8: GPIO 15
- Pin 9: GPIO 3
- Pin 10: GPIO 1
- Pin 11: GPIO 9
- Pin 12: GPIO 10
- Others are reserved, or serve for power supply (GND, Vcc), and for other signals.
Available pins may vary depending on the version or model, but those are typical.
Other features of the NodeMCU
El NodeMCU it is priced similar to ESP-201, with € 7 approx. on amazon, with everything you need included in it, so the use could not be easier. Some modules exceed € 10, but include some additional elements, such as LCD panels, etc.
What does the development board include?
La NodeMCU development board usually included in the kit It has its microUSB port to program and power it, and a Serial-USB converter, the terminals that I have mentioned in the pinout section, LEDs and reset button integrated on the board. Of course, by including the ESP8266 SoC for WiFi connectivity, a serpentine antenna has also been screen printed on the PCB.
However, having various manufacturers, versions and models, each one of them has its own philosophy and can include its own extras or have different criteria depending on the purpose for which the plate has been designed. For example, as you will see later, you can substitute an ESP12 chip for an ESP12E in some models, or the CH340G instead of the CP2102 for serial conversion, etc.
In general, the main NodeMCU board manufacturers They are Amica, FBlue, Lolin / Wemos, DOIT / SmartArduino, AZ-Delivery, etc. In addition to the different providers, you will also find several versions:
- 1st Generation: The devkit v0.9 is the original version of the NodeMCU with ESP12 with 4MB flash on the ESP8266, but with fewer GPIO pins than the ESP12E version that current models are based on. Now it is obsolete and you cannot buy it.
- 2th Generation: it is version v1.0 / v2.0, created by Amica, a German company Gerwin Janssen to improve the previous v0.9. They liked it so much that it ended up being the official version of NodeMCU. Started using ESP12E and with an extra row of pins for connections. Other manufacturers also ended up copying this version, using this open-hardware model as a base.
- 3th Generation- v1.0 / v3 was designed by Lolin / Wemos when they decided to create an improved prototype with some minor changes. The main change was to mount a CH340G serial converter instead of the CP2102, making the USB port more robust. It is currently the best-selling model.
At the moment, these are the most important developments that you should know, although some have already become more obsolete.
What can be done with NodeMCU?
What you can do with a NodeMCU board over IoT can vary greatly, and the limit is your imagination. But here you go some sample ideas that you can implement thanks to the functions for control from the Internet, communication, etc.
- Create your own Weather Station with humidity, temperature sensors, etc., and being able to receive the measurement results from any point with an Internet connection. Of course you can use any other type of sensors or elements to create similar projects.
- Connected automation, causing an action to be triggered by an impulse, such as controlling LED lights, switching relays, activating any type of actuator, etc.
- Create a NTP server, and other types of services for your connected devices.
- Positioning systems for interiors of homes or buildings using GPS.
- Toys of all kinds, domótica of the house, etc.
More information - Arduino tutorials
Now you know the most important features of NodeMCU boards and the you can start using in your future IoT projects together with your Arduino boards and the like ...