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

от admin

Flashing Wemos with Tasmota

Flashing a Wemos D1 Mini with Tasmota firmware is nearly the same as for every other device.
Just connect Wemos D1 mini via USB. No action required to enter Flashmode!

Configure Tasmota for Wemos

Generic Module

In the Configuration -> Configure Module page, select Module Type: «18 Generic». After Saving the settings, the WEMOS reboots with the Generic configuration. The first time you switch to «18 Generic» you will NOT see all the options as seen in the picture below YET. You have to save «18 Generic» first and when you go there again after the reboot you get the long table where you can change all the pin’s parameters. These steps are confirmed to also work with the Wemos D1 mini PRO v2.0.0.

ESP8266. Настройка скетча и прошивка

Чтобы прошить скетч в Wemos D1 Mini нужна Arduino IDE с поддержкой плат на контроллерах ESP8266 . Для этого нужно установить драйвер для CH340 и скачать обновление для менеджера плат. Как это сделать, подробно рассказано в разделе “Инструкция по настройке IDE для работы с WeMos” на странице:

Я использовал Arduino IDE 1.8.9 и обновление esp8266 by ESP8266 Community версия 2.5.0 .

После установки обновления в списке плат нужно выбрать Wemos D1 R1 :

Настройка скетча

На странице Menu.h всё делаем, как и прежде, для проводного варианта трекера: Настройка скетча в файле Menu.h . Я использовал верхний модуль GY-9250 , поэтому я заменил строку #define SensorVariant 2 на

#define SensorVariant 8

Остальные строки я оставил без изменений:

#define OUTPUT__HAS_RN_BLUETOOTH 0

#define OUTPUT__BAUD_RATE 57600

Страница Battery.h в варианте с ESP8266 не используется, вместо неё редактируем страницу ESP8266.h :

#define UseWiFi 1

0 — трекер работает только по USB

1 – трекер работает по WiFi и USB

#define BATTERY_CONTROL 1

0 – нет контроля батареи. Имеет смысл при питании трекера от повербанка, тогда и резистор Rplus не нужен.

1 – есть контроль батареи. Используется резистор Rplus .

#define Battery_ADC_pin A0

Вход АЦП, который используется для измерения напряжения батареи. Это значение не нужно менять, у Wemos есть только один вход АЦП.

#define Rplus 120.0

Сопротивление резистора ( 120 kOm ) между контактом Wemos A0 и 5V . При сопротивлении 120 kOm , диапазон измеряемых напряжений 0…4,4V .

#define Alpha 0.1

Коэффициент экспоненциального фильтра 0,01…1,0 . Чем меньше это значение, тем больше постоянная времени фильтра.

#define LEDpin 2

Номер контакта светодиода индикации режимов. Значение 2 – это встроенный в Wemos синий и очень тусклый светодиод. Я вместо него использовал внешний яркий красный светодиод, который подключил между контактами D7 и GND . Поэтому я изменил эту строку на: #define LEDpin D7 .

#define UseVibro 1

#define VibroPulses 3

#define VibroLength 10 // in (VibroLength * 20) milliseconds

#define VibroPeriod 30

#define VibroPin D7

Товарищ _HABEPHO_ предложил использовать вибромоторчик от мобильника для индикации низкого напряжения батареи. С вышепоказанными настройками Vibro , вибромоторчик, подключенный между контактами D7 и GND , при снижении напряжения меньше Umin , будет трижды вздрагивать через каждые 30 секунд.

Прошивка скетча

Прошивка скетча производится, как и обычно.

Для этого нужно подключить трекер шнуром микро-USB к компьютеру. При работе через USB выключатель трекера должен быть выключен ! К парному к используемому порту USB не должно быть ничего подключено.

В меню инструменты выбрать номер виртуального COM -порта, к которому подключен Wemos и нажать кнопку “Upload” или [Ctrl+U] .

Компиляция скетча для Wemos длится дольше, чем для Arduino , вплоть до пары минут. После компиляции скетч загрузится в Wemos :

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

Всем бодрого в.с. от новичка.
Имею такую железку: 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) прошивку моего девайса? . а то без неё как-то неуютно. ))

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

Дружимся с ESP

Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее — Wi-Fi и пины для подключения периферии.

В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.

Несколько представленных в статье модулей (ESP-01, ESP-07, ESP-12E, ESP-12F) и плат (Goouuu Mini-S1, WeMos D1 mini и NodeMCU V2) базируются на контроллере ESP8266, использование которого позволяет простым и дешевым способом добавить в своё устройство беспроводную связь через Wi-Fi.

Так выглядит модельный ряд модулей на базе чипа ESP8266.

Последняя плата из тех, о которых я расскажу (ESP32 WROOM DevKit v1), построена на контроллере семейства ESP32 — более продвинутой по своим возможностям версии ESP8266.

Все представленные модели можно программировать и загружать прошивки через Arduino IDE точно так же, как при работе с Arduino.

Настройка среды программирования Arduino IDE

По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.

1) Открываем среду программирования Arduino IDE.

4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).

Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).

6) Надпись INSTALLED сообщает, что дополнения успешно установлены.

7) Аналогичным образом устанавливаем дополнение для ESP32.

8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.

9) Для подключения плат к платформе Интернета вещей используем библиотеку EspMQTTClient. Чтобы ее установить, в пункте меню Tools (Инструменты) выбираем Manage Libraries (Управлять библиотеками). Находим и устанавливаем библиотеку EspMQTTClient. Может появиться сообщение об установке дополнительных библиотек. Выбираем “Install all”.

Примечание — Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.

Код прошивки

Для прошивки всех используемых ниже модулей используем один и тот же код.

Установка Wi-Fi соединения

Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT

Отправка рандомных значений по температуре («base/state/temperature») и влажности («base/state/humidity») каждые 5 секунд (PUB_DELAY)

Получение сообщений о переключении света («base/relay/led1»)

Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка <ric-mqtt-client-id>.

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

Модули на базе ESP8266

Для работы с модулями на базе ESP8266 есть два варианта:

Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);

Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).

В статье будем рассматривать второй вариант — прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:

Через плату Arduino;

Через USB-Serial адаптер.

Рассмотрим второй вариант — использовать адаптер на базе чипа CP2102 (например, такой https://www.chipdip.ru/product/cp2102-usb-uart-board-type-a?frommarket=https%3A%2F%2Fmarket.yandex.ru%2Fsearch%3Frs%3DeJwzSvKS4xKzLI&ymclid=16146772489486451735000001). Обязательно обратите внимание на то, чтобы адаптер позволял выдавать выходное напряжение 3.3 В, не больше!

1. ESP-01

ESP-01 — самый популярный модуль на ESP8266. PCB антенна обеспечивает дальность до 400 м на открытом пространстве.

Внешний вид

Питание

Родное напряжение модуля — 3,3 В. Его пины не толерантны к 5 В. Если вы подадите напряжение выше, чем 3,3 В на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.

Читать:
Initial current на аккумуляторе что значит

Похожие публикации