Всю сознательную жизнь я мечтал сделать если не весь мир, то хотя бы свой дом похожим на дома из фантастических фильмов.
Чтобы, когда я прихожу домой после тяжелого рабочего дня, они аккуратно включали свет, вежливо приветствовали меня, сообщали о происшествиях, а уходя, предупреждали о погоде на улице и закрывали за мной дверь.
Чтобы мне не приходилось идти, заикаясь, в темноте к кровати, а можно было лечь и только потом выключить свет на своем гаджете, который всегда под рукой.
В хабе уже полно статей о реализации чего-то подобного, чем моя будет отличаться? Меня задушила жаба.
Покупать готовые устройства мне не хотелось, это дорого и не интересно, поэтому решил сделать все сам.
На данный момент мой умный дом полностью готов: серверная часть, веб-интерфейс, приложение с виджетами для Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.
Но сначала хотелось бы рассказать об аппаратной части «рабочей лошадки» дома – RC-2 (комнатного контроллера).
Прошивку для 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 ножке логическая единица — передаем, ноль — слушаем.
После переключения этих режимов важно дождаться завершения переходных процессов, примерно полмиллисекунды, прежде чем осуществлять передачу/прием.
Что происходит?
Разведенная схема выглядит так:Готовый контроллер:
В ближайшем радиомагазине все это есть:
- Атмега8-16ПУ — 130руб.
- MAX485 — 60р
- LM2576 — 60р
- Рассыпчатый порошок (текстолит, резисторы, диоды, конденсаторы, кварц, клеммники) – 150 руб.
Вышло дешево и сердито.
Протокол связи устройства с сервером является двоичным, с контрольной суммой.
Контроллер дергает лапами по команде сервера и в ответ на статусный запрос отправляет массив состояний своих входов, выходов, АЦП и того, что он смог получить по 1-Wire. Без сервера он может включать свет с помощью кнопки, переключателя или датчика движения.
Если кто-то захочет посмотреть на мой RC-2, или хотя бы использовать его для себя, я подробно опишу протокол связи с сервером и предоставлю принципиальные схемы и прошивку.
Теги: #Сделай сам или Сделай сам #Умный дом #умный дом своими руками #микроконтроллеры avr
-
Комнатная Метеостанция На Stm32L-Discovery
19 Oct, 24 -
Симметричное Свойство Отношения Коинтеграции
19 Oct, 24 -
Ie7 — Браузер Для Мазохистов
19 Oct, 24 -
Доход Посетителей Известных Сайтов.
19 Oct, 24 -
Crm Как Точка Опоры
19 Oct, 24 -
Getdeb.net Теперь Для Ubuntu Intrepid
19 Oct, 24