Домашняя сигнализация или использование датчика движения и LCD монитора с Arduino. Домашняя сигнализация или использование датчика движения и LCD монитора с Arduino Gsm охранная система для дачи на arduino

В прошлой статье мы учились пользоваться GSM модулем SIM800L и сделали простенькую конструкцию управления нагрузкой удалённо, сегодня мы сделаем уже что-то поинтереснее, а именно охранную GSM сигнализацию на модуле SIM800L из Aliexpress и Arduino, которую можно применить для охраны квартиры, дачи, гаража и других объектов, а при её срабатывании она оповестит звонком или СМС сообщением.

Что нам понадобится чтобы сделать GSM сигнализацию:

  • GSM/GPRS модуль SIM800L;
  • Arduino Nano, UNO или другая Ардуинка;
  • Понижающий DC-DC преобразователь;
  • Аккумулятор 3,7 В;
  • Резисторы на 10 к – 7 шт;
  • Блок питания.

Как сделать охранную GSM сигнализацию на модуле SIM800L и Arduino, описание работы:

Подключаем модуль SIM800L, Arduino, датчики и др. по схеме ниже, всё собирается на макетной плате чтобы в любое время можно было что-то поменять, размещаем в любой подходящий корпус и выводим провода из корпуса для охранных датчиков и на БП. Аккумулятор тоже размещаем в корпусе, он нужен чтобы когда пропадает в доме электроэнергия то устройство переходило в автономный режим питаясь от аккумуляторной батареи. На повышающем преобразователе настраиваем на выходе 4,2 вольта, при таком напряжении работает GSM SIM модуль и при этом подзаряжается аккумулятор, а также этого напряжения хватает для работы Arduino Nano.

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

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

В скетче можно вписать номера телефонов и дать свои имена охраняемым зонам, вместо «Alarm! Zone1», «Alarm! Zone2», «Alarm! Zone3»… Вы можете написать название объекта куда поставили конкретный датчик, например «Alarm! Okno», «Alarm! Dverj» и др., пишите названия зоны только на латинице. Также в скетче выставляется время отзвонки владельцу, то есть через какое количество часов сообщать Вам о том что вся система работает и всё в порядке, по умолчанию установлено перезванивать через каждые 144 часа.

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

Скачать скетч для Ардуино.

Её автор хотел выполнить самоделку, чтобы она была дешевой и беспроводной.
Эта самоделка использует PIR датчик движения, а передача информации происходит при помощи RF модуля.

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


Для того, чтобы посетителям было удобнее просматривать сборку сигнализации, я решил поделить статью на 5 этапов:
Этап 1: Создание передатчика.
Этап 2: Создание приемника.
Этап 3: Установка программного обеспечения.
Этап 4: Тестирование собранных модулей.
Этап 5: Сборка корпуса и установка в него модуля.

Все что понадобилось автору, это:
- 2 платы ARDUINO UNO/ARDUINO MINI/ARDUINO NANO для приёмника и передатчика;
- RF приёмопередающий модуль (433 MHZ);
- PIR датчик движения;
- 9В батарейки (2 штуки) и коннекторы к ним;
- Зуммер;
- Светодиод;
- Резистор с сопротивлением 220 Ом;
- Макетная плата;
- Джамперы/провода/перемычки;
- Монтажная плата;
- Межплатные штыревые соединители;
- Переключатели;
- Корпуса для приёмника и передатчика;
- Цветная бумага;
- Монтажный скотч;
- Наборной скальпель;
- Термоклеевой пистолет;
- Паяльник;
- Кусачки /инструмент для снятия изоляции;
- Ножницы по металлу.


Этап 1.
Начинаем создание передатчика.
Ниже предоставлена схема работы датчика движения.


Сам передатчик состоит из:
- Датчика движения;
- Платы Arduino;
- Модуль передатчика.


Сам датчик имеет три вывода:
- VCC;
- GND;
- OUT.

После чего, проверил работу датчика


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

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


По схеме чуть ниже.


Передатчик имеет 3 вывода (VCC, GND, и Data), соединяем их:
- VCC > 5В выводом на плате;
- GND > GND ;
- Data > 12 выводом на плате.

Этап 2.


Сам приёмник состоит из:
- Модуля RF приёмника;
- Платы Arduino
- Зуммера (динамика).

Схема Приемника:


Приемник, как и передатчик, имеет 3 вывода (VCC, GND, и Data), соединяем их:
- VCC > 5В выводом на плате;
- GND > GND ;
- Data > 12 выводом на плате.


