Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,899

DEVELOPMENT OF A SECURITY SYSTEM WITH SENDING NOTIFICATIONS SMART HOME ON THE ARDUINO MICROCOMPUTER PLATFORM

Hasanova S.L. 1 Belyaev B.V. 1 Sharipova R.R. 1
1 Sterlitamak branch of the Bashkir State University
Currently, the direction of smart home devices has begun to develop rapidly. The resulting device can be used not only in domestic apartments, but will be useful in the premises of private entrepreneurs and organizations. One of the important functions of a smart home system is a security system. This function usually includes motion sensors and a security system. To independently develop a smart home device, which will have the ability to control and alert the owner of the presence of any motion in the room, will require microcontrollers and a number of certain sensors. First of all it will be necessary to choose the right model of microcontroller board, because the differences between the boards can carry tangible limitations on the performance of the work. This article describes the development of a security system with support for notifications using an Arduino microcomputer with the possibility of changing the operation modes and informing the user about the triggering. In addition, the development steps and basic code elements are described to help make a call to the phone until the owner resets the call, which will help the system understand about successful informing the owner.
smart home
Arduino
GSM module
sensor

В настоящее время компании и одиночки-энтузиасты стали применять технологии автоматизации для управления техникой и оборудованием. Системы типа «Умный дом» прочно обосновались в данной сфере и с каждым годом набирают популярность. Такие системы позволяют добиваться высочайшего уровня автоматизации при возможности контроля за техникой в любой момент времени путем удаленного доступа с использованием пультов и различных гаджетов, таких как сотовый телефон. В функционале систем типа «Умный дом» часто присутствует охранная сигнализация. Чаще всего наличие данной функции в системе сопряжено с большими финансовыми затратами, а также не предполагает внесения изменений в работу системы. Правильно написанный программный код, а также корректное использование микроконтроллеров и датчиков дают возможность разработать собственную систему охранной сигнализации.

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

Материалы и методы исследования

Разработками в области охранной системы занимались многие российские и зарубежные исследователи. Реализацию умного дома и его плюсы раскрыл А.С. Авдеев [1]. В. Петин [2] в своей работе обозначил основы разработки с использованием микрокомпьютера Arduino. В статье L. Muniraj и иных [3] приведена разработка системы «Умный дом» с применением LabVIEW. Описанием системы распознавания активности пользователей занимались M. Rawashdeh и др. [4].

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

Основными устройствами системы охранной сигнализации служат датчики движения и система оповещения. Цепочка действий начинается с датчиков, которые передают данные контроллерам. Контроллеры, в свою очередь, самостоятельно принимают решение (но также могут работать совместно с актуатором, преобразующим электрические сигналы в физическое действие). Нами было решено работать с микроконтроллером Arduino, который является физической вычислительной платформой с открытым исходным кодом. Преимуществом используемой платформы служит возможность применения сторонних плат расширения (LoRa, GPS и GSM модули и др.), которые позволяют передавать сигналы с помощью проводной или беспроводной связи.

Стоит сказать, что между собой базовые версии платформ Arduino отличаются объемом встроенной памяти и количеством входов/выходов. Для нашего проекта было решено использовать плату расширенной функциональности Arduino Mega 2560, поскольку она имеет большее количество необходимых нам аналоговых портов. Рабочее напряжение Arduino в базовых моделях 3,3 В, а не 5 В. Питание и программирование платформы осуществляются через USB, что позволяет питаться от ПК.

Программируется платформа через собственную интегрированную среду разработки Arduino IDE, языком программирования Arduino является собственный диалект C++. Для персонализации системы умного дома используется подключение множества датчиков и кнопок управления внешними устройствами.

Было решено установить датчик движения – сигнализатор, фиксирующий перемещение объектов. Для этого был выбран инфракрасный датчик движения HC-SR501. Основным действующим компонентом такого изделия является пироэлектрический элемент. Над датчиком установлена линза в форме полусферы со множеством сегментов. Собственно, эти маленькие линзы передают тепловое излучение на ПИР-датчик. Так как любой живой объект излучает тепло, он хорошо виден в инфракрасном диапазоне. Современные бинокли, оборудованные «ночным зрением», прекрасно видят и обнаруживают присутствие живых существ, которые излучают инфракрасные волны. Следовательно, любое живое существо не останется незамеченным таким датчиком, конечно, если попадет в зону его действия. Если в зону действия первого элемента попадает инфракрасное излучение от человека, на этом элементе возникнет положительный электрический всплеск, человек продолжает движение – его термический фон, преломляясь через линзы Френеля, оказывается на следующем PIR-элементе, второй компонент вырабатывает уже отрицательный всплеск, датчик регистрирует два разнонаправленных импульса, после этого он подает сигнал на GSM модуль SIM800L EVB V2.0, что в поле действия датчика попал человек. Модуль производит вызов на телефон до тех пор, пока звонок не будет сброшен.

М.С. Устелемова [5] описала разработку системы «Умный дом» на основе GSM модулей для обеспечения связи компонентов. Так реализуется система оповещения контроля доступа на объекте (код 1,2).

