Project owner: | lichnak, PeterBay |
Interested: | Cyberian |
Related: | |
Reference: | https://Espressif.com |
License: | Attribution-ShareAlike 4.0 International; CC BY-SA |
NodeMCU
Last big news in area of cheap IoT devices is wireless microcontroller ESP8266 produced by chinnes manufaturer Espressif Systems. Initial idea was to build functinal UART bridge with WiFi for avaiable microcontrollers. Nevertheless, ESP8266 microcontroller based on procesosor 32-bit Tensilica Xtensa LX106 running on frequency 80 MHz with integrated WiFi Kit was designed and produced.
NodeMCU is open-source firmware and hardware developer kit, which speeds up IoT prototypes development in few lines of LUA scripts. NodeMCU firmware is made for chip ESP8266 WiFi SOC and brings LIU scripting enviranment naseb on eLua language. NodeMCU developer kit for ESP8266 implements GPIO, PWM, IIC, 1-Wirend a ADC on singleboard.
nodeMCU Firmware NodeMCU Github
Developer Kit v1.0 NodeMCU DevKit 1.0 Github
Hardware
NodeMCU hardware is equipped by microcontroller unit ESP8266 with embedded WiFi transceiver, as well by chip for communication on USB through serial port 'USB to UART' CP2102-9, Low-Noise LDO Voltage Regulator SPX3819, safe voltage drop with schottky barrier rectifier SS12 and two buttons for reset RST
and flash mode FLASH
PTS820
Technical parameters
- CPU: 80/160 MHz Tensilica Xtensa LX106
- RAM: 64 KiB of instruction RAM, 96 KiB of data RAM
- Flash: 512M - 4M, depends on model of ESP8266
- Embedded WiFi transceiver
- 16 GPIO pins, SPI, I2C, I2S, UART, 10-bit ADC
Diagrams
NODEMCU_DEVKIT documentation and drawings for each nodeMCU part is located on GitHub.
PIN Map
Important warnings
- Pin D0 (
GPIO16
) can be use only as gpio read/write and doesn't support interrupt/pwm/i2c/ow. - During each reboot, reset or wake activity pin
GPIO15
MUST
be set toLOW
and pinGPIO2
MUST
be set toHIGH
. Caution requires pinGPIO0
, whenGPIO0
is set toHIGH
then boots intoRUN
mode. whenGPIO0
is set toLOW
then boots intoFLASH
mode. - If your intesion is use
SLEEP
mode, then interconnect pinsGPIO16
andRST
, and thenGPIO16
will be set toLOW
after each wake activity.
Firmware
Programming nodeMCU requires programming model similiar to Node.js with exception of using LUA instead of JavaScript. Best practices is to select for programming models asynchronous and even-driven models.
NodeMCU Documentation page.
NodeMCU firmware can have various modules enabled, which extends capabilities of eLua language used in nodeMCU firmware. NodeMCU firmware is open-source and you can get compiled firmware several ways.
- Cloud service with firmware module wizard configuration NodeMCU BUILD
- Compile firmware in Docker Image
- Create your own linux build environment to compile firmware
- Download existing firmware(s) with modules from 3rd party vendors
IoT Infrastructure
Let's introduce initial idea about sensors data processing and controlling of remote devices. Main communicatin and controlling compoments are base on technologies TCPIP
, MQTT
and REST API
.
Labka nodeMCU Developer Kit
Labka nodeMCU Developer Kit provide guidence through installation of software compoments for development and testing purposes of IoT Infrastructure. Among other things Labka nodeMCU Developer Kit brings comfort into IoT development.
Prototypes
Prototypized hardware and software technology sets to be included in IoT Infrastructure