Этап 3.
Основой всей прошивки автор выбрал файл-библиотеки. Скачал, который он , и поместил его в папку с библиотеками Arduino.

ПО для передатчика.
Перед тем, как загружать код прошивки в плату, автор выставил следующие параметры IDE:
- Board -> Arduino Nano (или та плата, которую вы используете);
- Serial Port ->


После установки параметров, автор скачал файл прошивки Wireless_tx и загрузил его на плату:

ПО для приемника
Автор повторяет те же действия и для принимающей платы:
- Board -> Arduino UNO (или та плата, которую вы используете);
- Serial Port -> COM XX (проверьте com порт, к которому подключено ваша плата).



После того как автор установил параметры, скачивает файл wireless_rx и загружает его в плату:


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

Этап 4.
Далее, после загрузки ПО автор решил проверить, все ли работает должным образом. Автор подсоединил источники питания, и провел рукой перед датчиком, и у него заработал зуммер, а значит все работает как надо.


Этап 5.
Финальная сборка передатчика
Сначала автор срезал выступающие выводы с приемника, передатчика, плат arduino, и т. д.


После чего, соединил плату arduino с датчиком движения и RF передатчиком при помощи джамперов.


Далее автор начал делать корпус для передатчика.

Сначала он вырезал: отверстие для выключателя, а также круглое отверстие для датчика движения,после чего приклеил его к корпусу.




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


После чего, автор начал вставлять электронную начинку внутрь корпуса, при помощи двухстороннего скотча.



Финальная сборка приемника
Автор решил соединить плату Arduino с монтажной платой резиновой лентой, а также установим RF приемник.


Далее автор вырезает на другом корпусе два отверстия, одно для зуммера, другое для выключателя.


И приклеивает.

Инфракрасные (ИК, IR) датчики обычно используются для измерения расстояний, но их также можно использовать и для обнаружения объектов. Подключив несколько ИК-датчиков к Arduino, мы можете создать охранную сигнализацию.

Обзор

Инфракрасные (ИК, IR) датчики обычно используются для измерения расстояний, но их также можно использовать и для обнаружения объектов. ИК-датчики состоят из инфракрасного передатчика и инфракрасного приемника. Передатчик выдает импульсы инфракрасного излучения в то время, как приемник детектирует любые отражения. Если приемник обнаруживает отражение, это означает, что перед датчиком на некотором расстоянии есть какой-то объект. Если отражения нет, нет и объекта.

IR-датчик, который мы будем использовать в данном проекте, обнаруживает отражение в определенном диапазоне. Эти датчики имеют небольшое линейное устройство с зарядовой связью (CCD), которое детектирует угол, с которым ИК-излучение возвращается к датчику. Как показано на рисунке ниже, датчик передает инфракрасный импульс в пространство, а когда перед датчиком появляется объект, импульс отражается обратно к датчику под углом, пропорциональным расстоянию между объектом и датчиком. Приемник датчика детектирует и выводит угол, и, используя это значение, вы можете рассчитать расстояние.

Подключив пару ИК-датчиков к Arduino, мы можем сделать простую охранную сигнализацию. Мы установим датчики на дверной косяк, и, правильно выровняв датчики, мы сможем обнаружить, когда кто-то проходит через дверь. Когда это произойдет, сигнал на выходе ИК-датчика изменится, а мы обнаружим это изменение, постоянно считывая выходной сигнал датчиков с помощью Arduino. В данном примере мы знаем, что объект проходит через дверь, когда показание на выходе ИК-датчика превышает 400. Когда это произойдет, Arduino включит сигнал тревоги. Чтобы сбросить срабатывание сигнализации, пользователь может нажать на кнопку.

Комплектующие

  • 2 x ИК-датчик расстояния;
  • 1 x Arduino Mega 2560;
  • 1 x зуммер;
  • 1 x кнопка;
  • 1 x резистор 470 Ом;
  • 1 x NPN транзистор;
  • перемычки.

Схема соединений

Схема для данного проекта показана на рисунке ниже. Выходы двух ИК-датчиков подключены к выводам A0 и A1 . Два других вывода подключены к выводам 5V и GND. 12-вольтовый зуммер подключен к выводу 3 через транзистор, а кнопка, используемая для отключения сигнализации, подключена к выводу 4.


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


Установка

  1. Подключите выводы 5V и GND платы Arduino к выводам питания и GND датчиков. Вы также можете подавать на них внешнее питание.
  2. Подключите выходные выводы датчиков к выводам A0 и A1 платы Arduino.
  3. Подключите вывод 3 Arduino к базе транзистора через резистор 1 кОм.
  4. Подайте напряжение 12 В на коллектор транзистора.
  5. Подключите положительный вывод 12-вольтового зуммера к эмиттеру, а отрицательный - к шине земли.
  6. Подключите вывод 4 к выводу 5V через кнопку. В целях безопасности, во избежание протекания большого тока это всегда лучше делать через дополнительный небольшой резистор.
  7. Подключите плату Arduino к компьютеру через USB кабель и загрузите программу в микроконтроллер, используя Arduino IDE.
  8. Подайте на плату Arduino питание, используя блок питания, аккумулятор или USB кабель/

Код

const int buzzer=3; // вывод 3 – это выход на зуммер const int pushbutton=4; // вывод 4 – это вход для кнопки void setup() { pinMode(buzzer,OUTPUT); // настроить вывод 3 на выход pinMode(pushbutton,INPUT); // настроить вывод 4 на вход } void loop() { // прочитать выходной сигнал обоих датчиков и сравнить результат с пороговым значением int sensor1_value = analogRead(A0); int sensor2_value = analogRead(A1); if (sensor1_value > 400 || sensor2_value > 400) { while(true) { digitalWrite(buzzer,HIGH); // включить сигнал тревоги if(digitalRead(pushbutton) == HIGH) break; } } else { digitalWrite(buzzer,LOW); // выключить сигнал тревоги } }

Видео

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


Данный проект представляет собой систему безопасности (сигнализации) для оповещения о проникновении злоумышленников в дом. Система использует технологию GSM.



К микроконтроллерной плате этой системы безопасности подключается модуль обнаружения проникновения, который может быть основан, например, на ИК-датчике или ультразвуковом датчике приближения. При получении сигнала от такого модуля на телефон пользователя отправляется SMS-сообщение о проникновении в его жилище.


На рисунке ниже представлена блок-схема системы безопасности.



Основными элементами системы являются микроконтроллерная плата (например, Arduino Uno) и модуль GSM/GPRS SIM900A. Вся система может быть запитана от одного источника питания 12В/2А.


На приведенном ниже изображении показана принципиальная схема домашней системы безопасности с GSM на основе Arduino.



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


Кроме того, в систему добавлена возможность совершения вызова по нажатию кнопки S2. С помощью кнопки S3 можно осуществить сброс этого вызова.


Ниже приведен код для Arduino.


//Соединить вывод Tx с выводом D3 GPS-модуля //Соединить вывод Rx с выводом D4 GPS-модуля //сигнал отправки SMS соединить с выводом D7 (активный уровень низкий) //Сигнал вызова CALL соединить с выводом D8 (активный уровень низкий) //Сигнал сброса вызова END соединить с выводом D9 (активный уровень низкий) #include NewSoftSerial mySerial(3,4); // выводы RX и TX настроить на связь с модулем GSM #define msg_key 7 #define call_key 8 #define end_key 9 String number ="0000000000"; // Сюда вместо нулей нужно вписать 10-значный мобильный номер void setup() { Serial.begin(9600); mySerial.begin(9600); pinMode(msg_key,INPUT); pinMode(call_key,INPUT); pinMode(end_key,INPUT); digitalWrite(msg_key,HIGH); digitalWrite(call_key,HIGH); digitalWrite(end_key,HIGH); } void loop() { //отправлять sms каждый раз, когда срабатывает msg_key if (digitalRead(msg_key)==LOW) // Проверка, нажата ли кнопка отправки sms { mySerial.println("AT+CMGF=1"); // Устанавливаем режим в качестве тектового режима delay(150); mySerial.println("AT+CMGS=\"+00"+number+"\""); // Укажите номер адресата в международном формате, заменив нули delay(150); mySerial.print("Warning! Intruder Alert!"); // Введите сообщение delay(150); mySerial.write((byte)0x1A); // Символ конца сообщения 0x1A: эквивалент Ctrl+z delay(50); mySerial.println(); } //Совершить вызов, когда сработает call_key else if (digitalRead(call_key)==LOW) // Проверка, нажат ли уже call_key { mySerial.println("ATD+91"+number+";"); //Определяем номер для вызова while(digitalRead(call_key)==LOW); delay(50); } //Сброс вызова else if (digitalRead(end_key)==LOW) // Проверка, нажата ли уже кнопка сброса вызова { mySerial.println("ATH"); while(digitalRead(end_key)==LOW); delay(50); } }

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

Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.

Начнём!

Из чего будем собирать

Надо выбрать сердце нашей системе. На мой взгляд, для подобной сигнализации нет ничего лучше, чем Arduino Uno. Основной критерий - достаточное количество «пинов» и цена.


Основные характеристики Arduino Uno

Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение (рекомендуемое) - 7-12 В
Входное напряжение (предельное) - 6-20 В
Цифровые Входы/Выходы - 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы - 6
Постоянный ток через вход/выход - 40 мА
Постоянный ток для вывода 3.3 В - 50 мА
Флеш-память - 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ - 2 Кб (ATmega328)
EEPROM - 1 Кб (ATmega328)
Тактовая частота - 16 МГц


Подходит!

Теперь необходимо выбрать gsm-модуль, ведь наша сигнализация должна уметь оповещать владельца автомобиля. Так, надо «погуглить»… Вот, отличный датчик - SIM800L, размер просто замечательный.


Подумал я и заказал его из Китая. Однако всё оказалось не так радужно. Датчик просто отказался регистрировать SIM-карту в сети. Было опробовано всё, что только возможно - результат нулевой.
Нашлись добрые люди, которые предоставили мне более крутую штуку - Sim900 Shield. Вот это уже серьёзный штучка. В Shield-е и разъём для микрофона и для наушников, полноценный телефон.


Основные характеристики Sim900 Shield

4 стандарта рабочей частоты 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot класс 10/8
GPRS mobile station class B
Соответствует GSM phase 2/2+
Class 4 (2 W @850/ 900 MHz)
Class 1 (1 W @ 1800/1900MHz)
Управление с помощью AT команд (GSM 07.07 ,07.05 и SIMCOM расширенные AT команды)
Низкое энергопотребление: 1.5mA(sleep mode)
Диапазон рабочих температур: от -40°C до +85 °C


Подходит!

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

Думаю, что GY-521 MPU6050 точно подойдёт. Оказалось, что в нём есть и датчик температуры. Надо бы и его задействовать, будет такая «киллер фича». Предположим, что владелец автомобиля поставил его под домой и ушёл. Температура в салоне автомобиля будет изменяется «плавно». Что же будет, если злоумышленник попытается проникнуть в автомобиль? Например у него получится открыть дверь. Температура в автомобиле начнёт изменяться стремительно, так как воздух в салоне начнёт смешиваться с воздухом окружающей среды. Думаю, что будет работать.


Основные характеристики GY-521 MPU6050

Модуль 3-х осевого гироскопа + 3-х осевого акселерометра GY-521 на чипе MPU-6050. Позволяет определить положение и перемещение объекта в пространстве, угловую скорость при вращении. Так же имеет встроенный датчик температуры. Используется в различных коптерах и авиамоделях, так же на основе этих датчиков можно собрать систему захвата движений.

Микросхема - MPU-6050
Напряжение питания - от 3,5V до 6V (DC);
Диапазон гироскопа - ± 250 500 1000 2000 ° / с
Диапазон акселерометра - ± 2 ± 4 ± 8 ± 16g
Интерфейс связи - I2C
Размер - 15х20 мм.
Вес - 5 г


Подходит!

Также пригодится датчик вибраций. Вдруг автомобиль попытаются вскрыть «грубой силой», ну или на парковке другой автомобиль заденет вашу машинку. Возьмём датчик вибраций SW-420 (регулируемый).


Основные характеристики SW-420

Напряжение питания - 3.3 - 5В
Выходной сигнал - цифровой High/Low (нормально закрытый)
Используемый датчик - SW-420
Используемый компаратор - LM393
Размеры - 32x14 мм
Дополнительно - Есть регулировочный резистор.


Подходит!

Прикрутим модуль SD карты памяти. Будем ещё писать лог-файл.


Основные характеристики модуля SD карты памяти

Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Напряжение питания - 5 или 3,3 В
Объем памяти SD карты - до 2 Гбайт
Размеры - 46 х 30 мм


Подходит!

И добавим сервопривод, при срабатывании датчиков будет поворачиваться сервопривод с видеорегистратором и снимать видео происшествия. Возьмём сервопривод MG996R.


Основные характеристики сервопривода MG996R

Стабильная и надежная защита от повреждений
- Металлический привод
- Двухрядный шарикоподшипник
- Длина провода 300 мм
- Размеры 40х19х43мм
- Масса 55 гр
- Угол поворота: 120 град.
- Рабочая скорость: 0.17сек/60 градусов (4.8В без нагрузки)
- Рабочая скорость: 0.13сек/60 градусов (6В без нагрузки)
- Пусковой момент: 9.4кг/см при питании 4.8В
- Пусковой момент: 11кг/см при питании 6В
- Рабочее напряжение: 4.8 - 7.2В
- Все детали привода выполнены из металла


Подходит!

Собираем

Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.