Содержание
- Технические характеристики модуля
- Примеры использования (скриптовый язык Lua)
- Примеры использования (скетч в среде программирования Arduino IDE)
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
- Наличие встроенного датчика температуры
Рисунок 1. Назначение выводов NodeMcu
В-третьих, на данной плате установлена прошивка, которая может интерпретировать команды скриптового языка Lua. Lua - это встраиваемый язык сценариев, который является маленьким, быстрым и очень мощным. С помощью команд Lua для NodeMCU можно выполнять следующие действия:- использование платы в качестве WiFi точки доступа
- подключаться (в том числе и автоматическое) к точке доступа WiFi
- режим пониженного энергопотребления (уход в сон)
- перенаправлять вывод
- выполнять операции со списком файлов в flash-памяти
- управление пользовательским таймером и таймером WatchDog
- управление GPIO1 выводами
- создание веб-сервера
- обмениваться даннымиI2C — устройствами
- считывать данные на выводе АЦП
Примеры использования (скриптовый язык Lua)
Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer (рисунок 2), которую вместе с можно скачать со страницы тут.Рисунок 2. Окно программы ESPlorer.
Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1serverport = 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(рисунок 3). Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)
Рисунок 3. Обращение к серверу на NodeMCU
Примеры использования (скетч в среде программирования Arduino IDE)
Рассмотрим создание программ дя платы NodeMCU в среде программирования Arduino IDE. Для этого необходимо установить Arduino IDE для ESP8266. На компьютере уже должно быть установлено программное обеспеченние Arduino IDE версии не ниже 1.6.5. На рисунках 4-8 представлены скриншоты процесса установки Arduino IDE для ESP8266.Рисунок 4.
Рисунок 5.
Рисунок 6.
Рисунок 7.
Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.Схема соединений представлена на рис. 8.
Рисунок 8. Схема подключения.
Для написания скетча необходима библиотека pubsubclient для общения с брокером MQTT . Разархивируйте скачанный файл в папку библиотеки IDE Arduino. Откройте в Arduino IDE скетч _2.ino. Вам необходимо внести в скетч изменения параметров SSID и пароля для точки подключения платы NodeMCU к вашей WiFi сети.const char* ssid = "your_wifi_hotspot";
const char* password = "your_wifi_password";
Загружаем скетч на нашу плату NodeMCU, открываем монитор последовательного порта и если соединения указаны правильно, увидим следующий результат (рисунок 9).
Рисунок 9. Соединение с брокером по сети.
После того, как NodeMCU подключился к wifi и брокеру MQTT, он публикует данные о освещенности для брокера MQTT по теме OsoyooData (рисунок 10).Рисунок 10. Отправка данных датчика освещенности.
Мы будем использовать на любом устройстве (например планшете или компьютере) MQTT-клиент, чтобы подписаться на тему OsoyooData от того же брокера MQTT и получать значения освещенности в реальном времени.