"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо".

Пост не совсем про Arduino, но про домашнюю поделку на микроконтроллере AVR. Об "умной" подсветке, которая включается только при открытии ящика и когда кругом темно.


Захотел я сделать в шкафу, да выдвижных ящиках комода себе подсветку. С утра собираюсь, в комнате темно, жена спит, дочь спит. Подсвечивать телефоном, чтобы найти шмотки задолбало. Тянуть провода для питания тоже не хотелось, надо было что-то на аккуме.
Взял LED модуль готовый. На Али такие COB LED называются, очень много разных вариантов, взял такой (83 рубля):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Взял повышающий DC-DC преобразователь на MT3608 ($0.40):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

И из загашников у себя кнопку фиксируемую и акк Li-Ion на 500мАч. Всё прекрасно заработало и за пару месяцев редких включений акк просел чуть ниже половины заряда.
А дальше соб-но захотелось придать этому ума, чтобы не клацать кнопкой самому. Можно просто поставить геркон и свет будет включаться при открытии шкафа/выдвигании ящика. Но не охота, чтобы он включался, когда в комнате горит основной свет - батарею тратить почем зря. Поэтому берем датчик освещенности и расстояния (Proxmity & Ambient Light Sensor), такие, как стоят в телефонах. Недорогие и доступные на Али модули на базе APDS-9930, вот такие (60 рублей):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Датчик цифровой, работает по I2C. На датчике ИК-светодиод и 2 фотодиода - один измеряет ИК диапазон, другой ИК + видимый спектр света. С помощью них датчик умеет измерять расстояние до объекта, посылая ИК импульсы и замеряя их отражение. И уровень освещенности фотодиодами (вычитаем из общей освещенности вместе с ИК отдельные показания ИК фотодиода). Далее расстояние - PS (proximity sensor), освещенность - ALS (ambient light sensor).
И приятная штука - прерывания. Датчик можно настроить так, чтобы при выходе определенных параметров PS или ALS выше или ниже заданного нами значения он "дернет ножкой" INT. Тем самым МК настроив датчик может уйти в сон (режим пониженного энергопотребления). плюс есть настройка PERS, которая отвечает за то, сколько раз подряд считанное значение должно выйти за границы заданных значений, чтобы сработало прерывание, чтобы исключить ложные срабатывания.
На модуле есть сам датчик и минимальная обвязка для него, включая конденсатор для ИК-светодиода и подтяжки линий.
Беру из загашников мелкие букашки - контроллеры ATTiny10 (фото из инета):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Я покупал их под всякие мелкие задачи в довесок с заказом на DigiKey, но они есть и на Али. Я брал по $0.31 за штучку.
Контроллер может питаться от батарейки напрямую, но для APDS-9930 нужна напруга не выше 3.6В, поэтому берем стаб LDO на 2.7-3.3В. Я взял TPS78330, но можно что проще и дешевле достать, вроде XC6206P302MR. Контроллер и сенсор запитываем от LDO. LED модуль по прежнему от DC-DC модуля. Чтобы иметь возможность выключать свет, в разрыв входного минуса модуля ставим N-канальный MOSFET. Я взял IRLML6244TRPBF (пачка 100 шт на Али около $1). Минусовой выход DC-DC ес-но соединяется только с LED модулем, он общий с входным, мы его будем размыкать. Короче примерно такая схема:

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

На схеме U3 - LDO MCP1810T стоит, это я задел на плату поставил.
Далее я написал прошивку для ATTiny10, которая это всё контролирует: https://github.com/N-Storm/autolight

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

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

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


Всё работает. Датчик отрабатывает как положено. При запуске он инициализирует сенсор и ждет. Сенсор заводится проверять расстояние каждые 202 мс. Как только расстояние увеличивается выше порога (3 раза подряд через PERS, чтобы не было ложных срабатываний) - значит дверца открыта. Проверяем уровень внешнего освещения. Если оно ниже порога - подаем высокий уровень уровень на PB3 (затвор мосфета), тем самым включая подсветку. Как только расстояние до препятствия сенсора опять станет ниже порога - значит дверца закрыта, свет выключается и снова МК уходит в сон, "заведя" датчик опять выстрелить прерыванием когда снова откроется дверца.

Есть один нюанс. МК всего 6 ног имеет, 2 из которых - питание, 2 мы используем под I2C, 1 под прерывание и еще 1 нужна для управления подсветкой. Т.е. задействованы все, включая ножку сброса. После прошивки FUSE битов, обычным образом прошить МК нельзя будет, т.к. сброс отключен. Но можно просто подать +12В на ножку RESET (не подключая это дело к программатору ес-но!) и он снова войдет в режим программирования.


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

Arduino & Pi

1.4K постов20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
В детстве увлекался радиотехникой. Хотелось бы ребенку азы показать но радиодетали больше не продаются как раньше. А жаль. Электроконструкторы доверия не внушают.
раскрыть ветку (14)
4
Автор поста оценил этот комментарий
Ну не надо... Сегодня наоборот, огромная база деталей и компонентов, причем с возможностью доставки на почту села Зажопинска. Это раньше в областные центры за радиодеталями ездили.
4
Автор поста оценил этот комментарий
В крупных детских магазинах есть электронные конструкторы, там и паять не нужно, и микроконтроллеров нет
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

И в некоторых микроконнтроллеры есть!

3
Автор поста оценил этот комментарий

Всё продается, да и наборы разные бывают, включая обучающие для детей. Несколько фирм выпускают насколько я знаю. Да и на Али есть всякое недорогое. Можно взять, скажем макетную плату пластиковую, беспаечную, набор резисторов, светодиоды, сдвиговый регистр и таймер и на них собрать скажем бегущие огни. Ребенку может быть интересно сделать такое своими руками.

раскрыть ветку (10)
3
DELETED
Автор поста оценил этот комментарий

50 рублей. У меня на трёх батарейках висит, с датчиком движения. Стоил тоже недорого, батарей хватает на несколько лет.

Иллюстрация к комментарию
раскрыть ветку (9)
Автор поста оценил этот комментарий

Ссылку не дадите?

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

АлиЭкспресс - светодиодное освещение для шкафа в поиске

Автор поста оценил этот комментарий

Ну это не то совсем. Это на свет не реагирует, только там где есть поворотная дверца и 3 маленьких светодиодика. У меня ящики выдвижные и дверца шкафа свдижная, а не поворотная, это мне даже некуда ставить.

раскрыть ветку (6)
1
DELETED
Автор поста оценил этот комментарий

Да, это без датчика, у меня тоже купе. Поэтому такой. Один не понадобился. Сколько стоил не помню, но не дорого.

Иллюстрация к комментарию
раскрыть ветку (5)
Автор поста оценил этот комментарий

Это тоже PIR сенсор. Ну надоело уже про них слышать. PIR - совсем не так работает, как у меня.

раскрыть ветку (3)
Автор поста оценил этот комментарий
Хотя догадываюсь. У пир датчика таймаут надо делать, что впустую будет тратить аккум после закрытия дверцы или делать меньше его, но тогда моргать может свет между срабатываниями.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Не. Этот датчик тоже тратит энергию на замеры расстояния. Но там копейки получаются, если измерять как я описал во 2ой части (66 мкА): https://pikabu.ru/story/umnoe_osveshchenie_na_baze_sensora_o...

Просто зачем ставить отдельный PIR датчик и отдельный фоторезистор, когда за 60 рублей есть целиком готовый малюсенкий датчик 2-в-1?

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

PIR датчик реагирует на ИК излучение теплого объекта. Это надо в шкаф заглянуть или рукой махнуть, чтобы он сработал. Плюс непонятно когда сработать на закрытие. А у меня от расстояния сразу ясно когда открыто и закрыто.

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

Но на кухню такое идеально, имхо. Посмотрел от 300 рублей за 10 штук.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку