Wemos d1 mini как прошить
Перейти к содержимому

Wemos d1 mini как прошить

  • автор:

Инструкция по Wemos D1 mini: вроде бы все тоже самое

Инструкция по Wemos D1 mini: вроде бы все тоже самое

Введение Привет друзья, меня все еще зовут Алексей ;), и я решил написать небольшой курс статей, по использованию платы Arduino Nano и так называемой адресной ленты, на основе светодиодов ws 2812 b . На сегодня это уже седьмая статья. И, прежде чем браться за чтение конкретно этой статьи, я бы посоветовал прочитать предыдущие. Сегодня мы поговорим о так называемой плате Wemos D 1 mini . Вообще видов плат Wemos несколько, при чем есть и другие платы с практически такой же конфигурацией, но называющиеся иначе. Тут замешаны и авторские права, и желание производителей выделиться. Возможно, вы сейчас находитесь в замешательстве, типа: «Изучали одно, а потом резко переключились на другое?», но не волнуйтесь, мы все еще находимся в одной большой теме, в той самой, с которой начинали. Я не менял вектор движения, и по-прежнему пытаюсь дать вам азы цифровой электротехники, просто не стоит зацикливаться на плате Arduino Nano , ведь есть другие решения. А так как задачи бывают совсем разные, то переключиться на другую плату будет очень даже полезно.

Разбираемся в вопросе Для начала скажу, что с платой Wemos можно работать, как с обычной Arduino Nano , о которой мы говорили ранее. Иначе говоря, платформа Arduino поддерживает данную плату. Давайте посмотрим на нее, ниже два фото, как плата выглядит с двух сторон.

7_01.JPG

7_02.JPG

Со стороны USB разъема можно увидеть знакомую микросхему CH 340, которая позволяет «общаться» плате и компьютеру по USB проводу, также было и на Arduino Nano . Плата поставляется с различными гребенками контактов, чтобы была возможность удобного подключения к ней внешних устройств. Иногда гребенки уже впаяны, я покупал свою плату в интернет-магазине Giant 4, и у меня были 3 варианта гребенок в одном наборе.

7_03.JPG

