Gsm сигнализация с датчиком движения на ардуино. Беспроводная сигнализация на базе Arduino

Являются специальными аппаратными платформами, на основе которых можно создавать различные электронные устройства, включая и . Устройства этого типа отличаются простой конструкцией и возможностью программирования алгоритмов их работы. Благодаря этому, созданная с помощью Arduino GSM сигнализация, может максимально настраиваться под объект, который она будет охранять.

Что собой представляет модуль Arduino?

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

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

Сложно ли работать с Arduino?

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

Программы для управления модулями пишутся с использованием обычного C++ и дополнений в виде простых функций управления процессами ввода/вывода на контактах модуля. Кроме этого, для программирования может применяться и бесплатная программная среда Arduino IDE, функционирующая под Windows, Linux или Mac OS.

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

Как создать сигнализацию с помощью Arduino?

К основным требованиям, которым должна отвечать созданная gsm сигнализация на Ардуино своими руками относятся:

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

Для создания сигнализации потребуется:

  • модуль Arduino;
  • набор функциональных датчиков;
  • или модем;
  • источник автономного питания;
  • внешние исполнительные устройства.

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

Как это работает?

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

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

При отсутствии специального GSM-адаптера его роль может выполнять и обычный мобильный телефон. Кроме отправки СМС-сообщений с предупреждением о тревоге и дозвона, наличие сотовой связи позволит управлять GSM сигнализацией на Ардуино дистанционно, а также контролировать состояние объекта, отправляя специальные запросы.

«Обратите внимание!

Для связи с владельцем объекта, кроме GSM-модулей могут использоваться и обычные модемы, которые обеспечивают связь через интернет.»

В таком случае, когда срабатывает датчик, обработанный процессором сигнал, передается через модем на специальный портал или сайт. А уже из сайта осуществляется автоматическое генерирование предупредительной СМС или рассылки на привязанный e-mail.

Выводы

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

Доброе время суток 🙂 Сегодня поговорим о сигнализации. На рынке услуг полно фирм, организацией, которые занимаются установкой и обслуживанием охранных систем. Эти фирмы предлагают покупателю широкий выбор сигнализацией. Однако их стоимость далеко не копеечная. Но что же делать человеку, у которого не так уж и много личных средств, что можно потратить на охранную сигнализацию? Думаю, вывод напрашивается сам собой – сделать сигнализацию своими руками . В этой статье приведён пример того, как можно сделать свою собственную кодовую охранную систему используя плату Arduino uno и несколько магнитных датчиков.

Систему можно дезактивировать вводом пароля с клавиатуры и нажатием кнопки ‘* ‘. Если хотите изменить текущий пароль, можете сделать это нажав на клавишу ‘B ‘, а если хотите пропустить или прервать операцию, можете сделать это нажав на клавишу ‘#’. В системе есть зуммер для воспроизведения различных звуков при выполнении той либо иной операции.

Активируется система нажатием кнопки ‘A’. Система даёт 10 секунд на то, чтобы покинуть помещение. После прошествии 10 секунд сигнализация будет активирована. Количество магнитных датчиков будет зависит от вашего собственного желания. В проекте задействованы 3 датчика (для двух окон и двери). Когда окно открывается система активируется, и включается сигнал тревоги идущий с зуммера. Систему можно дезактивировать путем набора пароля. Когда открывается дверь, сигнализация даёт вошедшему 20 секунд для ввода пароля. Система использует ультразвуковой датчик, что может обнаруживать движение.

Видео работы устройства

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

Давайте начинать!

Шаг 1: Что нам будет нужно

  • плата Arduino uno;
  • высококонтрастный LCD дисплей 16×2;
  • клавиатура 4×4;
  • 10~20кОм потенциометр;
  • 3 магнитных датчика (они же герконы);
  • 3 2-х пиновых винтовых клеммы;
  • HC-SR04 ультразвуковой датчик;

Если вы хотите собрать систему без использования Arduino, вам также потребуется следующее:

  • DIP разъём для atmega328 + микроконтроллер atmega328;
  • 16MГц кварцевый резонатор;
  • 2 шт. 22pF керамических, 2 шт. 0.22uF электролитических конденсатора;
  • 1 шт. 10кОм резистор;
  • гнездо под питание (DC power jack);
  • макетная плата;
  • 5В блок питания;

И одна коробка, чтобы всё это упаковать!

Инструменты:

  • Что-то, чем можно разрезать пластиковую коробку;
  • Термоклеевой пистолет;
  • Дрель/шуруповерт.

Шаг 2: Схема сигнализации

Схема соединения довольно простая.

Небольшое уточнение:

Высококонтрастный LCD:

  • Pin1 — Vdd к GND;
  • Pin2 — Vss к 5В;
  • Pin3 — Vo (к центральному выводу потенциометра);
  • Pin4 — RS к 8 выводу Arduino;
  • Pin5 — RW к GND;
  • Pin6 — EN к 7 выводу Arduino;
  • Pin11 — D4 к 6 выводу Arduino;
  • Pin12 — D5 к 5 выводу Arduino;
  • Pin13 — D6 к 4 выводу Arduino;
  • Pin14 — D7 к 3 выводу Arduino;
  • Pin15 — Vee (к правому или левому выводу потенциометра) .

Клавиатура 4×4:

От левого к правому:

  • Pin1 к A5 выводу Arduino;
  • Pin2 к A4 выводу Arduino;
  • Pin3 к A3 выводу Arduino;
  • Pin4 к A2 выводу Arduino;
  • Pin5 к 13 выводу Arduino;
  • Pin6 к 12 выводу Arduino;
  • Pin7 к 11 выводу Arduino;
  • Pin8 к 10 выводу Arduino.

Шаг 3: Прошивка

В шаге представлен код, что используется встроенным !

Скачайте плагин codebender. Нажмите на кнопку «Run» в Arduino и прошейте свою плату этой программой. На этом всё. Вы только что запрограммировали Arduino! Если хотите внести изменения в код, нажмите кнопку»Edit».

Примечание: Если вы не будете использовать Codebender IDE для программирования платы Arduino, вам будет нужно установить дополнительные библиотеки в Arduino IDE.

Шаг 4: Изготавливаем собственную управляющую плату

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

Несколько советов, для более успешного завершения затеянного:

  • 10кОм резистор должен монтироваться между 1 (reset) и 7 (Vcc) выводами микроконтроллера Atmega328.
  • 16MГц кварцевый резонатор должен подсоединятся к выводам 9 и 10, отмеченными, как XTAL1 и XTAL2
  • Соедините каждый вывод резонатора с 22pF конденсаторами. Свободные выводы конденсаторов заведите на 8 вывод (GND) микроконтроллера.
  • Не забудьте соединить вторую линию питания ATmega328 с блоком питания, выводы 20-Vcc и 22-GND.
  • Дополнительную информацию по выводам микроконтроллера можете найти на втором изображении.
  • Если планируете использовать блок питания с напряжением выше 6В, необходимо воспользоваться линейный регулятором LM7805 и двумя 0.22uF электролитическими конденсаторами, которые следует смонтировать на входе и выходе регулятора. Это важно! Не подавайте больше, чем 6В на плату!!! В противном случае вы спалите свой микроконтроллер Atmega и LCD дисплей.

Шаг 5: Размещаем схему в корпусе

Здравствуй, дорогой читатель! Сегодняшняя статья посвящена созданию простой домашней системы безопасности, при помощи доступных компонентов. Это маленькое и дешёвое устройство поможет тебе защитить ваше жилище от проникновения при помощи Arduino, датчика движения, дисплея и динамика. Питаться устройство сможет от батарейки или USB-порта компьютера.

Итак, начнём!

Как оно работает?

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

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

На рисунке видно, как линза искажает лучи, которые падают на неё.

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

Когда происходит изменение уровня ИК излучения в диапазоне действия, это будет обрабатываться на Arduino после чего на LCD дисплее будет выводится статус, светодиод будет мигать, а спикер пищать.

Что нам потребуется?

  1. (или любая другая плата ).
  2. (16 символов по две строки)
  3. Один разъём для подключения кроны к Arduino
  4. (хотя можно использовать и обычный динамик)
  5. USB-кабель - только для программирования (прим. пер.: с нашими Arduino он всегда идёт в комплекте!)
  6. Компьютер (опять же только для того, чтобы написать и загрузить программу).

Кстати, если не хочется покупать все эти детали по отдельности - рекомендуем обратить внимание на наши . К примеру, всё необходимое и даже больше есть в нашем стартовом наборе .

Подключаем!

Подключение датчика движения очень простое:

  1. Пин Vcc подключаем к 5V Ардуино.
  2. Пин Gnd подключаем к GND Ардуино.
  3. Пин OUT подключаем к цифровому пину №7 от Arduino

Теперь присоединим светодиод и спикер. Тут всё так же просто:

  1. Короткую ножку (минус) светодиода подключаем к земле
  2. Длинную ножку (плюс) светодиода подключаем к выходу №13 Arduino
  3. Красный провод спикера к выходу №10
  4. Чёрный провод – к земле

