Светильник на ардуино своими руками

Обновлено: 01.05.2024

Представляем очередной проект на микроконтроллере Ардуино — «Умный светильник с Bluethooh управлением». Для изготовления проекта потребуется плата Arduino, Bluethooh модуль, датчик движения, реле, блок питания на 12В и светодиодная лента, а также смартфон или планшет с ОС Android для которого мы напишем приложение. В статье вы найдете список всех необходимых деталей и подробное описание проекта.

Как сделать на Ардуино светильник с Блютуз

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

Светильник на Arduino с Bluethooh управлением

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • Bluethooh модуль;
  • PIR датчик движения;
  • реле SRD-05VDC-SL-C;
  • блок питания на 12 В;
  • LED-лента или LED-лампа;
  • мультиметр, провода, паяльник и т.д.

Скетч для Блютуз светильника на Arduino

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

Подсветка лестницы на Arduino

Подсветка лестницы на Arduino и адресной светодиодной ленте:

  • 3 режима
  • Датчик на вход и на выход
  • Автоматическая яркость




ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

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

Светильник управляемый жестами на Arduino

image

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

Данный проект отнял у меня очень много времени, которого у меня и так всегда не хватает.
Первый вариант светильника я собрал очень быстро и он прекрасно работал у меня на макетной плате, но когда я перенес его на постоянное место в корпус, вот тут все и началось, вылезли все проблемы с подвисаниями, ложными срабатываниями и прочими неприятностями. Погуглив в интернете, я нашел на иностранных сайтах, множество жалоб связанных с проблемами датчика APDS9960, но не нашел решений этих проблем. Пришлось понемножку тратить время на изучение Datasheet этого датчика и на понимание его работы. В конце концов это принесло свои плоды и я смог написать стабильно работающий код.

И так, все по порядку.

Описание светильника

Основной упор в этом светильнике я сделал не на визуализацию, а на управление жестами, все остальные функции второстепенные.

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

Если после включения лампы начнем листать влево, то увидим динамические световые эффекты, такие как «Огонь», «Матрица», «Лава лампа», «Радуга», «Конфетти», «Искры», «Огненный светильник». Если Вам нужно вернуться на обычный светильник, то вместо перелистывания, можно выключить лампу жестом от себя и включить любым из трех жестов.
Выключение производится жестом от себя.

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

Я не уделял особого внимания визуальным эффектам, так как планирую сделать вторую версию лампы на контроллере Wemos D1 mini. В которой планирую довести все до идеала. По этой же причине я пока использую только одну линейку светодиодов, состоящую из 4 планок ws2812b, вместо четырех.

Прерывания APDS9960

Собственно основные проблемы светодиодной лампы связаны именно с ним. Прерывания в apds9960 живут своей жизнью, может сработать от чего угодно например от ЭМ помехи или от нахождения рядом с датчиком человека, от пульсации по питанию и возможно от чего то еще.


По мере изучение пришло понимание от чего происходят ложные срабатывания прерываний. Основная проблема — это случайные отражения ИК сигнала. Производитель рекомендует покрыть датчик и все вокруг него черным резиновым напылением. У меня нет такой краски и я не стал с этим заморачиваться. Хотя наверняка это могло бы немного уменьшить число ложных срабатываний.

Я написал код который фильтрует все случайные срабатывания, но столкнулся еще с одной проблемой. После срабатывания прерывания информация о жесте передается по шине I2C не моментально, а имеет определенную задержку. А если питание из-за адресной светодиодной ленты зашумлено, то время передачи с учетом этих помех всегда будет разным. Пришлось учитывать этот факт и по новой переписывать код определения жестов.

Определение жеста

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

Для того, что бы улучшить стабильность распознавания жестов, так же пришлось в библиотеке уменьшить чувствительность приемника. Для этого нужно в файле SparkFun_APDS9960.h заменить строку:

if( !setLEDBoost(LED_BOOST_300) )
на
if( !setLEDBoost(LED_BOOST_150) )

