Моя реализация автоматического включения света в туалете (и без Arduino)
- четверг, 13 марта 2014 г. в 06:06:34
http://habrahabr.ru/post/215383/
Всем привет!
На Хабре появляются и появляются статьи о реализации Умного дома. Самой главной проблемой (ну или только для меня) получается включение/выключение света в санузле. Вроде и вещь не хитрая — а сколько есть вариантов. Прочитав статьи, в том числе, тут и тут, я подумал «А ведь все могло быть проще».
Этот червячок точил меня около полугода. И вот, когда стало свободнее с работой, я созрел.
Скажу, что и программированием, и радиоконструированием я люблю заняться еще со школы. Микроконтроллеры подарили настоящую радость — все и сразу. А Arduino тут нет не потому, что я его ненавижу он для этой задачи избыточен, или потому, что хочу быть не как все, просто я до него еще не добрался (или он до меня).
Вернемся к нашим баранам (ну или к нашему свету, или к нашему туалету). Лично для меня нарисовать в голове ТЗ (да-да, нарисовать, это когда еще даже сформулировать не можешь, не то, что на бумагу записать) гораздо сложнее, чем его потом реализовать. После недель раздумий вот что примерно у меня получилось:
Вроде как все логично и просто, но ни в одной из встреченных статей я не нашел красивого решения. Самое простое — это датчик движения. Он включает свет когда кто-то есть и выключает через некоторое время. Для моих целей ему не хватает в пару лишь геркона — следить, открыта дверь или закрыта.
Не понимаю, почему до сих пор производители до этого не дошли. Или дошли, а не дошло до меня?
Алгоритм прост:
Вот теперь ТЗ понятно, мне необходимы:
Был куплен самый дешевый ДД (инфракрасный), какой-то геркон, ATTiny2313.
Разбираем датчик движения, видим внутри:
плата управления с инфракрасным приемником и зеркалом посередине и:
БП и реле. Мне повезло, в ДД есть все, что нужно: реле, транзистор для согласования, остальная обвязка (даже диод). При срабатывании датчика выдается сигнал TTL, достаточно его перехватить, а сигнал с моего МК передать вместо него.
В ISIS нарисовал схему (если делать, то красиво)
в BASCOM-AVR написал программулину:
Сделал эмуляцию, вроде как все работает (после отладки, конечно). Собрал макет и проверил (собирать такие макетки не так сложно, главное начать):
Режем в ДД дороги и подключаем согласно воспаленному воображению принципиальной схеме:
Проверил — заработало. Автоматическое отключение примерно через 1 мин 20 сек (не почему-то, просто сразу так получилось, а меня устроило), остальная работа согласно заранее придуманной логике.
Тут сделаю отступление. Дело в том, что я паяю с тех времен, когда в ходу были транзисторы МП39 и МП42. Спаяно и написано было немало. Когда разработанная мною схема (а тем более программа) начинает работать с первого раза — я чувствую дискомфорт, так редко это со мной бывает. На тестирование была убита пара часов, багов не нашел, продолжало работать.
Собрал в рабочий вариант (ЛУТ не пригодился):
При помощи скотча и чьей-то матери все это заизолировал и закрепил в корпусе. В итоге полученный экземпляр внешне не отличается от исходного, не изменилась даже схема подключения (разве что добавилась пара проводов для геркона):
Главное — после каждого шага проверять работоспособность, плавали — знаем.
Монтаж и прочие банальности упущу.
Жена восприняла без энтузиазма и назвала «херней» (ерунда, еще оценит — а куда ей деваться).
Бюджет:
— ДД — 250 р. (дешевле не нашел),
— геркон — 38 р.,
— ATTiny2313 — 140 р. (цена конская, но ведь хотелось еще вчера).
За конструктивную критику заранее спасибо.