Купить Умный Дом Дешево

На хабре уже полным полно статей о реализации подобного, чем же моя будет отличаться? Меня задушила жаба. Я не захотел покупать законченные устройства, это дорого и не интересно, было принято решение делать все самому.
На данный момент мой умный дом полностью закончен: серверная часть, web-интерфейс, приложение с виджетами под Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.
Но для начала я бы хотел вам рассказать про аппаратную часть «рабочей лошадки» дома – RC-2(room controller). Я давно пишу прошивки под AVR МК, поэтому в качестве мозга нашего контроллера будет известная Atmega 8-16PU, которая есть во всех магазинах радиодеталей. Да, ее старший брат используется в уже надоевшей всем Arduino Uno, но мы будем держаться от нее подальше.
Чего мы хотим?
А теперь определим требования к нашей лошадке: контроллеры должны стоять в каждой комнате и иметь связь с сервером, работать от напряжения питания 7-40 вольт, иметь возможность подключения датчиков температуры и влажности, всевозможных датчиков и кнопок типа «сухой контакт» (герконов, кнопок, датчиков движения), возможность управлять внешними устройствами, способность делать простейшие действия без участия сервера (включать свет по кнопке, датчику движения, геркону).Теперь пройдемся по требованиям и выберем средства, способные обеспечить выполнение этих требований:
- Связь с сервером. Ethernet – сложно и много проводов (от свитча до каждого из контроллеров), Bluetooth, WiFi и другие беспроводные – сложно и дорого. Вспомним о старой доброй шине RS-485 и будем использовать ее.
- Логика у нас 5 вольтовая, нужен преобразователь. Будем использовать простой и очень эффективный блок питания на импульсном регуляторе LM2576 (схема есть в даташите на первой же странице)
- Всевозможные датчики? Atmega8 имеет на борту все что нужно: АЦП, дискретные входы, есть даже встроенные резисторы подтяжки. Реализуем поддержку шины 1-Wire на одной из ножек для общения с датчиками (тем же самым DHT11).
- Управление внешними устройствами? Опять же, имеем дискретные выходы и ШИМы на МК.
Молчи – за умного сойдешь
На шине RS-485 должен быть один мастер, который будет опрашивать подключенные к шине наши умные контроллеры по очереди. В один момент времени говорит один, остальные слушают. Контроллеры отвечают строго только на запрос мастера, сам по себе никто ничего не говорит, иначе будут коллизии, и никто ничего не поймет. Все строго.
Обмен данными в шине полудуплексный, то есть в один момент времени устройство может либо передавать, либо принимать данные.
Для работы с шиной будем использовать микросхему MAX485, плюс UART самой Atmega8.
С ней все просто: на 2 и 3 ножке логическая единица – передаем, ноль – слушаем. После переключения этих режимов важно подождать пока завершатся переходные процессы, где-то пол миллисекунды, прежде чем передавать/принимать.
Что получается?
Разведенная схемка выглядит так:Готовый контроллер:
В ближайшем радиомагазине все это стоит:
- Atmega8-16PU — 130р
- MAX485 — 60р
- LM2576 — 60р
- Рассыпуха(текстолит, резисторы, диоды, конденсаторы, кварц, клемники) – 150р
Source: geektimes.ru
