У меня есть дом. В доме есть лестница. На лестнице должен быть свет. Никаких нарушений логики нет, подвохов тоже, так как при строительстве был заложен проходной выключатель, который прекрасно функционирует. Внизу включил – сверху выключил, и наоборот. Красота. Чего еще хотеть?
Эта моя детская наивность была безжалостно повержена в один из долгих зимних вечеров, когда снег убран, рассаду садить рано, носки связаны всем членам семьи, а сериалы уже обрыбились.
Я тихо-мирно починял примус в гараже, когда вселенское зло в виде моей зайки пробудилось и ворвалось в гараж. Оказывается, свет на лестнице через выключатель – это фу-фу и прошлой век, и в 21 веке все должно включаться автоматически, причем не сверху лестницы, а снизу ступенек, и не одновременно, а по очереди, и выключаться также. Путем осторожных расспросов было выявлено, что в очередной программе про переделки показали это бесовство, и все, у моей любимой в заднице загорелась береза – нада!
Из желания чисто поржать я посмотрел эту подсветку в интернетах – от 15000 только блоки, плюс светодиодная лента и профиль под нее. Не сказать, что для покупки надо лезть в ипотеку, но потратить 15 тыщ и не потратить 15 тыщ – это две большие разницы, поэтому лезем в закрома и начинаем ваять.
Нам понадобится Arduino Nano, два ультразвуковых датчика измерения дальности, датчик освещенности и релейный модуль с количеством реле по количеству ступенек. Не рекомендую выбирать датчики HC-SR04, так как из пяти штук, которые были у меня в наличии, стабильные показания стабильные показания давал только один, остальные врали как депутаты. Из-за этих глючащих датчиков я перепробовал все, что только могло прийти в мой воспаленный мозг – пробовал инфракрасный (PIR) с ограничением зоны (тупо заклеивал купол изолентой), использовал VL53L0X – лазерный измеритель расстояния, датчик присутствия – ничего не взлетело, либо какие-то хаотичные сработки, либо слишком большой сектор сработки (PIR) – срабатывало, когда проходишь мимо лестницы. Потом где-то прочитал, что HC-SR04 – это просто исчадие ада, и все конкретные пацаны используют HC-SR05. Купив на алике HC-SR05, я понял, что жизнь удалась и расстояние будет измерено точно.
Так как особой работы руками здесь нет, да и программу для контроллера выкладывать смысла тоже нет (гуру сразу же заплюют, отматерят и подвергнут анафеме), ибо программирование я изучал в начале 90-х на примере Фортрана, Паскаля и всего остального тех времен, остановлюсь на принципе. Не, если тут есть фетишисты, то я с превеликим удовольствием отправлю скетч, чисто поржать чтобы.
Датчик стоит на краю ступени и постоянно меряет расстояние до противоположной стены (примерно 2 м). Ширина ступени 80 см. Если измеренное расстояние составляет 60 см и меньше, и датчик освещенности говорит, что темно, то начинаем по очереди выдавать HIGH в соответствующие порты с задержкой 300 мс. Затем ждем 10 сек и в той же последовательности загоняем в порты LOW. Направление зажигания/гашения зависит от кого, какой датчик отрапортовал о движении – верхний или нижний.
Так как ступенек у меня 14, пользоваться расширителем портов из-за его отсутствия не хотелось, то пришлось извратиться и использовать все существующие выходы ардуинки. Из-за дефицита ног уровень освещения опрашивается аналоговым входом А2, благо у датчика освещенности есть аналоговый выход.
Для датчиков и релейного блока купил на том же алике корпуса, ленту тоже привез оттуда (понадобилось 10 м), профили для ленты брал в каком-то местном магазе.
Ну и расположение подсветки.
Датчик нижний.
Датчик верхний.
Блок с ардуинкой, релейным модулем и преобразователем из 12В в 5 для питания ардуино.
Блок питания.
Ну и пример работы.
Единственное, что бы я сейчас сделал по-другому - это подключил бы подсветку не через релейный модуль, а через MOSFETы, ибо уж больно по-бесячьи релюшки щелкают.
Ну и на посошок: на втором этаже три комнаты и туалет. Дом находится на окраине, уличного освещения можно сказать нет, поэтому ночью темно как у негра. Дети, когда выходят ночью по нужде, вынуждены таскать с собой телефоны, для подсветки, поэтому, из неиспользованного PIR-датчика, датчика освещенности, одного MOSFETa, обычного белого светодиода, мелкого блока питания с али и корпуса от какого-то блока питания сваял такую штуку:
Сверху два отверстия - одно для датчика освещенности, другое - для регулировки длительности работы.
Находится как раз напротив дверей комнат детей и работает примерно так:
Горит примерно минуту, детям хватает.
ЗЫ. Кстате, скоро еще будут посты про всяческие функциональные поделки на Arduino и ESP8266. Так что если интересно, следите за руками (с):)