NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.
Технические характеристики модуля
- Процессор 32-битный
- WiFi – 802.11 b/g/n
- Напряжение питания 3,3 В
- Внешнее питание 3.6–20 В
- Ток потребления: режим передачи данных– 200 мА, режим приёма данных – 60 мА
- Подсоединение к компьютер – вход microUSB
- Имеет встроенную flash память 4 Mб
- Поддержка в базовой прошивке интерпретатора Lua
- Возможность обновления прошивки по Wi-Fi
- Наличие встроенного датчика температуры
В чем же преимущества данной платы на основе модуля ESP8266? Во-первых, на плате присутствует интерфейс UART-USB с разъемом micro USB, что позволяет подключать его к компьютеру без переходников. Во вторых, она имеет выводы для всех доступных контактов ESP8266. А это 11 портов ввода-вывода общего назначения, некоторые из которых имеют дополнительные функции (см. рисунок 1).

Рисунок 1. Назначение выводов NodeMcu
В-третьих, на данной плате установлена прошивка, которая может интерпретировать команды скриптового языка Lua. Lua - это встраиваемый язык сценариев, который является маленьким, быстрым и очень мощным. С помощью команд Lua для NodeMCU можно выполнять следующие действия:
- использование платы в качестве WiFi точки доступа
- подключаться (в том числе и автоматическое) к точке доступа WiFi
- режим пониженного энергопотребления (уход в сон)
- перенаправлять вывод
- выполнять операции со списком файлов в flash-памяти
- управление пользовательским таймером и таймером WatchDog
- управление GPIO1 выводами
- создание веб-сервера
- обмениваться даннымиI2C — устройствами
- считывать данные на выводе АЦП
Можно не только выполнять команды Lua в терминале, но и cоздавать файлы в flash-памяти ESP8266 и вызывать их на иcполнение. Рассмотрим примеры напиcания программ для модуля на языке Lua, а также в среде программирования Arduino IDE.
Примеры использования (скриптовый язык Lua)
Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer (рисунок 2), которую вместе с можно скачать со страницы тут.

Рисунок 2. Окно программы ESPlorer.
Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1
serverport = 80 server=net.createServer(net.TCP) server:listen(serverport, function(connection) connection:send("HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n" .. " " .. "" .. "Server " .. " ChipID : " .. node.chipid() .. "
" .. " MAC : " .. wifi.sta.getmac() .. "
" .. " Heap : " .. node.heap() .. "
" .. " Timer Ticks : " .. tmr.now() .. "
" .. "") connection:on("sent",function(connection) connection:close() end) end )