Также на фото видно, что, в отличие от Arduino Nano , где стоял разъем USB — mini , на Wemos у нас уже расположен USB — micro . Это просто удобно, так как провода с этим разъемом более распространены, хотя они уже тоже постепенно выходят из обихода. 7_04.JPGПонятное дело, что у данной платы немного другой форм фактор и количество пинов определенного назначения, оно отличается от того, что мы с вами видели на Arduino Nano . Но так как мы работаем с адресной лентой, нас по-прежнему интересуют выводы типа digital . Это цифровые выводы, которые подписаны буквой D и номером. Тут таких девять штук, конечно, немного меньше, чем на Nano , но все равно немало. 7_05.JPGНо, пожалуй, главной особенностью данной платы является то, что на борту есть Wi — Fi приемник и Wi — Fi передатчик. То есть, эту плату можно подключить к домашней локальной сети и отправлять команды как на нее, то есть управлять платой, так и сама плата может отправлять команды на другие устройства. На данный момент уже все домашние локальные сети имеют доступ к мировой информационной паутине (у всех есть интернет), а это значит, что мы не ограничены рамками и при настройке определенной маршрутизации можем управлять данной платой из любой точки мира. На самом деле это просто фантастика. А что если я вам скажу, что делать это крайне просто? Наравне с тем, что плата может подключиться к вашей домашней сети, плата также может выступать в качестве источника данной сети. То есть Wemos сама раздаст свой собственный Wi — Fi , к которому смогут одновременно подключиться сразу несколько устройств. Я не буду долго обсуждать возможности данной платы, потому что на это уйдет очень много времени и тут уже вопросы даже не к плате, а к сетевым технологиям, но расскажу в общих чертах. Суть в том, что можно организовать TCP / IT сервер или же просто, как клиент, отправлять пакеты. Можно поднять FTP сервер (кстати на плате есть память под хранилище данных, немного, но для всяких «цифровых дел» с избытком). Можно организовать WEB сервер, хранить тут же свой сайт и через него управлять Wemos , к примеру, выводами. В общем, возможностей действительно много: почтовый сервер, сервер сайтов и можно даже проводить хакерские атаки, но, конечно же, для этого придется подучиться и в рамках данных статей мы этого делать не будем 😉 Мы организуем простое управление через интернет. Но, справедливости ради, я хочу заметить, что все, что я перечислял выше, по возможностям платы, — это заслуга не Wemos . Если присмотреться к этой плате, то можно обратить внимание на то, что это «бутерброд». Так как на этой плате находится еще одна плата, на основе МК ESP 8266. И все перечисленные возможности – это заслуга именно этого микроконтроллера. 7_06.JPGИ получается, что Wemos – это не что иное, как просто удобная развязка. Она организует подключение с компьютера до МК. Она позволяет более удобно работать с выводами, тут уже предусмотрена кнопка Reset (хотя я лично не представляю ситуации, чтобы я побежал нажимать кнопку сброса на своей самоделке именно на плате, конечно же, ее необходимо выносить, поэтому обычно сброс происходит по питанию). Также имеются стабилизаторы питания и пара защит. Сказать, что Wemos бесполезна, конечно же, нельзя, она очень удобна, особенно для новичка, но лично я уже давно перешел на использование самой платы ESP 8266, она достаточно мала и позволяет сэкономить место, а также я вправе организовать только ту развязку, которая мне действительно необходима (то есть мое устройство может быть и проще, чем Wemos , но может быть и гораздо сложнее). Плат с ESP 8266, кстати, тоже огромное количество видов. Я, как правило, использую 12- E или 12- F . Посмотрите на фото, как это все выглядит. 7_07.JPG 7_08.JPGИ таких плат по типу Wemos , на самом деле, немало. Например, еще одна из них, под названием NodeMCU . Как обычно, такие платы бывают разных видов, но смысл от этого не меняется и всегда в основе лежит ESP 8266. Именно этот МК и объединяет все эти платы. На следующей иллюстрации Вы можете ее увидеть и понять, что выводов у нее больше, чем на Wemos , но цифровых входов и выходов такое же количество. При выборе нужно исходить от задачи, стоящей перед разработчиком. В рамках данной статьи, мой выбор пал на Wemos . 7_09.JPGТакже отмечу, что Arduino – это не единственная платформа, с помощью которой можно вести разработки под эти платы, как и не единственная платформа для разработки на Arduino Nano . Но на данный момент – это лучший выбор дня новичка. Как это использовать? — Готовим IDE Arduino Для начала придется кое-что настроить в самой IDE Arduino . Кстати, мы будем использовать тот скетч, который мы написали в прошлой статье. 7_10.PNGТеперь заходим в Файл -> Настройки. 7_11.pngИ у нас появляется следующее окно. В поле «Дополнительные ссылки на менеджера плат» необходимо вписать следующую ссылку: http://arduino.esp8266.com/stable/package_esp8266com_index.json А затем нажать на кнопку « Ok ». 7_12.PNGТеперь заходим в Инструменты -> Плата -> Менеджер плат. 7_13.pngОткроется менеджер плат. В появившемся окне нужно в поисковую строку вписать « Wemos ». И установить компонент под названием – « ESP 8266 Community ». После этого будет не лишним перезагрузить IDE Arduino . 7_14.PNGТеперь осталось выбрать тип платы и порт, остальные настройки оставим без изменений. 7_15.pngНа этом все. Если подключить плату и нажать кнопку записи скетча, то наша программа попадет в МК. Но перед тем, как мы перейдем к подготовке физической части, нам нужно немного изменить код. Данное изменение связанно с самой интеграцией платформы Arduino на ESP 8266. Не будем разбирать это подробно, это достаточно большая тема и сейчас говорить об этом еще рано. Просто примем как данность. В третей строке, где мы задаем номер управляющего вывода, нужно значение «5» заменить на « D 5». Думаю, дальнейшая логика самостоятельной работы уже понятна и останавливаться на этом я не буду. 7_16.PNGАппаратная часть С программной частью мы разобрались. Теперь необходимо подключить к плате Wemos блок питания и адресную ленту. Подключение будет происходить полностью по аналогии с Arduino Nano . Управление с D 5 (не забываем про токоограничивающий резистор), питание на 5 V и общий (тут необходимо поставить конденсатор). Схема подключения представлена ниже. 7_17.pngСмотрим итоговое фото. Также, как и в случае с Arduino Nano , я просто припаял провода. 7_18.JPG 7_19.JPGРезультат После того, как все подключено и настроено, соединяем USB проводом компьютер с платой. Выставляем в настройках необходимый порт и записываем программу на Wemos . Если до этого все было сделано правильно, то в конце мы увидим надпись – «Загрузка завершена». Отключаем плату от USB и включаем блок питания в розетку. Как результат, видим на адресной ленте тот же эффект, что и в прошлой статье. Только в этот раз мы управляем цветами пикселей с помощью совершенно другого МК. Смотрим результат на видео. Заключение Я понимаю, что в начале статьи очень много рассказывал про Wemos , Wi — Fi , ESP 8266 и возможности всего этого, а в заключении мы просто подключили ленту и построили такой же простой эффект, как и в прошлый раз. Но вы должны понимать: чтобы что-то реализовать, необходимо подготовить почву и получить хотя бы минимальные представления о предметной области. Этим мы сегодня и занимались. Но в следующей статье, которая скорее всего уже будет заключительной, мы займемся управлением ленты через интернет по средством смартфона. Я хочу обратить Ваше внимание на то, что мы смогли с помощью одной и той же IDE , используя один и тот же программный код, запрограммировать два совершенно разных по архитектуре микропроцессора. При этом мы вообще ничего не знали про устройства этих МК. В этом и заключается сила платформы Arduino – простой одинаковый код и возможность работать с разными системами. На самом деле это дорогого стоит и это нужно ценить. Желаю вам удачи в ваших DIY проектах и встретимся в следующей статье.

Восстановить родную прошивку на WeMos D1 mini

WeMos_D1_mini.jpg

Всем бодрого в.с. от новичка.
Имею такую железку: WeMos D1 mini NodeMcu Lua

Подал питание (через USB) — в домашней WiFi сети появилось новое устройство: FaryLink_E57FF5.
Через Arduino IDE прошил простенький скетч для мигания встроенного светодиода. Светодиод замигал, но вот WiFi устройство из сети пропало.
Своим дилетантским умишкой предположил, что перепрошивкой из Arduino IDE убил его собственную прошивку, создававшую эту самую WiF iточку. Где искать его родную прошивку что бы восстановить — не знаю. Попробовал перепрошить утилиткой ESP8266Flasher его встроенной прошивкой INTERNAL://NODEMCU. Точка доступа снова появилась. Значит помогло. Но как теперь писать и отлаживать простенькие скетчи для этого контроллера на Arduino IDE? В скетче, даже самом простом, обязательно должны быть прописаны директивы создающие точку доступа (какие именно пока не знаю) или точка доступа так и будет пропадать после каждой перепрошивки пользовательским скетчем из Ардуины? . или я что-то делаю не так?
Заранее спасибо.

З.Ы По ходу ещё один вопрос. Есть необходимость в некой минимальной прошивке (для вышеупомянутой железки). В ней не нужно ничего (ни АТ команд, ни Питон, ни Луа . ) только поднять HTTP сервер выдающий одну единственную html страничку с формой и реагирующий на действия пользователя в этой форме. Если такие прошивки есть, то буду очень признателен за ссылки. Или может стоит потратить время и заморочиться созданием собственной прошивки средствами того же ESPlorer?
З.З.Ы Ещё буду весьма признателен если подскажите где всё же взять родную (firmware) прошивку моего девайса? . а то без неё как-то неуютно. ))

Прошу прощения если мои вопросы несколько сумбурны, просто пока ещё даже не смог толком оценить объём того чего не знаю . о микроконтроллерах. ))

WeMos D1 Mini Контроллер WiFi на чипе ESP8266EX

WeMos D1 Mini Контроллер WiFi на чипе ESP8266EX WeMos D1 Mini Контроллер WiFi на чипе ESP8266EX WeMos D1 Mini Контроллер WiFi на чипе ESP8266EX

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

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

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

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

  • Модель: 3.0.0
  • Контроллер: ESP8266EX Serial WiFi, однокристальная система на основе Tensilica L106 с ультра-низким энергопотреблением, разрядность 32-бит
  • Тактовая частота: 80 МГц (до 160 МГц)
  • Рабочее напряжение: 3.3 В
  • Напряжение питания: 5 В
  • Потребляемый ток: до 300 мА
  • Флеш-память: 32 МБит / 4 МБайт
  • Диапазон частот: 2.4ГГц-2.5ГГЦ (2412М-2484М)
  • Режимы 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, 1×1 MIMO, 2×1 MIMO
  • Выходная мощность в режиме 802.11b: +20dBm
  • Интерфейсы: GPIO, UART, I2C, HSPI, PWM
  • Скорость передачи данных: 300-4608000 бод, по умолчанию 115200 бод
  • Встроенный переключатель приёма/передачи, согласующий высокочастотный трансформатор, усилитель мощности
  • Встроенные блоки: согласования сети, фазовой автоподстройки частоты, управления питанием, блоки регулирования
  • Антенна WiFi: PCB, разведена на плате в виде дорожки
  • Поддержка Arduino, NodeMCU, MicroPhyton
  • Поддержка файловой системы SPIFFS
  • Поддержка функций Smart Link для устройств на Andriod и iOS
  • Поддержка АТ-команд, Облачного Сервера и Наборов Разработки (SDK), обновление прошивки
  • Светодиодная индикация: вывод D4 (GPIO2)
  • Шаг между контактами: 2.54 мм
  • Рабочая температура: -20°. +85°
  • Размеры: 34.2 х 25.6 х 5 мм
  • Вес: 3 гр

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

Платформа WeMos — модульная платформа, позволяющая пользователю конструировать схемы, «заточенные» под определённые задачи. Она поддерживает немалый набор совместимых расширений из OLED-дисплеев, переключателей, датчиков температуры, давления и освещения, светодиодов и контроллеров сервомоторов, которые можно компоновать по своему усмотрению, располагая их друг над другом.

Совместимость Non-OS-AT WeMos D1 Mini с прошивкой NodeMCU

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

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

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

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

Организация связи и программирование микросхемы ESP8266EX реализовано по главной шине интерфейса UART. Для того, чтобы WeMos D1 Mini научился понимать сигналы, приходящие в порт USB от компьютера, в схеме модуля интегрирован преобразователь сигналов USB-TTL на микросхеме CH340G. При первом включении, операционная система ПК скорее всего не сможет его обнаружить, если соответствующий драйвер заведомо не был установлен. Установите драйвер CH340, затем подключите плату кабелем USB к ПК. Контроллер WeMos D1 Mini готов к работе.

Питание WeMos D1 Mini

Подать питание микроконтроллеру WeMos D1 Mini возможно двумя способами:

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

Микросхема регулятора ME6211 пропускает через себя ток, не превышающий 500 миллиампер. С целью защиты регулятора, в модуле установлен полимерный самовосстанавливающийся предохранитель. Контроллер ESP8266EX потребляет в пике до 300 миллиампер, ввиду чего на подключение дополнительных расширений или датчиков остаётся всего около 200 миллиампер.

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

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

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

