Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Arduino + Свет

С этим тегом используют

Электроника Ardublock Самоделки YouTube Своими руками Вертикальное видео Видео ВК Фотография Арт Ночь Девушки Кот Красота Все
5 постов сначала свежее
60
feeld
feeld
4 месяца назад
Arduino & Pi
Серия Свои умные светильники

Свои умные светильники часть 2⁠⁠

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

Для затравки


Этап второй - я назову его: Развитием.


Начну с конструкции и изменений, а так же что послужило причиной этих изменений:

Причины:

  • DC-DC преобразователь на 2 Ампера(3 Ампера в пике и с радиатором) не подходил. Он жутко грелся, а лента в пике по расчетам могла потреблять до 5 ампер, поэтому предыдущая конструкция была жутко доколхожена вторым DC-DC модулем в параллель для хоть какого то запаса по амперажу, но это тоже особо не помогло. Поэтому два дешевых модуля были заменены на XL4016E 9A. Так как они полностью удовлетворяют моим требованиям по размеру, мощности и цене.

  • Добавления акселерометра для одной очень замысловатой анимации.

  • Перенос порта питания на другое место и соответственно изменения модели под это дело.

И вот какую внутрянку я получил, после некоторых мытарств.

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Собственно сам стакан, поверх как и в прошлой версии одевается цилиндр с намотанной лентой. При необходимости, все можно разобрать и легко извлечь тот или иной компонент. Все на винтах и впаиваемых бонках.

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Вот так. На этом цилиндре намотана уже сама лента. (не промоделивал, так как не видел в этом смысла для себя, а занятие гнуть компоненты во фьюжене, это мега мучительно)

Поверх собственно ленты, на следующий выступ, одевается рассеиватель, а сверху скрепляется все крышкой.

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

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

В реальности цилиндр с LED лентой выглядит вот так:

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Пайка такого количества перемычек, изрядно умотала, но это того стоило, так как я получил полноценную матрицу свернутую на цилиндр и мог гораздо удобнее с ней работать, чем с намотанной по спирали лентой.

Это что касается конструкции и железа. Что касается софтверной части, ох и много же там было проблем. Ниже опишу и проблемы и все

  • Проект был сделан в скетче, что со временем усложнило его модификацию, отладку и работу с ним в целом. Работа в Arduino IDE мягко скажем, не была столь удобной. Поэтому проект был перенесен на VS Code в связке с PIO, где произошел рефакторинг и разделение всех функций на отдельные файлы прям как по ООП. (эх, если б я был профи и знал заранее, я бы не потратил столько времени на этот этап)

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

  • Отсутствие серверной части. Я хочу видеть подключенные лампы к сети интернет, на какой прошивке они сейчас, какой аптайм у них, какой город у пользователя и какая анимация включена. Иметь возможность перепрошивки удаленно на выбранную прошивку и возможность смены анимации так же удаленно. Удаленно в этом контексте, это через интернет, без открытия портов, знания IP адреса и тд и тп. Вообщем, статистическая и прочая информация для технической поддержки в будущем. Она может каким то образом изменятся, в дальнейшем, но фундамент необходимо сделать.

  • Отстутствие сервера для поддержки "интернета-вещей", тоесть лампой можно управлять только находясь в одной локальной сети, то это категорически не устраивало меня, все таки в современных реалиях, хочется видеть статус той же лампы онлайн и 24\7. А так же, это стесняло меня в некоторых анимациях, о которых я расскажу позже.

  • Как оказалось, фаза луны отображалась не в реальном времени, а расчитывалась по расчетам. Что в целом не плохо, но зная реальное время, эти расчеты не нужны. Тоже надо было пофиксить.

  • Так же, из за того что вся прошивка и все анимации были написаны под накрученную спиралью ленту, новая лампа с новой конструкцией естественно отображала все анимации неверно и не корректно, это затронуло все анимации и полностью изменение логики их работы.

    Вообщем, описывать все проблемы дословно, я не вижу смысла и так понятно, что багов лагов и проблем, там было ООЧЕНь много. Прям сверхдошиша. Не долго думая, приступил к исправлению.

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

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Интерфейс версии 2.0, адаптивный и под мобильные устройства и под ВЕБ версию.

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Блок системных настроек.

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

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Если доступно обновление.

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

Рассказывать можно долго, об абсолютно всех изменениях, но пожалуй это и 2 новые анимации заняли у меня больше всего времени.
1 анимация, это связь ламп или постучись в мою дверь)
В интерфейсе это выглядит вот так и суть её работы в следующем:

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Постучись в мою дверь.

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

И вот видео работы:

Я засимулировал работу второй лампы, так как сейчас второй собранной у меня нет в наличии, но уже проверял. работает и работает весьма быстро)

Устроено все весьма просто и стандартными методами. Протокол MQTT, свой сервер и базовая аутентификация, которая зашифрована и хранится уже в памяти ESP. + уникальный ID формируется из MAC адреса для каждого устройства, который не изменяется при перепрошивках или перезагрузках, возможно в будущем я упрощу этот механизм, но пока сам прототип работает и это радует. Это потребовало от меня множества усилий, но это одна из самых главных фич которые мне нравятся самому. Естественно для этого режима(как и для всех) работают настройки и установки такие как: якрость, высота подсветки, чувствительность и цвет) реализовано это всё с помощью акселерометра и вполне стандартных алгоритмов фильтрации шумов(спасибо универу, за специальность в области сигналов и фильтрации шумов и тд, наконец то пригодилось). Грубо говоря, ничего сложного.

Погодная анимация


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

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Погодная анимация

Тут, вы задаете ваш город, поселок или область, или даже известное место(например торговый центр) и дальше происходит магия. Светильник начинает получать погоду почти ровно из этого места. (самое ближайшее к нему где есть метеостанция отдающая данные в интернет)
А дальше, я эту погоду уже превращаю в соответствующие анимации. Облачно - лампа будет плавно мигать тусклым белым светом, если пойдет снег или дождь - то по лампе будут стекать синие или белые капли, если туман, то просто будет гореть тусклым белым светом, а если солнечно то будет светить ярко и желтым цветом, во время грозы и ливня, будет смешиваться режимы дождя и грозы) Бывает и такое, что лампа не знает такого состояния погоды, тогда она будет пульсировать синим цветом ровно как во время перепрошивки, сейчас это нужно мне для отладки, и регулярно записывается в логи которые отправляются мне на сервер и постепенно я фикшу все недостающие статусы)

Вот например, погода для Санкт-Петербурга и для Сочи. (1 и 2 видео соответственно). В СПБ- Облачно, а в Сочи шел небольшой дождь. (и да, я показываю на примере Марса)

Как обычно, на камере плоховато видно, но в живую результат гораздо лучше. Но либо тут уж я криворученька и снимать не умею. Автор не оператор)

Конечно же, смена погоды происходит автоматически и без участия пользователя. Лампа сама обновляет статус погоды раз в N времени, и если погода изменилась, то и отображение на лампе поменяется.

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

Так же, есть Температурный режим этой анимации. Он просто показывает цветом свечения, текущую температуру на улице. Диапазон можно задать самому, от -20 до + 30 градусов по умолчанию, где -20 это максимально синий цвет, а +30, максимально красный. Эти цвета так же можно изменить в настройках. И так же естественно все в Live режиме меняется.

Новая анимация луны

У меня остался бракованный плафон, так как принтер почему то решил что он допечатал. (да, я бракодел) и на нём я тестирую всякое.

Вот как выглядит секторность и фазы луны.
У анимации луны есть ряд настроек:
Режим работы:

  • Реалистичное время. (не думаю что стоит пояснять, что на небе - то на лампе)

  • Ускоренное время. (можно задать какое то количество минут, за которое луна сменится от полностью темной, до полной луны)

  • Ручной режим. ( на видео выше, мы можем изменить фазу вручную, от 0 до 12)

Интерпретация:

  • Реалистичная (Всегда горит строго 180 градусов луны) как и в реальной жизни, у луны всегда есть темная сторона)

  • Артистичная (В процессе того как луна меняет фазы, она как бы заполняется от 0 до 360 градусов и в итоге будет гореть вся сфера)

  • Минималистичная (всегда горит 1 из 12 столбцов, он перемещается как месяц) (на видео)

Ну и конечно остальные настройки, такие как цвет, яркость и тд. Кому что по душе.

Админка.

Ну и админку грех не показать. Очень быстро написал её, буквально за один два дня.

Свои умные светильники часть 2 Инженер, Электроника, Своими руками, Гаджеты, Esp32, Декор, Светильник, Луна, Планета, Космос, Ночник, Лампа, Освещение, Оригинально, Arduino, Фонарь, Пайка, Свет, Интерьер, Дизайн, Видео, Без звука, Вертикальное видео, Короткие видео, Длиннопост

Собственно моя удаленная админка. Тут я вижу некоторые статистические данные, которые могут мне помочь в решении каких то вопросов удаленно. А так же то, что я описывал в начале поста.

Что в планах дальше?

В планах дальше, это:

  • Ещё раз переработать интерфейс, сделать его уже с анимациями, желательно на React или чем то подобным, с меню и настройками. С базовой аунтентификацией пользователей и в целом как то поприятнее.

  • Доработать некоторые баги, например сейчас смена цветов не всегда происходит в Live режиме, это связано с JS и миллиардами запросов, к устройству.

  • Собрать полноценное Android приложение, зачатки уже есть, я могу с приложения изменять анимации и их параметры, но показывать пока не буду, так как это совсем ранний прототип и я только изучаю этот вопрос. Но у меня по сути дела, есть почти полноценный API для работы с устройством, так что вопрос написания приложения не кажется мне уж очень сложной задачей.

  • Интеграция в Apple Home и Алису. В Apple Home, тестово уже прокидывал, но крайне упрощенную версию лампы. С полноценной лампой пока не вышло, но работаю в этом направлении. В Алису, слышал что можно через MQTT, но на стадии изучения этого вопроса.

  • Интеграция с Home Assistance - можно считать сделана, так как будет через MQTT, а MQTT в устройстве уже есть, осталось написать пару функций и готово, возможно для самого HA надо будет написать своё дополнение, что бы пользователь не парился с добавлением кода в Configuration.yaml и тд. Вообщем как то надо это придумать попроще чем уже протоптанная неоднократно мною дорожка.

  • Многое многое другое.

Если вам интересна реализация этих планов, подписывайтесь тут или на мой тг. Там я буду чаще постить какие то отрывки которые не требуют оформления и выделения времени на написание поста)
https://t.me/magic_lamps

Всем мир)

Показать полностью 10 4
[моё] Инженер Электроника Своими руками Гаджеты Esp32 Декор Светильник Луна Планета Космос Ночник Лампа Освещение Оригинально Arduino Фонарь Пайка Свет Интерьер Дизайн Видео Без звука Вертикальное видео Короткие видео Длиннопост
13
12
A.Kristina
A.Kristina
8 месяцев назад
Интересный AliExpress

Классная светодиодная лента⁠⁠

Светодиодная лента с чипом WS2812B, где индивидуально работает каждый светодиод.

Важно! Для работы требуется источник питания DC 5V и светодиодный контроллер, без них лента работать не будет. Ссылка на ленту.

Показать полностью
Светодиоды AliExpress Товары Китайские товары Электроника Светильник Контроллер Arduino Свет Видео
5
50
Timeweb.Cloud
Timeweb.Cloud
10 месяцев назад
TECHNO BROTHER

Мой умный свет: или как я разработал свой модуль управления освещением⁠⁠

Автор текста: CyberexTech

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Привет, Пикабу!

В этой статье я хочу описать свой опыт разработки такого простого, но в тоже время самого используемого элемента «Умного дома». Речь пойдет о модуле управления освещением. Забегая вперед, хочу сказать, что данный проект был реализован еще в 2021 году, но в настоящее время потребовалась реализация еще одного модуля. Я решил совместить приятное с полезным, дополнительно обновить прошивку устройства и «перепроектировать» данный модуль с помощью современного ПО и само собой — поделиться с вами. Если стало интересно, то добро пожаловать под кат.

❯ Небольшая предыстория


Домашней автоматизацией я занимаюсь давно и застал те времена, когда еще не было доступных микроконтроллеров с беспроводной коммуникацией на борту (типа ESP8266), в основном использовались проводные решения на базе 1-Wire. И мой «Умный дом» не стал исключением.

Каждый начинающий «строитель» «Умного дома» понимает, что первым делом нужно научиться включать и выключать свет, чтобы эффектно удивлять друзей, управляя освещением со смартфона. В те времена это казалось магией :) Вот и я, закупившись на Алиэкспрессе поддельными двухканальными 1- Wire свичами DS2413P, решил реализовать управление светом. В итоге была собрана плата управления на базе купленных свичей и симисторным управлением нагрузкой. Данное устройство надежно проработало аж до 2021 года. Но летом того же года была жуткая гроза и по витой паре интернет провайдера прилетел мощный разряд, который унес в электронный рай сетевую карту сервера, USB 1-Wire адаптер, ну и плату управления освещением с эффектным взрывом симистора. Тогда я подумал, что пора завязывать с проводными решениями ибо гирлянда сгоревших устройств ни на секунду меня не радовала и я принялся за разработку беспроводного модуля управления освещением.

❯ Проектируем аппаратную часть


Условно мы можем разделить модуль на три сегмента:

  • Система питания;

  • Контроллер управления;

  • Система силового управления.


При проектировании принципиальной схемы устройства будем придерживаться «золотого» принципа: чем проще — тем лучше, а значит — надежнее. Поэтому в качестве системы питания будет реализована схема на базе экономичного импульсного преобразователя напряжения LNK306GN, который доказал свою надежность временем и работой в аномальных условиях.

Краткая информация о LNK306GN:

LNK306GN — это понижающий преобразователь с наименьшим количеством внешних элементов.
Серия микросхем LinkSwitch-TN специально разработана для замены всех неизолированных источников питания с линейным питанием и питанием от конденсаторов в диапазоне выходного тока менее 360 мА при равной стоимости системы, обеспечивая гораздо более высокую производительность и энергоэффективность.
Устройства LinkSwitch-TN объединяют в монолитной IC силовой полевой МОП-транзистор с напряжением до 700 В, генератор, простую схему управления включением/выключением, высоковольтный импульсный источник тока, генератор частот, схему ограничения тока и схему отключения при перегреве.

В качестве «мозга» нашего устройства, будем использовать микроконтроллер от компании Espressif Systems ESP8266. А для силового управления нагрузкой, то есть нашими лампочками, будем использовать связку оптопары MOC3052M и симистора BT136-600. Почему не реле? — спросите вы, ну не люблю я реле, они щелкают и габаритные. Ниже можно видеть результат разработки принципиальной схемы устройства. Для разработки схем и печатных плат я использую открытое ПО KiCAD.

Принципиальная схема модуля:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Как я уже говорил ранее, источник питания реализован на высоковольтном импульсном преобразователе LNK306GN, который позволяет максимально упростить схему источника питания. На выходе источника формируется напряжение в 3,3 В, данное напряжение устанавливается обратной связью, которая организована с помощью резистивного делителя напряжения R4 и R5. Данная схема питания не имеет гальванической развязки с сетью, поэтому нужно обеспечить эффективную изоляцию платы для исключения поражения электрическим током. Первоначальный запуск устройства должен выполняться с последовательно подключенной нагрузкой (лампа накаливания 60 Вт) в цепи питания, чтобы исключить повреждения в случае ошибки при монтаже компонентов.