Если Вы скачали библиотеку из этой статьи, то ничего делать не нужно, там уже все исправлено.
Я так же экспериментальным путем подобрал ток светодиода 50 мА, при котором жесты определяются наиболее стабильно и нет надобности насиловать инфракрасный светодиод, током 100 мА.

А так же я допустил ошибку, разместив микроконтроллер в нижней части светильника, а датчик жестов в верхней крышке. Из-за этого, для соединения arduino и apds9960, пришлось использовать провода длинной 30 см. Что тоже добавило дополнительной нестабильности работы датчика. В итоге я программным путем победил все эти проблемы.

Схема


Для питания устройства я использую зарядное устройство от моего смартфона, с напряжением выхода 5В и током 2А. Но на самом деле светильник при включенном белом свете на максимальной яркости, не потребляет выше 1,3 А. По этому подойдет любой источник питания с выходным током не менее 1,3А.

Стабилизатор dc-dc mini360, можно заменить на любой другой понижающий преобразователь напряжения, с выходным током не менее 150 мА.

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

Вместо Ардуино Нано можно использовать контроллер Arduino UNO или его клоны.

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


Используемые компоненты
Программный код для Ардуино

Код разбит на две части. В первой части находится основной код, который работает с сенсором, а во второй части находится код всех световых эффектов.

Вы можете сами добавить любой эффект по аналогии с моим кодом, но главное не забудьте добавить функцию выхода по жесту из зацикленного эффекта. Для этого нужно добавить в конце цикла, следующую строку if(check_int()) return;

Описание основных функций программы
processingGesture() обрабатывает прерывания от датчика жестов.
processingProximity() обрабатывает прерывания от датчика приближения.
gesture_int() — обработчик прерывания от датчика жестов.
proximity_int() — обработчик прерывания от датчика приближения.

Описание констант

APDS9960_INT — вход для внешнего прерывания. В Arduino Nano и UNO всего два таких входа, 2 и 3.

PIN — здесь нужно указать выход на светодиодную ленту. Можно указывать любой цифровой пин к которому подключены планки ws2812b.

NUM_PIX — здесь указываем количество адресных светодиодов в используемой ленте.
range — предел погрешности от 0 до 10. Если при регулировке яркости зафиксировать руку над датчиком на 2 сек, то показания должны сохраниться, если же показания не сохраняются, то увеличивайте постепенно предел погрешности.

Видео демонстрирующее работу светильника
Итоги

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

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

Умный светильник для «богатых» своими «ленивыми» руками, это же «просто» и удобно


Давным-давно, чтобы помыть посуду или приготовить пищу нужно было включить светильник над мойкой. Это была переделанная настольная лампа.

Мне не нравилось нажимать маленький выключатель мокрыми руками, потому что он коммутировал 220 вольт на лампу накаливания.


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

  • Сделать включение/выключение света на кухне бесконтактным;
  • Равномерно освещать мойку, стол для готовки и плиту;
  • Экономить электроэнергию, за счёт замены лампы накаливания на светодиоды.

Корпус взял промышленный (пыле, влагозащищённый). Поскольку лента на 12 вольт, то в блоке разместился блок питания с 220 В на 12 В, плата гальванической развязки для управления лентой на базе TLP250 (оптопара) и управляла всем этим ардуино в компактном исполнении.
Плата гальванической развязки у меня осталась от старого проекта. Когда-то делал подсветку для минибара у себя в тумбочке. При открывании двери сенсорная площадка фиксировала изменение ёмкости и включала мягко переливающийся свет. То есть, плата хорошо подходила для текущего проекта, оставалось только обрезать всё лишнее. На плате стоял линейный преобразователь на 5 вольт, с него запитал ZUNo.

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


Включать свет стало удобнее и безопаснее. Он крепился вверх «ногами» к дну кухонного шкафчика и воде с мокрых рук попасть внутрь было тяжелее.

Выводы по предыдущему блоку управления

Освещение рабочей зоны кухни стало равномернее и приятнее, из-за неестественной цветопередачи моей светодиодной ленты у некоторых продуктов менялся цвет. Например: морковка казалась гораздо аппетитнее из-за более яркой окраски. Но сильно это не мешало и большого вреда, буду надеяться, не нанесло.

С бесконтактным включением/отключением всё оказалось хуже. Оно работало. Но после 5 минут в отключенном состоянии начинались всполохи на светодиодной ленте. Переделывать схему на оптопарах не стал и оставил всё как есть. Только для включения и выключения стали пользоваться новым выключателем. Его местоположение и форма всем понравились.
За два года использования на корпусе и внутри него скопился жир и прочие соединения выделяемые во время приготовления пищи. Данный налёт частично проник и в корпус через отверстия для ввода проводов. Но из-за глянцевой поверхности корпуса это вещество сконденсировалось в желатиноподобную массу. На ощупь приятную, без запаха и… (на вкус пробовать не стал). Сделал несколько фотографий пятна в виде зародыша дракона.



На стенах же данное вещество превращается в ужасный налёт, который не просто отмывается.

Что стало

Порывшись в закромах нашёл недоделанный модуль расширения для ZUNo. ZUNo – это ардуино подобная плата для конструирования собственного устройства, совместимого с умным домом Z-Wave. Программируется из среды ардуино.

Характеристики от производителя:
  • 28 kB Flash memory for your sketches
  • 2 kB RAM available
  • Z-Wave RF transmitter at 9.6/40/100 kbps
  • 26 GPIO (overlaps with special hardware controllers)
  • 4 ADC
  • 5 PWM
  • 2 UART
  • 1 USB (serial port)
  • 16 kB EEPROM
  • 1 SPI (master or slave)
  • 4 IR controllers, 1 IR learn capability
  • 1 TRIAC/ZEROX to control dimmer
  • 3 Interrupts
  • 1 Timer 4 MHz
  • I2C (software)
  • 1-Wire (software)
  • 8x6 Keypad Scanner (software)
  • 2 service LED, 1 service button
  • 1 user test LED

Модуль расширения делает из ZUNo полноценную отладочную плату, которую после отладки прототипа можно использовать как законченное устройство.

Немного информации от производителя:
  • One 0-10 V analog output — control industrial dimmers
  • Up to four PWM or switch outputs (up to 5 A per channel) — control contactors, switches, halogen bulbs or LED strips
  • Up to eight digital 0/3 V inputs or outputs — connect various low voltage digital senors and actors
  • Up to four digital 0/3, 0/5 or 0/12 V digital or analog inputs — connect industrial 10 V sensors or any Arduino-compatible sensor
  • RS485 or UART — for industial meters
  • OneWire — for DS18B20 or other sensors

Для своего проекта мне нужно 3 мощных транзистора для коммутации 12 вольт на светодиодную ленту и преобразователь с 12 вольт на 5 вольт, для питания ZUNo. Остальная периферия модуля расширения не напаяна или не протестирована.


В этой части схемы не хватает диода на питание, для защиты от «переполюсовки» и резисторы на затворах силовых полевых транзисторов надо было подключать на затвор, а не перед ограничивающим резистором. Об этом ещё напишу в выводах.

Поставляется данный модуль расширения в корпусе от Gainta. Мой предыдущий блок управления тоже был в корпусе от этой фирмы, но другого размера. К сожалению крепления на модуле не подошли к старому корпусу, а сверлить новый не хотелось, оставил старый корпус. Плату «посадил» на термоклей.


Немного о программировании Arduino и ZUNo

Z-wave устройства обязательно имеют некоторое количество классов. Классы описывают функции устройства и интерфейс взаимодействия. Например, мой светильник управляет светодиодной лентой, состоящей из трёх цветов (красный, зелёный, голубой). Эти функции выполняет класс Switch multilevel. Если мы добавим его в скетч, то сможем удалённо менять яркость одного из цветов. Чтобы управлять тремя цветами, нужно сделать три экземпляра этого класса. Более подробно и детально говорить об этом не буду. Потому что рутинные манипуляции с классами скрыты для пользователей ZUNo понятием «канал». Например, мне нужны три класса Switch multilevel, значит в коде должно появиться 3 канала Switch multilevel и несколько функций callback'ов для управления по радио. Как же это сделать? Ещё нужно добавить класс Switch basic, чтобы включать и выключать светильник по нажатию одной кнопки (из интерфейса контроллера сети), а не настраивать 3 канала каждый раз.

Нужно зайти на сайт разработчиков, где выложены примеры z-uno.z-wave.me/Reference/ZUNO_SWITCH_MULTILEVEL. К каждому классу, поддерживаемому ZUNo есть описание и пример. Далее копируем и вставляем в свой скетч предлагаемые функции. Теперь в скетче есть три канала switch multilevel и 6 функций callback для реакции на команды по радио. Я не сильно искушён в классах Z-Wave, поэтому моё предыдущее устройство со светодиодной лентой работало с этим набором классов.

Объявлялись каналы так:

Заголовок спойлера

Это приводило к генерации следующих виджетов в контроллере после добавления в сеть:


Для настройки цвета приходилось в меню контроллера открывать и настраивать каждый цвет отдельно. Это не удобно и медленно. Однако, мне повезло. оказалось я не одинок. О нас подумали и сделали канал z-uno.z-wave.me/Reference/ZUNO_SWITCH_COLOR. Теперь в скетче только один канал и две callback функции. В меню контроллера настройка цветов выполняется как отдельно по каждому цвету, так сразу всех, путём выбора из палитры.


А в меню контроллера это выглядит так:


Следующая функция отвечает на запросы по радио. Придти может запрос на чтение состояние одного из каналов цветов.


А это функция для задания цвета из интерфейса контроллера.


Вот и весь код, который нужно добавить, чтобы превратить скетч arduino в скетч для ZUNo.

Заключение

После сборки и установки все заявленные задачи были выполнены. Однако, привычка включать свет выключателем осталась (очень уж удобно получилось). Бесконтактный выриант включения тоже работает. Из недостатков хочу отметить мерцание светодиодной лампы в течение секунды после подачи питания на блок управления. Это вызвано долгой инициализацией периферии ZUNo. В этот момент на ножках непредсказуемое состояние. Думаю подтягивающий резистор на затворе транзистора исправит ситуацию если его поставить после ограничивающего резистора. Если же код инициализации настраивает ножки на выход и меняет логические уровни целенаправленно, можно поэкспериментировать с RC-фильтром, который не будет пропускать короткие импульсы. Пока не делал, и возможно, не сделаю никогда!

Выводы

ZUNo и модуль расширения к ней сильно упрощают “домашнее техническое творчество». Однако, считаю эти продукты очень дорогими и если бы я работал в другом месте и вокруг меня не валялось бы «недоиспорченное» оборудование Z-Wave, то делал бы всё на ESP8266. Во время разработки узнал новый «стандарт» маркировки проводов от блока питания.


Теперь чёрной полосой помечается не только земля, но как и в моём случае «положительный» провод. Для модуля расширения это оказалось важно. Вышел из строя преобразователь на 5 вольт LM2594 (Цена в Чип и Дип около 200 рублей). Надеюсь, в следующей версии модуля расширения будет стоять защитный диод от «переполюсовки». А я буду проверять полярности питающих проводов. Ещё недостаток связан с корпусом. Корпус выглядит хорошо, но подключить провода без пинцета к клеммникам у меня не получилось. Надеюсь, что будет версия с другими клеммниками (для подключения проводов сверху, или под углом).

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


Это всё, что осталось от процесса сборки и отладки.

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

Невероятно эффектная цветомузыка на Arduino и светодиодах

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

Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.


Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!

Инструкция


Схема очень простая!

Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.

В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.

Сам скетч и библиотеку FFT нужно скачать здесь и здесь.

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

В момент первого включения нужно сделать пару настроек:

Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.

Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:

1=60 светодиодов
2=120 светодиодов
3=180 светодиодов

По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.

Алгоритмы

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

Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.

Световая полоса: в пиках освещается вся полоса.

Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.

Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.

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

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

Цветовые схемы

Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.

Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.

Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.

Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.

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

Светильник на адресной ленте своими руками

