Делаем контроллер для умного дома / Habr
Делаем контроллер для умного дома и не только.В предыдущей статье я описывал разработку системы в целом. В этой я опишу разработку контроллера, который отвечает за опрос датчиков и модулей ввода-вывода. «Зачем изобретать велосипед?» — спросите вы. Во-первых, это интересно, во вторых, как ни странно, нет OpenSource решения для подобного контроллера, покрывающего как программную так и аппаратную часть. Статья ориентирована на людей немного разбирающихся как в электронике так и в embedded linux development.
Сделать контроллер, скажете вы, это же так сложно — нужно делать плату, писать софт, печатать корпус. Но в реалии всё чуть-чуть ещё сложнее, вот во что это вылилось для меня, но вы в принципе правы:
1. аппаратная часть контроллера
— выбор cpu платы для контроллера
— выбор IO контроллера
— выбор блока питания
— структурная схема контроллера
— разработка кросс платы для контроллера
— разработка плат для RS-485 модулей
2. софт для контроллера
— выбор системы сборки для ядра linux и rootfs
— структура разделов SD карты
— выбор бутлоадера и загрузка нужного rootfs
— изменения в device tree
— выбор системы сбора дебажных трейсов
— написание билдсистемы
— написание коммуникационного ядра
— написание mqtt гейтвея (дискретные/аналоговые точки контроллера -> топики mqtt)
— написание парсера гуглтаблицы и построение конфигурационного json файла для гейтвея
— написание point monitor для доступа к точкам контроллера
— монтирование readonly файловой системы
3. корпус контроллера
— какой должен быть, разъёмы, охлаждение, посадочные места под плату, закладные под клипсы для скоб на динрейку.
— конструирование и печать
Пару слов о аппаратной части.
Наверно только самые отчаянные сейчас берут отдельно процессор, память, флеш, контроллер питания, еще пару сот компонентов и начинают лепить это всё вместе. Остальные же пользуются плодами трудов других людей, так быстрее и проще. Нужно всего лишь открыть браузер и написать «одноплатный компьютер» и весь остаток дня провести в выборе нужного. Мне нужно было много последовательных портов и желательно что бы плата поддерживала -40°C до +85°C, поэтому выбор пал на BeagleBone Black(BBB). Также на ВВВ вся периферия выведена на два разъёма PBD по 46 пинов с шагом 2.54, что удобно для макетирования и разработки кросс платы. Кросс плата нужна что бы объединить все компоненты на одной плате, у меня это — cpu плата, блок питания, IO контроллер, и платы каналов RS485. Также именно кросс плату нужно крепить к корпусу и на ней стоят разъемы для подключения питания и кабеля RS485.
Так, с cpu платой разобрались, следующее что надо решить — нужно ли на кросс плату ставить Input/Output(IO) контроллер или можно и без него. Я его заложил на плату, и успешно им пока не пользуюсь. Единственное что он делает это откладывает старт BBB на 1с после подачи питания и обслуживает кнопку reset.
Пару слов о платах каналов RS485.
На кросс плату выведены 4 последовательных интерфейса BBB. Так что туда можно поставить любой тип канала который нужно, RS485, CAN, Zigbee модуль…
Мне нужны были каналы RS485, так что я сделал только их, они с автоматическим управлением приемом/передачей и с гальванической развязкой. Почему не использовать управление приёмо-передачей с ВВВ, да потому что TI официально перестали поддерживать строб для RS485 в драйвере serial устройства. Можно найти патч к драйверу, можно дописать самому, но зачем? Сделав канал самостробирующий, можно его будет ставить на любую плату, например на RaspberyPi, где никогда и не было такой поддержки, если была, то поправьте меня. Строб для драйвера rs485 формируется на attiny10, дешево и сердито.
Возвращаемся к софту.
Выбор системы сборки для ядра linux и rootfs.
Существует несколько подобного рода систем, самые популярные это Yocto и BuildRoot. Ели вам нужно разработать большой проект, если у вас много времени и желания писать рецепты, то Yocto — ваш выбор. С помощью же BuildRoot, можно собрать всё что нужно для простого запуска платы очень и очень просто, т.к. я делаю систему на Beaglebone Black (далее ВВВ) то:
- почитать что написано здесь habr.com/ru/post/448638
- make clean
- make beaglebone_defconfig
- make
Вот и всё. Теперь всё необходимое для запуска платы, лежит в папке /buildroot/output/images.
Выглядит всё очень просто и не интересно, так что можно сделать немного посложнее:
- интегрировать buildroot в свою билдсистему, скачивать его скриптом, не забыв использовать стабильный тэг, а не брать последний develop
- написать свой defconfig и перед сборкой buildroot подкидывать его скриптом в папку /buildroot/configs, не забываем что все дефконфиги должны заканчиваться на *_defconfig, иначе buildroot его не видит
- копировать свой post-build.sh в board/beaglebone/post-build.sh
- сделать prepare скрипт, который будет делать п1, п2 и п3 за вас
Как результат buildroot будет генерировать zImage и rootfs.tar
Выбор структуры разделов SD карты:
На этом, думаю, не стоит много акцентировать внимание.
Я сделал 4 раздела BOOT / ROOT_1 / ROOT_2 / DATA.
В BOOT разделе хранится всё необходимое для начальной загрузки: MLO, barebox.bin, barebox.env, am335x-boneblack.dtb, zImage, boot.txt.
ROOT_1 и ROOT_2 содержат rootfs, выбор которого вписан в файле boot.txt(см. ниже). Все эти разделы монтируются как readonly во избежания крешев файловой системы при выключении питания. DATA содержит проектные конфиги, при изменении которых нет необходимости пересобирать код.
Такая структура разделов в будущем позволит легко написать software update компоненту. Эта компонента будет перезаписывать один из разделов ROOT_1/ROOT_2, который сейчас не используется, а потом просто менять файл boot.txt, если не нужно менять ядро.
Выбор бутлоадера.
У меня было много экспериментов с бутлоадерами для BBB. Сначала я использовал, как все, U-Boot который генерирует BuildRoot. Но мне он не понравился, может быть, конечно, это дело привычки, но мне показалось что это перебор, уж очень он тяжелый и сложно конфигурируемый. Потом, я подумал что не плохо бы было стартануть систему быстро, секунды за 2-3, и подпилив X-Loader так что бы он грузил ядро, у меня это получилось, но опять же остался вопрос с конфигурированием, да и время старта для меня не критично(система на systemd грузится сама по себе медленно, даже если удалить всё не нужное).
В конце концов я остановился на barebox, его простота мне очень понравилась, плюс на сайте есть вся документация (www.barebox.org).
Например, что-бы грузить rootfs c первого или второго раздела нужно всего лишь:
1. на boot разделе сделать файл boot.txt который экспортит переменную типа «export BOOT_NUM=Х»
2. сделать два скрипта /env/boot/sdb1 /env/boot/sdb2 в которых описать параметры загрузки, например:
echo "botting with mmcblk0p2 as rootfs..."
global.bootm.image=/boot/zImage
global.bootm.oftree=/boot/am335x-boneblack.dtb
global.linux.bootargs.console="console=ttyO0,115200"
global.linux.bootargs.debug="earlyprintk ignore_loglevel"
global.linux.bootargs.base="root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait"
3. сделать скрипт /env/boot/sd в котором в зависимости от BOOT_NUM стартовать sdb1 или sdb2 скрипт
4. установить переменную boot.default
nv boot.default=sd
saveenv
5. далее меняя BOOT_NUM в boot.txt мы будем загружать rootfs с первого или второго раздела, что в будущем можно использовать для software update.
Изменения в device tree.
Поскольку для связи с модулями я использую MODBUS RTU по RS485, то мне нужно было включить практически все существующие на ВВВ последовательные порты. Для этого надо заэнэйблить их в device tree, т.к. по умолчанию большинство из них выключены.
Правильно бы было сделать свой патч для файла am335x-bone-common.dtsi из пакета билдрута и применять его каждый раз перед его сборкой, но лень победила, и я просто вытащил все нужные файлы, поменял всё что нужно и сбилдил руками.
Т.к. это делается один раз, то можно и так:
1. Создаем папку с файлами необходимые для сборки:
am335x-bone-common.dtsi am335x-boneblack-common.dtsi am335x-boneblack.dts am33xx-clocks.dtsi am33xx.dtsi am33xx.h gpio.h omap.h tps65217.dtsi
2. В файле am335x-bone-common.dtsi нужно правильно настроить пины и заэнейблить драйверы портов:
uart1_pins: pinmux_uart1_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0) AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0) >; }; uart2_pins: pinmux_uart2_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE1) AM33XX_IOPAD(0x954, PIN_OUTPUT_PULLDOWN | MUX_MODE1) >; }; uart4_pins: pinmux_uart4_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLDOWN | MUX_MODE6) >; }; uart5_pins: pinmux_uart5_pins { pinctrl-single,pins = < AM33XX_IOPAD(0x8C4, PIN_INPUT_PULLUP | MUX_MODE4) AM33XX_IOPAD(0x8C0, PIN_OUTPUT_PULLDOWN | MUX_MODE4) >; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; status = "okay"; }; &uart2 { pinctrl-names = "default"; pinctrl-0 = <&uart2_pins>; status = "okay"; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; status = "okay"; }; &uart5 { pinctrl-names = "default"; pinctrl-0 = <&uart5_pins>; status = "okay"; };
3. Далее немного магии, и готовый файл am335x-boneblack.dtb лежит в этом же каталоге:
a. sudo apt-get install device-tree-compiler
b. запускаем препроцессор:
cpp -Wp,-MD,am335x-boneblack.dtb.d.pre.tmp -nostdinc -Iinclude -Isrc -Itestcase-data -undef -D__DTS__ -x assembler-with-cpp -o am335x-boneblack.dtb.dts.tmp am335x-boneblack.dts
c. запускаем сам компилятор:
dtc -O dtb -o am335x-boneblack.dtb -b 0 -i src -d am335x-boneblack.dtb.d.dtc.tmp am335x-boneblack.dtb.dts.tmp
4. am335x-boneblack.dtb нужно положить на boot раздел рядом с ядром и в скрипте запуска для barebox добавить следующую строчку — «
global.bootm.oftree=/boot/am335x-boneblack.dtb
«Выбор системы сбора дебажных трейсов.
Как известно систем без багов не бывает, как и анализа многопоточной системы без трейсов. Очень удобно если эти трейсы не выводятся просто в консоль, а собираются чем-то специально для этого созданным, да так что бы можно было сортировать их по процессам, применять фильтры и т.д. И я как раз знаю одну неплохую систему, которую легко собрать как под host так и под target. Это DLT, если вы никогда не слышали об этом, то это не беда, все пробелы в знаниях можно легко покрыть прочитав at.projects.genivi.org/wiki/display/PROJ/Diagnostic+Log+and+Trace.
Данная система состоит из dlt-daemon и dlt-viewer. Как и понятно из названия dlt-daemon запускается на таргете, а dlt-viewer на хосте. Плюс к этому всему, к своему бинарнику, с которого мы хотим собирать трейсы, нужно прилинковать dlt либу.
В общем удобно всё, как собирать трейсы так и анализировать их, рекомендую.
Написание билдсистемы.
Зачем писать билдсистему, ведь можно всё скачать с репозиториев, сбилдить руками, собрать на основе этого rootfs и вуалля, контроллер работает. Но повторить такой трюк через месяц будет сложнее, а через два — так вообще невозможно. Опять придётся вспоминать что, куда положить, что сбилдить и как запустить. Поэтому потратив немало времени сначала, вы экономите его потом, плюс вы получаете возможность удобно билдить под host и target. Билдсистема состоит из набора скриптов, которые сначала подготавливают host для билда, скачивают сторонние компоненты, такие как buildroot, mosquitto, DLT daemon, с их репозиториев, билдят их, раскладывают по своим местам. А уж потом можно запускать билд вашего проекта. Если билд под host, сделать не сложно, то с билдом под таргет всегда нужно повозиться, и лучше что бы это делал скрипт.
Buildroot можно сконфигурировать так что бы он вызывал post-build скрипт после того как он сформирует rootfs, которая будет лежать в buildroot/output/target. Это даёт отличную возможность вам положить туда всё то, что вам нужно. И тогда, образ файловой системы уже будет содержать всё необходимое для запуска вашей системы.
Рецепт примерно такой:
- надо скопировать свои бинарники куда-то в buildroot/output/target, например в /opt/bin
- если есть конфиги, то с ними сделать то же самое, только в /opt/etc
- скопировать сторонние бинарники, для меня это mosquitto, DLT daemon, их либы и конфиги
- Что бы при загрузке контроллера система стартанула сама — нужно скопировать ваши systemd сервисы, лучше их объединить в свой target и заэнэйблить его сделав симлинку в multi-user.
- скопировать модифицированный fstab(зачем, расскажу позже)
После этого вам достаточно распаковать buildroot/output/images/rootfs.tar на нужный раздел SD карты и включить питание.
build git repo: https://github.com/azhigaylo/build
Написание коммуникационного ядра.
Концепция этого стара как сам modbus.
У каждого устройства ввода-вывода в modbus сети есть регистры(16 bit), доступные на чтение, чтение/запись, в которых хранятся данные и через которые идет управление этими устройствами. У контроллера, в свою очередь, есть массивы дискретных(статус и byte значение) и аналоговых точек(статус и float значение), в которых он и хранит состояние всех параметров.
Так вот, задача коммуникационного ядра проста — собрать данные с устройств ввода-дывода по протоколу modbus, замапить их на точки контроллера и предоставить доступ к этим точкам для верхнего уровня. А если вам надо чем-то управлять, то всё в другую сторону — логическое устройство(об этом позже) должно быть подписано на точку контроллера и запись в эту точку инициирует трансляцию этого параметра в физическое устройство вода-вывода.
Для того, чтобы как-то структурировать данные и работу с устройствами, можно ввести понятие логического устройства, которое будет отображать состояние физического устройства в вашем софте.
Также я решил разделить логические устройства на две группы:
- Стандартные (модули Овен дискретного ввода/вывода), для которых заранее известны номера modbus регистров с данными, и достаточно только определить точки контроллера куда сохранить эти данные.
- Пользовательские устройства, для них надо самостоятельно описывать маппинг modbus регистров на точки контроллера.
Из всего выше сказанного логично иметь какой-то конфигуратор для контроллера, будь то просто json конфиг или самописная тула генерирующая бинарный конфиг, подходит что угодно. У меня второй вариант, потому что были идеи писать коммуникационное ядро так, что бы его можно было легко запускать не только на линукс борде но и на Ардуине с FreeRtos, меняя PAL уровень в софте.
В конфигураторе для каждого устройства нужно установить номер rs485 порта контроллера, адрес устройства, и точку контроллера в которую отображается статус связи с устройством, плюс для каждого стандартного устройства описываются его каналы, а для пользовательского — маппинг его регистров на точки.
Такой конфигурационный файл, содержащий все необходимые данные по конструированию modbus сети, позволяет не модифицировать исходный код для проекта если надо добавить/удалить/изменить устройства ввода-вывода, достаточно изменить параметры в конфигураторе и сохранить их в конфиг файл.
При старте коммуникационное ядро разбирает конфиг и создает на его базе списки логических устройств для каждого rs485 порта контроллера, после этого создаются потоки на каждый порт и начинается циклический опрос физических устройств.
core git repo: https://github.com/azhigaylo/homebrain_core
Написание mqtt гейтвея.
Собственно говоря — ваши точки контроллера как дискретные, так и аналоговые, с проприетарным интерфейсом доступа к ним, мало кому интересны. Так что выход один — mqtt. Думаю, не преувеличу если скажу, что это на данный момент самый распространенный протокол обмена небольшими сообщениями, плюс он очень прост и понятен в использовании. Так что когда мне понадобилось транслировать данные с контроллера — я не долго раздумывал что использовать.
Т.к. параметров у меня довольно много, то постоянно возникали путаницы в файле конфигурации гейтвея, где был прописан маппинг точек контроллера на mqtt топики гейтвея. Помогла гугл таблица, и написание csv парсера этой таблицы в конфигурационный json файл для гейтвея.
gateway git repo
parser git repo
Написание point monitor.
Иногда очень полезно посмотреть что же сейчас происходит с точками контроллера, для этого я написал небольшое приложение который подключается непосредственно к коммуникационному ядру и считывает состояние дискретных и аналоговых точек. У меня довольно-таки туго с UI так что кое-как смог накидать приложение на QML, оно со скрипом заработало, можно считать точку, можно её записать, а мне большего и не надо.
pointmonitor git repo: https://github.com/azhigaylo/pointmonitor
Монтирование readonly файловой системы.
Обычно этому мало кто уделяет внимание, и даже в продакшен проектах можно встретить устройства в которых партишен с rootfs доступен на запись. Это рано или поздно приводит к крешу любой, даже самой устойчивой файловой системы. Т.к. контроллер может быть выключен в любой время, то это лишь вопрос времени/случая когда это произойдет. Что бы минимизировать эту вероятность надо немного повозиться с fstab и перед сборкой образа rootfs, положить его туда, как было описано выше. В fstab, во-первых, надо примонтировать файловую систему как readonly а во вторых всё что может меняться замапить в tmpfs.
Мой fstab таков, у вас он может отличатся:
/dev/root / auto ro 0 1
tmpfs /tmp tmpfs nodev,nosuid,size=50M 0 0
tmpfs /srv tmpfs nodev,size=50M 0 0
tmpfs /var/log tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/run tmpfs defaults,noatime,size=50M 0 0
tmpfs /var/lib tmpfs defaults,noatime,size=10M 0 0
Корпус контроллера.
3D принтер давно вошёл в разделы маст хэв для каждого инженера-колхозника, у меня к сожалению его нет, но он стоит на работе. Последнее время ажиотаж у других сотрудников к нему пропал, этим я и пользуюсь, печатая всё что нужно и не нужно, в этом вы могли убедится, читая мой предыдущий пост.
Рисуем в FreeCAD, генерим gcode в Cura и получаем корпус, не забыв сделать посадочные места под плату, вырезы под разъёмы и охлаждение и закладные для клипс на din рейку.
Ну вот и всё, теперь у нас есть плата, софт на SD карте и корпус. Берем напильник(не шучу) и соединяем всё вместе, подключаем питание, кабели RS485 и всё начинает работать. А вы говорили сложно, сложно…
маленький контроллер для «умного дома» / Habr
Я занимаюсь разработкой программ для программируемых логических контроллеров(ПЛК) в промышленных автоматизированных системах управления технологическими процессами(АСУ ТП).Для тех, кто сталкивается с этим словом впервые, поясню. ПЛК это специальный мини-компьютер, который работает так:
1. Принимает входные дискретные (Di) или аналоговые (Ai) сигналы;
2. Обрабатывает эти сигналы по заданной программистом программе;
3. Выдает управляющий сигнал через дискретные (DO) или аналоговые (AO) выхода.
Дискретный — когда у сигнала может быть только 2 состояния: 0 или 1, «да» или «нет». Например, кнопка нажата или отжата, лампочка включена или выключена.
Аналоговый — когда значение параметра зависит от уровня электрического сигнала. Например, чем выше уровень сигнала (вольт или миллиампер) от датчика температуры, тем больше измеряемая температура.
Применяются ПЛК в основном в промышленности, станках, системах домашней автоматизации «умный дом» и т.д.
Естественно, в силу профессии меня интересует все, что касается ПЛК и другого оборудования, применяемого в АСУ ТП. Как-то, бродя по сети, я зашел на сайт американской компании Velocio, которая производит ПЛК серий Ace, Branch, Embeded.
Главные фишки этих контроллеров — маленький размер, всего 2.5» x 2.5», питание 5 вольт и цена от 49$ за модель с 6 дискретными входами и 6 дискретными выходами. Особенно впечатлил размер, такого маленького ПЛК я еще не встречал:
ПЛК меня заинтересовал, я связался с компанией Velocio и мне прислали контроллер модели Ace 3090v5. Хотелось бы вкратце рассказать об этом ПЛК и более широкой аудитории Хабра. Забегая вперед скажу, что ПЛК компании Velocio лучше всего подходят для «умных домов» и прочих систем домашней автоматизации.
Вот ко мне пришла посылочка с контроллером прям из города Хантсвилл, штат Алабама:
Состав посылки:
1. ПЛК Velocio Ace 3090v5, $179
2. Крепление на DIN-рейку, $5
3. Коннекторы сигнальных линий (3,4,8 pin, шаг 2.5 мм), 6 шт., $6*3
4. Отвертка плоская, жало 1.5 мм, бесплатно
5. Коннектор питания (2 pin, шаг 2.5 мм), $2
6. Кабель USB Am-miniB, $5
Кабель USB для программирования Ace не обязательно покупать в Velocio, это обычный кабель USB Am-miniB, который продается в любом компьютерном магазине. Коннекторы тоже можно поискать в другом месте, но крепление на DIN-рейку уникально и его нужно покупать вместе с контроллером.
Ожидания Ace 3090v5 оправдал, он действительно очень маленький:
Характеристики:
Название | Velocio Ace 3090v5 | |
Назначение | ПЛК для домашней и промышленной автоматизации | |
Кол-во DI | 6 | |
Кол-во DO | 18, транзисторные | |
AI | Кол-во, всего | 7 |
Кол-во AI 16 бит/ тип | 4/ Термопары J, K, T, N; ±0.256 V, ±0.512 V, ±1.024 V, ±2.048 V |
|
Кол-во AI 12 бит/ тип | 3/ 0…+5 V | |
Порты связи | Mini USB(может работать по Modbus), RS-232 | |
Протоколы передачи данных | Modbus RTU slave | |
Скорость передачи данных, bps | 9600, 19200, 38400, 57600 | |
Крепление | DIN-рейка | |
Питание | 5 V DC | |
Габариты | 63.5х63.5х12.7 мм | |
Температура эксплуатации | -40… 85°С | |
Степень защиты IP | IP65 | |
Среда программирования | Velocio vBuilder, бесплатная | |
Цена | 179 $ |
Конструкция
При своих размерах, контроллер в общей сумме имеет 31 вход и выход, порт последовательной связи RS-232 и порт Mini USB для загрузки программ и связи с внешними устройствами.
Спереди на корпусе видны светодиоды индикации питания и состояния дискретных входов и выходов:
Сзади на корпусе имеются выемки для монтажа крепления на DIN-рейку:
На боковых стенках корпуса находятся порты для подключения всех сигналов через разъемы. Порты маркируются литерами A, B, C, D, E, F:
Подключение проводов происходит через коннекторы COMBICON PTSM Series фирмы Phoenix Contact с шагом ножек 2.5 мм (0.098»):
Вставляются провода в коннектор с помощью идущей в комплекте с ПЛК отверткой так:
Дискретные выхода- транзисторные, на то есть такие причины:
- реле в корпус контроллера все равно не поместится
- для обеспечения большого быстродействия, например при управлении шаговыми двигателями
Естественно, для коммутации электрической сети 220 В транзисторные выхода не подходят и нужно после них ставить промежуточные реле. Можно купить модули с промежуточными реле там же у Velocio, при покупке ПЛК. А можно сэкономить и купить на ебее аналогичные китайские платы, как сделал я:
Аналоговые входа (Ai) в Ace 3090v5 разделены на 2 группы:
- 3 Ai с общей землей в порту A, диапазон входных сигналов 0… 5 V
- 4 Ai дифференциальных в порту F, подключение датчиков температуры(термопар) типа J, K, T, N, а так же милливольтных сигналов
Вот я подключил на вход Ai F1 термопару типа «К» от китайского тестера и вывел значение температуры на ноутбук:
Кстати, в этом примере я термопару в контроллере не калибровал. Тем не менее, показания температуры соответствовали значениям спиртового градусника, который выступал у меня в роли контрольного прибора.
Ace отличается маленьким энергопотреблением: 5 В при макс. силе тока до 0.3 А. То есть, в качестве блока питания можно использовать 5-вольтную зарядку для мобильника.
Программирование
Разработка программ осуществляется через бесплатную среду программирования vBuilder. В пакете установки находится так же драйвер виртуального COM-порта, необходимый для подключения контроллера к компьютеру:
Изучение vBuilder лучше начать с просмотра видеоуроков. Есть так же полная документация на английском языке под названием «vBuilder Manual» в несколько сотен страниц.
Разработка программ возможна на двух графических языках: языке релейной логики(Ladder Logic) и языке блок-схем(Flow Chart).
Язык релейной логики (Ladder Logic) это хорошо известный всем программистам ПЛК язык LD, который является одним из стандартизированных по стандарту IEC 61131-3 промышленным языком.
LD придумали специально для того, что бы на нем писали программы не только программисты, но и обычные электрики. Программа на LD и выглядит, как электрическая схема:
Это легкий для изучения и работы язык.
Язык блок-схем (Flow Chart) это графический язык, на котором программа создается в виде блок-схем:
Блок-схемы и принципы их построения многие помнят еще со времен информатики в школе. Например, я закончил 11 класс в 1999 году, в мрачные времена постсоветского компьютерного средневековья. Тогда фирма «Интел» уже торговала процессорами Pentium-II, Билл Гейтс продавал Windows 98, а в нашей школе стояли советские компы «Электроника» с черно-белыми экранами. Большую часть урока мы сидели за партой и рисовали программы в тетрадях именно блок-схемами. Потом переводили их на бейсик, садились за «Электронику» (по 4 человека на машину) и уже после вводили в компьютер. А в других школах вообще компьютеров не было.
Так что для начинающих язык Flow Chart даже легче, чем LD. При этом, по моему мнению, он нагляднее и позволяет создавать более сложные программы. Кстати, блок-схемы я часто использую и сейчас, работая с различными ПЛК. Когда мне нужно продумать какой-нибудь сложный алгоритм, я сначала рисую блок-схемы на листике, а потом уже перевожу их в программу на конкретном языке.
В обоих языках программирования доступны одни и те же программные блоки:
- сравнение(<, >,= и др.)
- присваивание с возможностью ввода формул
- копирование
- счетчик
- таймер
- часы реального времени
- цифровой фильтр
- чтение энкодеров
- управление шаговым двигателем
- ПИД-регулятор
- ШИМ
- плавный пуск/останов
- масштабирование
- побитовый сдвиг и «переворот» числа
- статистика
- управление com-портом для реализации собственных протоколов передачи данных
- вызов подпрограмм
В качестве «быстрого хэлпа» по программным блокам используется та же страница загрузки vBulder. Просто жмешь по пиктограммам соответствующих блоков vBuilder справа на странице и читаешь, как они работают:
Если с английским совсем туго, на помощь придет переводчик браузера Ghrome: правая кнопка мыши-> перевести на русский. Перевод технический, но смысл будет понятен.
Доступные возможности при программировании:
- создание собственных переменных (тэгов) типа bit, unsigned int 8/16 bit, signed int 16/32 bit, float;
- создание массивов;
- создание подпрограмм;
- причем, подпрограммы здесь это объекты по типу FB как в Step-7 и Codesys;
- каждому входу/выходу и тэгам можно назначить адрес для передачи их значений по Modbus;
- cвязь по Modbus с ПК, сенсорными панелями и др. по Modbus в режиме slave; возможно подключение по Modbus к 2-м мастер-устройствам одновременно;
- возможность реализовывать собственные протоколы передачи данных по RS-232;
- отладка программы по шагам.
Подключение Ace к компьютеру и сенсорным панелям
Для связи с внешними устройствами по сети в Ace 3090v5 имеется 2 порта: RS-232 и USB. Оба этих порта могут передавать данные по протоколу Modbus RTU slave. Одновременно к Ace могут быть подключены 2 мастер устройства. Например, компьютер по USB, а сенсорная панель по RS-232. Для управления с компьютера применяются специальные программы типа SCADA, но можно и на каком-нибудь визуал бейсике программу написать.
RS-232 это старый добрый COM-порт компьютера. Раньше в него мыши подключались. Для подключения компьютера к Ace я и нашел старую комовскую мышь с шариком, отрезал от нее хвост и подключил его к 3-пиновому разъему RS-232 Aсe вот по такой схеме:
Если в компьютере нет COM-порта, нужно купить любой преобразователь USB/RS-232 по цене около $8.
Варианты реализации обмена данными Ace с внешними устройствами:
- по внутреннему протоколу Ace для связи с компьютером, на котором установлена бесплатная SCADA vFactory;
- по универсальному протоколу передачи данных Modbus RTU для связи с компьютерами, сенсорными панелями и другими ПЛК;
- по собственному протоколу, реализованному программным путем в контроллере.
Бесплатная СКАДА vFactory работает только с ПЛК компании Velocio, потому что использует не Modbus, а внутренний закрытый протокол контроллеров. Документации на vFactory нет, чтобы ей овладеть, достаточно одного видеоурока. Очень простая СКАДА без скриптового языка и возможности ведения архивов. Панель инструментов невелика:
Зато, можно быстро сделать работающую программу без особых навыков программирования:
Если возможностей vFactory маловато, можно подключить по протоколу Modbus RTU любую другую SCADA. Например, в ролике с термопарой, я применил SCADA Trace Mode 6 Base.
Можно в Ace запрограммировать и собственный протокол передачи данных, этому посвящен отдельный видоурок.
ПЛК Ace в домашней автоматизации
Думаю, этот контроллер хорошо себя покажет в системе «умный дом». Плюсы контроллера: маленький размер, малое энергопотребление, питание всего от 5 В, множество дискретных выходов, возможность подключения термопар, 2 порта связи с внешними устройствами, легкость программирования, большое количество разных программных блоков.
Если контроллер Ace понравился, но 6 дискретных входов маловато, можно присмотреться к серии Branch — тот же Ace, только с возможностью подключения модулей расширения (до 450 входов/выходов). Впрочем, это уже без меня — мне пока хватит поиграться Ace.
Советы при выборе контроллера умного дома
Автоматизировать работу электроприборов, встречающихся в каждой квартире, желает каждый. Оборудование, представленное на рынке различными производителями, позволяет легко создать производительную конфигурацию.
Выбирать оборудование следует с учетом бюджета проекта, а также с учетом тех протоколов, которые уже используются в модулях. Рынок предлагает как готовые решения, так и отдельные элементы, которые останется только подключить и настроить. При желании собрать контроллер для собственного умного дома можно своими руками, но в этом случае потребуются определенные навыки. Большинство же отдает предпочтение покупке готовых решений, о чем и пойдет речь дальше.
Что собой представляет контроллер?
Устройство является ключевым элементом конфигурации, выступая в качестве центра управления всем умным домом. С помощью прибора удается обеспечить исполнение сценария устройствами, которые включены в единую сеть. Контроллер отвечает за хранение программ, состоящих из последовательности действий, выполняемых электроприборами при соблюдении определенных требований.
Также именно он позволяет связать умный дом с гаджетом его владельца. Поэтому не удивительно, что без контроллера невозможно обойтись. В противном случае активировать работу каждого устройства придется самостоятельно, что не позволит говорить об автоматизации.
Датчики, которые входят в состав комплекта, выступают анализаторами. Их задача в том, чтобы передать определенную информацию на контроллер системы, а уже он будет решать то, как реагировать в конкретной ситуации в соответствии с заданной схемой. Умный дом без контроллера невозможно назвать таковым.
Возможности контроллера
Устройство соединено с различными сенсорами и интеллектуальными приборами, посредством чего удается быстро обрабатывать информацию и отображать ее в работе оборудования. Поэтому способности контроллеров не ограничены. С их помощью активируется освещение или изменяется яркость, открывается вода или включаются бытовые приборы. Контроллер может автоматически активировать сигнализацию, когда владелец покидает дом. Устройству подчинены разнообразные функции, которые определяются конфигурацией умного дома:
- Кондиционер и вентиляция;
- Элементы отопления;
- Двери и окна, блокировка которых выполняется автоматически;
- Домашний кинотеатр и даже подача корма домашним любимцам.
Выбор контроллера
Говоря о контроллере, обычно подразумевают небольшой сервер, способный хранить и обрабатывать информацию. Визуально его можно сравнить с компактным ПК, который имеет собственную ОС. Оборудование обладает повышенной надежностью и базируется на применении новых технологий. Для построения конфигурации требуются только профессиональные компоненты.
Устройства подразделяют на две группы:
- Многофункциональные контроллеры;
- Элементы с опцией расширения.
Представленные на рынке устройства могут комплектоваться коммутационными панелями или модулями, которым контроллер передает ряд функций, к примеру, трансляцию информации.
Поэтому и передача сведений в контроллере может базироваться на использовании:
Для установки приборов и датчиков могут применяться отдельные линии. Очередной проект должен создаваться индивидуально, чтобы учесть пожелания владельца и особенности дома. Монтаж контроллера позволит в дальнейшем настроить освещение, климатическое оборудование и элементы безопасности для всей квартиры или конкретной комнаты. Устройство дает возможность управлять приборами в автономном режиме, а также удаленно, ведь контроллер становится настоящим центром регулировки сценариев и контроля над их исполнением.
Распространённые модели оборудования
Каждая компания, которая предлагает свою продукцию клиентам, заботится о ее производительности и надежности. Покупателю остается учесть различные особенности изделий производителей и выбрать среди них лучший вариант.
Овен
Устройства данной марки можно назвать контроллерами базового уровня. Их отличие в использовании Modbus-протокола. С его помощью удается организовать передачу информации между различными каналами. Применять его следует в квартирах и загородных домах, этажность которых не превышает двух. Конфигурация обладает функциями для программирования освещения (наружного и внутреннего), обеспечения обогрева или активации сигнализации. Контроллер связан с пультом пользователя благодаря интерфейсу RS-485. Установка подходящего сценария выполняется владельцем устройства.
Приложение включает в себя несколько блоков. Каждый из них контролирует выбранный сегмент. Такой контроллер позволяет отправить текстовые сообщения на гаджет владельца, для чего реализован GSM канал. Оповещение можно настроить для работы в экстренных ситуациях, а также в случае неисправности важных элементов схемы.
VeraEdge
Контроллер марки vera позволяет создать умный дом, отличающийся высокой надежностью. Модели данной линейки востребованы среди покупателей. Устройства работают без сбоев на протяжении лет, что делает их выбор верным решением. К преимуществам модели стоит отнести:
- Производительность;
- Эргономичный дизайн;
- Компактные размеры;
- Повышенный уровень надежности.
Для своего устройства производитель воспользовался новой платформой, отличающейся высокой производительностью. ОЗУ увеличена до 128 Мб, а микрочип обладает частотой в 600 МГц. У владельца есть шанс контролировать процессы, выполняемые электроприборами. Общее количество механизмов в схеме может достигать 200 единиц. Дополнительно устройство имеет модули связи для регулировки по Wi-Fi. Не обошлось без недостатков. Так производитель забыл о необходимости установить ИБП, который отвечает за бесперебойную работу. Но пользователи всегда могут докупить подходящую модель и установить ее самостоятельно.
Arduino
Компания arduino остается лидером сегмента. Она предлагает набор для экспериментов, с помощью которого создать индивидуальный умный дом с контроллером будет делом техники. Простота оборудования позволяет смонтировать и настроить его работу собственноручно. Контроллер привлекает внимание небольшими размерами. Комплект поставки включает множество сенсоров с различными индикаторами.
Большой опыт работы на рынке позволил arduino изготовить контроллер для умного дома, который недалек от идеала. С его помощью домашнюю автоматизацию может организовать каждый желающий. Любой сенсор способен поддерживать беспроводной протокол передачи информации, а также демонстрирует минимальные погрешности. Для управления ними используются отдельные блоки, отличающиеся уникальным дизайном и удобной навигацией. Существует и отдельное приложение для управления умным домом.
Siemens
Известный производитель предлагает своим клиентам ряд решений, позволяющих автоматизировать работу приборов:
- В бытовых условиях;
- На производстве;
- В промышленных цехах.
Контроллеры компании представлены целой линейкой моделей LOGO. Популярность заслужили устройства двухкомпонентного типа. Первый из них имеет разъемы и дисплей, а второй отвечает за выполнение заданных действий, а также позволяет подключиться к контроллеру по надежному проводному каналу. Преимуществом для пользователей является наличие собственных разработок компании. Посредством нововведений ее контроллеры остаются производительными и имеют широкую сферу применения.
Положительные и отрицательные стороны контроллеров
Использовать автоматизированное оборудование может каждый желающий, ведь оно отличается доступной ценой и широким распространением. Можно выбрать контроллер на avr, который сделает управление умным домом приятным и интуитивным. В то же время нет необходимости приобретать полный комплект сразу, так как схему можно расширять постоянно.
Достоинством контроллеров является быстрое решение задач, указанных владельцем. Также оборудование применимо для увеличения автономности жилья, ведь даже простейшие механизмы можно заставить работать при отсутствии владельца. Но не обходится и без слабых сторон. Так пользователи часто сталкиваются со сложностями:
- Во время подключения и настройки;
- С дорогостоящим обслуживанием.
Развитие технологических процессов, которое можно наблюдать сегодня, позволяет надеяться, что эти недостатки будут нивелированы в ближайшем будущем.
сравнение двух контроллеров Z-Wave / М.Видео-Эльдорадо corporate blog / Habr
Мы решили сравнить два контроллера Z-Wave разных ценовых диапазонов и реализовать на них несколько тестовых сценариев умного дома с использованием набора самых ходовых датчиков и устройств.
Многие используют в быту различные умные штучки — это могут быть RGB лампы или розетки, датчики качества воздуха или освещенности. Но каждый производитель предлагает свое собственное приложение для каждого устройства, и это неудобно, когда нужно выключить все или посмотреть статистику по многим датчикам. С помощью технологии Z-Wave можно совместить устройства, управляя ими и просматривая статистику с одного контроллера.
На рынке представлены модели в разных ценовых сегментах. Чтобы понять общую картину, сравним два популярных контроллера Z-Wave: FIBARO Home Center 2 и Z-Wave.Me RaZberry.
FIBARO Home Center 2: «самый» по всем фронтам
Z-Wave контроллер Home Center 2 производства польской компании FIBARO — самый продвинутый и дорогой на российском рынке. Он поддерживает практически все Z-Wave устройства и может выступать в качестве SIP-сервера для организации видеосвязи.
Продуманный и простой веб-интерфейс позволяет быстро создать свой умный дом даже новичку. Большинство сценариев реализуется с помощью графических блоков, использующих логику IF-THEN. Когда их не хватает, на помощь приходит встроенная среда для написания скриптов автоматизации на языке LUA.
Контроллер разрешает установку дополнительных плагинов, и это сильно расширяет его возможности, позволяя, например, добавить поддержку лампочек Philips Hue или управление Samsung Smart TV.
Широкие возможности интерфейса позволяют отслеживать энергопотребление и просматривать различную статистику (например, по включению-выключению света, приходу и уходу). Это открывает простор по оптимизации расходов: например, если в течение дня часто никого нет дома, можно снижать температуру отопления в это время.
Устройства в интерфейсе FIBARO Home Center 2
Панель энергоресурсов и температуры в интерфейсе FIBARO Home Center 2
Z-Wave.Me RaZberry: умный и недорогой
Z-Wave контроллер RaZberry российско-немецкой компании Z-Wave.Me основан на продвинутом программном обеспечении Z-Way, которое используется во многих других Z-Wave контроллерах. Железная часть контроллера основана на одноплатном компьютере Raspberry Pi, который в кругу гиков ценится за возможность кастомизации, как железа, так и софта.
RaZberry в первую очередь нацелен на максимальную совместимость со всеми Z-Wave устройствами, поэтому в его экспертном интерфейсе есть множество тонких настроек для полного контроля над Z-Wave сетью.
RaZberry отлично подойдет и для не продвинутых пользователей, поскольку имеет простую систему автоматизации в виде более 150 отдельных приложений. 50 из них установлены по умолчанию, остальные можно бесплатно загрузить из онлайн-магазина.
Встроенная поддержка Apple HomeKit предоставляет пользователям iPhone голосовое управление с помощью Siri и управление устройствами из приложения Дом.
RaZberry также может работать как Wi-Fi роутер и поэтому хорошо подходит для загородных домов, позволяя обходиться без дополнительной покупки сетевого оборудования.
Устройства в интерфейсе Z-Wave.Me RaZberry
Приложения автоматизации в интерфейсе Z-Wave.Me RaZberry
Таблица сравнения характеристик Z-Wave контроллеров
Характеристика |
FIBARO HC2 |
RaZberry |
Расширение возможностей |
Встроенные плагины |
Магазин приложений |
Язык сценариев |
LUA |
JavaScript |
Графический конструктор сцен |
+ |
+ |
Wi-Fi |
— | + |
Внешняя антенна |
+ |
+ |
Архитектура |
Intel Atom |
Raspberry Pi 3 |
Голосовое управление |
Lili |
Apple Siri |
Русский язык интерфейса |
+ |
+ |
SIP Домофония |
2N домофоны |
— |
Apple HomeKit |
— | + |
Цена на 2017 год |
~ 51 000 р |
~ 15 000 р |
Датчики для тестирования
Для того, чтобы протестировать контроллеры, мы выбрали несколько типовых для умного дома сценариев и подобрали самые ходовые датчики и устройства, которые встречаются в умных домах чаще всего.
Тестовые сценарии
Для объективного сравнения функций на каждом из контроллеров создадим одни и те же сценарии с одинаковым набором устройств. Сразу же отмечу, что оба контроллера имеют отличную совместимость со всеми Z-Wave устройствами и поддерживают все их функции.
Автоматическое управление освещением
Используемые устройства:
- Датчик движения AEOTEC Multisensor 6-in-1
- FIBARO Dimmer 2
- FIBARO RGBW модуль
Начнем с автоматического управления освещением. Посмотрим характерные сценарии для наших датчиков. Так, датчик движения AEOTEC Multisensor 6-in-1 чаще всего используется в проходных помещениях, то есть там, где люди находятся непродолжительное время, — например, в прихожих, коридорах и пр. Также его можно установить в жилых помещениях — спальне или гостиной, чтобы автоматически выключать освещение, когда в комнате никого нет.
FIBARO Dimmer 2 в связке с ним позволяет регулировать яркость: например, днем включать свет на 100%, а ночью — лишь на 20%, чтобы не слепить глаза.
Датчик движения также может включить светодиодную ленту, подключенную к FIBARO RGBW, при определенных условиях на необходимый цвет и уровень яркости.
Для тестирования контроллеров мы выбрали два простых сценария: отключение света в комнате, в которой в течение получаса никого не было, и автоматическая регулировка яркости освещения в зависимости от времени суток. Посмотрим, что получилось.
Сценарий «Выключить свет через 30 минут, если нет движения» с помощью FIBARO Home Center 2.
В Home Center 2 этот сценарий можно сделать графическими блоками или скриптом LUA. Первый способ быстрее, но если необходимо задать дополнительные параметры, например, проверить, выключался ли свет вручную, то без LUA не обойтись.
Сценарий «Выключить свет через 30 минут, если нет движения» с помощью RaZberry.
В RaZberry для решения задачи используется приложение «Автовыключение». У него есть три параметра: устройство, которое нужно выключить, время задержки и возможность не сбрасывать таймер при получении повторной команды включения от датчика движения: нам нужно, чтобы таймер при любом новом движении перезапускался, поэтому галочку не ставим.
Сценарий «Днем включать свет на 100%, ночью на 20%» с помощью RaZberry.
Для реализации этого сценария в RaZberry можно использовать готовое приложение «Умное освещение». Несколькими кликами мышки выбираем диммер, датчик движения, задаем время «дня» и «ночи» и ночной и дневной уровень яркости — и задача решена.
Сценарий с автовыключением света реализуется одинаково просто и на Home Center 2 и на RaZberry, навыков программирования не требуется. Но задать изменение яркости в зависимости от времени суток в RaZberry проще, так как у этого контроллера есть готовое приложение, а на Home Center 2 пришлось бы писать большой скрипт.
Перенос выключателя в удобное место
Используемые устройства:
- Выключатель на батарейке Z-Wave.Me Dual Paddle WC
- FIBARO Dimmer 2
- FIBARO RGBW модуль
Управлять освещением в комнате — бра, светодиодной подсветкой и пр, можно с помощью двухклавишного батареечного выключателя Z-Wave.Me Dual Paddle WC, который крепится на двусторонний скотч в удобном для пользователя месте. Посмотрим, как организовать это с помощью наших тестовых контроллеров.
Сценарий «ВКЛ/ВЫКЛ бра и светодиодную ленту с выключателя» с помощью FIBARO Home Center 2.
Сценарий кажется простым, но отловить, какие события отправляет выключатель, можно только с помощью скрипта на LUA.
Сценарий «ВКЛ/ВЫКЛ бра и светодиодную ленту с выключателя» с помощью RaZberry.
Батареечный выключатель в RaZberry отображается как 2 клавиши с кнопками ВКЛ/ВЫКЛ. Приложение «Ассоциации» создает связь между выключателем и исполнительными устройствами, нажал вверх, всем отправилась команда ВКЛ, нажал вниз, всем отправилась команда ВЫКЛ.
Итог простой. В Home Center 2 реализация сценария выглядит посложнее, так как в интерфейсе контроллера нет элементов управления для батареечного выключателя, и для того, чтобы добраться до скрытых функций, нам пришлось написать скрипт в LUA. В RaZberry же все получилось быстро и доступно, поскольку все функции управления для любого устройства отображаются в виде виджетов.
Управление климатом
Используемые устройства:
- Устройство управления кондиционером Remotec ZXT-120
- Термоголовка на батарею Danfoss Living Connect
- Датчик открытия двери/окна FIBARO Door/Window Sensor
Обычно отопление и кондиционирование умного дома работают в автономном режиме и не требуют вмешательства человека. Но вряд ли стоит продолжать нагревать или охлаждать помещение, в котором открыто окно.
Поэтому для тестирования контроллеров мы выбрали достаточно очевидный и полезный сценарий временного отключения управления климатом.
Сценарий «При открытии окна выключить кондиционер» с помощью FIBARO Home Center 2.
В нашем дорогом контроллере такой сценарий быстро реализуется с помощью легкой в настройке «магической сцены», которая работает по принципу IF — THEN.
Сценарий «При открытии окна выключить кондиционер» с помощью RaZberry.
В более бюджетном RaZberry также есть приложение IF-THEN, аналогичное Home Center 2, — там аналогичным образом нужно выбрать датчик открытия, команду, по которой будет выполняться действие, и само действие — в нашем случае отключение кондиционера.
Подведем итог. При реализации типового сценария по управлению климатом разницы между контроллерами нет: и там, и там используется популярная конструкция IF-THEN и установка нужных нам настроек займет от силы несколько минут.
Охрана помещения
Используемые устройства:
- Датчик движения AEOTEC Multisensor 6-in-1
- Датчик открытия двери/окна FIBARO Door/Window Sensor
Z-Wave хорош тем, что позволяет задействовать одни и те же устройства для решения разных задач. Например, используемые нами в предыдущих сценариях датчики открытия окна FIBARO Door/Window Sensor и движения AEOTEC Multisensor 6-in-1 в режиме «охрана» можно настроить так, чтобы они сигнализировали об опасности. Алгоритм работы может выглядеть так: «Если установлен режим «Дом на охране», при срабатывании любого из датчиков отправлять тревожное сообщение, если установлен режим «Охрана снята», при срабатывании любого из датчиков выключаем кондиционер или управляем освещением«.
Разберем реализацию сценария настройки охраны помещения на наших тестовых устройствах.
Сценарий «Режим комфорт — режим охрана» с помощью FIBARO Home Center 2.
В FIBARO Home Center 2 с помощью виртуального устройства можно сделать панель охраны, которая в режиме «охраны» будет проверять все датчики, и если хоть один из них сработает, отправит тревожное сообщение.
Сценарий «Режим комфорт — режим охрана» с помощью RaZberry.
У RaZberry есть приложение «Охрана», которое позволяет задать список датчиков, тревожное сообщение и действия (например, включение сирены), активируемые при срабатывании датчиков в режиме охраны. Автоматически генерируется виртуальное охранное устройство с кнопками ВКЛ/ВЫКЛ, которое можно также использовать в других сценариях, например, автоматически ставить дом на охрану при определенных условиях.
Реализация сценария по постановке дома на охрану в обоих контроллерах — дело не двух кликов. В принципе в Home Center 2 на каждом датчике есть кнопка «На охрану» и «Снять с охраны», которая позволяет поставить любой датчик на охрану вообще без каких либо настроек. Но если датчиков много, процесс лучше автоматизировать путем написания скрипта на LUA. На RaZberry настраивать режим «Охраны» приходится вручную. Пользователю, у которого несколько датчиков, удобнее ставить на охрану с помощью Home Center 2. В большом доме с множеством охранных зон предпочтительнее RaZberry.
Итог: стоит ли переплачивать
Контроллеры FIBARO Home Center 2 и Z-Wave.Me RaZberry находятся в разных ценовых категориях, но тем не менее очень схожи по набору функций и легко решают любую задачу по автоматизации.
Home Center 2 обладает более приятным для пользователя интерфейсом с множеством полезных панелей и хорошо детализированными иконками. В плане автоматизации встроенное средство разработки на языке LUA с подсказками и удобной подсветкой синтаксиса — это большой плюс для профессионалов. Home Center 2 подойдет как новичкам, которым нравится удобный и красивый интерфейс, так и опытным пользователям, которые ценят возможности расширения и расширенного программирования.
RaZberry имеет более простой, но не менее функциональный веб-интерфейс. Каждая функция отображается как отдельный виджет, это очень удобно для приложений автоматизации. Большой ассортимент приложений позволяет парой кликов мыши решить почти любую задачу по автоматизации. Если же приложений недостаточно, можно написать свой скрипт на JavaScript. RaZberry также может работать как Wi-Fi роутер и в отличие от многих других контроллеров поддерживает Apple HomeKit. Устройство отлично подойдет тем, кто хочет недорого, но эффективно автоматизировать свой дом.
Какой контроллер выбрать для «умного дома»? — Хабр Q&A
Здравствуйте.Устанавливал простую GSM сигнализацию с модулем реле (управление кранами водоснабжения). Сейчас же, хочется бОльшей гибкости в автоматизации.
На «тостере» уже задавал подобный вопрос, и, комментаторы посоветовали MajorDoMo.
Ну и упомянули остальных — Z-wave, Sensehome, Mimismart, Loxone.
В целом, как таковой «умный дом» в городе не нужен. Если за в частном доме мы может управлять котлом, установить солнечные панели, управлять гаражами. То в обычной квартире, имхо, функционал «умного дома» сведен к автоматизации по расписанию/событиям. Управление светом, вытяжками, как показывает практика знакомых — это все баловство на первый месяц.
Исходя из своих мыслей, потребностей и возможностей выделил ключевые моменты.
Т.к. все «с нуля», планируется делать максимальную разводку слаботочной и установка проводных датчиков. Я все еще не доверяю радиоканалам и батарейкам.
В планах
— x1 бесконтактный считыватель proximity-карт в подъезде (снятие/постановка на охрану)
— x1 датчик открытия двери (сухой контакт)
— x2 датчик движения
— x3 датчик задымленности/огня (совмещенный или отдельные)
— x6 датчик протечки
— x2 кран шаровой с электроприводом (12 вольт / макс. 1 А / не более 15 Вт / подключение 3-мя контактами) // перекрытие воды в случае протечки
— x7 датчик температуры пола
— x7 кабельный/пленочный электрический теплый пол
— x2 датчик напора/давления воды
— x1 датчик температуры воды в стояке горячего водоснабжения
— x2 кран шаровой с электроприводом (12 вольт / макс. 1 А / не более 15 Вт / подключение 3-мя контактами) // перекрытие гор. воды, «открытие» бойлера
— x1 ИК излучатель (управление бойлером)
— x2 датчик температуры воздуха
— x2 ИК излучатель (управление кондиционером)
— x2 сбор расхода воды
— x1 сбор расхода электроснабжения
Итого, примерно (+ запас)
12 (+4) сухих контактов
12 датчиков с переменными данными (температура/давление/влажность, подскажите корректно название)
7 (+1) реле на 220
4 реле на 12
3 (+1) ИК излучателя
3 датчика расхода (вода, электричество)
Какой контроллер с дополнительными компонентами (реле, контакты) стоит рассматривать? Где есть хотя бы простое SMS управление/оповещение.
Всякие LAN/WiFi, mail/push оповещения приветствуются.
Может какие датчики себя зарекомендовали (повторюсь, не хотелось бы беспроводные использовать)?
Рассматриваю Wiren Board 4, может еще 5 появится к моменту запуска процесса реализации планов.
Контроллер Smart Home PRO
Контроллер Smart Home PRO (Новая версия) — «Мозг» Вашего умного дома , новейшая разработка с обновленным функционалом . С помощью контроллера Смарт-дом Вы можете создать автоматизированное управление домом своими руками. Управляйте через беспроводную домашнюю сетьWi-Fi или Интернет многочисленными бытовыми устройствами, используя для управления мобильный телефон или планшет на системах Android или IOS.
Устройство Смарт-дом позволяет дистанционно управлять бытовой техникой, освещением, электроприборами в Вашем доме. Вы можете управлять приборами из любой точки планеты вручную или по заранее заданному сценарию или по таймеру.
С помощью контроллера Смарт-дом Вы можете создать любые сценарии, например включить телевизор, музыкальный центр в определенное время, на нужном канале. Также этот контроллер может отслеживать, когда Вы ушли из дома или наоборот пришли домой, и в соответствии с настройками сценария выполнит необходимые операции с бытовыми приборами.
При использовании контроллера Смарт-дом совместно с метеостанцией Смарт-дом можно контролировать уровень освещенности, уровень шума, качество воздуха, температуру и влажность и при необходимости включать или выключать бытовые электроприборы(обогреватель, увлажнитель, осушитель, кондиционер, освещение и т.д.)
Управлять кондиционером очень легко и удобно. На Вашем смартфоне будет отображаться информация о температуре воздуха и Вы сможете дистанционно управлять микроклиматом в Вашем доме.
Для управления электрическими розетками потребуется Умная розетка или Умная розетка mini, с помощью которых Вы сможете управлять бытовыми приборами, например чайником, микроволновкой, светильником, вытяжкой и т.д.
6 причин иметь в доме SmartHome Pro
Система «умный дом» на базе оборудования ОВЕН
Задача автоматизации
Модернизация системы «умный дом» жилого дома в поселке Марфино Вологодской области, которая заключалась в замене существующей системы на новую.
Реализация проекта
Для реализации проекта было принято решение использовать в качестве центрального контроллера управления системы программируемый логический контроллер ОВЕН ПЛК100, поскольку в нем, как и в ранее используемом оборудовании, для обмена информацией используется протокол Modbus.
Функциональные требования к системе «Умный дом»:
1. Дистанционное и независимое управление электропитанием улицы (уличное освещение, гараж и т.п.), первого и второго этажей.
2. Наличие независимой линии электропитания для газового котла, холодильника и морозильника.
3. Наличие бесперебойного источника питания для обеспечения электроэнергией: центрального контроллера, модулей ввода-вывода, GSM-модема, панели оператора, GSM-усилителя, роутера Apple Time Capsule, коммутаторов LAN и серверного компьютера.
4. Управление освещением первого этажа посредством дистанционного пульта управления.
5. Четырехзонное управление теплым полом первого этажа (прихожая, гостиная, кухня, санузел).
6. Управление мультимедийными устройствами, а также освещением первого этажа посредством универсального пульта управления.
7. Управление освещением лестницы между этажами, а также освещением в спальне.
8. Контроль температуры наружного воздуха и температуры воздуха в помещении первого этажа.
9. Рассылка СМС сообщений (СМС диспетчеризация) при возникновении аварийных ситуаций (отсутствие питающей сети 220 В, аварий линий питания улицы, первого и второго этажей, авария низкой температуры воздуха первого этажа и др.).
10. Управление и мониторинг системы «Умный дом» посредством сенсорной панели и web-интерфейса.
Состав системы
Система «Умный дом» состоит из центрального шкафа управления, дополнительного шкафа управления, серверного компьютера, устройств мультимедиа, коммутаторов LAN, роутера.
Автоматика системы имеет бесперебойный источник питания, что позволяет системе работать при кратковременных отключениях электроэнергии.
Центральный шкаф управления состоит из вводного автоматического выключателя, счетчика электроэнергии, автоматических выключателей линий питания улицы, первого и второго этажей, силовых контакторов линий питания, программируемого логического контроллера, модулей ввода-вывода, панели оператора, GSM-модема, электромагнитных реле и мн.др. Выполняет функцию управления и распределения электроэнергии между потребителями системы «Умный дом».
Дополнительный шкаф управления состоит из автоматических выключателей, модулей ввода-вывода, коммутатора LAN. Выполняет функцию управления и распределения электроэнергии второго этажа, а также коммутацию центрального шкафа, серверного компьютера, роутера в локальную сеть. Дополнительный шкаф обеспечивает бесперебойное электропитание коммутатора LAN, серверного компьютера, роутера, а также усилителя GSM сети.
Выбор средств автоматизации
Главным элементом системы является программируемый логический контроллер ПЛК100, к которому по интерфейсу RS-485 подключены устройства ввода-вывода: модуль дискретного ввода-вывода ОВЕН МДВВ, модуль аналогового ввода ОВЕН МВА8, модули ввода-вывода производства INSYTE (LD2-R1000, LD2-TH, LD2-IR). По интерфейсам Debug RS-232 и RS-232 к контроллеру подключены соответственно панель оператора Weintek MT6050i и GSM-модем ОВЕН ПМ01.
Главное меню панели оператора имеет 6 пунктов:
1. Электропитание — управление питанием улицы, первого и второго этажей, отображение аварии питающей сети, а также аварий линий питания.
2. Теплый пол 1 этаж — управление теплым полом в прихожей, гостиной, кухне и санузле первого этажа; задание уставок и отображение температуры теплого пола в каждой зоне регулирования.
3. Освещение 1 этаж — управление освещением первого этажа.
4. Температура воздуха — отображение температуры наружного воздуха и температуры воздуха первого этажа, отображение аварии низкой температуры воздуха первого этажа.
5. СМС диспетчеризация — задание телефонных номеров рассылки СМС сообщений, задание настроек запроса баланса средств на СИМ карте, отображение ошибки модема и ошибки отправки СМС сообщений.
6. Журнал событий — отображение хронологии ошибок и аварий системы «Умный дом».
Посредством GSM-модема ОВЕН ПМ01 производится рассылка СМС сообщений (СМС диспетчеризация). СМС сообщения отправляются при возникновении аварии питающей сети, аварии линий питания улицы, первого и второго этажей, при аварии низкой температуры воздуха первого этажа, а также при низком балансе средств на СИМ карте.
ПЛК100 по Ethernet подключен к локальной сети, в которую также подключены роутер Apple Time Capsule, серверный компьютер и все мультимедийные устройства (спутниковый ресивер, Aplle TV, телевизор, домашний кинотеатр, BluRay проигрыватель). Роутер Time Capsule имеет подключение к сети Internet по каналу связи Radio Ethernet. Благодаря этому всем устройства локальной сети обеспечивается доступ к сети Internet.
На серверном компьютере под управлением операционной системы Ubuntu работает web-сервер apatch, посредством которого реализуется web-интерфейс системы «умный дом». Модуль PHP web-сервера apatch обменивается информацией с контроллером ПЛК100 по протоколу Modbus TCP, а также обрабатывает полученную информацию и генерирует web-страницы в соответствии с http-запросами. Web-интерфейс системы «умный дом» повторяет интерфейс панели оператора MT6050i, за исключением настроек системы СМС диспетчеризации. При входе в web-интерфейс необходимо ввести пароль. Пароль на вход может быть изменен посредством самого web интерфейса.
В качестве универсального пульта управления используется пульт управления Logitech Harmony 700. Посредством Harmony 700 производится управление всеми мультимедийными устройствами и освещением первого этажа. Мультимедийные устройства и свет управляются как по отдельности, так и по сценариям (примеры сценариев: просмотр телевизора, просмотр BluRay фильма, прослушивание радио, проигрывание музыки, отключение освещения 1 этажа и т.п.). Преобразование инфракрасных команд пульта управления в Modbus регистры осуществляется через универсальный приемопередающий инфракрасный модуль INSYTE LD2-IR.