Wemos D1 mini Pro Микроконтроллер WiFi на чипе ESP8266EX

Цена:

910 р.
Код товара: 13264
Оригинальное название:
NodeMcu Lua wifi ESP8266 mini D1 Pro

Контроллер Wemos D1 mini Pro на чипе беспроводной связи ESP8266EX WiFi

Одновременно с выходом в недалёком 2014 году чипа беспроводной связи ESP8266EX по стандарту WiFi, набравшего по-настоящему оглушительную популярность в кругу любителей собирать самодельные устройства, компания WEMOS Electronics представила общественности большую линейку собственных модульных электронных плат под торговой маркой WeMos, задав новый вектор развития ардуино-совместимых платформ. Взяв за основу микроконтроллер от компании Espressif Systems, разработчики значительно потрудились не только над уменьшением размеров базовых модулей, сделав их максимально компактными, но и над выпуском целого спектра расширений, предложив пользователям богатый функционал, способный помочь в реализации задач различного уровня сложности при проектировании и конструировании разнообразных полезных изобретений.

Современные электронные продукты WeMos входят в категорию эффективных низкоценовых решений и позиционируются создателями как открытая платформа для самостоятельной разработки многоцелевых устройств на основе беспроводной связи по технологии WiFi. При этом основной упор сделан на создание и развитие изделий с поддержкой сетей нового поколения "Интернет вещей" (англ. - Internet of Things, IoT), чему активно способствуют существующие возможности облачных вычислений и межмашинных взаимодействий.

Чтобы потребитель не смог запутаться в физической совместимости плат, каждая серия обладает своими отличительными особенностями. Например, серия WeMos D1 Mini, к которому принадлежит Модуль D1 mini Pro с контроллером WiFi на чипе ESP8266EX, имеет синий цвет поверхности текстолита и небольшой скруглённый угловой вырез рядом с маркировкой 3V3.  Вырез служит ориентиром, гарантирующим правильное совмещение нескольких плат между собой.

Технические характеристики

  • Модель: 1.0.0
  • Контроллер: ESP8266EX Serial WiFi, однокристальная система на основе Tensilica L106 с ультра-низким энергопотреблением, разрядность 32-бит
  • Тактовая частота: 80 МГц (до 160 МГц)
  • Рабочее напряжение: 3.3 В
  • Напряжение питания: 5 В
  • Потребляемый ток: до 300 мА
  • Флеш-память: 128 МБит / 16 МБайт
  • Диапазон частот: 2.4ГГц-2.5ГГЦ (2412М-2484М)
  • Выходная мощность в режиме 802.11b: +20dBm
  • Режимы WiFi: Клиент, Программная точка доступа, Клиент+Программная точка доступа (station, softAP, station+softAP)
  • Защита: WPA-PSK, WPA2-PSK
  • Шифрование: WEP, TKIP, AES
  • Протоколы WiFi: 802.11 b/g/n
  • Выводы общего назначения (вход/выход, GPIO): 11
  • Аналоговый вход: 1, разрядность 10-бит
  • Максимальный ток на контакт общего назначения: 12 мА, рекомендуемый 6 мА
  • Технология STBC, 1x1 MIMO, 2x1 MIMO
  • Интерфейсы: GPIO, UART, I2C, HSPI, PWM
  • Скорость передачи данных: 300-4608000 бод, по умолчанию 115200 бит/с
  • Встроенный переключатель приёма/передачи, согласующий высокочастотный трансформатор, усилитель мощности
  • Встроенные блоки: согласования сети, фазовой автоподстройки частоты, управления питанием, блоки регулирования
  • Антенна WiFi: керамическая, встроенная. Разъём IPEX для подключения внешней антенны
  • Поддержка Arduino, NodeMCU, MicroPhyton
  • Поддержка файловой системы SPIFFS
  • Поддержка функций Smart Link для устройств на Andriod и iOS
  • Поддержка АТ-команд, Облачного Сервера и Наборов Разработки (SDK), обновление прошивки
  • Светодиодная индикация: вывод D4 (GPIO2)
  • Шаг между контактами: 2.54 мм
  • Рабочая температура: -20°С...+85°С
  • Размеры: 34.2 х 25.6 х 5 мм
  • Вес: 3 гр

Маленькая с виду, плата WeMos D1 Mini Pro обладает внушительными возможностями, предлагая начинающим энтузиастам-радиолюбителям или профессиональным разработчикам возможность в создании собственных проектов практически "с нуля". Микроконтроллерная платформа WeMos вполне способна стать полноценной заменой неустаревающей Ардуино, при этом она намного превышает свой прямой аналог в производительности и функциональности. Мощный 32-битный процессор позволяет выполнять вычисления или обработку данных на порядок быстрее, а способность общаться с другими электронными устройствами при помощи беспроводной связи WiFi открывает необъятный простор в разработке и проектировании простых или сложных умных устройств.

Платформа Wemos в целом по-настоящему универсальный инструмент, который подойдёт и для обучения в целях приобретения навыков программирования и моделирования несложных устройств на микроконтроллерах, и для создания уникальных (а может и инновационных) приложений. Все они, при желании, могут работать от обычных источников питания с постоянным напряжением (блоки питания, сетевые адаптеры и др.) и в автономном режиме энергопотребления от привычных батарей или аккумуляторов.

Модульная платформа WeMos позволяет конструировать схемы под определённые задачи. Она поддерживает обширный набор совместимых расширений из дисплеев, переключателей, датчиков температуры, давления и освещения, светодиодов и контроллеров сервомоторов, которые можно компоновать по своему усмотрению, располагая их друг над другом. По аналогии с Ардуино, Тинси или STM32, контроллеры WeMos совместимы со многими шилдами и платами расширения, выпускаемыми сторонними производителями.

NodeMCU или WeMos D1 Mini Pro?

Слово "mini" в названии появилось не спроста. Наряду с возможностью работать на стандартных прошивках Non-OS от компании Espressif Systems, поддерживающих удобный способ управления связью через АТ команды, микросхема ESP8266EX отлично понимает прошивки со встроенным интерпретатором скриптового языка Lua, называемыми NodeMCU. Несомненно, оригинальные полноразмерые платы NodeMCU значительно функциональней за счёт количества доступных выводов, но в своём большинстве намного габаритнее. С целью сохранения пространства, у контроллера WeMos D1 Mini Pro попросту отсутствуют несколько контактов, а также заведомо не припаяны штырьевые ножки. Иначе, он не стал бы "мини".

Обзор платы ESP D1 Mini Pro

 

  Wemos D1 Mini Pro V1.0 Обзор платы  

Порт USB, первое подключение WeMos D1 Mini Pro

Всё необходимое для "быстрого старта" есть на самой плате WiFi D1 Mini Pro. Встроенный порт USB помогает подключаться к компьютеру напрямую при помощи обычного кабеля с разъёмом микроUSB. Благодаря ему и микрочипу преобразователя интерфейсов Silabs CP2104, на котором построено общение между USB и ESP8266, у пользователя отпадает необходимость в использовании дополнительных устройств для организации связи с платой или для внутрисхемного программирования основной микросхемы. Порт USB предоставляет открытую возможность управлять модулем, вносить в него свои приложения или загружать программное обеспечение (прошивку).

При первом подключении WeMos D1 Mini Pro к компьютеру, может потребоваться установка драйвера для USB-TTL CP2104 преобразователя, совместимого с операционными системами Windows/Linux/MacOS/Android. Дистрибутив под нужную версию легко ищется на официальном сайте производителя микросхемы.

Питание WeMos Mini D1 Pro

Существует два возможных способа подключить микроконтроллер WeMos D1 Mini Pro к источнику питанию:

  1. Через порт microUSB 2.0 на встроенный регулятор поступает 5 вольт и снижается до рабочего напряжения 3.3 вольта. Оба типа напряжения выводятся на соответствующие контакты платы.
  2. Через выводы 5V и GND (например, совместить с Модулем преобразователя напряжения или Модулем резервного питания) напряжение также проходит через регулятор и снижает его до рабочего уровня.

Микросхема регулятора RT9013 пропускает через себя ток не более 600 миллиампер и никак не защищена от сверхтоков. Контроллер ESP8266EX потребляет в пике до 250-300 миллиампер, ввиду чего на подключение дополнительных расширений или датчиков остаётся примерно столько же.

Крайне не рекомендуется запитывать WeMos D1 Mini Pro через вывод 3V3. Входящее напряжение будет поступать на чип ESP8266 напрямую, минуя встроенный регулятор. Напряжение более 3.6 В способно повредить основную микросхему.

Распиновка WeMos D1 Mini Pro (Диаграмма выводов, WeMos D1 Mini Pro подключение)

Модуль WeMos D1 Mini Pro обладает цифровыми выводами (физические контакты 3-7, 11-16) общего назначения, работающими с логикой напряжений "1" и "0". Под единицей подразумевается входящее/исходящее напряжение +0.75*Vin—3.6 вольта, называемое высоким сигналом. Под нулём - входящее/исходящее напряжение -0.3—0.25*Vin вольт, называемое низким сигналом. Некоторые выводы имеют встроенный подтягивающий или стягивающий резисторы (например, D3 и D4 подтянуты к плюсу, D8 стянут на минус). Большинство контактов могут быть смультиплексированы с различными интерфейсами (I2C, I2S, 1-Wire, UART, PWM). Рекомендуемый ток отдельного вывода составляет 6 миллиампер, предельный ток - 12 миллиампер.

Примечание! Избегайте превышение значений максимального тока более 12 миллиампер, способного повредить микроконтроллер.

  • EXT_RSTB (RST, RESET) — контакт перезапуска модуля, активен при низкоуровневом сигнале
  • ADC — Аналого-цифровой преобразователь (АЦП). Диапазон входного напряжения 0-3.2 В, диапазон значений 0-1023
  • GPIO16 — контакт общего назначения, ввод/вывод данных. Соединение с выводом EXT_RSTB выводит модуль из режима глубокого сна. На обратной стороне платы присутствует перемычка "Sleep", запрещающая модулю переключаться в режим глубокого сна.
  • GPIO0-GPIO15 — контакт общего назначения, ввод/вывод данных. Переназначаемый на другие функции. Выводы определяются по нумерации, например GPIO1 = 1 (основной ESP8266 модуль) или D10 (NodeMCU)
  • VCC 3v3 — контакт рабочего напряжения модуля 3.3В
  • VCC 5v — контакт основного питания модуля 5 В
  • GND — общий, заземление
  Функциональное назначение выводов WeMos D1 mini Pro распиновка  

Обозначение контактов на плате WeMos D1 Mini значительно разнится от привычной маркировки выводов GPIO в модулях с ESP8266. Постоянно помнить их соответствие затруднительно, куда удобнее обращаться к выводам по их оригинальному названию при написании скетчей в Arduino IDE. Вспомогательная библиотека, входящая в состав пакета поддержки ESP8266, содержит все переназначаемые определения GPIO в соответствии с платформой NodeMCU.

Специальные функции:

  • Асинхронный последовательный интерфейс UART из 2х линий, устанавливает связь с другими устройствами по шине UART:
    • UART0_RX — контакт GPIO3
    • UART0_TX — контакт GPIO1
    • UART0_RTS — контакт GPIO15
    • UART0_CTS — контакт GPIO13
    • UART1_TX — контакт GPIO2, может использоваться для вывода отладочной информации
    Подключение устройств к выводам осуществляется по схеме RX->TX, TX->RX.
  • Двунаправленный последовательный интерфейс IIC/I2C, позволяет коммутировать внешние датчики, сенсоры, дисплеи т.д.:
    • SDA — контакт GPIO2
    • SCL — контакт GPIO14
  • Последовательный периферийный интерфейс HSPI, допускает подключение дополнительных устройств, совершающих обмен данными по шине SPI (дисплеи, микроконтроллеры и т.д.):
    • HSPI_CS - контакт GPIO15
    • HSPI_MISO - контакт GPIO12
    • HSPI_MOSI - контакт GPIO13
    • HSPI_CLK - контакт GPIO14
    Коммутация с другими устройствами осуществляется по схеме CS->CS, CLK->CLK, MISO->MOSI, MOSI->MISO
  • PWM (ШИМ) — широтно-импульсная модуляция цифрового сигнала ESP8266, выводы GPIO4, GPIO12, GPIO14, GPIO15 с разрядностью до 14-бит. В модуле WeMos D1 mini Pro любой вывод GPIO поддерживает цифровой программный ШИМ.
  • Интерфейс электрической последовательной шины I2S. В основном, служит для сбора, обработки и передачи аудиоданных, или для приёма/передачи последовательных данных по двум раздельным шинам:
    • I2S1_DATA — приём, контакт GPIO12
    • I2S1_BCK — приём, контакт GPIO13
    • I2S1_WS — приём, контакт GPIO14
    • I2S0_BCK — передача, контакт GPIO15
    • I2S0_DATA — передача, контакт GPIO3
    • I2S0_WS — передача, контакт GPIO2
  • Периферийный интерфейс IrDA (ИК дистанционное управление), реализуемый на программном уровне. Предназначен для модуляции несущей частоты 38кГц, демодуляции или кодирования NEC. Дальность передачи сигнала составляет около 1м:
    • IR_Tx — контакт GPIO14
    • IR_Rx — контакт GPIO5

Все цифровые контакты ввода/вывода, за исключением GPIO16, поддерживают обработку прерываний.

Режимы энергосбережения ESP8266EX

За исключением стандартных режимов полного функционирования и выключенного состояния, контроллер WeMos D1 Mini Pro поддерживает энергосберегающие режимы, предназначенные для каждого определённого случая.

  1. Modem-sleep — настраивается для приложений, использующих функции ШИМ или I2S, заставляющие процессор работать. В случаях, когда WiFi-связь установлена и передача данных не требуется, схема WiFi-модема может быть отключена для экономии энергии. Например, в режиме DTIM3, когда ESP8266 "спит" 300 миллисекунд и просыпается на 3 миллисекунды для приёма от точки доступа пакетов беспроводных Маяков (Beacon), общее потребление тока составляет около 20мА.
  2. Light-sleep — используется в задачах, в которых поддерживается соединение WiFi и передача данных не требуется, при этом процессор может быть приостановлен. Например, режим коммутатора WiFi. Общее среднее потребление тока составляет около 2 мА.
  3. Deep-sleep — глубокий сон оптимален для приложений, которые не требуют подключения WiFi и передают данные c большими задержками по времени. К таким задачам относятся датчики температуры, выполняющие измерения каждые 100 секунд. Например, когда ESP8266EX "спит" 300 секунд и просыпается для соединения с точкой доступа (около 0.3-1 секунды), общее среднее потребление тока намного меньше 1 мА.

Программирование ESP8266 D1 Mini Pro в редакторе Arduino IDE

Приступать к изучению платформы WeMos нужно с малого. Самым первым и простым примером в ознакомлении с методами программирования всегда был и остаётся скетч, мигающий встроенным на плате светодиодом. Нижеприведённый текст программы не просто зажигает и гасит светодиод, а делает это максимально плавно.

// определяем встроенный светодиод
const int ledPin = BUILTIN_LED;

// переменная яркости светодиода (0 = максимально яркий,
// 512 = половина яркости, 1023 = полностью погашен)
int brightness = 0;

// переменная с шагом затухания/зажигания
int fadeAmount = 5;

// небольшой интервал в каждом цикле
const int delayMillis = 10;

void setup() {
  // инициализируев светодиод на вывод
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // устанавливаем яркость светодиода
  analogWrite(ledPin, brightness);

  // добавляем/уменьшаем яркость для следующего цикла
  brightness = brightness + fadeAmount;

  // сверяем предел яркости (10-бит, значения 0-1023)
  if (brightness < 0) brightness = 0;
  if (brightness > 1023) brightness = 1023;

  // если предел достигнут, изменяем направление между затуханием/зажиганием
  if (brightness == 0 || brightness == 1023) {
    fadeAmount = -fadeAmount;
  }

  // пауза, чтобы можно было рассмотреть уровень яркости
  delay(delayMillis);
} 

Внутренняя память WeMos D1 Mini Pro, файловая система SPIFFS

Модуль WeMos D1 Mini Pro оснащен чипом памяти, размер которой составляет 16 Мегабайт (128 Мегабита). Такого размера достаточно для хранения основной прошивки, пользовательского кода и, при необходимости, создания упрощённой файловой системы SPIFFS. В среде Ардуино ИДЕ, настроенной на совместимость с платформой NodeMCU, память всегда распределяется в определённых пропорциях. По умолчанию, 1 Мегабайт выделяется под запись прошивки и исполняемой программы, увеличить этот размер никак нельзя. Остальной пространство памяти остаётся свободным или размечается под хранение данных. Выполняя обновление прошивки, пользователь сам выбирает размер файловой системы. Последние версии Arduino IDE поддерживают полный размер установленной памяти.

В большинстве случаев, ардуино-скетчи умещаются в памяти без труда. Если речь заходит о написании и выполнении объёмного текста кода, пользователь может попробовать сэкономить память, воспользовавшись модифицированной прошивкой NodeMCU с интерпретатором языка Lua (основанной на NONOS-SDK), изменив её состав при помощи наборов разработчика NodeMCU SDK путём исключения или добавления поддержки определённых функций под требования собственного проекта. Учитывая, что все исполняемые файлы программ на языке Lua хранятся в области SPIFFS, обновление прошивки модуля на ПО NodeMCU несколько по иному распределяет память, формируя файловую систему из оставшегося свободного пространства, не занятого самой прошивкой. В отличии от младшей модели WiFi контроллера WeMos D1 Mini, в несколько раз увеличенный размер интегрированной внутренней памяти D1 Mini Pro Wemos поможет работать в файловой системе SPIFFS с довольно-таки большим количеством разноформатных файлов, включая страницы веб-сервера, графические изображения, файлы конфигурации, данные скетча и т.д.

Структура файловой системы имеет небольшой ряд ограничений из-за конструктивных особенностей чипа ESP8266EX. Она не поддерживает разбитие памяти на разделы и не работает с папками, храня файлы в виде списка. Максимальный размер имени файла не должен превышать 32 символа, включая специальный символ, отведённый под окончание строки.

Перенести файлы в систему SPIFFS можно как из популярной среды программирования Arduino IDE, так и с помощью широко известного в ESP-сообществе java-редактора ESPlorer. По умолчанию, ни одной подобной функции в Ардуино ИДЕ не предусмотрено, и пользователю придётся установить необходимое небольшое дополнение за несколько шагов.

  1. Загрузите последнюю версию дополнения с сайта GitHub. Создайте на компьютере папку "tools" в директории скетчей и распакуйте в неё содержимое архива (по умолчанию путь C:/Users/Пользователь/Documents/Arduino/tools/ESP8266FS/tool/esp8266fs.jar). Перезапустите Ардуино ИДЕ.
  2. Откройте скетч или создайте новый и запишите его. Откройте папку скетча (выберите Скетч->Показать папку скетча) и создайте в ней папку "data", поместив туда необходимые для записи файлы. Убедитесь, что правильно выбран тип платы, используемый порт и закрыт Монитор последовательного порта.
  3. В меню "Инструменты" выберите пункт "ESP8266 Sketch Data Upload" и дождитесь надписи "SPIFFS Image Uploaded", символизирующей окончание записи образа файловой системы.

Загрузите скетч, демонстрирующего сводные данные о файловой системе и содержащихся в ней файлах. Поменяйте в тексте программы и в настройках монитора последовательного порта скорость на 74800 бод, чтобы загрузочная информация ESP8266 стала читаемой. Скетч выполняется один раз после перезапуска платы и выводит информацию в последовательный порт. Пример выполнения:

  ESP8266 SPIFFS All Files Read Demo Sample  

Создание модифицированной прошивки NodeMCU Lua

Развитием технической поддержки ESP-8266 занимаются и команды сторонних независимых разработчиков. Благодаря их кропотливым трудам, пользователю на текущий момент доступны различные способы создания собственной прошивки:

  • Страницей GitHub - NodeMCU firmware предоставлена возможность скачивать готовые варианты некоторых версий прошивок, а также загружать комплекты средств разработки SDK с открытым исходным кодом.
  • Сайтом облачного конструктора NodeMCU-build реализован интересный механизм гибкого и эффективного модифицирования кастомной прошивки. Конструктор формирует законченный файл прошивки и отправляет его на указанную электронную почту. Большой список подключаемых библиотек помогает составить немалое количество вариантов прошивок, "заточенных" под поставленные задачи определённые проекта. Исключение неиспользуемых библиотек позволит сэкономить свободную память модуля NodeMCU.
      Конструктор прошивки NodeMCU  

    Сайт располагает большой подборкой информации с подробным объяснением всех функций и подключаемых библиотек, включая принципы работы с внешней или внутренней файловой системой и др.

Облачный конструктор генерирует два варианта прошивки: integer (целочисленная) и float (с плавающей точкой). Целочисленная версия не поддерживает операции с плавающей запятой и не допускает нецелых чисел. Она занимает меньше места в памяти Flash и в несколько раз быстрее выполняет вычисления. Для общего понимания, в целочисленной версии деление 3/2 равно 1, а не 1,5.

Обновление прошивки NodeMCU Lua

Микроконтроллер D1 Mini Pro WeMos полностью поддерживает работу на прошивке, включающей в себя интерпретатор NodeMCU скриптового языка Lua, выполняющего команды наподобие АТ инструкций. Загрузка новой прошивки в память ESP8266 выполняется через порт USB или по воздуху. Причём загружаемая прошивка может быть как оригинальной, так и модифицированной с применением инструментов разработки ПО (SDK). Либо вообще быть написанной самостоятельно на языке С/С++.

Для внесения прошивки в контроллер WeMos D1 Mini, воспользуйтесь утилитой esptool, входящей в комплект подключаемой к Arduino IDE библиотеки ESP8266. Исходный код прошивки NodeMCU доступен в репозитории GitHub.

Подключение внешней антенны к WeMos D1 Mini Pro

Внешняя антенна, соединённая с контроллером WeMos D1 Mini Pro через разъём IPEX, позволит сформировать более устойчивый WiFi-сигнал, стабильность которого необходима при эксплуатации устройства в разных условиях, особенно при транслировании сигнала вне помещений. Изначально, D1 Pro Mini WeMos настроен на работу только со встроенной керамической антенной. Переключение между внешней и внутренней антенной потребует небольшой самостоятельной доработки платы путём перепайки перемычки в виде SMD-резистора с нулевым сопротивлением в соответствующее положение. Найти его на плате не составит труда. Он расположен на верхней лицевой стороне платы, по середине между двумя антеннами.

Добавление платформы WeMos в Ардуино ИДЕ

Запустите редактор Ардуино, перейдите в пункт "Настройки" из меню "Файл". В строке "Дополнительные ссылки для менеджера плат" введите адрес:

http://arduino.esp8266.com/stable/package_esp8266com_index.json
  Установка платформы ESP8266 в среду разработки ARDUINO IDE  

Закройте окно и перейдите в "Менеджер плат", двигаясь по меню "Инструменты".

  Установка платформы ESP8266 в среду разработки ARDUINO IDE  

Для быстрого нахождения нужного дополнения, в строке поиска укажите esp8266. Нажмите "Установить" и дождитесь надписи Installed, означающей завершение процесса.

  Установка платформы ESP8266 в среду разработки ARDUINO IDE  

Все платформы, входящие в состав пакета установки, стали доступны для программирования, включая LOLIN (WEMOS) D1 mini Pro, который следует выбрать.

  Установка платформы ESP8266 в среду разработки ARDUINO IDE  

Техническая информация

Полезные ссылки

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2019г https://compacttool.ru