NodeMCU

По умолчанию в платформу загружена одноимённая прошивка NodeMCU. В неё встроен интерпретатор скриптового языка Lua, которым и задаётся поведение платы. Документация по Lua API и примеры есть на GitHub’е. Достаточно подключиться к NodeMCU через терминал (например, PuTTY) и ввести скрипт — платформа сразу приступит к его исполнению. Подключайтесь проводом, через USB-порт или без проводов, через Wi-Fi.
В сердце платы — чипсет ESP8266, поэтому вы не ограничены стандартной Lua-прошивкой NodeMCU. Вы можете написать собственную на C/C++ и загрузить её в плату через USB-порт.
Программировать и загружать прошивки можно через Arduino IDE или визуальную среду XOD IDE — точно так же, как при работе с Arduino.
Для того, чтобы среда Arduino IDE научилась прошивать ESP8266, достаточно добавить директорию с конфигурацией платформы в папку со своими скетчами.
Ножки платы расположены на стандартном расстоянии 2,54 мм, поэтому модуль легко установить на макетной плате.
Питание
Родное напряжение модуля — 3,3 вольта. На плате есть регулятор напряжения, поэтому питать её можно через USB или подвести питание от 3,7 до 20 вольт к пину 5V.
Характеристики
- Модификация: NodeMCU DevKit v0.9
- Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц
- Режимы: P2P (клиент), soft-AP (точка доступа)
- Максимальная выходная мощность: 19,5 дБ·мВт (89 мВт)
- Номинальное напряжение: 3,3 В
- Входное напряжение: 3,7–20 В
- Максимальный потребляемый ток: 220 мА
- Портов ввода-вывода свободного назначения: 11
- Частота процессора: 80 МГц
- Объём памяти для кода: 64 КБ
- Объём оперативной памяти: 96 КБ
- Габариты: 45×30 мм
Ссылки
- Документация по Lua API и примеры
- Исходные файлы платы
- ESP8266 Wiki
Возможные альтернативы

Отладочная плата ESP-WROOM-32 DevKit v1 Плата разработки IoT-устройств на двухъядерном чипе ESP32 (Xtensa LX6 / 240 МГц) с Wi-Fi и Bluetooth

Wi-Fi (Troyka-модуль) Двухюнитовый модуль на чипе ESP8266 для работы с сетями Wi-Fi

Wi-Fi Slot Платформа для разработки устройств интернета вещей на C++ или JavaScript с ESP-12 на борту

Wi-Fi модуль ESP8266 Модуль для приёма и передачи данных в беспроводной сети
Интернет вещей NodeMcu v3 Lua WI-FI ESP8266 CH340


Рассмотрим еще одну плату на основе популярного модуля ESP8266. Это плата Интернет вещей NodeMcu v3 Lua WI-FI ESP8266 CH340.
NodeMCU — это полноценная платформа для создания устройств IoT (Интернет вещей) на основе модуля ESP8266, который умеет принимать и посылать данные в локальную сеть или интернет через Wi-Fi. Плата построена на основе одной из последних модификаций модулей ESP8266 – модуля ESP-12E. Назначение контактов платы NodeMCU представлено на рисунке.

