Перейти к содержимому

Nodemcu что это такое

  • автор:

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

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

Wi-Fi (Troyka-модуль)

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

Wi-Fi Slot

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

Wi-Fi модуль ESP8266

Wi-Fi модуль ESP8266 Модуль для приёма и передачи данных в беспроводной сети

Интернет вещей NodeMcu v3 Lua WI-FI ESP8266 CH340

Уроки и проекты Arduino

Рассмотрим еще одну плату на основе популярного модуля ESP8266. Это плата Интернет вещей NodeMcu v3 Lua WI-FI ESP8266 CH340.

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

NodeMcu v3 Lua WI-FI ESP8266 CH340 PinOut

В платформу загружена прошивка 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/nodemcufirmware/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? Программируем в среде Arduino IDE

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

NodeMCU имеет 11 пинов ввода-выводов

Как показано на картинке выше 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 нужно подготовить срезу разработки.

В пункте меню Фаил → Настройки

программировать NodeMCU в среде Arduino IDE

В поле Дополнительные ссылки для Менеджера плат пишем такую ссылку:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Жмем ОК и переходим в окно менеджера плат:

 менеджер плат Arduino IDE

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

«esp8266 by ESP8266 Community

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

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

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

Arduino IDE NodeMCU

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

После чего выбираем порт. В 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

После загрузки вы увидите мигание синего светодиода на плате NodeMCU. Мы научились прошивать данную отладочную плату. Сейчас можно создавать различные проекты на ESP8266.

Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.

Спасибо за внимание!

Понравилась статья? Поделитесь ею с друзьями:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *