Руки дошли и до DIY устройств. 🙂 Собственно имеем некое чудо ESP32-WROOM-32 Devkit на борту котором есть Wifi/BLE/внешнее питание через Micro-USB … и фик знает чего там еще напихали. Сам факт того, что мы планируем его использовать в будущем для удаленного подключения энергомера PZEM-004T к домашней сети HomeAssistant и снимать с него статистику всех электрических показаний в сети (напряжение, ток, частота, текущая мощность и т.п.). для этого нам необходимо первым делом подготовить модуль ESP32 к интеграции с HomeAssistant. Т.е. первым этапом займемся его прошивкой на специальную от tasmota firmware. Замечу, что прошивать будем не стандартной прошивкой, а именно для ESP32 Devkit. Эти прошивки расположены здесь.
Почему именно она ? Упростим себе задачу :). Как всегда нам понадобится USB TTL Flasher на базе CH340. Вот здесь мы его уже использовали для прошивания wifi реле на базе ESP8266 и теперь будем использовать для ESP32. Сам я его никогда еще не прошивал – поэтому будем учиться вместе 🙂 Выглядит модуль ESP32 Devkit так
На борту у него есть еще внешнее питание по Micro-USB, его мы будем использовать для прошивки, а не так как ранее брали 3.3V с USB TTL Flasher (хотя кому как удобнее). Две кнопки: Boot (режим загрузчика) и EN (для сброса). Вообщем схема для соединения двух устройств стандартная. Солянка из сборки Flasher+ESP32 🙂
Контакты при подключении
USB Flasher | ESP32 Devkit |
RX | TX0 |
TX | RX0 |
GND | GND |
3V3 | 3V3 (либо внешее по Micro-USB) |
На схеме выше я использование питание ESP32 Devkit по Micro-USB кабелю. Теперь качаем софтину ESP32 Download Tool. Скачать можно отсюда. Я пробовал прошивать Tasmotizer, которое мне выдавало одну и туже ошибку (кстати опознает оно ESP32-WROOM как ESP8266 и не прошивает)
и Tasmota-PyFlasher … но первый вариант был по глупости (он не поддерживает ESP32) 🙂 второй вариант прошивал некорректо (однако прошивал, но SSID tasmota_* в моей wifi сети не появлялся).
Также нам необходимо специальный файлы для записи в ESP32 (bootloader, tasmota прошивка и partition). Скачать их можно по таблице ниже, а почитать о них здесь
Bootloader | bootloader_dout_40m.bin | https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32/ESP32_needed_files |
Partition | partitions.bin | https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32/ESP32_needed_files |
Tasmota | tasmota32.bin | https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32 |
Вставляем USB TTL Flasher в порт компьютера и подключаем отдельное питание по Micro-USB для ESP32. В системе смотрим наличие номера COM порта в Диспетчере устройств Windows 10
Файлы для прошивок скачали в отдельную папку и запускаем приложение для прошивки ESP32 Download Tool, выбираем режим Developer
настраиваем вкладку SPIDownload к следующему виду (.bin файлики для прошивки мы с вами скачали ранее). Каждая прошивка из файла требует адресного пространства. Такова структура прошивки этого модуля которые пришел на смену ESP8266.
самое главное здесь первые 3 строки и их правильные адреса расположения в памяти, поля для цифровых значений добавляются ручками
Теперь мы готовы к прошивки. Для начала очистим от всех данных, что в заводской прошивке нашего модуля. Нажимаем ERASE
IDLE статус смениться на SYNC
и жмем на ESP32 кнопку Boot + EN отпускаем Boot и EN, и далее жмем один раз Boot (или без). Если не получается можно еще так попробовать : отключить питание ESP32. Нажать на кнопку Boot, подать питание на модуль и через пару секунд отпустить кнопку Boot. Результатом удачного подключения должен быть статус FINISH .
далее жмем на START в программе и на модуле ESP32 нажимаем комбинацию кнопок Boot + EN, отпускаем Boot и EN, и далее жмем один раз Boot. Конбинация какая-то странная, хотя в документация описана только комбинация вида : “на ESP32 кнопку Boot + EN отпускаем Boot”, в итоге вы попадаете в ручной режим программирования. Ниже результат лога удачной прошивки.
Иногда у меня не срабатывала комбинация очистки данных даже под прицелом ружья, ситуацию исправила вкладка Factory MultiDownload. Вообще модуль весьма капризный в прошивке я заметил.
Если вы зальете стандартную прошивку tasmota, вы не получите нужный результат. Нужно прошивать только отдельную прошивку, которая находится в разработке (Beta) пока. Читем здесь.
Теперь ищем в WIFI сети SSID с именем tasmota_*, У меня это было так
Отлично. Подключаемся к ней и заходим на адрес 192.168.4.1 (хотя вас может перебросить автоматически после того как ты только к SSID’у подключитесь). Далее все по старинке … через tasmota интерфейс управления подключаемся к Web консоли и настраиваем наш wifi для подключения к домашнему роутеру. На роутере я рекомендую выставить устройству статический IP адрес
устройство перегрузиться
и попадаем в царство настроек темплейта. он там экслюзивный. Все 39 контактов это большая честь на самом ESP32-WROOM Devkit модуле (это модуль который собран из самого чипа Expressif ESP32 … со всеми контактами / пайками / конверторами TTL и т.п. т.е. готовый модуль для отладки. Рекомендую вам его покупать для DIY устройств). Настраивать подключение к HomeAssistant мы будем у же в другой раз когда приедет оборудование.
Дерзайте! Обновления производим скачивания прошивки tasmota32.bin https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32 и ручной заливки.
Он шьется через microUSB без проблем. Есть прога tasmotizer, там это делается в один клик. Нужен только порт.