Цена:
WeMos NodeMCU V2 Lua Amica Платформа разработки на базе современного WiFi-чипа ESP8266-12E
Ни для кого не секрет, что в настоящем современном мире, среди лидирующих средств беспроводной связи, преобладает популярнейшая во всех отношениях технология WiFi. Можно невооружённым глазом заметить, насколько быстро она развивается и одновременно совершенствует нашу жизнь, делая её значительно комфортнее во многих сферах. Уже привычный для большинства стандарт связи WiFi, обеспечивающий высокоскоростную передачу или приём данных по радиоканалу на частоте 2.4ГГц, позволил нам стать по-настоящему свободными от морально устаревших проводных соединений. И стоит ли упоминать, что само появление такой технологии привело к неизбежной массовой разработке умных устройств, которыми сейчас стремительно и безустанно наполняется наш быт.
С недавнего времени, благодаря активному совершенствованию электронных компонентов и всепоглощающему расширению зон покрытия сетей WiFi, а также с появлением облачных вычислений и возможностей межмашинных взаимодействий, родилась концепция сетей нового поколения, называемая "Интернет вещей". На её основе, всё большее количество производителей выпускают собственные электронные продукты, способные общаться между собой посредством локальной сети или обмениваться данными через глобальную сеть Интернет.
Модуль разработчика NodeMCU V2 Lua призван до минимума упростить процесс проектирования устройства с "нуля". В его основе расположен не менее популярный чип беспроводной связи ESP-12E, сконструированный на ядре микроконтроллера ESP8266EX. Плата несёт в себе весь базовый функционал организации связи по WiFi и оснащена всеми доступными пользовательскими выводами, соединёнными с припаянными штырьковыми контактами с типовым шагом 2.54мм, удобным для большинства беспаечных макетных плат предварительного прототипирования. Встроенная в ESP-12E память придаёт модулю WeMos NodeMCU Lua V2 CP2102 практически автономную работоспособность, во многих случаях делая плату независимой от дополнительных внешних микроконтроллеров.
Технические данные
Порт USB, первое включение
Всё необходимое для "быстрого старта" есть на самой плате. Встроенный порт USB помогает подключаться к компьютеру напрямую при помощи обычного кабеля с разъёмом стандарта микроUSB. Благодаря ему и микрочипу преобразователя интерфейсов Silabs CP2102, на котором построено общение между USB и ESP8266, отпадает необходимость в использовании дополнительных устройств для организации связи с платой или для внутрисхемного программирования основной микросхемы. Порт USB предоставляет открытую возможность управлять модулем, вносить в него свои приложения или загружать программное обеспечение (прошивку). В ином случае, USB-порт может быть задействован для питания платы.
При первом подключении модуля NodeMCU V2 к компьютеру, может потребоваться установка драйвера для USB-TTL CP2102 преобразователя. Дистрибутив под нужную операционную систему ПК легко ищется на официальном сайте производителя микросхемы.
Распиновка WeMos NodeMCU V2 Lua (Диаграмма выводов, NodeMCU V2 Lua CP2102 подключение)
Модуль WiFI NodeMCU V2 WeMos Amica обладает цифровыми выводами общего назначения, работающими с логикой напряжений "1" и "0". Под единицей подразумевается входящее/исходящее напряжение +0.75*Vin—3.6 вольта, называемое высоким сигналом. Под нулём - входящее/исходящее напряжение -0.3—0.25*Vin вольт, называемое низким сигналом. Некоторые выводы имеют встроенные подтягивающий или стягивающий резисторы. Большинство контактов могут быть смультиплексированы с различными интерфейсами (I2C, I2S, HSPI, UART, PWM). Рекомендуемый ток отдельного вывода составляет 6 миллиампер, предельный ток - 12 миллиампер.
Примечание! Избегайте превышение значений максимального тока более 12 миллиампер и напряжения более 3.3 вольта на контактах GPIO, способного повредить микроконтроллер.
Выводы GPIO6-GPIO11 (SDIO) привязаны к встроенной памяти и не рекомендуются к использованию в других целях, кроме подключения внешней памяти. Все цифровые контакты ввода/вывода, за исключением GPIO16, поддерживают обработку прерываний.
Специальные функции GPIO
Обозначение контактов на плате разработчика NodeMCU Lua WeMos Amica значительно разнится от привычной маркировки выводов GPIO в модулях с ESP8266. Постоянно помнить их соответствие затруднительно, куда удобнее обращаться к выводам по их оригинальному названию при написании скетчей в Arduino IDE. Вспомогательная библиотека, входящая в состав пакета поддержки ESP8266, содержит все переадресуемые определения GPIO в соответствии с их расположением на плате NodeMCU Lua V2. Одновременно с этим, библиотека переназначает шину связи I2C на новые контакты.
Создание модифицированной прошивки с интерпретатором NodeMCU Lua
Развитием ESP-8266 и её технической поддержкой занимаются не только энтузиасты мирового сообщества, но и профессиональные команды сторонних независимых разработчиков. Благодаря их кропотливым трудам, в настоящее время пользователю доступны различные способы создания собственной прошивки:
Облачный конструктор генерирует два варианта прошивки: integer (целочисленная) и float (с плавающей точкой). Целочисленная версия не поддерживает операции с плавающей запятой и не допускает нецелых чисел. Она занимает меньше места в памяти Flash и в несколько раз быстрее выполняет вычисления. В целочисленной версии деление 3/2 равно 1, а не 1.5.
Обновление ПО платформы WeMos NodeMCU Lua, прошивка
Изначально, модуль поставляется с прошивкой, включающей в себя интерпретатор NodeMCU скриптового языка Lua, выполняющего команды наподобие АТ инструкций. Загрузка новой прошивки в память ESP8266 выполняется через порт USB или по воздуху. Причём загружаемая прошивка может быть как оригинальной, так и модифицированной с применением инструментов разработки ПО (SDK). Либо вообще быть написанной самостоятельно на языке С/С++.
Для внесения прошивки в модуль NodeMCU V2 воспользуйтесь хорошо известной программой Node MCU Flasher для Windows. Последняя версия доступна для загрузки из репозитория на сайте GitHub. Процесс записи предварительно скомпилированного файла (формат .bin) прошивки прост, состоит из нескольких шагов и не занимает много времени.
Перед записью прошивки крайне рекомендуется полная очистка флешь-памяти. Чаще всего, после обновления, прошивка работает без нареканий. Если предварительно не производить чистку памяти, можно столкнуться с ситуацией, когда заново загруженная версия NodeMCU не совпадёт с предыдущей версией прошивки, вследствие чего плата попросту не запуститься в нормальном режиме. В таком случае, от пользователя потребуется запись файла инициализации модуля "esp_init_data_default.bin" из той версии SDK, на которой выполнялась сборка прошивки.
Программа Node MCU Flasher умеет записывать в память не только прошивки NodeMCU, но и оригинальные или кастомные прошивки с поддержкой АТ команд на основе существующих комплектов инструментов разработки (SDK) от компании-производителя Espressif System, выпускающей контроллеры ESP-12E WiFi.
Готовый вариант прошивки NodeMCU для микроконтроллера WeMos, собранный на интерпретаторе языка Lua версии 5.1.4, SDK версии 2.2.1, включая блоки: ADC, FILE, GPIO, MDNS, MQTT, NET, NODE, PWM, TMR, UART, WIFI, WPS.
Программирование модуля NodeMCU Lua ESP8266
Arduino IDE
Многим знакомый редактор Ардуино ИДЕ (Arduino IDE) дружит с модулями NodeMCU и способен загружать скетчи в флеш-память ESP8266. Установка дополнительной библиотеки научит их понимать друг-друга. Запустите редактор Ардуино, перейдите в пункт "Настройки" из меню "Файл". В строке "Дополнительные ссылки для менеджера плат" введите адрес:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Закройте окно и перейдите в "Менеджер плат", двигаясь по меню "Инструменты".
Для быстрого нахождения нужного дополнения, в строке поиска укажите esp8266. Нажмите "Установить" и дождитесь надписи Installed, означающей завершение процесса.
Все платформы, входящие в состав пакета установки, теперь доступны для программирования.
Редактор Ардуино ИДЕ предоставит множество ознакомительных уроков для платы NodeMCU 1.0 (ESP-12E Model), стоит только зайти в раздел примеров, расположенный в "Файл"-"Примеры".
Начинать изучение основ программирования микроконтроллера всегда нужно с малого. Самым первым и простым примером в ознакомлении всегда был и остаётся скетч, мигающий встроенным на плате светодиодом. Нижеприведённый текст программы зажигает и гасит оба светодиода, и делает это с определённым эффектом.
int ledPin1 = D0;
int ledPin2 = D4;
void setup()
{
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop()
{
for (int i=1; i<5; i++) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
delay(200);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(200);
}
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
delay(200);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
delay(200);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
delay(1000);
}
ESPlorer IDE
Бесплатный удобный графический редактор с интегрированной средой разработки ESPlorer, поддерживающий одновременно языки программирования Lua и Python, а также умеющий работать с АТ командами. Загрузить его можно по этой ссылке (требует установку новой версии Java). Обладает множеством полезных функций и настроек, поддерживает несколько операционных систем.
В качестве примера воспользуйтесь демонстрационным кодом создания простого web-сервера (сохраните текст в файл с именем init.lua и запишите его в ESP):
-- Устанавливаем режим точки доступа
wifi.setmode(wifi.SOFTAP)
-- Задаём параметры беспроводной сети
local ap_cfg={}
ap_cfg.ssid="MY-SSID"
ap_cfg.pwd="MY-PASSWORD"
wifi.ap.config(ap_cfg)
-- Создаем сервер.
-- При запросе от клиента выводим на консоль его данные
-- и посылаем ему "hello world"
sv = net.createServer(net.TCP)
function receiver(sck, data)
print(data)
sck:close()
end
if sv then
sv:listen(80, function(conn)
conn:on("receive", receiver)
conn:send("hello world")
end)
end
При создании сервера, модулю назначается IP-адрес 192.168.4.1, первому подключаемому клиенту присваивается адрес 192.168.4.2
Внутренняя память WeMos NodeMCU Lua CP2102, файловая система SPIFFS
Плата оснащена микросхемой памяти, размер которой составляет 4 Мегабайта (32 Мегабита). Такого размера достаточно для хранения основной прошивки, пользовательского кода и, при необходимости, создания упрощённой файловой системы SPIFFS. Память всегда распределяется в определённых пропорциях. В среде Ардуино ИДЕ, настроенной на совместимость с платформой NodeMCU, по умолчанию, 1 Мегабайт выделяется под запись прошивки и исполняемой программы, увеличить этот размер никак нельзя. Остальные 3 Мегабайта остаются свободными или размечаются под хранение данных. Выполняя обновление прошивки, пользователь сам выбирает необходимость наличия файловой системы и её размер. В ней можно хранить данные скетча, файлы конфигурации или содержимое веб-сервера.
В большинстве случаев, скетчи умещаются в памяти без труда. Если речь заходит о написании и выполнении объёмного текста кода, пользователь может попробовать сэкономить память, воспользовавшись модифицированной прошивкой NodeMCU с интерпретатором языка Lua (основанной на NONOS-SDK), изменив её состав при помощи наборов разработчика NodeMCU SDK путём исключения или добавления поддержки определённых функций разрабатываемого проекта. Учитывая, что все исполняемые файлы программ на языке Lua хранятся в области SPIFFS, обновление прошивки модуля на ПО NodeMCU несколько по иному распределяет память, формируя файловую систему из оставшегося свободного пространства, не занятого самой прошивкой.
Структура файловой системы имеет небольшой ряд ограничений из-за конструктивных особенностей чипа ESP8266EX. Она не поддерживает разбитие памяти на разделы и не работает с папками, храня файлы в виде списка. Максимальный размер имени файла не должен превышать 32 символа, включая специальный символ, отведённый под окончание строки.
Перенести файлы в систему SPIFFS можно как из популярной среды программирования Arduino IDE, так и с помощью широко известного в ESP-сообществе java-редактора ESPlorer. По умолчанию, ни одной подобной функции в Ардуино ИДЕ не предусмотрено, и пользователю придётся установить необходимое небольшое дополнение за несколько шагов.
Загрузите скетч, демонстрирующий сводные данные о файловой системе и содержащихся в ней ранее добавленных файлах. Скетч выполняется один раз после перезапуска платы и выводит информацию в последовательный порт. Пример выполнения:
Поменяйте в тексте программы и в настройках монитора последовательного порта скорость на 74800 бод, чтобы загрузочная информация ESP8266 стала читаемой (первая строка на картинке).
Техническая информация
Полезные ссылки
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru