NodeMCU Lua – плата на основе популярного модуля ESP8266 предназначена для создания 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 портов ввода-вывода общего назначения, некоторые из которых имеют дополнительные функции.
 

Назначение выводов NodeMcu

Назначение выводов NodeMcu

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

Примеры использования (скриптовый язык Lua)

Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer, которую вместе с можно скачать со страницы тут.

ESPlorer

Окно программы ESPlorer.

Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге.
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" ..
"<!DOCTYPE HTML>" ..
"<html><body>" ..
"<b>Server </b></br>" ..
" ChipID : " .. node.chipid() .. "<br>" ..
" MAC : " .. wifi.sta.getmac() .. "<br>" ..
" Heap : " .. node.heap() .. "<br>" ..
" Timer Ticks : " .. tmr.now() .. "<br>" ..
"</html></body>")
connection:on("sent",function(connection) connection:close() end)
end
)

Сохраним файл server1.lua в модуле и запустим.  Для проверки работы севера подключимся к точке доступа модуля и наберем в браузере ее адрес: http://192.168.4.1. Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)
 

Обращение к серверу на NodeMCU

Обращение к серверу на NodeMCU


Примеры использования (скетч в среде программирования Arduino IDE)

Рассмотрим создание программ дя платы NodeMCU в среде программирования Arduino IDE. Для этого необходимо установить Arduino IDE для ESP8266. На компьютере уже должно быть установлено программное обеспечение Arduino IDE версии не ниже 1.6.5. На рисунках ниже представлены скриншоты процесса установки Arduino IDE для ESP8266.

05.jpg

06.jpg

 07.jpg
 

Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.

Схема соединений представлена ниже.

Схема подключения NodeMCU ESP8266

Схема подключения NodeMCU ESP8266.

Для написания скетча необходима библиотека pubsubclient  для общения с брокером MQTT . Разархивируйте скачанный файл в папку библиотеки IDE Arduino. Откройте в Arduino IDE скетч _2.ino. Вам необходимо внести в скетч изменения параметров SSID и пароля для точки подключения платы NodeMCU к вашей WiFi сети.
 
const char* ssid = "your_wifi_hotspot";
const char* password = "your_wifi_password";

Загружаем скетч на нашу плату NodeMCU, открываем монитор последовательного порта и если соединения указаны правильно, увидим следующий результат.

Соединение с брокером по сети.

Соединение с брокером по сети.

После того, как NodeMCU подключился к wifi и брокеру MQTT, он публикует данные о освещенности для брокера MQTT по теме OsoyooData.

Отправка данных датчика освещенности.

Отправка данных датчика освещенности.

Мы будем использовать на любом устройстве (например планшете или компьютере) MQTT-клиент, чтобы подписаться на тему OsoyooData от того же брокера MQTT и получать значения освещенности в реальном времени.

Рекомендуемые товары

Комментарии 0