В платформу загружена прошивка NodeMCU. В неё встроен интерпретатор скриптового языка Lua. Интерпретатор этого языка распространяется свободно, с открытыми исходными текстами на языке Си. С помощью интерпретатора можно создавать файлы, загружать их в флеш-память ESP8266 и выполнять их. Также имеется Autorun (init.lua) для выполнения скриптов при запуске платы. С помощью lua-команд мы можно:
- подключаться к WiFi точке доступа;
- выступать в роли WiFi точки доступа;
- уходить в глубокий сон для снижения энергопотребления;
- привязать lua-функцию к кнопке на GPIO16;
- включать/выключать светодиод на GPIO16;
- создавать/записывать/читать/выполнять/искать/удалять/выводить списком файлы во флеш памяти;
- автоматически находить открытую WiFi сеть и подключаться к ней (режим startsmart);
- выводить свой MAC адрес;
- управлять пользовательским таймером;
- управлять таймером WatchDog ;
- управлять (запись/чтение/триггер) выводами GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15;
- PWM (ШИМ) GPIO1 — GPIO5, GPIO10, GPIO12-GPIO15;
- TCP/IP сокеты;
- режим WEB сервера;
- I2C — адресация/запись/чтение;
- АЦП 10 бит на пине TOUT.
Полное описание команд можно посмотреть на github (https://github.com/nodemcu/nodemcu—firmware/wiki/nodemcu_api_ru).
Программировать плату можно в среде Arduino IDE (версия 1.6.5 и выше), а можно использовать комплект средств разработки (SDK) – ESPlorer, который можно скачать со страницы http://esp8266.ru/esplorer-ide-esp8266. ESPlorer отличается от других программ для ESP8266 тем, что:
работает на множестве платформ;
- поддерживает нескольких открытых файлов;
- обеспечивает подсветку кода языков Lua и Python;
- имеет режимы Undo/Redo;
- поддерживает цветовые темы редакторов: dark, Eclipse, IDEA, Visual Studio;
- осуществляет автозавершение кода по нажатию комбинации клавиш +;
- обеспечивает «умную» отправку файлов с ожиданием ответа;
- поддерживает несколько прошивок одновременно.
Скачаем и установим Explorer. Запустим, а затем подключим к плате датчик температуры ds18b20 и напишем скрипт на языке Lua для получения данных с этого датчика.

В прошивке NodeMCU присутствуют модули датчиков, которые можно подключать к скриптам командой require(). Количество таких модулей постоянно увеличивается, и они доступны для просмотра и закачки на странице https://github.com/nodemcu/nodemcu-firmware/tree/master/lua_modules.
В листинге приведен пример скрипта для подключения модуля датчика температуры DS18B20, получения и вывода его значений.
— подключение модуля
t = require(«ds18b20»)
— GPIO карта модуля ESP-01
gpio0 = 3
gpio2 = 4
t.setup(gpio0)
addrs = t.addrs()
if (addrs ~= nil) then
print(«Total DS18B20 sensors: «..table.getn(addrs))
end
— чтение температуры
print(«Temperature: «..t.read()..»‘C»)
— освободить память после использования
t = nil
ds18b20 = nil
package.loaded[«ds18b20»]=nil
Результат выполнения этого скрипта при подключении датчика температуры к выводу GPIO0 приведен на рисунке.

В несколько строк на Lua можно написать и скрипт сервера, что позволяет использовать эту плату для быстрого создания создания устройств IoT («Интернет вещей»). Если вам больше привычна среда программирования Arduino, можно программировать в среде Arduino IDE (см. установку и настройку Arduino IDE для программирования плат ESP8266 в этом обзоре).
Описание NodeMcu v3 Lua WI-FI ESP8266 CH340 PDF
NodeMCU V3, Модуль разработки с Wi-Fi на базе чипсета ESP8266

NodeMCU v3 – это платформа разработки на основе ESP8266 с открытым исходным кодом, которая идеально подходит для создания прототипов IoT устройств за несколько скриптов на языке программирования Lua. По умолчанию в чип загружена прошивка NodeMCU (для работы со скриптовым языком программирования Lua), но вы можете прошить чип и установить ядро Arduino.
NodeMCU — предоставляет 11 портов ввода-вывода общего назначения. Некоторые обладают дополнительными функциями:
- D9, D10 — UART
- D1, D2 — I²C/TWI
- D5–D8 — SPI
- D1–D10 — выходы с ШИМ
- A0 — вход с АЦП (аналоговый)
По умолчанию в платформу загружена одноимённая прошивка NodeMCU. В неё встроен интерпретатор скриптового языка Lua, которым и задаётся поведение платы.
Номинальное напряжение модуля — 3,3 вольта. На плате есть регулятор напряжения, поэтому питать её можно через USB или подвести питание от 3,7 до 20 вольт к пину 5V.
Характеристики:
- Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц
- Режимы: P2P (клиент), soft-AP (точка доступа)
- Максимальная выходная мощность: 19,5 дБ·мВт (89 мВт)
- Номинальное напряжение: 3,3 В
- Входное напряжение: 3,7–20 В
- Максимальный потребляемый ток: 220 мА
- Портов ввода-вывода свободного назначения: 11
- Частота процессора: 80 МГц
- Объём памяти для кода: 64 КБ
- Объём оперативной памяти: 96 КБ
- Габариты: 59х30х8мм
Что такое NodeMCU? Программируем в среде Arduino IDE

NodeMCU это отладочная плат на базе микроконтроллера ESP8266. Основная особенность данных микроконтроллеров наличие Wi-fi на борту. Вы сможете управлять своим проектом через Wi-fi соединения, это упрощает создания радио управляемых моделей. Разработку систем умного дома и пр.

Как показано на картинке выше NodeMCU имеет 11 пинов ввода-выводов.
Доп. Назначение пинов:
Это не очень много по сравнению с той же Arduino NANO у которой 22.
Запитать NodeMCU можно :
- 5-18 вольт через вывод Vin (согласно параметрам стабилизатора AMS1117-3.3)
- 5 вольт через вывод VUSB или USB-гнездо
- 3.3 вольта непосредственно через выводы 3V
Однако мой опыт показывает что при подключении по Vin больше 9 В . Стабилизатор начинает очень сильно греться и через некоторое время начинаются сбои в работе Wi-fi.
На плате установлен ESP-12E, параметры взяты из даташита на ESP-12E:
- протокол Wi-Fi 802.11 b/n/g
- частота 2.4 — 2.5 GHz (2400-2483.5 MHz)
- режим Wi-Fi: точка доступа, клиент
- защита Wi-Fi: WPA, WPA2
- шифрование Wi-Fi: WEP, TKIP, AES
- сетевые протоколы: IPv4, TCP, UDP, HTTP, FTP
- 80 MHz 32-bit процессор
- 11 доступных портов ввода/вывода UART, HSPI, I2C, I2S, GPIO, PWM
- рабочее напряжение 3.0 . 3.6 вольт
- максимальная нагрузка на вывод не более 12 mA
- максимальное потребление модуля 200 mA, среднее 80 mA (подробнее в 11 таблице даташита ESP-12E)
- рабочая температура -40 . 125 С
Еще одна особенность данной отладочной платы в том что ее можно программировать в среде Arduino IDE. Для данной платы написано много библиотек и есть много примеров на просторах интернета.
Для того чтобы начать программировать NodeMCU в среде Arduino IDE нужно подготовить срезу разработки.
В пункте меню Фаил → Настройки

В поле Дополнительные ссылки для Менеджера плат пишем такую ссылку:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Жмем ОК и переходим в окно менеджера плат:

В самом низу будет нужный нам пакет « esp8266 by ESP8266 Community». Выбираем его и жмем кнопку «Установка».

Спустя некоторое время пакет скопирует необходимые файлы и в Arduino IDE.

После чего можно будет выбрать нужную нам плату.

После чего выбираем порт. В Ubuntu это выгладит так.

В Windows это com-порт.
Все Сейчас можно загрузить первый скетч. Для примера возьмем ESP8266 Blink из примеров которые устанавливаются при установки платы ESP8266.
/* ESP8266 Blink by Simon Peter Blink the blue LED on the ESP-01 module This example code is in the public domain The blue LED on the ESP-01 module is connected to GPIO1 (which is also the TXD pin; so we cannot use Serial.print() at the same time) Note that this sketch uses LED_BUILTIN to find the pin with the internal LED */ void setup() < pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output >// the loop function runs over and over again forever void loop() < digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) >

После загрузки вы увидите мигание синего светодиода на плате NodeMCU. Мы научились прошивать данную отладочную плату. Сейчас можно создавать различные проекты на ESP8266.
Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.
Спасибо за внимание!
Понравилась статья? Поделитесь ею с друзьями: