Статья

Система автоматизации на Raspberry Pi Zero B и Homeassistant

В этой статье я расскажу об интересной, на мой взгляд, разработке для создания небольших (или части больших) систем автоматизации. Часто для создания центральных систем управления автоматизацией применяют микрокомпьютеры типа Raspberry Pi, Orange Pi или им подобные. Привлекают эти микрокомпьютеры, не только малыми габаритами, но и наличием разъема с большим количеством портов ввода вывода, которые используются для подключения различных датчиков и исполнительных устройств. Для подключения внешних устройств, применяются множество видов сетей и протоколов связи. И многие из них поддерживаются на программном уровне драйверами операционных систем этих микрокомпьютеров. Но кроме этого, для обеспечения физического уровня сопряжения с периферийными устройствами, требуются установка на порты микрокомпьютера, различных интерфейсных формирователей.  На рынке сегодня предлагается огромное множество модулей, специально разработанных для подключения к периферийным разъемам микрокомпьютеров. Кроме интерфейсных преобразователей, есть модули с датчиками, с исполнительными реле, дисплеями,  и т.д. и т.п., но все эти модули скорее предназначены для проведения экспериментов и отладки различных локальных решений. Для комплексного обеспечения автоматизации, требуется какое-то законченное решение «Управляющей системы», в котором должны быть обеспечены поддержка широко распространенных сетей связи и имелась возможность подключения различных датчиков.

В группе разработчиков электронных систем @electromost, часто поднимались подобные вопросы. И Михаил Тихончук и Антон Бизяев @Zoolu разработали несколько вариантов Кросс плат на базе микрокомпьютера Raspberry Pi с поддержкой шин 1-Wire, I2C, SPI, RS485 и блоком силовых реле. Вот тут опубликован проект одной из последних версий кросс платы. «Устройство централизованного управления» собранное на этой кросс плате позволяет интегрировать великое множество периферийных устройств и решать большой спектр задач автоматизации. Один недостаток (по крайней мере, для меня), занимает много места на DIN рейке - 9 unit. Я предложил Антону разработать, так сказать лайт версию, без блока реле и лучше на базе Raspberry Pi Zero B.

В итоге @Zoolu взялся за разработку Кросс платы для микрокомпьютера Raspberry Pi Zero B, ну и я вызвался ему помогать. Ну как помогать, скорее просто ограничивать полет фантазии Антона, размером допустимых финансовых затрат, и конечных размеров устройства. В то же время нам хотелось впихнуть в устройство всего и побольше. В итоге родился вот такой плотненький пятиэтажный бутербродик, который успешно размещается в корпусе на DIN рейку D2MG.

На нижней плате уместились:

Блок питания – DC/DC преобразователь, обеспечивающий возможность питать устройство входным напряжением от 7В до 24В. Два восьми канальных преобразователя уровня, для обеспечения защиты и согласования низковольтных портов малинки с 5В уровнями внешних периферийных устройств. На порты последовательного интерфейса подключена микросхема драйвера сети RS485 с автоматическим переключением с приема на передачу. Линии А В защищены супрессорами и само восстанавливающимися предохранителями и выведены на разъем в торце корпуса.

Для вывода интерфейсов шин 1-Wire и I2C с уровнями сигналов 5В, так же установлены разъемы на торец корпуса. Эти же интерфейсы и остальные порты ввода-вывода с уровнями сигналов 5В, выведены в специальный боковой разъем, предназначенный для каскадного присоединения различных блоков расширения от обычных релейных блоков, блоков расширения портов, до различных микроконтроллерных устройств, шлюзов и прочих необходимых устройств.

Вторым этажом устанавливается плата самого микрокомпьютера. На третьем этаже свободно расположились:

Микросхема часов реального времени с резервным питанием от ионистора.Датчик давления и температуры BMP180. (можно BMP280).Стандартный USB разъем.

Через переходные стойки в третью плату включается четвертая, интерфейсная плата. На ней расположены три кнопки и платка небольшого OLED дисплея.

Фактически кросс плата обеспечивает прямое подключение различной периферии по интерфейсам 1-Wire, I2C, SPI, RS485, дает возможность местного управления и контроля с тремя кнопками и дисплеем, обеспечивает операционную систему точным временем, не зависимо от подключения системы к сети интернет. А подключение различных блоков расширения позволяет развивать систему многократно. Такая философия заложена, исходя из того, что требования у всех разные, а хочется удовлетворить потребности большинства. Я например не хочу что бы все управление велось из центра, и предпочитаю вариант распределенной автоматизации, когда каждое периферийное устройство работает в первую очередь самостоятельно и обеспечивает свой функционал не зависимо от того есть ли связь с центральной системой управления или нет. Т.е. мои требования к «Устройству управления», сводятся к обеспечению интеграции различных периферийных устройств, обеспечения удаленного доступа и автоматизации верхнего уровня. (Верхнего уровня это не контроль температуры и управление нагревателем, а например уменьшение уставки терморегулятора, когда я ухожу из дома). Кто-то, решает организовать всю автоматизацию на уровне центрального устройства, и это может быть вполне оправдано, например при автоматизации теплицы, где может быть достаточно навесить с десяток датчиков, и несколько исполнительных реле. Такую автоматизацию вполне допустимо выполнить на самом «Устройстве управления», подключив в разъем расширения блок исполнительных реле, а датчики к шине 1-Wire. 

Желающим повторить этот проект, вот в этом плагине лежит архив с принципиальной схемой и гербер файлами для заказа изготовления печатных плат. 

Итак, устройство собрано, проверен монтаж. Можно строить «Умный дом». 

Какой софт применить для системы управления. Последнее время предложений становится все больше и больше. Так на вскидку. MajorDomoOpenHABDomoticzHome AssistantIoBroker и много еще чего, платного и бесплатного. Пробовал OpenHAB отличная система, много про что знает и многое хорошо умеет, но язык на котором она написана, через чур прожорлив на оперативную память компьютера, а потому на Raspberry Pi Zero, у которой всего 512 Мбайт памяти, на нем автоматизацию не поднять. Гораздо более экономично относятся к ресурсам Domoticz и Home Assistant. Но в первом нет прямой поддержки, интересующего меня протокола ModBus и потому мой выбор пал на Home Assistant.

Поскольку в своей системе автоматизации помимо ModBus устройств я планирую задействовать разработанные нами MQTT WiFi розетки и другие устройства на базе ESP8266, я хотел на борту этого же микрокомпьютера поднять MQTT брокер и еще несколько вспомогательных программ. В hass.io это сделать проблематично, поэтому я решил установить Home  Assistant, на базе образа предлагаемого разработчиками для Raspberry Pi Zero, на основе Hassbian. (Подробнее читайте вот тут) Образ размещен вот тут.


Ссылку на образ поправьте http://https//sprut.ai/client/plugin/1305">http://https//sprut.ai/client/...

сейчас все будет

Круто.... такой DIY вариант вайрена

Выложите образ Homeassistant для Raspberry Pi Zero . Вместо образа лежит архив с принципиальной схемой и гербер файлами .

Круто! Node-Red еще в прошиву надо

А что KNX в тэгах статьи? Оно и его тянет?

Ну и проводного Ethernet - а бы .. Понимаю что это непросто

Да 

Node-Red вполне можно до установить, кому будет нужен. Тут например описан https://blog.hau.me/2018/12/27/setting-up-node-red-on-a-raspberry-pi-zero-w/">образец установки и использования. Кстати и проводной сетевой интерфейс тоже добавить не сложно. Просто в USB поставить например https://ru.aliexpress.com/item/Ugreen-USB-2-0-Ethernet-10-100-Mbps-Rj45-Network-Card-Lan-Adapter-3-Port-USB/32401311400.html">вот такой девайс, система сама его подхватит. 


Я на это устройство управления возлагаю решения задачь автоматизации верхнего уровня. Поэтому для меня высокая надежность сетевого интерфейса не так актуальна.

Добрый день!

Буду благодарен если поправите ссылочку, даже если добавить двоеточие между https и // все равно 404 отдает

Здравствуйте.

Попробуйте вот по https://sprut.ai/client/plugins/1307">этой ссылке


Вернуться назад
Вернуться назад