Разработка устройств для умного дома Z-Wave. Введение



Рассмотрим создание устройств для Z-Wave на базе платы Z-Uno и создадим пару устройств для умного дома Z-Wave.

О технологии Z-Wave

Z-Wave — это распространённый радио протокол передачи данных, предназначенный для домашней автоматизации. Характерной особенностью Z-Wave является стандартизация от физического уровня, до уровня приложения.

Что позволяет делать технология Z-Wave?
— Управление освещением (реле/диммеры), шторами, рольставнями и воротами
— Управление жалюзи и другими моторами (10-230 В)
— Включение/выключение любых нагрузок до 3.5 кВт (модуль в розетку или встраиваемое реле)
— Дистанционное управление с ПДУ
— Управление обогревом (электрические тёплые полы с защитой от перегрева, электро котлы и радиаторы, термостаты для водяных клапанов радиаторов)
— Управление кондиционерами (через ИК интерфейс имитируя пульт)
— Детектирование тревожных событий (датчики движения, открытия двери/окна, протечки, сухие контакты)
— Мониторинг состояния (датчики температуры, влажности, освещённости)
— Управление A/V аппаратурой (по протоколу Z-Wave или через ИК интерфейс имитируя пульт)
— Связь с любым программным обеспечением через ПК контроллер
— Сбор данных со счётчиков

Протокол Z-Wave был разработан для квартир и небольших домов. Обычно такие системы содержать от 5 до 100 устройств. Основная особенность Z-Wave состоит в том, что он относится к формату «сделай сам» (DIY), т.е. установку и настройку системы владелец жилья может сделать самостоятельно. Протокол разрабатывался специально для управления такими устройствами как свет, жалюзи, ворота, термостаты и другими путём передачи коротких команд, требующих небольшого энергопотребления. Типичные небольшие задачи, решаемые при помощи Z-Wave — это установка проходных выключателей, перенос выключателей на более удобный уровень, дистанционное управление воротами и жалюзи, включение света по датчикам движения. Все эти задачи не требуют перекладывания проводов.

Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Скважность не более 1%. Предельная мощность передачи 1 мВт

Разработка устройств Z-Wave

Протокол Z-Wave весьма популярен, и существует огромное множество совместимых устройств. Однако все, кто когда либо автоматизировал своё жилище, сталкивались с тем, что чего-то таки не хватает.
С точки зрения схемотехники и программирования разработка Z-Wave устройства не сильно отличается от разработки устройства на базе Arduino, AVR или PIC. чипы и модули Z-Wave — это модернизированное ядро 8051. Чип выполнен в формате SoC, со следующей периферией:
— 128 КБ флэш памяти для вашего кода,
— 16 КБ оперативной памяти (XRAM) и 256 байт (IRAM), куда мапятся SFR-регистры,
— 256 байт NVR (там же хранятся калибровочные данные кристалла и lock bit),
— 30 GPIO,
— 2 UART,
— 2 SPI (Master и Master/Slave),
— 1 USB (только для Serial),
— 4 АЦП 12/8 бит,
— 1 сканер на 88 клавиш (с возможностью сканирования в режиме глубокого сна),
— 1 TRIAC-контроллер генератор с ZEROX-детектором,
— 5 ШИМ с разрешением 16 бит,
— 4 ИК-контроллера и 1 ИК декодер для обучения,
загрузчик (включается по пину RESET или из кода записью в соответствующий SFR регистр) для перепрошивки по SPI или UART, а также возможность перепрограммировать себя (перезапись флэш-памяти используется для OTA-перепрошивки),
встроенный криптоускоритель для 128-битного шифрования AES,
монитор питания (для оценки заряда батарейки).

Питание чипа 2.3–3.6 В. Потребление составляет порядка 15 мА в режиме работы, 35 мА в режиме приёма и до 45 мА в режиме передачи. Также имеется режим глубокого сна с потреблением 1 мкА (пробуждение от INT1) и WUT (+0.7 мкА).
Такое обилие функций в одном чипе позволяет существенно снизить стоимость создаваемого устройства, т.к. не требует использования дополнительных микроконтроллеров. Например, диммер, дверной замок, брелок на батарейках, составной датчик (температура/влажность/осовещённость/…) можно сделать прямо на микроконтроллере Z-Wave с соответствующим обвязом.

