Применение Raspberry Pi для домашней автоматизации
Примерно два года назад компания Raspberry Pi Foundation выпустила довольно интересный девайс – одноплатный компьютер, размером чуть больше банковской пластиковой карты по очень привлекательной цене. Новинка сразу получила огромную популярность, очередь предварительных заказов на неё растянулась на несколько месяцев.
Raspberry Pi был представлен в двух комплектациях: модель «A» и модель «B». Обе версии оснащены ARM11 процессором Broadcom BCM2835 с тактовой частотой 700 МГц и модулем оперативной памяти на 256 Мб / 512 Мб. Модель «A» оснащается одним USB 2.0 портом, модель «B» – двумя. У модели «B» присутствует порт Ethernet. Процессор BCM2835 включает в себя так же графическое ядро. Вывод видеосигнала производится через композитный разъём RCA или через цифровой HDMI-интерфейс.
Файловая система, образ ядра и пользовательские файлы размещаются на карте памяти SD, MMC или SDIO. Наибольшую привлекательность у Raspberry Pi вызывает низкое энергопотребление (5В / 700mA), наличие портов ввода/вывода GPIO с интерфейсами I2C, SPI, UART, а так же возможность удаленной работы через Ethernet.
В настоящее время выпускается только модель «В» с 512 Мб оперативной памяти и поддержкой Ethernet. Кроме того, в продаже появилась новая версия, которая отличается от предыдущей модели «В» более компактным размещением компонентов, наличием 4 портов USB, увеличением количества портов ввода/вывода GPIO и отсутствием композитного видеовыхода. Внешний вид модели «В» и новой модели компьютера Raspberry Pi показан на рис. 1
Рис. 1
Для чего можно применить такой девайс? В первую очередь следует отметить, что Raspberry Pi является хотя и не очень мощным, но вместе с тем вполне полноценным компьютером. Подключив к нему монитор, клавиатуру, мышку и установив какой-либо дистрибутив операционной системы Linux его можно использовать в качестве настольного компьютера для решения задач, которые не требует мощных вычислительных ресурсов.
Raspberry Pi вполне подойдет для применения в качестве домашнего медиа-сервера, сервера хранения данных, «мозга» робота или станка, сервера домашней автоматизации (или так называемого «умного дома»).
Появление Raspberry Pi сразу вызвало ажиотаж вокруг этого устройства. Когда страсти немного утихли, и он появился в свободной продаже по адекватной стоимости, я решил познакомиться поближе с этим миникомпьютером. Для меня Raspberry Pi в первую очередь представлял интерес с точки зрения использования в системе домашней автоматизации, идея которой «созрела» уже давно и требовала практической реализации.
Я использую термин «домашняя автоматизация», потому что мне категорически не нравиться выражение «умный дом». Нет, ничего плохого в термине «умный дом» нет, но в последнее время это понятие очень сильно извратили.
Умный дом – сложная «многоконтурная» система, которая помимо выполнения различных сценариев, заданных пользователем, может принимать различные решения в зависимости от той или иной нештатной ситуации. Другими словами – это «мыслящая» (разумеется, на машинном уровне) система. А в последнее время называю «умным домом» что угодно – например, GSM сигнализацию, датчик протечки воды, управление светом по датчикам движения и т.д. Да, это все отдельные компоненты умного дома, но никак не умный дом в целом.
Итак, рассмотрим структуру построения системы домашней автоматизации с применением Raspberry Pi (рис.2).
Рис. 2 Структура построения системы домашней автоматизации с применением Raspberry Pi (для увеличения нажмите на рисунок)
Система домашней автоматизации состоит из центрального сервера, связанного по интерфейсу RS485 с установленными в каждом помещении контроллерами, а к контроллерам в свою очередь подключаются различные устройства управления, контроля, регулирования, защит.
Преимущество такой сетевой архитектуры состоит в том, что нет необходимости тянуть провода от каждого устройства к серверу, а достаточно соединить контроллеры, к которым они подключены, одним кабелем UTP – одна пара проводов которого используется для интерфейса RS485, а остальные пары – для питания контроллеров и датчиков. Кроме того, логика работы задумывается так, что выход из строя любого контроллера или даже центрального сервера не должен повлиять на работоспособность остальной системы.
В качестве центрального сервера системы домашней автоматизации применяется Raspberry Pi. На нем установлен Web сервер, посредством которого пользователь с любого коммуникационного устройства (смартфона, ноутбука, планшета) через браузер может получать информацию о всех процессах, происходящих в доме и соответственно, управлять ими. Доступ к Web серверу по вводу логина и пароля можно получить как из домашней локальной сети, так и из сети интернет через Wi-Fi роутер.
К последовательному порту UART Raspberry Pi через согласующее устройство по интерфейсу RS485 подключаются контроллеры, имеющие различный набор вводов/выводов. Кроме этого, к RS485 может подключается GSM модем для доступа к системе через сотовую или стационарную телефонную сеть на случай, если в точке, где находится пользователь, нет возможности получить выход в интернет. Доступ к системе в этом случае также выполняется через ввод пароля.
Еще одним устройством в сети RS485 является радиомодуль. Его назначение – привязка к общей системе автоматизации всех радиодатчиков и радиопультов дистанционного управления.
На текущий момент разработана первая версия системы домашней автоматизации с применением Raspberry Pi. Помимо центрального сервера в её состав входит несколько типов контроллеров, имеющих интерфейс RS485 для связи с сервером:
Восьмиканальный контроллер температуры и влажности. Контроллер позволяет собирать показания температуры и влажности с одного датчика DHT22 и семи датчиков DHT11;
Четырехканальный терморегулятор (термостат). Контроллер может управлять 4 нагрузками как в ручном режиме, так и по заданным параметрам температуры. Ввод значений температуры возможен как непосредственно на контроллере, так и удаленно через web-интерфейс. Режимы прямого и обратного типа управления каналами позволяют использовать контроллер как для управления нагревом, так и охлаждением;
Радиомодуль используется для эмуляции радиобрелков и сбора информации с радиодатчиков. Позволяет эмулировать до 5 радиобрелков и принимать данные с 10 радиодатчиков;
Универсальный контроллер. Имеет 4 независимых входа и выхода и два входа подключения датчиков температуры и влажности DHT11 и DHT22.
Там же вы найдете ссылки на описание установки программного обеспечения для Raspberry Pi, а так же на материалы, в которых описывается технология изготовления контроллеров, о которых рассказывалось выше. Хотелось бы отметить, что данный проект является полностью некоммерческим, с открытыми источниками по схемным и программным решениям и с техподдержкой на форуме.
Михаил Тихончук
31.10.2014