Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате
![Делаем устройство подсчёта посетителей и автоматически управляем освещением в комнате Arduino, Своими руками, Реле, Датчик, Умный дом, Гифка, Видео, Длиннопост](https://cs10.pikabu.ru/post_img/2020/05/27/9/1590592460157284637.jpg)
Управление освещением построено на принципе подсчёта количества входящих и выходящих людей в комнату. Если число людей в комнате больше нуля – включается реле, управляющее освещением.
Этот проект решает проблему большинства систем управления светом, построенных, например, на датчиках движения – нет необходимости каждые 5-10 минут махать или изображать движение перед датчиком. Система просто ждет, когда вы выйдете из комнаты и тут же гасит свет (нет необходимости ставить длительные задержки).
Подробное видео о том, как собрать такую же систему у себя дома, с объяснением работы, выбором типа реле, борьбой с помехами и другими интересностями:
Основные моменты в видео:
0:24 Основная концепция системы
1:32 О датчике препятствия E18-D80NK
2:30 Об электромагнитных реле
3:27 Твердотельное реле SSR-40DA
4:16 Моя библиотека PeopleCounter и код в Arduino
5:14 Подключение и проверка первого варианта системы
6:01 Добавление кнопки "Ручной режим" к проекту
6:49 Добавление датчика освещенности
9:30 Общая схема проекта
10:09 Сборка окончательного устройства на Digispark
10:59 Борьба с помехами
Схема проекта на Arduino (ATmega328P) c возможностью системы управлять светом в зависимости от освещенности на улице и включением режима ручного управления светом:
Схема проекта на Digispark (ATtiny85) без датчика освещенности и кнопки ручного режима (подойдет для ванной, туалета, кладовки и других помещений, где нет окон):
Да, такое мощное твердотельное реле я поставил просто потому что оно у меня лежало без дела, но, опять же, если вы покупаете реле на Aliexpress, ̶в̶с̶е̶г̶д̶а̶ часто можно столкнуться с нечестными производителями, завышающими показатели коммутируемого тока.
Например, в реле, рассчитанном на 40А, могут поставить симистор на 25, а то и на 16А, что приведет к его жуткому разогреву и выходу из строя при подаче мощной нагрузки.
Поэтому, очевидный совет - выбирайте реле в 2, а лучше в 3 раза превышающее по мощности ту, которую вы собираетесь коммутировать, и будет вам счастье 🙂 Также не забывайте про охлаждение радиатором и не покупайте по очень дешёвым предложениям – получите ровно то, насколько меньше стоит реле относительно рыночной цены.
Ещё из некоторых источников говорят, что в реле, у которых нет “спиленного уголка”, ставят симисторы получше (см. картинку ниже), поскольку они больше похожи на оригинальные, но я этот нюанс ещё пока не проверял, от одной лампочки моему реле, по ощущениям, даже холодно.
Для удобства создания системы сразу для нескольких комнат, я написал библиотеку с классом Room, поэтому в программе достаточно передать вашей комнате пины подключенных датчиков и вызвать пару функций.
Вот пример:
Здесь по порядку подключаемые пины: ИК-датчик №1, ИК-датчик №2, реле, кнопка "ручной режим", фоторезистор (аналоговый PIN без буквы А), порог фоторезистора.
В функции setup() делаем инициализацию (если нужны показания фоторезистора и пр., то вызываем метод debug) :
В функции loop() постоянно вызываем метод lightControl для опроса датчиков (можно повесить на таймер):
Дополнительно написал два метода - первый возвращает текущее количество человек в комнате, второй - включен свет или нет (пригодятся при отладке и в связке с другими датчиками в рамках одной системы домашней автоматизации):
Чтобы добавить еще несколько комнат, просто создаете новые объекты со своими именами и пинами:
Библиотека и примеры использования лежат на GitHub: здесь
Страница проекта с описанием, списком компонентов, ссылками и т.д.: здесь
В будущем планирую расширять эту систему и прикручивать дополнительные датчики с мониторингом по сети, что в итоге должно вылиться в нечто, напоминающее домашнюю автоматизацию. Буду рад рекомендациям и советам.
Всем удачных компиляций!