Но главное, в чип встроен радио трансивер. Однако доступ к нему осуществляется только через библиотеки Sigma Designs.
Минимальный «обвяз» для Z-Wave требует лишь кварца (входит в модули), согласование антенны, несколько конденсаторов для стабилизации питания и подтяжка ноги RESET. Большинству устройств Z-Wave ещё требуется минимум 16 КБ EEPROM (для OTA обновления прошивки требуется 128 КБ).Для работы Z-Wave на уровне радиоканала требуется специальный Z-Wave приёмопередатчик. Основной поставщик этих трансиверов — американская компания Sigma Designs. Второй поставщик — Mitsumi Corporation предлагает совместимый по выводам чип [Mitsumi2012].

Для разработки программного обеспечения (прошивок) необходим комплект разработчика (Software Development Kit, SDK). Различные версии этого комплекта предлагают компании Sigma Designs, Mitsumi и DigiKey, по цене $1500–$3500. Они отличаются входящим в комплект набором аппаратных частей. Более дорогие версии SDK имеют не только программатор, но и различные компоненты для тестирования датчиков, актуаторов для различных частот. Все SDK имеют пакет программного обеспечения и документацию. Для получения доступа к документации, программным кодам и инструментам необходимо заключить соглашение о конфиденциальности (NDA) с компанией Sigma Designs. Подписывая данное соглашение, производитель обязуется хранить всю предоставляемую ему информацию, в том числе SDK, в условиях конфиденциальности.
В общем, совсем невесело для разработчика-любителя. Но не совсем так

Z-Uno — Плата для прототипирования Z-Wave устройств

Совсем недавно для облегчения разработки Z-Wave устройств было создано устройстве Z-Uno (более правильно назвать Z-Uno платформой, а не устройством, т.к. устройств на этой маленькой плате можно сделать много). Разработчик — компания Z-Wave.me.

Z-Uno — это Arduino в мире Z-Wave. На этой плате вы можете собрать все ваши устройства. Код пишется на языке C в стиле Arduino прямо в среде Arduino IDE. Эта же среда используется для загрузки кода по USB (есть также возможность залить новый код по радио через контроллеры Z-Wave — так называемая перепрошивка OTA). Код управляет всеми ножками как в Arduino. Привычный набор функций Arduino дополнен специфическими для работы с сетью Z-Wave — получения и отправки команд. Все сложности Z-Wave скрыты «под капотом» Z-Uno.

Технические характеристики:

— 28 кБайт FLASH-памяти для ваших скетчей,
— 4 кБайта RAM,
— Z-Wave радио-трансивер на каналах 9.6, 40 и 100 кбит/с,
— 22 GPIO (некоторые перекрываются с другими функциями),
— 4 АЦП,
— 5 ШИМ,
— 2 UART,
— 1 USB (в режиме serial),
— 64 кБайта EEPROM,
— 1 SPI (master или slave режимы)
— 4 ИК-контроллера и 1 ИК-приёмник с функцией обучения,
— 1 TRIAC/ZEROX контроллеры для диммирования,
— 1 прерывание,
— 2 таймера (16 MHz или от внешнего источника),
— I2C (программный на ногах GPIO),
— 1-wire (программный на ногах GPIO),
— 8×6 сканер кнопок (в том числе в режиме глубокого сна),
— 2 сервисных светодиода, 1 сервисная кнопка,
— 1 пользовательский LED (как pin 13 у Arduino).
Распиновка Z-Uno

Режимы питания:

USB 5 В, внешнее 3 В, внешнее 4-15 В или батарейка 3 В,
всегда в сети, спящее или FLiRS,

Функции Z-Wave:

Соответствие Z-Wave Plus,
Все частоты Z-Wave (из-за разных SAW-фильтров будет 3 вида Z-Uno),
Поддержка из коробки шифрования AES 128 бит, описанного в протоколе Z-Wave,
Обновление прошивки и бутлоадера через USB или по радио (Z-Wave OTA),
MultiChannel (10 пользовательских каналов — каждый канал предоставляет одну функцию, см. ниже),
10 групп ассоциаций для управления другими устройствами,
Возможность управлять по радио Z-Wave реле, диммерами, замками, запуском сцен,

Каждый пользовательский канал может содержать один из следующих классов команд Z-Wave:
— Binary Switch (для реле),
— Multilevel Switch (для диммеров, жалюзи),
— Color Switch (для цветных ламп),
— Binary Sensor и Notification (для детекторов и сигнализаций),
— Multilevel Sensor (для датчиков, возвращающих числовое значение),
— Meter (для счётчиков).

Далее рассмотрим установку и настройку среды для программирования Z-Uno

Ссылки
Блог компании Z-Wave.me
Сайт компании Z-Wave.me


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение