newz20

 
<<< Back

Светильник на ws2812 + светильник с аккумулятором

Создание светильника rgb из того что было с управлением от МДМ

Началось все с желания любимой супруги заполучить светильник. В супермаркете был куплен светильник с красивой коробочкой, работающий от трех батареек ААА. Но при установке батареек оказалось, что светильник со светодиодом, в который встроен чип на плавную смену цветов. Красота достигнута уровень фен-шуя поднялся, но свет красив только в полной темноте, да и батарейки быстро садились, может брак светодиода (хотя даже резистор впаян был), может батарейки поддельные, но и режим работы всю ночь, в итоге энержайзер держался неделю. Ну и как полагается садятся батарейки ночью. У жены жуткий страх темноты с детства и в спальне всю ночь должен быть, хоть маленький, но источник света. В итоге меня достали крики по ночам и попытки найти батарейки в 3 часа ночи. Мое увлечение умным домом уже начинало доставать жену (толку нет от этого по ее мнению), но тут я предложил переделать светильник под умный дом и пообещал что даже если света не будет то у нее всегда будет возможность включить его и темно не будет. Немного слукавил, но детали ей не обязательно было знать.

Имеем:

  1. Светильник жены (при нажатии на него срабатывает кнопка включения)
  2. esp 8266 12f (вроде)
  3. 4 банки АКБ от ноутбука
  4. зарядку для li-ion АКБ
  5. преобразователь 5 в 3,3в
  6. две планки диодов ws2812
  7. Светодиоды обычные белые (несколько)

Раздербаниваем светильник, удаляем все лишнее (оставляем в коробочке, вдруг понадобится светодиод такой). Далее льем в esp прошивку tasmota sonoff и настраиваем ее на работу с ws2812 (поэтому и кнопку со светодиодом подпаял как у sonoff, иначе сложно поймать режимы при первичной настройке tasmota). Подключаем ws2812, кнопку и светодиод (как у sonoff на их пины), и проверяем как это все работает. Режимы работы ws2812 задаются в командной строке tasmota, наигравшись с макетом упаковал стабилизатор и esp в отсек где были батарейки, а светодиоды вывел в торшер.
Далее задача была выполнить обещание о возможности включить свет и без внешнего питания. Тут меня жаба заела давать питание на esp и тратить драгоценные амперы АКБ. И я отдельной схемой вставил в торшер 4 банки и зарядник, а также, через найденный в коробке выключатель , запитал обычные светодиоды.
Получилось, что когда свет есть и esp работает, то идет зарядка АКБ, когда света нет, то отключается esp и можно включить обычные светодиоды кнопкой. Тут я протестил их и поймав пару зайчиков было решено их зажарить, взяв подстроечный резистор в той коробке, в которой был найден выключатель и в которую был кинут старый светодиод, беспощадно впаиваем в схему. Теперь мы можем регулировать яркость обычных светодиодов.
Все было упаковано и готово к работе.
Нажав на светильник ESP завелась и дала доступ к своей страничке. Там я настроил яркость ws2812 и клацал их включение (тут я понял что вместе с esp спрятал "родную кнопку включения" sonoff это предстоит исправить, но уже чуть позже). Тут и понадобился умный дом с его голосовым управлением и главное теперь вариантов у жены нет, придется им пользоваться. Голосом (шаблоны) она включает светильник и выбирает режим работы: романтик (эффект свечи), нео (плавное переливание нео цветов), диско (резкое дерганье цветов). Уровень фен-шуя повысился на несколько пунктов, умный дом перестал ему мешать, а стал удобным инструментом в его настройке.
Резервный акб обеспечивает непрерывное свечение светодиодов более 100 часов, опытным путем жена проверяла лично, осталась довольна.
Из необходимости в ближайшей доработке вынесение кнопки "sonoff" для включения вручную ws2812 и установка светодиода с плавной сменой цвета (либо старый, либо купить другой) и переключатель от резервной АКБ на 3 положения белый, переливающийся, выключен, и на данном этапе работы будут завершены.
Ссылка на команды для настройки тасмоты ссылка

Немного про MQTT tasmota
Настройка на привычные 0 и 1 вместо ON и OFF здесь
Настройка приема и отправки команд на один топик для включения и выключения возможно через rules tasmota в консоли tasmota вот таким правилом rule1 on power1#state do publish cmnd/название_в_тасмоте/POWER %value% endon затем включить правило командой rule1 1.
Как заставить диммер делать тоже самое я не смог найти, если кто найдет, напишите в комментариях.

Для управления я использую MQTT, есть у tasmota топик в котором она умеет принимать сразу несколько команд, но топик этот ничего не шлет и поэтому его надо добавить самому cmnd/название_в_тасмоте/backlog 11 (название_в_тасмоте можно скопировать из топика power выглядит он так stat/название_в_тасмоте/POWER)
Формат данных множественных команд: команда значение; команда2 значение; команда3 значение; примерно так power 1; fade 1; dimmer 80;
Пример режима диско power 1; fade 0; dimmer 100; Scheme 4; это резкое моргание
Режим нео power 1; fade 1; dimmer 100; Scheme 4; speed 8; это плавное переливание цветов
Выключаем power 0; или power off;
Все доступные команды можно посмотреть по ссылке и поиграться ими через командную строку в интерфейсе тасмоты, а уже потом переводить их в шаблоны поведения.

Создаем шаблон поведения смотрим как или читаем как и вводим код setGlobal("свойство", "значение"); 9 10 Свойство нужно заранее создать самому или выбрать уже имеющиеся (я его закинул в созданный простыми устройствами объект)
свойство - объект к которому привязываем топик mqtt "cmnd/название_в_тасмоте/backlog"
значение - набор параметров для передачи

Если необходимо отдельно управлять диммером (яркостью) создаем топик "cmnd/название_в_тасмоте/dimmer" и привязываем к диммеру. Остальным управление не делал, но думаю аналогично.
Управление питанием cmnd/название_в_тасмоте/POWER
Немного видео про настройку и работу с MQTT тут

Схема сборки с описанием лежит здесь.

P.S. Не ругайтесь за уровень пайки и сборки. Почти все из коробки с хламом.

Благодарю Skysilver за наставления и помощь в написании статьи.

Discuss (3) (6)

See also:
2020-10-26 Немного о безопасности.
2020-08-17 Переключение режима устройства долгим удержанием
2020-04-09 Автоматизация бэкапов (полный/мини) через модуль Backup от Eraser1981
2020-04-09 Добавление прокси в сценарий для обхода блокировки
2020-02-19 Правильно привязываем свойства и методы в настройках Модулей
2020-01-23 Как привязать метод к свойству или разберемся в структуре объектов
2019-10-03 Получение адреса по координатам.
2019-09-13 Ввод пин-кода или киношный экран разблокировки версия исправленная и доработанная
2019-09-12 Ввод пин-кода или киношный экран разблокировки
2018-11-12 Получение данных со стороннего сайта (аналог веб-переменным)
2018-09-26 Светильник на ws2812 + светильник с аккумулятором (часть прошивка)
2018-09-24 Светильник на ws2812 + светильник с аккумулятором (часть сборка)
2018-09-17 Немного про правильную перезагрузку.

Краснодар, Россия

На форуме: newz20