Система умной сигнализации предназначена для контроля за состоянием жилого загородного дома, а именно: контроль датчиков сигнализации, датчиков дыма и газа; контроль датчиков температуры и влажности; контроль метеорологических данных с помощью дополнительного модуля, управление нагрузками по заданным алгоритмам, отсылка пакета данных о состоянии дома на удаленный терминал; прием команд с удаленного терминала; управление нагрузками в режиме имитации присутсвия. Тажке планируется управление через интернет с PC или Android-клиента.

Состав системы

Система состоит из:

  1. Главный блок (база) на основе компьютера с сенсорным экраном, gprs-модемом, usb-обработчиком аппаратных кнопок и дополнительным модулем звуковой линии.
  2. Модуль ворот - отвечает за контроль датчиков в районе ворот и лазерного барьера на заборе, управляет нагрузками по команде, открытие-закрытие замка калитки, открытие-закрытие ворот, прием команд с брелков и домофонные функции.
  3.  Модуль входной двери - отвечает за контроль датчиков в районе двери  и управляет нагрузками по команде, открытие-закрытие замка двери.
  4. Стандартные модули датчиков - отвечают за контроль датчиков и управляют нагрузками по команде. Дополнительно модуль в гараже осуществляет физическое разделение звуковых линий в общем кабеле от гаража до ворот в отедельный кабель к базовому блоку. Это сделано для уменьшения количества проводов, которые необходимо тянуть к блоку ворот. Дополнительно модуль, находящийся в наивысшей точке или ближе к возможному месту установки антенны осуществляет прием-передачу пакетов данных для удаленного терминала с помощью трансивера на 433 МГц и направленной антенны на внешней стене.
  5. Удаленный терминал на основе простого ноутбука и трансивера на 433 МГц с направленной антенной - принимает и отображает данные, переданные системой, а также посылает различные сигналы управления в систему. (Опционально, под мой конкретный случай. Удаленность - 2 км. Данный функционал был запланирован на начальном этапе разработки системы до того, как было принято решение передавать данные через интернет. Однако его целесообразно оставить на случай отключения интернета.)
  6. 3 Брелка с кнопками - дают команды снятия или постановки системы в различные режимы охраны и управления воротами.
  7.  Шина RS-485, выполненная в виде кабеля с 4-мя витыми парами, 1 пара используется как сигнальная, 3 пары используются как питающие для модулей - соединяет все модули.
  8.  Датчики движения, дыма, газа, температуры и влажности, подключенные к модулям.

Логическая схема системы:

logic scheme

Физическая схема системы:

physical scheme

 

Режимы работы системы

1) Дежурный режим - режим охраны отключен, система не реагирует на датчики движения включением тревоги.
2) Режим охраны двора - под охраной только двор. Датчики в доме не вызывают срабатывания тревоги. Пример применения - ночь.
3) Режим охраны дома - под охраной только дом. Датчики вне дома не вызывают срабатывания тревоги. Пример применения - работа всех людей вне дома.
4) Режим полной охраны - под охраной и дом и двор.
5) Режим тревоги - передается сигнал тревоги в удаленный терминал и на программу-клиент, в доме включается сирена и некоторое освещение.
6) Режим скрытой тревоги - только передается сигнал тревоги на удаленный терминал и программу-клиент. Оповещение в самом доме отсутствует.

В каждом режиме может быть включен режим имитации присутствия (запрограммрованная последовательность включения-выключения нагрузок).

Система имеет 32 канала нагрузки, распределенные по модулям. В каждом модуле может быть прописано несколько каналов, в том числе и одинаковых. К каждому каналу можно привязать любой датчик, по изменению состояния которого будет срабатывать канал нагрузки. Например, терморегуляция.

Принцип действия системы

Система построена на шине RS-485 по принципу мульти-мастера. Так как шина RS-485 и ее драйверы не имеют аппаратной защиты от коллизий, для избежания конфликтов на шине применяется временное разделение работы модулей с шиной с защитным интервалом. Каждый модуль имеет свой тайм-слот (ячейку времени) в течение которой он может передавать данные в шину. Каждую минуту начинается новая последовательность тайм-слотов. Старт задает базовый блок, передавая в сеть свой пакет данных. Другие модули синхронизируются от этого сигнала. Существует дежурный таймслот длительностью 2 секунды, что дает возможность подключить до 29 модулей на шину, что вполне перекрывает все потребности системы. Внутри дежурного таймслота (после 400 мс и более) предусмотрено место для 21 тревожного мини-таймслота длительностью около 50 мс для экстренной передачи модулями информации о тревожном событии или передачи команды от базового блока. Используется из них 15. Здесь каждый модуль передает свои данные тоже только в выделенный ему мини-таймслот. Таким образом, информация о сработавшем датчике поступит на базовый блок не позднее, чем через 2 сек.

Я решил отказаться от постоянного опроса ведущим модулем ведомых поочереди, так как при срабатывании тревоги на последнем модуле задержка получения данных об этом может быть большой, посколько проектная скорость шины - 19200 бод. В случае, если реально достижимая скорость обмена будет значительно выше, то можно будет вернуться к режиму одного мастера и нескольких ведомых. При этом упростится алгоритм обмена данными.

Каждую минуту в 00 секунд базовый блок передает в сеть пакет данных, который принимает каждый модуль и извлекает оттуда необходимую ему информацию. Модуль с трансивером передает этот пакет по радиоканалу на удаленный терминал. Затем каждый модуль в момент, кратный 2 сек передает свой пакет данных с состоянием датчиков и нагрузок, подключенных к нему. В случае тревоги, в любой таймслот, модуль передает состояние сработавшего датчика в момент своего мини-таймслота.
Базовый блок собирает эти данные и обрабатывает их в соответствии с программой, формирует пакет данных и отправляет его в начале следующей минуты, а также отображает данные на дисплее.
В случае наступления управляющего события, базовый блок передает команду во время своего мини-таймслота. Подробнее об этом в разделе Протоколы обмена.

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

В случае наступления тревоги сигнал о тревоге передает модуль с трансивером на удаленный терминал, а также передается СМС с базового блока по заранее заданным телефонам и сигнал тревоги да удаленную клиент-программу. В режиме тревоги модули, на которых не сработала тревога, не передают в сеть периодические данные с датчиков, пока не будет снят режим тревоги, а только слушают сеть на предмет наличия для них каких-нибудь команд.

После сбора информации ото всех модулей, базовый блок обрабатывает информацию и посылает различные команды.

Базовый блок

Базовый блок представляет из себя мини-PC с Windows XP, сенсорным LCD-дисплеем, трубкой домофона и нескольких аппаратных кнопок. Базовый блок - сердце системы. Тут осуществляется вся обработка информации и формируются команды управления. Базовый блок питается от импульсного блока питания на 12 вольт, который тажке подает напряжение в кабель шины данных для питания остальных модулей, кроме блока ворот и блока двери, которые имеют собственный блок питания.

Блок ворот

Блок ворот осуществляет контроль датчиков калитки и забора, датчика движения около ворот; прием команд с брелков, осуществления функции домофона. Команды с брелка блок ворот транслирует в сеть для базового блока. Базовый блок в ответ выдает блоку ворот команду открыть или закрыть замок калитки или открыть или закрыть ворота.
Блок ворот может функционировать автономно, если в течение 5 минут не было принятно ни одного пакета от базового блока. В таком случае блок ворот сам открывает или закрывает калитку или ворота по сигналу брелка.
Аналогичное поведение и у блока двери.

Блок двери

Помимо поведения, описанного в абзаце про блок ворот, блок двери запирает замок входной двери дома при постановке системы в режимы Полной охраны или Охраны только дома. В блоке двери есть кнопка звонка на случай случайного запирания двери. Находящиеся в доме люди могут открыть дверь, если у человека снаружи нет брелка.

В дальнейшем планируется оборудовать блоки ворот и двери RFID-картами.

Модули датчиков

Каждый модуль датчиков собирает информацию с датчиков движения, температуры, влажности, огня и газа. В зависимости от того, где установлен каждый конкретный модуль, к нему подключен опредленный набор датчиков. Каждый конкретный модуль конфигурируется на работу с определенными датчиками на этапе программирования. Датчики питаются от модуля через стабилизаторы напряжения на 10в и на 5в.

Модуль принимает пакет данных от базового блока и в свой тайм-слот отслылает пакет своих данных с состояниями датчиков. При наступлении тревожного события модуль отслылает тревожный пакет данных при наступлении своего мини-таймслота в текущем тайм-слоте.

Модуль с трансивером

Помимо основной задачи по работе с датчиками модуль с трансивером отсылает и принимает данные с удаленного терминала, находящегося в моем случае на расстоянии 2 км при почти прямой видимости (лесополоса и крыши сельских домов).

Датчики

В системе используются PIR-датчики движения внутреннего и уличного исполнения, аналоговые датчики температуры LM50 (возможно подключение цифровых DS18B20), датчики влажности, газа и огня.