Трассировка платы:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Визуализация печатной платы:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Хочется добавить, что данная плата разрабатывалась с учетом современных реалий, здесь изменен форм-фактор микросхемы LNK306GN на SOP-7 в старой версии модуля используется тип корпуса DIP-7.

❯ Изготовление печатной платы


На тот момент, плата изготавливалась по канонам DIY, с помощью фоторезиста и фотошаблона. Но в настоящее время я пользуюсь для изготовления прототипов плат лазерным методом.

Активация фоторезиста с помощью фотошаблона:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Плата прототипа модуля после монтажа электронных компонентов:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

❯ Разработка корпуса


Разработка корпуса устройства выполнялось в открытом ПОFreeCAD. Корпус довольно тривиальный и не содержит сложных элементов.

Визуализация корпуса с моделью платы:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Далее модель корпуса распечатывается на 3D принтере, в качестве материала печати используется HIPS пластик.

Устройство в собранном виде:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

AirTag для сравнения габаритов устройства:

❯ Разработка прошивки и описание интерфейса


Разработка микро ПО устройства велась в средеArduino IDE, обновленная версия реализована на моей, ставшей уже базовой, прошивке для умный устройств. Для улучшения пользовательского опыта, в прошивке применены следующие технологии:

  • Captive portal;

  • Multicast DNS;

  • MQTT Auto Discovery;

  • SSDP.


Captive portal— это сервис, на который принудительно перенаправляется пользователь, который выполнил подключение к устройству. Данный сервис работает только в режиме «точки доступа» при первоначальной конфигурации устройства. При отсутствии сетевого соединения или при первоначальной настройке, устройство создает беспарольную точку доступа с именемCYBEREX-Light. При подключении к данной точке доступа, пользователь автоматически будет перенаправлен на страницу авторизации для выполнения первоначальной конфигурации устройства. Для конфигурации устройства необходимо ввести пароль по умолчанию "admin".

Ниже приведены несколько скриншотов веб интерфейса устройства.

Страница входа:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Главная страница с элементами управления:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Конфигурация обмена по MQTT протоколу:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Multicast DNS — данный сервис используется для поиска устройств по доменному имени в локальной сети без использования предварительно настроенного DNS сервера. Другими словами, пользователь может получать доступ к устройству без необходимости ввода IP адреса. Ниже пример использования данного сервиса, где доступ к устройству выполняется с помощью его локального имени 11395386.local.

Страница конфигурации управления устройством через API:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Как вы можете видеть на скриншоте, в устройстве реализован доступ управления каналами модуля по API. Данная функция необходима для прямого взаимодействия с устройством без посредников в виде MQTT сервера или системы «Умного дома». Эту функцию можно использовать для подключения беспроводных выключателей, пример реализации в одном из моих проектов:

Демонстрируемый беспроводной выключатель также реализован на ESP8266, в качестве элементов питания использует две батарейки формата ААА. Данный выключатель проработал уже три года на одних элементах питания, благодаря режиму DeepSleep.


А еще функция данного API применяется в моей «умной колонке» (статья первая,статья вторая) для управления освещением. Ниже пример кода для реализации прямого управления с помощью «умной колонки»:

Код управления по API | Python:

elif cmd == 'lightON':

try:

contents = urllib.request.urlopen("http://11395386.local/?page=status&apikey=UkFA7").read()

response0 = json.loads(contents)

if response0['c1'] == 'Off1' and response0['c2'] == 'Off2':

text = "Включила свет"

if response0['c1'] == 'On1' and response0['c2'] == 'Off2':

text = "Первый светильник уже включен, включила второй!"

if response0['c1'] == 'Off1' and response0['c2'] == 'On2':

text = "Второй светильник уже включен, включила первый!"

if response0['c1'] == 'On1' and response0['c2'] == 'On2':