// определяем встроенный светодиод 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, файловая система SPIFFS

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

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

Структура файловой системы имеет небольшой ряд ограничений из-за конструктивных особенностей чипа 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», символизирующей окончание записи образа файловой системы.

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

ESP8266 SPIFFS All Files Read Demo Sample

Поменяйте в тексте программы и в настройках монитора последовательного порта скорость на 74800 бод, чтобы загрузочная информация ESP8266 стала читаемой (первая строка на картинке).

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

Модуль WeMos D1 Mini обладает цифровыми выводами (физические контакты 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 миллиампер и напряжения более 3.3 вольта, способного повредить микроконтроллер.

  • 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.0В
  • GND — общий, заземление

Обозначение контактов на плате 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, может использоваться для вывода отладочной информации
    • SDA — контакт GPIO2
    • SCL — контакт GPIO14
    • HSPI_CS — контакт GPIO15
    • HSPI_MISO — контакт GPIO12
    • HSPI_MOSI — контакт GPIO13
    • HSPI_CLK — контакт GPIO14
    • I2S1_DATA — приём, контакт GPIO12
    • I2S1_BCK — приём, контакт GPIO13
    • I2S1_WS — приём, контакт GPIO14
    • I2S0_BCK — передача, контакт GPIO15
    • I2S0_DATA — передача, контакт GPIO3
    • I2S0_WS — передача, контакт GPIO2
    • IR_Tx — контакт GPIO14
    • IR_Rx — контакт GPIO5

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

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

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

    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 мА.

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

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

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

    Конструктор прошивки NodeMCU

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

    Обновление прошивки на NodeMCU Lua, WeMos D1 mini прошивка

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

    Для внесения прошивки в контроллер WeMos D1 Mini, воспользуйтесь утилитой esptool-ck. Исходный код прошивки NodeMCU доступен в репозитории GitHub.

    В качестве альтернативного варианта, подойдёт хорошо известная программа Node MCU Flasher для Windows. Последняя версия доступна для загрузки из репозитория GitHub. Процесс записи предварительно скомпилированного файла (формат .bin) прошивки прост, состоит из нескольких шагов и не занимает много времени.

    1. Соедините плату D1 Mini WeMos с компьютером при помощи USB-кабеля.
    2. Если плата подключается впервые, установите драйвер для микросхемы USB-TTL преобразователя CH340G.
    3. В Диспетчере Устройств Windows, в разделе Порты (COM и LPT), найдите и запомните (запишите) назначенный плате номер COM-порта. Его необходимо будет указать в настройках программы перед прошивкой.
    4. Запустите Flasher, во вкладке «Config» выберите нужную прошивку и укажите ей адрес 0x00000. Если прошивка состоит из нескольких частей, то каждая её составляющая часть размещается в новой строке с указанием соответствующего адреса (см. документацию к прошивке).

    WeMos D1 Mini выбор прошивки в NodeMCU Flasher
    WeMos D1 Mini настройки скорости и размера памяти во вкладке
    Завершение прошивки WeMos D1 Mini в NodeMCU Flasher

    Перед записью прошивки, крайне рекомендуется полная очистка флешь-памяти. Чаще всего, после обновления, прошивка работает без нареканий. Если предварительно не производить чистку памяти, можно столкнуться с ситуацией, когда заново загруженная версия NodeMCU не совпадёт с предыдущей версией прошивки, вследствие чего плата попросту не запуститься в нормальном режиме. В таком случае, от пользователя потребуется запись отдельного файла инициализации модуля «esp_init_data_default.bin» из той версии SDK, на которой выполнялась сборка прошивки.

    Программа Node MCU Flasher умеет записывать в память не только прошивки NodeMCU, но и оригинальные или кастомные прошивки с поддержкой АТ команд на основе существующих комплектов инструментов разработки (SDK) от компании-производителя Espressif System, выпускающей контроллеры ESP.

    Готовый вариант прошивки NodeMCU для микроконтроллера WeMos D1 Mini, собранный на базе языка Lua версии 5.1.4, SDK версии 2.2.1, включая блоки: ADC, FILE, GPIO, MDNS, MQTT, NET, NODE, PWM, TMR, UART, WIFI, WPS.

    Программирование ESP8266 D1 Mini в среде ESPlorer

    Откройте редактор ESPlorer, в правой верхней части окна терминала укажите COM-порт (#1), к которому подключен WeMos D1 Mini. Затем, установите скорость 115200 бод (#2) и откройте порт для установления связи с платой (#3). После выполнения ручного сброса контроллера (#4), ESP8266 выдаст загрузочную информацию о версии прошивки (#5) и включится в рабочий режим.

    Написанная на языке Lua, программа может состоять из двух и более частей исполняемого кода, но всегда должна начинаться с файла инициализации. В левой части окна напишите простую команду (#6), сохраните её в файле с именем «init.lua» (#7) и прошейте в память кнопкой Save to ESP (#8). Результат выполнения сразу же отобразится в окне терминала (#9). Получить информацию о размере файловой системы, свободном и занятом пространстве (#10), а также списке файлов с кодом .lua в памяти (#11), позволит кнопка Reload (#12).

    Пример программирования WeMos D1 mini на NodeMCU Lua

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

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

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

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

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

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

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

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

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

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

    • Документация ESP8266EX v1.0 (англ., PDF)
    • Документация ME6211 (англ., PDF)
    • Документация W25Q32JV (англ., PDF)
    • Принципиальная схема WeMos D1 Mini v3.0.0 (англ., PDF)

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

    • Библиотека примеров для Wemos D1 Mini
    • Описание NodeMCU API

    Wemos d1 mini как прошить

    ESP, IoT проблема с WeMos D1 мини

    • Автор темы malec
    • Дата начала 3 Окт 2019

    Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
    Вам необходимо обновить браузер или попробовать использовать другой.

    malec

    5 Фев 2019 680 257

    День добрый, случилось не предвиденное. Вемос перестал подключаться по проводу к компу, последний раз заливал прошивку от vvip-68
    Я так на ней и прилип, только уже проект Рюкзака с матрицей доча захотела. Там почти всё тоже самое. Так вот по сути. при подключении в последний раз когда прошивка залилась , винда издавала звуки как будто устройство плохо конектится. и больше не подключается. этот же провод попробовал на другую ардуино у меня нано лежит без дела. так вот те-же драйвера работают, а вемос больше не определяется, попробовал метод тыка т.е. отпоял СН 340 от нано и влепил на вемос, а от вемоса на нано, вемос так и не определился , а вот нано перестала прошиваться хотя конектится. вернул всё назад. нано заработала и прошилась. Может подскажете как это решить, если не через юсб как вемос ещё прошить если родное юсб не работает. чтоб с ви-фи прошить надо тоже какую-то прошивку править. Первое что я пробовал до паяльника- это подключить в другом месте, везде пишет что оборудованние работает не правильно и виндовс не удаётся его распознать, когда перепаял СН340 от нано с вемосом ничего не изменилось а вот нано перестала прошиваться. «ошибка загрузки в плату»
    по идее загрузчик цел наверно под вемос протокол(какой нибудь) другой. Я не все про эти плат понимаю т.е. не совсем сталкивался. с вами развиваюсь, вемосы придут в конце месяца а прошивка немного не в «моём вкусе» прикол в том что прошивка работает, загонял первую пробу изменений методом ТЫКА. результат был но надо было подправить и не вышло(((

    Roman_S

    25 Сен 2019 114 52

    может все таки заказать горсть wemos на ali ) они не вечные, особенно когда экспериментируешь. я за год наверное десятка полтора выбросил )

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

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