Как сделать сигнализацию — охранная система для дома на Ардуино своими руками
Эта статья – руководство по сборке своими руками упрощенной охранной системы для дома на базе микроконтроллера Arduino.
Это скорее развлечение, нежели что-то, всерьез способное обеспечить безопасность вашего жилища. Для сборки сигнализации использована плата Ардуино, ультразвуковой датчик HC-SRO4, зуммер и несколько диодов.
Шаг 1: Необходимые материалы
- микроконтроллер Arduino Uno – 1
- макетная плата — 1
- ультразвуковой датчик HC-SRO4 – 1
- зуммер — 1
- зеленый диод – 1
- желтый – 1
- красный – 1
- 220 Ом резистор – 4
- соединительные провода — 10
Шаг 2: Схема подключения к плате
На картинке изображена схема подключения компонентов.
Подключения нужно сделать в следующем порядке:
- Соедините красный провод от 5В пина контроллера с положительным каналом печатной платы
- Соедините черный провод от GND пина (земля) с отрицательным каналом
- Зуммер – с пином 3
Ультразвуковой датчик:
- Echo — с пином 6
- Trig – с пином 7
- красный – с пином 9
- желтый – с пином 10
- зеленый – с пином 11
Зеленые провода должны быть подключены в линию к плюсу диодов, а минус должен быть соединен с отрицательным каналом с помощью резистора 220 Ом.
Шаг 3: Подключаем контроллер к плате
Сначала соедините 5В и GND пины контроллера с печатной платой. Убедитесь, что при подключении полярность была соблюдена.
Шаг 4: Подключаем ультразвуковой датчик измерения расстояния
Постарайтесь расположить датчик при подключении как можно ближе к правой стороне печатной платы, сенсоры должны смотреть наружу. В соответствии со схемой подключения, соедините GND пин датчика с отрицательным каналом. Затем соедините сигнальный пин (Trig) датчика с пином 6 Arduino и соедините пин Echo датчика с пином 7 Arduino. Теперь соедините выход питания VCC датчика с положительным каналом печатной платы. Если что-то не получается, еще раз сверьтесь со схемой подключения.
Шаг 5: Подключаем диоды
Следующим шагом будет соединение диодов с платой и микроконтроллером Arduino. Еще раз сверьтесь со схемой подключения, в подключении диодов нет ничего сложного. Сначала подключаем зеленый диод. Для этого соедините анод (длинная ножка диода) с пином 11 на Arduino зеленым соединительным проводом, а катод (короткая ножка) соедините с отрицательным каналом с помощью резистора 220 Ом.
Точно так же подключите желтый и красный диоды, аноды к 10 и 9 пинам Arduino соответственно. Подключенные диоды должны выглядеть как на фото.
Резисторы использовать не обязательно, но я бы рекомендовал ими воспользоваться.
Шаг 6: Подключаем зуммер
В последнюю очередь подключаем к плате и контроллеру зуммер. Для этого нужно соединить длинную ножку зуммера с пином 3 Arduino с помощью зеленого соединительного провода, а короткую ножку с отрицательным каналом печатной платы с помощью резистора 220 Ом.
Я настоятельно рекомендую использовать резистор в соединении. Это значительно снижает громкость звукового сигнала зуммера и продлевает его срок службы.
Шаг 7: Код
После завершения сборки всех компонентов приступаем к кодированию Arduino. Для этого откройте программу для Arduino на вашем компьютере и скопируйте в нее код, приведенный ниже. Не бойтесь менять расстояние фиксации объектов и громкость звукового сигнала.
После этого подключите ваш Arduino к своему компьютеру и загрузите код. Если вы следовали инструкциям, при приближении руки к датчикам диоды будут загораться по очереди, пока не сработает зуммер.
Шаг 8: Работа Arduino
Сделать сигнализацию своими руками было очень интересно, и результат получился очень хороший.
Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.
Автономная охранная система на Arduino + GSM
Друзья, разрешите представить проектик GSM сигнализации на Arduino. В сети довольно много проектов по типу «Arduino + модем + датчики», однако я часто вижу в них некоторую незаконченность (в особенности, с программной точки зрения): отсутствие гибкости в настройках и конфигурировании. В представленном решении я попытался сделать устройство максимально готовое к «боевым» условиям, предусмотрев все, что может понадобится среднестатистическому пользователю (на мой взгляд).
TL; DR программно и аппаратно задуманное реализовано, тест в реальных условиях запущен, исходники и бинарники опубликованы, корпус не осилил.
Устройство и характеристики
Устройство отправляет SMS при возникновении следующих событий:
- открытие двери (герконовый датчик);
- резкое изменение освещения (фоторезистор);
- движение (PIR датчик);
- выход температуры из заданного диапазона;
- низкое напряжение батареи.
Пример SMS с событием
Также, раз в сутки можно настроить время ежедневного отчета
Питается устройство от 3-х батареек AA. Расчетное время работы ≥6мес.
Настройка устройства, считывание логов событий и построение месячного графика температуры происходит с помощью утилиты (Python 2.7 + Tk + pyserial + matplotli).
Основное окно утилиты настройки
Окно лога событий
Окно лога температуры
Сборка устройства
Себестоимость деталей устройства на момент публикации этой статьи составляет примерно 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.
Использование
Локализация
Поддержаны два языка для программы конфигурирования и текста SMS: английский, русский. При желании не сложно добавить поддержку других языков: все локализуемые строки вынесены в отдельный файл (принимаю issue с реквестом, если приложите переводы всех строк).
Полевые испытания
Прошу прощения за эстетику монтажа.
Установка на входную дверь. Часть конструкции справа (непосредственно на самой двери) — магнит для срабатывания геркона
На место постоянного использования (гараж) устройство было установлено 4 месяца назад. Для целей усиленного тестирования, функция расписания не используется (по каждому событию отправляется SMS). В среднем получается 5 SMS в день: два при входе в гараж (срабатывает датчик открытия двери и датчик освещения), два при выходе и один «ежедневный отчет». На текущий момент батареи (3x AA) держат напряжение 4.1в при включенном модеме.
Проблемы
За время эксплуатации температура в помещении понизилась с +10°С до -15°С и обнаружилась две проблемы.
- Используемый PIR датчик начинает давать ложные срабатывания при низких температурах. При +5°С использование стало совсем невозможным: число ложных срабатываний превысило одно в день. Попытка замены датчика на другой проблему не решило, поэтому сейчас этот датчик временно отключен. Что с этим делать пока не понятно.
- Датчик температуры, встроенный в DS3231 при -10°С и ниже начал сходить с ума: периодически выдает случайные значения, например, «-84°С» или «+115°С». Интересно, что RTC работает нормально. На текущий момент не понятно, проблема ли это конкретно моего экземпляра или нет. Жду для проверки второй идентичный модуль, при повторении с ним проблемы в устройство будет добавлен DS18B20.
В остальном полет нормальный.
Что дальше
В планах (когда-нибудь):
- спроектировать и напечатать корпус;
- подключить ESP-01 для конфигурации и просмотра логов через браузер с телефона.
Отладка
Отладочные сообщения выводятся в виртуальный COM на 250kbod. Нужно замкнуть на землю D12, чтобы отключить детекцию подключенного USB (чтобы устройство продолжало работу в нормальном режиме). Конфигурирование через утилиту продолжит работать нормально.
Ссылки
Репозиторий проекта: github
Доступны схема и плата в Ki-CAD, прошивка и исходники для Arduino, exe и исходники утилиты конфигурации.
Создание охранной сигнализации с датчиком движения на базе Arduino и инфракрасных датчиков
Инфракрасные (ИК, 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.
Схема соединений охранной сигнализации на Arduino
На приведенной ниже фотографии показано, как мы наклеили датчики на дверной косяк для этого эксперимента. Разумеется, в случае постоянного использования вы установили бы датчики по-другому.
Макет охранной сигнализации на Arduino
Установка
- Подключите выводы 5V и GND платы Arduino к выводам питания и GND датчиков. Вы также можете подавать на них внешнее питание.
- Подключите выходные выводы датчиков к выводам A0 и A1 платы Arduino.
- Подключите вывод 3 Arduino к базе транзистора через резистор 1 кОм.
- Подайте напряжение 12 В на коллектор транзистора.
- Подключите положительный вывод 12-вольтового зуммера к эмиттеру, а отрицательный – к шине земли.
- Подключите вывод 4 к выводу 5V через кнопку. В целях безопасности, во избежание протекания большого тока это всегда лучше делать через дополнительный небольшой резистор.
- Подключите плату Arduino к компьютеру через USB кабель и загрузите программу в микроконтроллер, используя Arduino IDE.
- Подайте на плату Arduino питание, используя блок питания, аккумулятор или USB кабель/