Для реагирования на перелезание через передний забор вдоль него установлены 2 лазерных барьера (диод-фототранзистор) друг над другом на расстоянии 30 см. Это исключает ложные срабатывания вслучае перекрывания одного из лучей птицей.

Брелки

Брелки посылают команды изменения режимов работы сигнализации и открытия/закрытия калитки и ворот по радиоканалу на блок ворот. Принимают подтверждение команды и отображают RGB-светодиодом статус выполнения команды.

 

Конструкция

Проект системы в программе KiCad будет доступен после завершения работы над ней.

 Модуль датчиков

Схема модуля датчиков представлена на рисунке ниже (по клику откроется ПДФ).

basic module sch

Модуль построен на микроконтроллере PIC18F258, имеет 4 аналоговых для аналоговых датчиков и 7 входов/выходов для цифровых датчиков, 3 выхода каналов управления, один из которых продублирован реле, порт 1-wire и порт i2c. Обмен данными по шине 485 производится с помощью драйвера MAX487. На модуле имеются два светодиода для индикации режимов работы. На разъемы аналоговых датчиков предусморена подача напряжения питания либо 12 В либо 5 В с помощью джамперов. На разъемы цифровых датчиков подано напряжение 10 В (J7-J10) и 5 В (K3-K5). Таким образом, можно подключать датчики движения, требующие как 10 В, так и 5 В.

Проект платы модуля:

485 pcb project

Плата разведена под корпус Gainta G413

Готовые платы:

485 pcb ready

 

Модуль гаража

Схема модуля гаража почти не отличается от схемы модуля датчиков, за исключением того, что в ней 3 разъема RJ-45.

garage module sch

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

Проект платы модуля гаража:

garage pcb project

Блок ворот

Конструктивно блок ворот состоит из нескольких частей:

  • Плата логики (главная плата)
  • 2 платы H-моста для управления двигателями приводов ворот
  • Плата H-моста для управления двигателем замка ворот (засов)
  • Радиоплата с трансивером и схемой мигалки светодиодами
  • Аудиоплата домофона
  • Приводы ворот (актуаторы)
  • Панель вызова с микрофоном, динамиком и кнопкой вызова
  • Резервный аккумулятор
  • Обогреватель

Все, кроме радиоплаты, панели вызова и актуаторов размещено в стандартном металлическом шкафу подходящего размера.

Плата логики

Схема платы логики представлена на рисунке (по клику откроется ПДФ):

gate sch

Схема построена на микроконтроллере PIC18F46J22 в DIP-корпусе. Датчик температуры DS1621 измеряет собственную температуру прибора и при необходимости на термостатном выходе выдает активный уровень для управление реле обогрева. Расширитель портов PCF8574 обслуживает герконы приводов ворот. Назначение отдельных блоков схемы понятно из пояснений на ней. К схеме может быть подключен автомобильный аккумулятор для резервного питания на 12 В. В нормальном режиме аккумулятор заряжается через диод D1 и автомобильную лампу L1, которая ограничивает максимальный ток зарядки. При пропадании напряжения реле К1 отпускает и переключает схему на питание от аккумулятора.

Назначение разъемов:

  • J1 - шина данных
  • P1 - Питание 14 В
  • P2 - разъем на аудиоплату
  • P3 - управление приводом замка ворот
  • P4 - лазерные диоды, направленные вдоль забора
  • K2 - вход для фототранзисторов, получающих сигнал лазерных диодов
  • K3 - датчик уличной температуры LM50
  • EXT1 - разъем шины i2c для возможного расширения системы
  • P5 - кнопка "звонка" на калитке
  • P6 - кнопка открывания калитки изнутри
  • P7 - геркон калитки
  • P8 - герконы правого привода
  • P9 - герконы левого привода
  • P10 - питание Н-моста 1
  • P11 - питание Н-моста 2
  • P12 - питание Н-моста замка
  • P13 - питавние э/м замка калитки
  • P14 - питание ИК-прожектора
  • K5 - датчик движения левого переднего угла участка
  • K6 - датчик движения правого переднего угла участка
  • K7 - датчик движения перед воротами
  • P15 - обогреватель (фен или лампа накаливания)
  • P16 - разъем радиоплаты (шина SPI на трансивер, питание и управление световым сигналом)
  • P17 - управление правым Н-мостом
  • P18 - управление левым Н-мостом
  • X1 - разъем програмирования ПИККИТ-3

Плата логики разведена под корпус G214 с отверстиями для крепления плат мостов:

gate pcb project

H-мост приводов ворот

Схема моста для управления двигателями приводов показана ниже:

bridge sch