text = "Свет уже включен! Но я могу выключить, если попросите!"

if response0['c1'] == 'Off1':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=1')

if response0['c2'] == 'Off2':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=2')

tts.va_speak(text)

except:

tts.va_speak("Сожалею, но возникла ошибка, попробуйте позже!")

elif cmd == 'lightOFF':

try:

contents = urllib.request.urlopen("http://11395386.local/?page=status&apikey=UkFA7").read()

response0 = json.loads(contents)

if response0['c1'] == 'Off1' and response0['c2'] == 'Off2':

text = "Свет уже выключен! Но я могу включить, если попросите!"

if response0['c1'] == 'On1' and response0['c2'] == 'Off2':

text = "Второй светильник уже выключен, выключила первый!"

if response0['c1'] == 'Off1' and response0['c2'] == 'On2':

text = "Первый светильник уже выключен, выключила второй!"

if response0['c1'] == 'On1' and response0['c2'] == 'On2':

text = "Выключила свет!"

if response0['c1'] == 'On1':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=1')

if response0['c2'] == 'On2':

response2 = requests.get('http://11395386.local/?page=control&apikey=UkFA7&switch=2')

tts.va_speak(text)

except:

tts.va_speak("Сожалею, но возникла ошибка, попробуйте позже!")

❯ Интеграция в «Умный дом»


Интеграция устройства в систему «Умного дома» реализована с помощью MQTT Auto Discovery.
MQTT Auto Discovery— сервис, позволяющий максимально упростить интеграцию нашего устройства в систему «Умного дома». В моем случае, в качестве системы «умного дома», я использую Home Assistant, поэтому сервис MQTT Auto Discovery адаптирован именно под неё. Ниже код реализации MQTT Auto Discovery в микро ПО устройства:

Код реализации MQTT Auto Discovery | С++:

void send_mqtt(String tops, String data, String subscr){

// Анонсируем объекты для Home Assistant [auto-discovery ]

// Анонсируем объекты один раз при успешном подуключении и при запуске устройства

// if(!annonce_mqtt_discovery){

mqqt_d_annonce("CL1", "c1", "On1", "Off1");

mqqt_d_annonce("CL2", "c2", "On2", "Off2");

mqqt_d_annonce("CL3", "c3", "On3", "Off3");

annonce_mqtt_discovery = true;

// }

// Отправляем данные

client.publish(tops.c_str(), data.c_str());

client.subscribe(subscr.c_str());

}

void mqqt_d_annonce(String namec, String cn, String on_d, String off_d){

String top = String(settings.mqtt_topic) +"/jsondata";

String control = String(settings.mqtt_topic) +"/control";

char jsonBuffer[1024] = {0};

DynamicJsonDocument chan1(1024);

chan1["name"] = namec;

chan1["state_topic"] = top;

chan1["command_topic"] = control;

chan1["payload_on"] = on_d;

chan1["payload_off"] = off_d;

chan1["state_value_template"] = "{{ value_json."+cn+" }}";

serializeJson(chan1, jsonBuffer, sizeof(jsonBuffer));

String top_to = "homeassistant/light/"+cn+"/config";

client.publish(top_to.c_str(), jsonBuffer, true);

}


После успешного подключения устройства к сети и настройки MQTT соединения, в «объектах» Home Assistant появятся объекты нашего устройства, пользователю останется только настроить карточку объектов на панели управления, чтобы иметь возможность управлять данным модулем. Ниже приведен пример кода карточки объектов:

Пример кода карточки объектов:

type: horizontal-stack

cards:

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl1

name: Свет 1

show_state: true

hold_action:

action: more-info

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl2

name: Свет 2

show_state: true

hold_action:

action: more-info

- show_name: true

show_icon: true

type: button

tap_action:

action: toggle

entity: light.cl3

name: LED

show_state: true

hold_action:

action: more-info

В результате карточка объектов будет выглядеть следующим образом:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Осталось упомянуть о последнем сервисе SSDP.
Чтобы как-то «повелевать» всем зоопарком моих умных устройств, был реализован данный сервис.

SSDP (Simple Service Discovery Protocol) — сетевой протокол, основанный на наборе протоколов Интернета, служащий для объявления и обнаружения сетевых сервисов. SSDP позволяет обнаруживать сервисы, не требуя специальных механизмов статической конфигурации или действий со стороны серверов, таких как DHCP или DNS.
Для моего удобства, я написал мобильное приложение, которое позволяет в три нажатия обнаружить и сконфигурировать устройство без лишних хлопот и похода в роутер. Ниже представлены скриншоты приложения, ссылка на приложение будет размещена в конце статьи.

Приложение для поиска устройств в сети:

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

❯ Использование аппаратного выключателя


Дабы не исключать классическую схему управления освещением с помощью обычного выключателя, который обычно встраивается в стену, в устройстве также реализован вход (J5) для подключения аппаратного выключателя. Данное решение позволяет без дополнительных переделок интегрировать модуль в существующую систему освещения.

❯ Итоги


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

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

Ссылки к статье:

  • Проект печатной платы;

  • Исходный код прошивки устройства;

  • Модель корпуса устройства;

  • Мобильное приложение для поиска устройств.

Мой умный свет: или как я разработал свой модуль управления освещением Электроника, Timeweb, Техника, Сборка, Гаджеты, Свет, Умный дом, Изобретения, Arduino, Познавательно, Инженер, Видео, YouTube, Длиннопост

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

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

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

  • Azure Stack HCI — что такое, как улучшить и пользоваться;

  • Каждая капля на счету или как я счетчик умным делал;

  • Простое, но очень нужное устройство. Сигнализатор открытой двери холодильника.

Показать полностью 14 1
[моё] Электроника Timeweb Техника Сборка Гаджеты Свет Умный дом Изобретения Arduino Познавательно Инженер Видео YouTube Длиннопост
7
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
1
Schlitzohr
6 лет назад

Rammstein - Puppe. Адская куколка, синхронизированная с шоу⁠⁠

Есть у меня одно хобби: заниматься всякой бесполезной хернёй. Ну вот одна из...

Лампы сделаны из алюминиевого профиля, внутрь которого вклеены ленты с  управляемыми WS2812b. Все это управляется с ардуины, в которую заброшен код с разрисовкой света.

Кукла автономная, ни к чему не подключена. Включается на слове "puppe" в песне и дальше по тайм-коду всё синхронизировано с живым шоу. Так как шоу у Rammstein в этой песне запрограммировано, начиная с куплета и до конца, то вовремя включенная кукла всегда будет работать вместе с шоу-программой.

А еще вся электроника помещена кукле в голову(2 светодиода на 3Вт каждый, ардуина, аккумуляторы, выключатель), поэтому вполне можно "оторвать голову кукле".

[моё] Rammstein Puppe Светодиоды Arduino Самоделки Свет Видео
10
12
Huggy.Wuggy
Huggy.Wuggy
9 лет назад

Новогодняя подсветка⁠⁠

Arduino и Led лента делают из обычной комнаты прибежище джедая!

Темная сторона ждёт тебя:

Новогодняя подсветка Свет, Подсветка, Сила, Джедаи, Новый Год, 2016, Arduino, Своими руками

Хотя светлая сторона не менее эффектная

Новогодняя подсветка Свет, Подсветка, Сила, Джедаи, Новый Год, 2016, Arduino, Своими руками

К слову с помощью Arduino можно настроить любой цвет, а если как я заморочится то и сделать управление со смартфона + красивые эффекты. Ну а к новому году - неплохая гирлянда

Новогодняя подсветка Свет, Подсветка, Сила, Джедаи, Новый Год, 2016, Arduino, Своими руками

Всем удачи и да прибудет с вами сила!

Показать полностью 3
[моё] Свет Подсветка Сила Джедаи Новый Год 2016 Arduino Своими руками
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии