Однажды встал вопрос о том, что неплохо было бы модели авиации в масштабе 1:144 и не только делать с «огоньками». Такие решения уже существовали, но были или примитивными (только мигание или только постоянный режим) или дороговатыми и требовали каких-то отдельных пультов и т.д. Хотелось иметь систему, которая бы не требовала от пользователя никакого дополнительного оборудования, позволяла бы настраивать режим работы каждого светодиода и влезала бы в габариты модели. На одном телеграм канале была замечена система с веб интерфейсом. Поинтересовался ценой, и идея электрификации была отложена в долгий ящик.
Было понятно, что нужен веб интерфейс для управления со смартфона, но знаний в этой сфере было около нуля. Но однажды пришла мысль попробовать обратиться к помощи ИИ. В качестве подопытного был выбран DeepSeek. А в качестве платформы для опытов был выбран микропроцессор ESP32 имеющий на борту WiFi и Bluetooth. Начал с простого – это вообще сработает? Для начала попросил написать скетч для управления светодиодами. Написал, работает. Потом попросил добавить веб интерфейс с кнопками. Справился. Путем множества итераций, от простого к сложному, DeepSeek написал скетч, управляющий 14-ю каналами в разных режимах, с запоминанием настроек в энергонезависимой памяти, переходом в режим сна и обратно.
Платформа ESP32 имеет множество модификаций, с полными возможностями и с урезанными. Скетч написан для обычного микропроцессора ESP32 и в настоящее время работает на плате разработки ESP32-WROOM-32 с интегрированным аккумулятором и зарядкой от порта USB. Но может быть портирован на упрощенные версии с уменьшением числа каналов для светодиодов.
Дело в том, что светодиоды управляются с использованием аппаратных каналов с ШИМ регулированием, которых у ESP32 16 штук. На упрощенных версиях микропроцессора число каналов уменьшено до 6.
Необходимо учитывать и ограничения микропроцессора по максимальному току на каждом канале и суммарно. Поэтому ток через светодиоды ограничен токоограничивающими резисторами до 5 – 7 мА. При подборе резисторов нужно учитывать данные конкретных используемых пользователем светодиодов (немногие знают, что падение напряжения на зеленых и красных светодиодах разное).
В качестве источников света первоначально были выбраны SMD светодиоды размера 0402 так как они сейчас широко доступны, продаются на меркетплейсах пучками с уже припаянными тонкими проводами. Я не оказываю услуг по пайке проводов. Поэтому тут каждый решает вопрос самостоятельно. В дальнейшем планирую перейти на использование светодиодов размера 0201. Их можно устанавливать гораздо незаметней, чем 0402.
Итак, скетч. Доступен для скачивания
Ниже приведу краткое описание и рекомендации по изменению.
Выше указано количество светодиодов, номера ножек платы к которым они подключены и комментарий для памяти к какой ноге какой светодиод будет подключен. Указан пин для подключения геркона (кнопки) для перевода контроллера в режим сна и обратно, а так же пин для измерения напряжения аккумулятора. Это можно переписать по своему вкусу.
В этом месте указывается желаемое имя точки доступа WiFi и пароль. К этой точке необходимо подключать смартфон для доступа к веб интерфейсу!
Веб интерфейс будет доступен по адресу 192.168.4.1, его нужно ввести в строке браузера после подключения к точке доступа.
Вкл - режим постоянного горения. В этом режиме можно регулировать яркость при помощи ползунка ниже.
Мигание - режим мигания светодиода. По умолчанию период 1000 мкс, время включённого состояния - 500 мкс, выключенного состояния - 500 мкс. Это время можно менять при помощи полей ввода для изменения периода мигания и имитации работы импульсных ламп, например для импульсных маяков.
Мерцание - режим плавного нарастания яркости и плавного гашения светодиода. Крутизна нарастания и падения яркости задаётся в заголовке соответствующим параметром от 1 до 10. Этот режим можно использовать для имитации работы вращающихся маяков.
Ниже в скетче есть блок в котором указаны наименования светодиодов, которые будут отображаться в веб интерфейсе. Это позволяет управлять ими более осознанно, особенно если они подключены к тем ногам, которые указаны в скетче.
С обратной стороны платы припаян блок для аккумулятора 18650. Он, конечно, сильно увеличивает габариты платы, поэтому будет отпаян и заменён плоским бескорпусным аккумулятором.
Для измерения напряжения на аккумуляторе необходимо два резистора большого сопротивления (например 1Мом) припаять к полюсам аккумулятора, вторые выводы резисторов соединить и подключить к ноге 36 платы (это один из входов АЦП).
Для соединения светодиодов и платы контроллера использовал двухпиновые разъемы JST 1.25. По результатам макетирования могу посоветовать продумывать все заранее. Например вместо трех двухпиновых разъемов, выходящих из консоли крыла, можно было использовать один четырехконтактный разъем. Заодно можно сэкономить на минусовых контактах (масса общая для всех трех светодиодов).
Информация по версиям процессоров и т.д. на сайте производителя https://www.espressif.com/en/products/modules
Совем забыл! 14-я нога предназначена для перевода устройства в режим сна. На эту ногу подключен геркон, к которому на видео подношу магнит.
Да, мы все тут про скетчи и микроконтроллеры, но забыли важную штуку - Arduino IDE, оболочку для компиляции и загрузки скетчей в микропроцессор.
ESP32 совместим с Arduino IDE после установки в оболочке соответствующих библиотек.
Обратите внимание на комментарий в самом начале скетча! Нужна определённая версия библиотеки. Это связано с некоторыми используемыми командами. Я не специалист, но с последними версиями библиотеки для ESP32 компиляция не проходит. Бегло погуглив выяснил, что ошибка связана с изменением набора команд. Не стал зарываться в тему, сменил версию и работал дальше.
Обсуждать и задавать вопросы лучше задавать в ТГ канале
Ну и несколько фото как это пока выглядит на строящейся модели