Для этого проекта нам потребуется:

  • плата Arduino Nano;
  • корпус для светильника;
  • адресная лента WS2812B;
  • USB провод;
  • включатель, тактовые кнопки;
  • провода, припой, изолента, термоусадка.

Схема сборки светильника размещена ниже. Для подключения тактовых кнопок к микроконтроллеру используются цифровые пины 8, 10, 12. Для подключения обычного светодиода для индикации работы светильника и декоративной подсветки (можно подключить несколько) используется пин 6. Управление светодиодной адресной лентой производится от пина 4, который подключен к WS2812B через резистор 220 Ом.

Сборка схемы светильника с лентой ws2812b

Первая кнопка, подключенная к 8 пину, отвечает за изменение яркости ночного светильника на Ардуино. Вторая кнопка (пин 10) меняет оттенок или скорость мигания светодиодов. Третья кнопка меняет режимы работы ночного светильника. После сборки схемы, можно загрузить программу в микроконтроллер. Для прошивки потребуется установить библиотеку Adafruit NeoPixel для адресной ленты.

Скетч. Светильник на адресной ленте Ардуино

Пояснения к коду:
  1. переключения режимов происходят с помощью цикла while и изменения переменной w . При желании вы можете добавить свои режимы работы;
  2. значения переменных brign (яркость) и d (задержка) ограничены, по достижении максимального значения (150), переменные обнуляются.

Сборка светильника на адресной ленте WS2812B

Если у вас есть возможность вырезать ночной светильник Ардуино на лазерном станке из фанеры, то можете скачать макет для резки здесь. Кнопки располагаются в боковой части основания, для них специально предусмотрены отверстия. Крепятся кнопки на термоклей или суперклей, а сам корпус склеивается на клей ПВА. Светильник можно подключить через USB кабель к зарядке от смартфона или к компьютеру.

Все детали, вырезанные на лазерном станке (макет корпуса можно скачать в формате CDR здесь), следует прошкурить. Электрическая схема на Arduino Nano размещается в нижней части корпуса, как показано на фото. Перед окончательной сборкой желательно еще раз проверить работоспособность программы. Кроме адресной ленты в схеме использовались обычные светодиоды для дополнительной подсветки.

Не используйте в светильнике слишком много светодиодов, так как для этого потребуется отдельный источник питания. Каждый светодиод потребляет 60 мА при максимальной яркости, т.е для блока питания в 1 Ампер следует подключать не более 15 светодиодов ws2812b. 15 светодиодов будет потреблять 960 мА = 60 x 15, поэтому стандартной зарядки или USB порта компьютера будет вполне достаточно.

Заключение. Как видите, сделать своими руками светильник из адресной светодиодной ленты WS2812B довольно просто. Другие, не менее интересные, проекты с адресной лентой вы можете посмотреть в разделе проекты с LED лентой Ардуино на нашем сайте. Все вопросы, связанные с прошивкой Arduino Nano или сборкой схемы светильника на Arduino вы можете задать в комментариях к этой записи.

Для проекта мы использовали светодиодную ленту, которая включается за счет реле SRD-05VDC-SL-C. Это 1-канальный релейный модуль с током питания 5 Вольт, максимальное напряжение на контактах до 250 Вольт, максимальный переключаемый ток 20 Ампер. Плата Ардуино и LED-лента запитаны от блока питания 12 В. Управление светильником осуществляется за счет пульта ДУ и ИК приемника на Ардуино.

Светильник с управлением с пульта своими руками

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • ИК приемник;
  • любой пульт ДУ;
  • реле SRD-05VDC-SL-C;
  • блок питания на 12 В; ;
  • провода и изолента.

Скетч для светильника на Ардуино с пультом

Как сделать умный светильник своими руками. Лучше, чем Xiaomi в магазине

Favorite

В закладки

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

В данной нише представлено сразу несколько удачных моделей от Xiaomi и суб-брендов компании.

Модели имеют свои преимущества, но и недостатков у гаджетов хватает.

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

Китайские производители выпустили уже несколько поколений умных ламп, а их возможности находятся на уровне первых моделей 7-летней давности.

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

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

Какие компоненты потребуются


Все необходимые компоненты можно разделить на электронную начинку и корпус. Всю необходимую электронику можно заказать на AliExpress:


Корпус и элементы каркаса приобретаются или заказываются в любом строительном магазине.

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

Как прошить умную начинку

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


1. На Mac или Windows скачиваем и устанавливаем среду разработки Arduino IDE.

2. Скачиваем и устанавливаем библиотеки Java Runtime Environment для работы приложения.

3. Скачиваем и устанавливаем кекст (драйвер) для работы с китайскими аналогами платы Arduino и производных от нее модулей. Для этого переходим на GitHub и загружаем последнюю версию.


4. Скачиваем архив проекта со страницы Алекса Гайвера и распаковываем его на компьютере.

5. В папке с проектом находим папку libraries и копируем ее содержимое в /Documents/Arduino/libraries.

6. В архиве находим файл прошивки GyverLamp_v1.5.5.ino (или более свежую версию) и открываем его в Arduino IDE.


7. На первой вкладке проекта находим ссылку для менеджера плат и копируем ее.



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

Как спаять всю электронику



Тестовая сборка компонентов на макетной плате

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

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



Схема сборки компонентов при использовании Wemos mini

Схема предельно простая и понятная. Привожу оригинал с сайта автора.

Даже люди без опыта пайки без труда справятся со сборкой данного проекта.



Схема сборки компонентов при использовании NodeMCU

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

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



Проверка работоспособности

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

Как сделать корпус

Когда электронная начинка будет готова, нужно будет собрать для нее корпус.

В качестве основного крепления будет использоваться пластиковая труба 50-го диаметра. Диодная матрица идеально охватывает ее с наружной стороны.

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



Важный момент. Для лучшей подачи питания следует соединить соответствующие контакты на обратной стороне матрицы

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

Для основания нет единого решения, все опять же будет зависеть от используемого плафона. У одних нижний торец может идеально закрыться заглушкой для трубы диаметром 100мм, у других найдется подходящая пластиковая емкость, из которой придется вырезать дно, а третьи просто напечатают заглушку на 3D-принтере.



Огромная самодельная диодная лампочка

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

Последним сложным решением будет подвод питания.

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



Просверлил отверстие под штекер питания при помощи бормашины

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

Первый запуск и настройка Wi-Fi


Я использовал прошивку от gunner47, для настройки других прошивок читайте их описание на странице разработчика.

1. Подаем питание на лампу, а на смартфоне находим появившуюся точку доступа LedLamp с паролем 31415926 (имя точки доступа и пароль настраивается в прошивке)

2. Подключаемся и ждем появление окна авторизации.

3. Выбираем пункт Configure WiFi и подключаемся к домашней сети.

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

5. Устанавливаем приложение Arduino Lamp из App Store (для других прошивок нужно использовать другие приложения).

6. Вводим IP-адрес лампы и подключаемся.

Все! Наша умная лампа готова, можно показывать свое творение и готовиться к порции похвалы от жены и детей.

Что умеет такой умный светильник

Получившийся светильник имеет такие интересные фишки.

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

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

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

За несколько минут до установленного будильника светильник начинает заполнять комнату теплым светом. Чем ближе к срабатыванию будильника, тем ярче будет свечение.

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

В-пятых, при использовании прошивки от Whilser ночник можно подключить к самым распространённым системам управления умным домом. Ночник можно интегрировать в Home Assistant, Apple Home Kit, или управлять устройством при помощи голосового ассистента Алиса.


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

Если сравнивать с умными лампами от Xiaomi, то последние не имеют гибких настроек, не все умеют подключаться к Home Kit или умному дому от Яндекс из коробки и даже близко не дотягивают до самодельного ночника по количеству отображаемых эффектов.

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

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

(39 голосов, общий рейтинг: 4.67 из 5)
🤓 Хочешь больше? Подпишись на наш Telegram. . и не забывай читать наш Facebook и Twitter 🍒

Favorite

В закладки

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