И теперь самое сложное – подключение LCD дисплея 1602 к Arduino. Дисплей у нас без I2C, поэтому потребуется много выходов Arduino, но результат будет того стоить. Схема представлена ниже:

Нам нужна только часть схемы (у нас не будет регулировки контраста потенциометром). Поэтому требуется сделать лишь следующие:

Теперь ты знаешь, как подключить дисплей 1602 к Arduino UNO R3 (ровно как и к любой версии Arduino от Mini до Mega).

Программируем

Пришло время перейти к программированию. Ниже представлен код, который надо лишь залить и, если вы собрали всё верно – устройство готово!

#include int ledPin = 13; // Пин светодиода int inputPin = 7; // Пин, к которому подключен Out датчика движения int pirState = LOW; // Текущее состояние (в начале ничего не обнаружено) int val = 0; // Переменная для чтения состояния цифровых входов int pinSpeaker = 10; // Пин, к которому подключен динамик. Требуется использовать пин с ШИМ (PWM) LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Инициалиация LCD дисплея void setup() { // Определение направления передачи данных на цифровых пинах pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Запуск вывода отладочной информации через последовательный порт Serial.begin(9600); // Запуск вывода на LCD дисплей lcd.begin(16, 2); // Устанавливаем индекс на дисплеи, с которого начнём вывод // (2 символ, 0 строки) lcd.setCursor(2, 0); // Вывод на LCD дисплей lcd.print("P.I.R Motion"); // Снова перемещаем lcd.setCursor(5, 1); // Выводим lcd.print("Sensor"); // Пауза, чтобы успели прочитать, что вывели delay(5000); // Очистка lcd.clear(); // Аналогично lcd.setCursor(0, 0); lcd.print("Processing Data."); delay(3000); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Waiting For"); lcd.setCursor(3, 1); lcd.print("Motion...."); } void loop() { // Считываем показание датчика val = digitalRead(inputPin); if (val == HIGH) { // Если есть движение, то зажигаем светодиод и включаем сирену digitalWrite(ledPin, HIGH); playTone(300, 300); delay(150); // Если движения до данного момента не было, то выводим сообщение // что оно обнаружено // Код ниже нужен для того, чтобы писать лишь смену состояния, а не каждый раз выводить значение if (pirState == LOW) { Serial.println("Motion detected!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Motion Detected!"); pirState = HIGH; } } else { // Если движене закончилось digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH){ // Сообщаем, что движение было, но уже закончилось Serial.println("Motion ended!"); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Waiting For"); lcd.setCursor(3, 1); lcd.print("Motion...."); pirState = LOW; } } } // Функция воспроизведения звука. Duration (длительность)- в миллисекундах, Freq (частота) - в Гц void playTone(long duration, int freq) { duration *= 1000; int period = (1.0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time < duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

Инфракрасные (ИК, 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 (Глобальная система подвижной связи).

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

Охранная система состоит из микроконтроллера Arduino Uno и стандартного модема SIM900A на базе GSM/GPRS. Вся система может питаться от любого источника питания/батареи 12В 2A.

Ниже показана схема охранной системы на базе Arduino.

Работа системы очень проста и не требует разъяснений. Когда на систему подается питание, она переходит в дежурный режим. Когда выводы коннектора J2 закорочены, заранее запрограммированное предупреждающее сообщение передается на требуемый мобильный номер. Вы можете подсоединить любой детектор обнаружения проникновения (такой как световое защитное приспособление или датчик движения) к входному коннектору J2. Заметьте, что активный-низкий (L) сигнал на выводе 1 коннектора J2 активирует срабатывание охранной сигнализации.

Более того, в систему добавлено опциональное приспособление “вызов – тревога”. Оно активирует телефонный звонок, когда пользователь нажмет кнопку S2 (или когда другой электронный блок инициирует сигнализацию). После нажатия кнопки “call” (S2), вызов можно отменить, нажав другую кнопку S3 – кнопку “end”. Данная опция может использоваться для подачи сигнала тревоги в случае “пропущенного звонка” в случае проникновения.

Схема очень гибкая, поэтому может использовать любой SIM900A модем (и, конечно, плату Arduino Uno). Внимательно прочтите документацию на модем до начала сборки. Это позволит облегчить и сделать приятным процесс изготовления системы.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Плата Arduino

Arduino Uno

1 В блокнот
GSM/GPRS-модем SIM900A 1 В блокнот
IC1 Линейный регулятор

LM7805

1 В блокнот
C1 100мкФ 25В 1 В блокнот
C2 Электролитический конденсатор 10мкФ 16В 1 В блокнот
R1 Резистор

1 кОм

1 В блокнот
LED1 Светодиод 1 В блокнот
S1 Кнопка С фиксацией 1