if (mode == 1) { // если в режиме охраны

// проверяем датчики

if (digitalRead(senOp)) { // если датчик сработал

gsm.println(TELLNUMBER) ; // идет звонок на телефон

delay(2500);

if (gsm.find(“NO CARRIER”)) { // ищем сброс вызова

mode = 2; // снимаем охрану

EEPROM.write(0, mode);

}

}

}

Код 1 – информирование об засеченном движении

int hcrs = 7;

int ledPin = 13;

int val = 0;

void setup() {

Serial.begin(9600); // открыть сеанс связи с компьютером

pinMode (hcrs, INPUT); // определить выходной контакт для датчика

}

void loop() {

val = digitalRead(hcrs); // считываем состояние датчика

if (val == HIGH); // если есть движение

digitalWrite(hcrs,HIGH); // включить светодиод

Serial.println(“Motion!”); // передать на компьютер “Motion!”

}

else (

digitalWrite(ledPin, LOW); // иначе выключить светодиод

}

delay(1000); // подождать секунду

}

Код 2 – реализация датчика движения

Для работы модуля обнаружения движения нет необходимости использовать готовые библиотеки из-за простоты устройства модуля. Достаточно читать показания назначенного порта модуля. Однако следует учесть, что после подачи питания модуль не сразу выйдет на нужный режим работы, он должен завершить калибровку в течение 1 минуты после подачи питания при старте работы. При срабатывании датчика на выход будет подана логическая единица, таким образом, никакой дополнительной поддержки реализации со стороны микрокомпьютера Arduino не требуется.

В зависимости от настроенных вручную физически на модуле параметров обнаружения поменяется и работа модуля, управлять программно этими параметрами возможности нет. Можно выбрать режим работы постоянной подачи логической единицы какое-то время при нескольких срабатываниях, это будет полезно, чтобы минимизировать оповещение при единичном улавливании движения. Дистанция обнаружения может быть отрегулирована от 3 до 7 метров, а задержка подачи следующей единицы при следующем срабатывании – от 5 до 300 секунд.

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

Задача программы – выполнять заданные функции во встроенной функции цикла на микроконтроллере Arduino в зависимости от выбранного режима работы.

Программный код представляет собой объявление функций и бесконечный цикл, в котором последовательно выполняются определенные функции, как отражено на рисунке.

missing image file

Блок-схема управляющей программы

Следует описать назначение основных функций кода управляющей программы для микроконтроллера.

Функция Night() содержит код, выполняющийся при переводе устройства в режим охранной системы оповещения. Цвет светодиода устройства меняется на пурпурный для удобства идентификации режима работы пользователем. При выполнении функция проверяет наличие движения от любого из датчиков. При обнаружении движения выполняется короткий звонок на номер, указанный в коде с выбранными параметрами. В этом режиме работы датчики должны быть установлены на срабатывание на каждое единовременное движение.

Функция Day() выполняется по умолчанию в цикле, если устройство не переведено в другой режим и выполняет несколько действий – устанавливает цвет светодиода зелено-красный и проигрывает заданную мелодию с хранилища на SD-карте при обнаружении движения. В коде функции задается имя файла, подготовленного для звукового оповещения. Функция завершается до дальнейшего вызова в цикле loop().

Функция PIR(byte inputPin) требует указания номера пина, к которому подключен датчик движения на плате микрокомпьютера Arduino. Указан путь к именно одному из аналоговых пинов, который она считывает, выполняет парсинг, берет из него значения параметров и сравнивает с заданным значением покоя, обычно это 500. Считывание движения приводит к возвращению параметра true функцией. Функция вызывается в цикле в функции и Day и Night после установки цвета светодиода функцией led_on.

Функция password служит для проверки пароля. Вызов этой функции происходит в функции Check_pass в цикле loop. Задача этой функции – произвести сравнение с указанным паролем, обеспечить ввод с клавиатуры и проверить с помощью двух массивов комбинацию. Возвращает параметр правды или лжи.

Функция led_on обеспечивает работу светодиода и принимает три параметра для изменения цвета. Эти параметры считываются функцией setColor, а delay заставляет светодиод останавливать свечение, вызывая моргания света.

Функция keypadEvent служит для вызова функции password при нажатии кнопки смены режима работы на клавиатуре, в нашем случае символа «#». Если проверка пароля удачна, осуществляется переключение текущего режима работы на следующий.

Результаты исследования и их обсуждение

Полученный охранный аппаратно-программный комплекс выполняет требуемые задачи, однако его структура позволяет расширить функциональность путем реализации на аппаратном уровне на плате микроконтроллера и запрограммирования следующих функций:

1) связь с приемником сигналов оповещения через сеть Интернет;

2) возможность записи видеопотока при обнаружении движения;

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

Заключение

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

Аппаратные платы Arduino – это отличное средство для создания прототипов устройств, но с финансовой точки зрения выгоднее собирать и программировать собственные платы с микроконтроллером.