Еще одна GSM охранно-пожарная сигнализация с возможностью управления отоплением дома (дачи)

Друзья, разрешите представить проектик GSM сигнализации на Arduino. В сети довольно много проектов по типу «Arduino + модем + датчики», однако я часто вижу в них некоторую незаконченность (в особенности, с программной точки зрения): отсутствие гибкости в настройках и конфигурировании. В представленном решении я попытался сделать устройство максимально готовое к «боевым» условиям, предусмотрев все, что может понадобится среднестатистическому пользователю (на мой взгляд).

TL; DR программно и аппаратно задуманное реализовано, тест в реальных условиях запущен, исходники и бинарники опубликованы, корпус не осилил.

Устройство и характеристики

Устройство отправляет SMS при возникновении следующих событий:

  • открытие двери (герконовый датчик);
  • резкое изменение освещения (фоторезистор);
  • движение (PIR датчик);
  • выход температуры из заданного диапазона;
  • низкое напряжение батареи.

Пример SMS с событием

Также, раз в сутки можно настроить время ежедневного отчета

Питается устройство от 3-х батареек AA. Расчетное время работы ≥6мес.

Настройка устройства, считывание логов событий и построение месячного графика температуры происходит с помощью утилиты (Python 2.7 + Tk + pyserial + matplotli).

Основное окно утилиты настройки

Окно лога событий

Окно лога температуры

Постановка задачи

Первый этап проекта при возникновении желания создать простую сигналку на Ардуино своими руками — постановка задачи. Речь идет о том, что она должна „уметь” и какими функциями обладать. Именно настоящие действия определят конечную ее стоимость и компоненты, необходимые для получения нужного результата.

Итак, сигнализация должна «уметь»:

  • определять движение какого-либо объекта в наблюдаемом пространстве;
  • контролировать состояние дверей — в разрезе открыты они или закрыты;
  • чувствовать смену освещенности — при любом несанкционированном доступе будет или включен свет, или использован фонарик, что непосредственно укажет управляющему устройству на фактор взлома;
  • отправлять периодические сообщения на сотовый телефон владельца с использованием SMS, о текущем состоянии окружающей среды и контролирующего оборудования;
  • информировать, — посредством тех же коммуникаций — о факте недозволенного доступа в охраняемое помещение;
  • также нужна предусмотренная возможность простой смены настроек самой системы безопасности.

Сигнализация в сборе с питанием от аккумулятора:

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

Советуем прочитать: подробная инструкция о том, как заставить работать датчик движения на Ардуино платформе.

Сборка устройства

Себестоимость деталей устройства на момент публикации этой статьи составляет примерно 1000-1200 рублей (без учета заказа платы).

Для удобства сборки и надежности в эксплуатации лучше заказать плату. Китайские друзья с известного сайта предлагают сделать 10 штук с доставкой за ~$7, а иногда и меньше. Но всегда можно собрать и на макетке, как я и поступил с первым прототипом:

Прототип.

Arduino и совместимые модули были заказаны с aliexpress. Понадобятся:

  • Arduino Pro Mini 3.3v 8MHz (5v 16MHz is also acceptable, but requires different firmware);
  • MH-SR602 MINI Motion Sensor;
  • SIM800C(L) GSM Module;
  • CP2102 MICRO USB to UART TTL Module;
  • DS3231 RTC Module For Raspberry Pi;
  • 3 AA battery holder With ON OFF Switch;
  • различная рассыпуха (резисторы, конденсаторы, зуммер и поч.).

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

Схема устройства Для снижения энергопотребления с платы Arduino нужно обязательно удалить резистор светодиода питания и регулятор напряжения. Проект платы сделан в Ki-CAD.

Схема проекта

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

Схема сигнализации включает плату Arduino Nano, PIR датчик движения, звуковой модуль с лаем собаки, микросхему усилителя LM386, громкоговоритель, NPN транзистор и несколько резисторов и конденсаторов. Транзистор BC547 используется для активации сигнализации каждый раз когда PIR датчик обнаруживает движение. Контакты VCC и GND PIR датчика подключены к контактам 5V и GND платы Arduino, а его контакт OUT подключен к цифровому контакту 12 платы Arduino.

Контакты 1 и 8 микросхемы усилителя (Amplifier IC) служат для управления его коэффициентом усиления, по умолчанию он равен 20, но его можно увеличить до 200 при помощи конденсатора, включенного между контактами 1 и 8. Мы использовали конденсатор C1 емкостью 10 мкФ чтобы получить наибольший коэффициент усиления – 200.

Контакты 2 и 3 являются входными контактами микросхемы усилителя. Контакт 2 является инвертирующим входом, в нашем случае он замкнут на землю. Контакт 3 является неинвертирующим входом, на него подается сигнал, который требуется усилить. В нашей схеме он подключен к выходу звукового модуля с лаем собаки через потенциометр 100 кОм (RV1).

Через контакты 4 и 6 на микросхему усилителя подается питание. На контакт 6 подается +Vcc, а на контакт 4 – Ground (земля). Схему усилителя можно запитать от напряжения в диапазоне 5-12v.

Контакт 5 является выходным – с него снимается усиленный сигнал. Выходной сигнал содержит постоянную и переменную составляющую. Постоянная составляющая сигнала нежелательна – ее нельзя подавать на вход громкоговорителя, поэтому для ее устранения используется конденсатор емкостью 220 мкФ.

Контакт 7 – это bypass terminal (контакт шунтирования). Можно оставлять неподключенным или замыкать его на землю через конденсатор для повышения стабильности работы усилителя.

Использование

  • После сборки и прошивки устройство требует загрузки конфигурации (с помощью утилиты).
  • При подключении к USB нормальная работа устройства приостанавливается, очередь неотправленных сообщений очищается.
  • При неудачной отправке SMS, устройство произведет повторную попытку через 2 минуты, затем через 5, 10, 20, дважды через 40 и затем каждые 12 часов.
  • После принятого звонка, он будет завершен через 3 минуты.
  • Звуковая сигнализация включается на 30 секунд.
  • События «открытие двери», «движение» и «изменения освещения» срабатывают не чаще, чем раз в 20 мин.
  • Если питание устройства отсутствует более 3 часов, то записанная история измерения температуры сбрасывается.

Где можно применить?

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

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


Различные датчики

Хороша GSM сигнализация и для защиты своего авто от угона или обворовывания. В первом случае, приятным бонусом будет возможность найти пропажу радиопеленгацией телефона.

Полевые испытания

Прошу прощения за эстетику монтажа.

Установка на входную дверь. Часть конструкции справа (непосредственно на самой двери) — магнит для срабатывания геркона

На место постоянного использования (гараж) устройство было установлено 4 месяца назад. Для целей усиленного тестирования, функция расписания не используется (по каждому событию отправляется SMS). В среднем получается 5 SMS в день: два при входе в гараж (срабатывает датчик открытия двери и датчик освещения), два при выходе и один «ежедневный отчет». На текущий момент батареи (3x AA) держат напряжение 4.1в при включенном модеме.

Сам код:

тут
/// GSM сигналка c установкой по звонку /// датчиком на прерывателях // донат, https://money.yandex.ru/to/410012486954705 #include <EEPROM

.h> //// как подключен модем? //#include // если программный //SoftwareSerial gsm(7, 8); // RX, TX #define gsm
Serial
// если аппаратный в UNO //#define gsm Serial1 // если аппаратный в леонардо #define LED 13 #define TELLNUMBER «ATD+70001112233;» // номен на который будем звонить #define SMSNUMBER «AT+CMGS=\»70001112233\»» // номер на который будем отправлять SMS #define TELMODE «70001112233» // номер для установки на охрану #define SH1 A2 // шлейыф //#define SH2 A3 #define pinBOOT 5 // нога BOOT или K на модеме byte mode = 0; // 0 — только включили // 1 — установлена охрана // 2 — снята с охраны // при добавлении не забываем посмотреть на 41 строку void setup() { delay(1000); //// !! чтобы нечего не повисало при включении gsm.begin(9600); /// незабываем указать скорость работы UART модема // Serial.begin(9600); pinMode(LED, OUTPUT); pinMode(pinBOOT, OUTPUT); /// нога BOOT на модеме pinMode(SH1, INPUT_PULLUP); /// нога на растяжку // pinMode(SH2, INPUT_PULLUP); /// нога на растяжку // читаем режим из еепром mode =
EEPROM
.read(0); if (mode > 2) mode = 2; // проверяем значение в еепром // занимаемся модемом delay(1000); digitalWrite(LED, HIGH); // на время включаем лед digitalWrite(pinBOOT, LOW); /// включаем модем // нужно дождатся включения модема и соединения с сетью delay(2000); // while(gsm.find(«STARTUP»)); /// ждем команды от модема gsm.println(«ATE0»); // выключаем эхо while(1){ // ждем подключение модема к сети gsm.println(«AT+COPS?»); if (gsm.find(«+COPS: 0»)) break; digitalWrite(LED, LOW); // блымаем светодиодом delay(50); digitalWrite(LED, HIGH); delay(500); } //Serial.println(«Modem OK»); digitalWrite(LED, LOW); // блымаем светодиодом delay(1500); digitalWrite(LED, HIGH); delay(250); digitalWrite(LED, LOW); } void loop() { if (mode == 1){ // если в режиме охраны // проверяем датчики if (digitalRead(SH1)){ // если обрыв // отзваниваемся gsm.println(TELLNUMBER); delay(2500); if (gsm.find(«NO CARRIER»)){ // ищим сброс вызова, // снимаем охранку mode = 2;
EEPROM
.write(0, mode); } } } // если охрана снята if (mode == 2){ if (digitalRead(SH1)){ // проверяем датчики, включаем LED digitalWrite(LED, HIGH); } else digitalWrite(LED, LOW); } // ищим RING // если нашли, опрашиваем кто это и ставим на охрану if(gsm.find(«RING»)){ // если нашли RING gsm.println(«AT+CLIP=1»); // включаем АОН, while(1){ // в цикле if (gsm.find(TELMODE)){ // ищим номер телефона, если нашли mode = 1; // меняем режим
EEPROM
.write(0, mode); // пишим его в еепром break; // и выходим } else{ // иначе gsm.println(«AT+CPAS»); // спрашиваем состояние модема delay(100); if (gsm.find(«+CPAS: 0»)) break; // и если он в «готовности», выходим из цикла } // если звонок в процессе, возвращает +CPAS: 3 } // и крутимся дальше gsm.println(«AT+CLIP=0»); // выключаем АОН, delay(500); gsm.println(«ATH0»); // сбрасываем вызов digitalWrite(LED, LOW); // сигнализируем об этом delay(500); digitalWrite(LED, HIGH); delay(250); digitalWrite(LED, LOW); } }

Проблемы

За время эксплуатации температура в помещении понизилась с +10°С до -15°С и обнаружилась две проблемы.

  1. Используемый PIR датчик начинает давать ложные срабатывания при низких температурах. При +5°С использование стало совсем невозможным: число ложных срабатываний превысило одно в день. Попытка замены датчика на другой проблему не решило, поэтому сейчас этот датчик временно отключен. Что с этим делать пока не понятно.
  2. Датчик температуры, встроенный в DS3231 при -10°С и ниже начал сходить с ума: периодически выдает случайные значения, например, «-84°С» или «+115°С». Интересно, что RTC работает нормально. На текущий момент не понятно, проблема ли это конкретно моего экземпляра или нет. Жду для проверки второй идентичный модуль, при повторении с ним проблемы в устройство будет добавлен DS18B20.

В остальном полет нормальный.

GSM-сигнализация на базе Arduino


Один из вариантов подключения Arduino к геркону сигнализации
Более расширенным вариантом изготовления сигнализации будет использование контроллера Arduino с GSM модулем. Сигнальные датчики в таком случае подключаются к самому микрокомпьютеру, а его программа уже осуществляет управление связью, отправляя сообщения или совершая информационные звонки владельцу системы.

Большой плюс такой конструкции – возможность контролировать охранный комплекс посредством SMS, главное – запрограммировать реакцию на них в Arduino.

Основные особенности

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

  1. Доступную цену. Платформа отличается своей небольшой стоимостью в сравнении с другими аналогичными системами. Но при этом тут есть весь необходимый набор функций для обеспечения полной безопасности.
  2. Кросс-платформенность. Программное обеспечение Arduino может эффективно взаимодействовать с Linux, Windows, Macintosh-OSX.
  3. Простой процесс программирования. Для того чтобы настроить микроконтроллер применяется среда программирования Processing. Данный вариант отлично подходит не только для профессионала, но и также для пользователя, который еще не имеет навыков работы с подобными устройствами.
  4. Всегда можно модернизировать систему. Благодаря специальному программному обеспечению и открытому коду, можно адаптировать охранную систему по собственным требованиям, но в таком случае нужно иметь некоторые навыки. Arduino отличается высокой надежностью, и даже наиболее старые модели соответствуют всем современным требованиям и обеспечивают надежную защиту. Что касается новых разработок, то тут имеется обширный перечень функций и гарантирует полная безопасность.

Топ 6 самых популярных модулей

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

Под модулем понимается изделие, состоящие из платы и элементов на ней (включая компонент, состоящий из чипсета и приемопередатчика). Компонент находятся под крышкой в едином форм-факторе (напоминает процессор для материнской платы компьютера). Распайка на плате расширения происходит через торцевые контактные ножки. Такая полноценная плата и называется модулем. Если на ней есть множество других элементов, ее иногда именуют шилд.

Ниже будут приведены модули, такие как Neoway M590, A6 и A7, и прочие, представлены их характеристики.

SIM900

Разработанный компанией SIMCom Wireless Solution модуль SIM900 подключается и обменивается данными через распространенный физический протокол передачи данных UART. Подключение к ПК осуществляется через USB-UART преобразователь.

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

Спецификация:

  1. Диапазон частот EGSM900, DCS1800, GSM850, PCS1900.
  2. Напряжение 3,2-4,8 В.
  3. Сила тока в режиме простоя – 450 мА.
  4. Максимальный ток – 2 А.
  5. Канал связи до 14.4 кбит/с.
  6. Диапазон температур от -30 °C до +80 °C без искажения, и от -40 °C до +85 °C, с незначительным отклонением радиочастотных характеристик, с сохранением работоспособности.
  7. Вес 6,2 г.
  8. Размеры 24 x 24 x 3 мм.

У компонента есть модификации: 900B, 900D, 900TE-C, 900R 900X. У каждой модификации своя специфика. SIM900D дополнен блоком заряда аккумулятора, а в SIM900X введены новые режимы энергосбережения, что позволяет использовать модули в современных системах трекинга автомобилей, охранной и промышленной автоматики. Все модификации компонентов можно найти в едином форм-факторе SMT, с торцевыми контактами под пайку. Но, не исключены варианты нахождения в других форм факторах.

SIM800L

Основа модуля – компонент SIM800L с реализацией обмена данными по каналам GSM и GPRS с помощью дуплексного режима. В модуль устанавливается SIM-карта, есть встроенная антенна и выход под еще одну антенну. Питание на плату подается через преобразователь напряжения DC-DC. Еще, есть возможность подключиться к другому источнику питания. Интерфейс подключения – UART.

Спецификация:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,8-4,2В.
  3. Ток в режиме ожидания – 0,7 мА. Предельный ток – 500 мА.
  4. Слот
  5. Поддержка 2G сети.
  6. Диапазон температур от -30 °C до +75 °C.


GSM/GPRS-модуль SIM800L (#1) — как выбрать, подключение, введение в AT-команды

A6

Шилд A6 работает в сетях мобильной связи и позволяет принимать и передавать сигналы с помощью GSM и GPRS. Модуль, созданный компанией AI-THINKER несколько лет назад, успешно показал себя и пользуется популярностью в системах автоматики.

ТТХ А6:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение питания 5 В.
  3. Ток в спящем режиме – 3 мА.
  4. Ток режима ожидания – 100 мА.
  5. Ток режима соединения – 500 мА.
  6. Ток пиковой нагрузки – 2А.
  7. Разъем
  8. Скорость GPRS во время передачи сигнала 42,8 Кбит/сек.
  9. Температура от -30 °C до +80 °C.

A6 modem

A7

Новый модуль А7 отличается от предшественника тем, что в него встроен GPS. Это решение позволило упростить конструкцию платы.

Основные параметры:

  1. Четырехдиапазонный сотовый терминал.
  2. Напряжение 3,3-4,6 В.
  3. Напряжение питания 5В.
  4. 10 Класс GPRS: канал передачи данных 85,6 кбит/с.
  5. Jammer эха и шумов.

GSMGPRS модем с GPS приемником AI-Thinker A7

Neoway M590

Модуль на основе компонента Neoway M590 позволяет принимать звонки, обмениваться данными и сообщениями. Имеет интерфейс подключения UART.

Характеристики:

  1. Диапазон частот EGSM900, DCS1800.
  2. 10 Класс
  3. Напряжение 3,3-5 В.
  4. Пиковый ток 2 А.
  5. Рабочий ток 210 мА.
  6. Коммуникационный сигнал 3,3 В.
  7. Температура от -40 °C до +80 °C.

Подключая модуль к контроллеру, потребуется преобразователь 3,3 В -> 5 В.

GSM GPRS модуль SIM900

На базе модуля SIM900 разработали и успешно используют SIM900 GSM GPRS Shield, в качестве модуля для подключения к Arduino UNO. По сравнению с остальными платами, стоимость этой на порядок дороже, и она укомплектована множеством разъемов и контактов. Среди основных параметров:

  1. Подключается плата к Arduino Mega и UNO.
  2. Четыре рабочих частоты, как и в остальных платах.
  3. Низкое энергопотребление 1.5 А в спящем режиме.
  4. GPRS мульти-слот класса 10/8.
  5. Рабочие температуры от -40°C до +85 °C.

GSMGPRS shield SIM900, Первый взгляд

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]