Цепи R1C1 и R2C2 обеспечивают необходимую задержку для исключения сквозных токов через транзисторы моста. Драйверы транзисторов построены на счетверенном ОУ LM339. Измерение тока двигателя происходит через шунт 10А/75мВ . Напряжение с шунта усиливается ОУ LM358. Необходимый уровень усиления регулируется потенциометром RV1.

Подробнее о работе этой схемы можно прочитать тут

Плата моста разведена таким образом, чтобы 2 платы левого и правого моста можно было установить над платой логики.

bridge pcb project

Н-Мост замка ворот

Схема моста для управления засовом ворот практически ничем не отличается от схемы моста приводов ворот, только в ней отсутствует датчик тока двигателя:

lock sch

Мост управления засовом может отсутствовать в системе, поэтому его плата разведена под отдельный корпус G1020:

lock pcb project

Плата радиомодуля

Плата радиомодуля вынесена за пределы металлического шкафа для обеспечения лучшей связи. Также на плате радиомодуля расположен таймер 555, который мигает тремя сверхъяркими желтыми светодиодами во время движения ворот. Для связи используется транчсивер nRF24L01+. Вот схема радиомодуля:

radioboard sch

В фильтре после стабилизатора использованы керамические кондерсаторы вместо электролитов для большей морозоустойчивости.

Таймер с данными номиналами деталей выдает импульсы с периодом в 1 с и длительностью примерно 500 мс. Импульсы подаются на управляющий транзистор BC547.

К разъему P2 подключается трансивер.

Плата радиомодуля (возможно, будет доработана):

radioboard pcb project

Плата размещается в пластиковом корпусе недалеко от основного шкафа, но длина соединительных проводов не должна быть более 60 см, иначе могут начаться проблемы на SPI шине.

Брелок дистанционного управления

Схема брелка представлена на рисунке ниже:

key sch

Микроконтроллер использован более мощный, чем необходимо, однако по отношению ТТХ/цена/доступность он показался мне хорошим вариантом. Брелок питается от двух батареек типа ААА. Емкости этих батареек должно хватить лет на 5 работы в дежурном режиме. Брелок имеет 4 кнопки. По прерыванию от кнопок МК просыпается и посылает команду на блок ворот. При получении ответа от блока ворот зажигается RGB-светодиод. Подробнее об этом в разделе Протоколы обмена. С потенциометра RV1 снимается напряжение, котрое отслеживается как значение напряжения питания (сравнение с внутренним Vref). При понижении напряжения ниже допустимого брелок начинает постоянно мигать светодиодом фиолетовым цветом.

Плата брелка разведена под корпус BOX-KA08, куда при небольшой доработке напильником помещается держатель для батареек ААА и трансивер:

key pcb project

В принципе, можно было использовать и батарейку CR2032, но некоторые китайские чипы nRF по отзывам многих разработчиков потребляют больший ток в спящем режиме, чем оригинальные чипы от Нордика. Поэтому, чтобы не рисковать, решено было поставить батарейки ААА. Для этой же цели в схему введен механический выключатель питания.

 USB плата ввода/вывода базового блока

Плата предназначена для обработки состояний аппаратных кнопок внутренней части домофона: датчик поднятия трубки домофона, кнопка "Открыть калитку" и кнопка "Открыть дверь", а также для управления аудио свитчем в канале микрофона звуковой платы домофона. Также плата выполняет функцию внешнего вачдога для материнской платы базового блока, замыкая контакатми реле К1 контакты кнопки RESET на материнской плате, если некоторое заданное время от программы управления не поступает определенной команды. Это сделано на случай зависания базового блока.

Вот ее схема:
IO brd sch

Микроконтроллер питается от шины USB. Разъем J2 - для программирования контроллера, J3 - разъем для подключения к кнопкам и аудиоплате. J4 и J6 - резервные разъемы расширения. J5 - подключение к контактам сброса платы базового блока. Светодиод мигает при получении команды от базового блока.

Плата разведена в стиле USB-Key:

IO brd pcb

(продолжение следует)

Программная часть

Прототип окна программы базового блока. Окно состоит из 4х закладок: Основные параметры, Все параметры, Окно видеодомофона и Настройки.Untitled-1

На экране основных параметров выводится картинка с видеодомофона, кнопки управления основными параметрами работы системы, метеоданные и визуальное отображение состояния датчиков движения во дворе.

Untitled-2

На экране "Все параметры" соответсвенно, выводятся показания всех датчиков системы, метеоданные, состояние каналов нагрузок, режим работы системы и журнал событий.

Шрифт в полях индикации будет изменен на имитирующий ЖКИ-дисплей.

(продолжение следует)