В этой статье мы расскажем, как сделать надежную систему умного дома своими руками. Для этого подойдет радиопротокол Z-Wave и серверное ПО Z-Way. Хаб же создадим на основе легкодоступного одноплатника Raspberry Pi, модуля RaZberry и бесплатного софта.
Почему своими руками, когда есть универсальные софтверные хабы, которые поддерживают множество устройств с разными протоколами ( например, openHUB, Home Assistant, Domoticz, ioBrocker, где поддержка Modbus, ZigBee, Z-Wave, 1-Wire и других протоколов обеспечивается с помощью открытых модулей сторонних разработчиков)?
РЕКОМЕНДУЕМ:
Дешевый хаб для устройств Z-Wave и ZigBee
Да потому, что в таком вроде бы простом подходе страдает качество работы самих устройств: устройства работают некорректно, либо поддерживаются не все функции, либо устройства вовсе не работают.
Контроллер Z-Way поддерживает любые устройства с Z-Wave и может работать как на мощном сервере, так и на встраиваемой системе. Преимущество Z-Way в возможности добавлять новые протоколы с помощью модулей, написанных на C/C++, или приложений на JavaScript. Уже готовый софт для разных платформ, например, сборку для роутеров Zyxel и накопителей WD, вы найдете на сайте проекта.
Установка Z-Way на Raspberry Pi
Для работы Z-Way установим плату RaZberry в колодку GPIO Raspberry Pi. Плата занимает первые десять пинов, хотя использует только: 3,3 В, GND, RX, TX. Серверное программное обеспечение Z-Way можно установить на любое поколение Raspberry Pi.
Рассмотрим различные способы установки.
Минимальная установка. На последнем Raspbian скачиваем и ставим в систему пакет deb. При этом будет установлен только сервер Z-Wave без удаленного доступа.
1 2 |
$ wget https://storage.z-wave.me/z-way-server/z-way-2.3.8_armhf.deb $ sudo dpkg -i z-way-2.3.8_armhf.deb |
Обычная установка. На последнем Raspbian запускаем установочный скрипт. Будет установлен сервер Z-Wave и активирован удаленный доступ.
1 |
$ wget -q -O - razberry.z-wave.me/install | sudo bash |
Максимальная установка. Есть готовый образ системы c уже установленным сервером Z-Wave, активированным удаленным доступом и настроенным Wi-Fi в режиме точки доступа. Это самый простой и быстрый способ поднять полноценный хаб умного дома на Raspberry Pi.
Вот как записать образ на карточку, если у тебя Mac.
1 2 3 4 |
$ wget https://storage.z-wave.me/z-way-server/razberry-2.3.8-wifi_stretch.img.zip $ unzip razberry-2.3.8-wifi_stretch.img.zip $ diskutil umount /dev/disk2s1 $ sudo dd if=./razberry-2.3.8-wifi_stretch.img of=/dev/rdisk2 bs=16m |
В Linux различается разве что команда монтирования. Но если возникнут сложности или у тебя Windows, то можешь воспользоваться сторонним софтом — например, Etcher.
На свежеустановленном Z-Way нужно найти IP-адрес контроллера RaZberry в локальной сети. Можно посмотреть на роутере список подключенных устройств, а можно зайти на сайт удаленного доступа https://find.z-wave.me и увидеть подключенный контроллер. При первом старте предлагается установить пароль администратора.
Добавление беспроводных датчиков Z-Wave
После успешного запуска системы домашней автоматизации можно добавить пару датчиков Z-Wave и посмотреть, на что они способны. В моем распоряжении оказался датчик движения Philio PSP05, работающий от батарейки CR123A, и лампа RGBW Z-Wave.Me ZMR_LBA60 с цоколем E27.
Переходим на страницу добавления устройств Z-Wave: «Меню → Устройства → Z-Wave Добавить новое → Автоматически обнаружить Z-Wave-устройство». Нажимаем «Старт». На датчике движения в этот момент нужно нажать кнопку три раза подряд. При добавлении лампы нужно трижды выключить-включить выключатель.
После успешного добавления датчика и лампы на главной странице появится несколько виджетов устройств, можно использовать их при создании сценариев или просто управлять техникой с телефона. Лампа позволяет настроить любой цвет, цветовую температуру от теплого (2600 К) до холодного (6500 К) и плавно менять яркость. Датчик движения выполнен в форме и размере глаза, годится для скрытой установки и при каждом движении отправляет команду на контроллер.
Веб-интерфейс — это, конечно, удобно, но куда полезнее и интереснее смотреть лог в консоли.
1 |
$ tail -f /var/log/z-way-server.log |
Добавление проводных датчиков температуры DS18B20
Z-Wave-плата RaZberry занимает только первые десять пинов GPIO. Оставшиеся тридцать можно использовать для подключения проводной периферии, такой как реле, светодиоды и датчики температуры.
Подключение датчиков стоит производить на выключенной Raspberry Pi, чтобы случайно что-нибудь не спалить.
Датчик температуры DS18B20 дешев и удобен в подключении, работает по шине 1-Wire на расстоянии до 300 м. К одному пину Raspberry Pi можно подключить несколько десятков датчиков, чего должно хватить для большинства бытовых нужд. По умолчанию для 1-Wire используется пин 4, но его перекрывает плата RaZberry, поэтому в конфиге нужно выбрать другой пин, например 24, и активировать работу с 1-Wire.
1 2 3 4 |
$ sudo su $ echo "dtoverlay=w1-gpio,gpiopin=24" >> /boot/config.txt $ echo "w1-gpio" >> /etc/modules/ $ echo "w1-therm" >> /etc/modules |
Линию данных 1-Wire нужно подтянуть к питанию 5 В с помощью резистора на 4,7 Ом и далее можно подключить несколько датчиков температуры. Пины питания перекрыты платой RaZberry, но на самой плате есть дублирующие разъемы, поэтому с подключением не будет проблем.
Чтобы проверить, что все настройки верны и датчики подключены правильно, нужно загрузить систему и выполнить команду
1 |
$ ls /sys/bus/w1/devices |
Если все в порядке, отобразится список из двух датчиков, у каждого из которых можно запросить текущую температуру:
1 |
$ cat /sys/bus/w1/devices/28-6f4580116461/w1_slave |
Осталось отобразить показания датчиков в панели домашней автоматизации Z-Way. Для этого создадим виртуальное устройство, которое раз в минуту будет считывать показания температуры.
Код опроса одного из датчиков:
1 |
$ system('cat /sys/bus/w1/devices/28-6f4580116461/w1_slave')[1].match(/t=([\-0-9]+)/)[1]/1000 |
Чтобы разрешить из системы автоматизации выполнять системные команды, нужно в файл /opt/z-way-server/automation/.syscommands добавить разрешенную команду cat.
После всех настроек на панели появятся виджеты датчиков температуры, которые можно использовать для мониторинга и управления климатом.
Добавление проводных реле Arduino
Для Arduino и не только продаются недорогие модули с одним, двумя, пятью и более реле на борту. Модули управляются от 5 В и коммутируют 220 В, их можно использовать для управления освещением и бытовыми приборами типа насосов, проветривателей, вентиляторов. Подключив реле к Raspberry Pi, можно настроить сценарий, где беспроводной датчик включает свет. Схема подключения проста: модуль подключается к питанию 5 В и управляется с любого свободного пина. Для примера я выбрал 25-й пин.
Проверить работу реле можно из терминала следующими командами:
1 2 3 4 |
$ echo "25" > /sys/class/gpio/export $ echo "out" > /sys/class/gpio/gpio25/direction $ echo "1" > /sys/class/gpio/gpio25/value $ echo "0" > /sys/class/gpio/gpio25/value |
Чтобы добавить реле в систему автоматизации Z-Way, нужно создать виртуальное устройство: «Меню → Приложения → Локальные приложения → JavaScript-устройство».
Команда включить:
1 |
$ system("echo '1' > /sys/class/gpio/gpio25/value") |
Команда выключить:
1 |
$ system("echo '0' > /sys/class/gpio/gpio25/value" |
Чтобы разрешить выполнять системные команды, нужно в файл /opt/z-way-server/automation/.syscommands добавить разрешенную команду echo.
При каждой перезагрузке потребуется инициализировать 25-й пин на выход, поэтому создадим загрузочный скрипт инициализации: «Меню → Приложения → Локальные приложения → Пользовательский код JavaScript».
Команды инициализации 25-го пина на выход:
1 2 |
$ system("echo '25' > /sys/class/gpio/export") $ system("echo 'out' > /sys/class/gpio/gpio25/direction") |
Настройка автоматизации
В Z-Way встроено более пятидесяти приложений автоматизации, и еще более ста можно загрузить из бесплатного онлайнового магазина.
Есть приложение «Умное освещение», в настройках которого нужно только выбрать датчик движения и светодиодную лампу. Предположим, алгоритм работы будет следующий: с 7:00 до 00:00 лампа будет включаться на максимум, с 00:00 до 7:00 — только на 20%.
Один из датчиков температуры и реле можно задействовать для управления обогревателем с помощью приложения «Виртуальный термостат». В настройках приложения нужно выбрать датчик температуры, реле, задать гистерезис и режим «Обогрев/Охлаждение». В режиме «Обогрев» реле будет выключаться при достижении заданной температуры.
И если вдруг из более чем 150 приложений не найдется ни одного подходящего, то всегда можно написать свое на JavaScript. Система автоматизации полностью открытая, исходники вы найдете на GitHub.
Там где про датчик Даллас , сопротивление не правильно указали
Как получить