Проект GSM/GPRS сигнализации на Arduino

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

Для вожделенной халявы пришлось отказаться от традиционных смс оповещений, и освоить отправку писем на электронную почту. При правильно подобранном тарифе, сигнализация не тратит денег с баланса. При этом мы получаем по e-mail всю информацию о работе сигнализации, сработавших датчиках, действиях пользователей. Такой роскоши не добиться с помощью платных смс. Управление сигнализацией реализовано на основе DTMF команд. Если у вас один оператор связи на основном телефоне и на сигнализации, с бесплатными звонками внутри сети, или имеется пакет бесплатных минут, то управление сигнализацией тоже будет бесплатным. В противном случае всегда можно отправить команду в течении первых 3-х секунд. И так же не платить. Заинтриговал? Тогда прошу под кат.

Первым делом составим техническое задание:

1) Оповещение звонком Админа при срабатывании датчика.

2) Отправка e-mail с подробностями.

3) Отправка e-mail о действиях пользователей.

3) Наличие резервного питания на случай отключения основного.

4) Управление сигнализацией при помощи DTMF команд и смс.


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

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

В данном реализации были применены следующие сенсоры и модули:

1. Геркон NC типа, как датчик открытия двери.

2. Пироэлектрический инфракрасный датчик движения HC-SR501.

3. Датчик газа и дыма MQ-2.

4. Микроволновый датчик движения RCWL-0516. Видит сквозь препятствия и стены. Хорош для охраны дачи или частного дома. В квартире будут частые ложные срабатывания на соседей за стенкой или бегающих собачек и котиков.

5. Датчик пламени.

6. Датчик температуры и влажности DHT11.

7. Для подачи звуковых сигналов при выполнении команд использована пищалка (зуммер). В готовом изделии не обязателен.

8. Плата контроля заряда-разряда лития на основе микросхемы TP4056 с защитой от перезаряда и разряда.

9. Ардуино Nano V3. Можно заменить 5 вольтовой Ардуино pro mini.

10. В качестве GPRS GSM модема выбран недорогой, но хороший модуль SIM800L. Он имеет небольшие размеры. Умеет работать с DTMF командами, звонить, отправлять смс и e-mail. Смс дороги, а вот электронные письма можно слать практически бесплатно. Чем мы в дальнейшем и воспользуемся!


Датчиком открытия двери (окна) у нас служит нормально закрытый (NC тип) геркон. В случае отсутствия электричества наша ардуина будет отправлена в сон, и разбудить её смогут три вещи: сработавший геркон, появление внешнего питания (сеть), или сигнал RING с модема в случае звонка. Но это мы уже забежали вперёд.


Схема соединения.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост
Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост
Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Допустим мы всё собрали как надо. Чтобы сигнализация заработала, первым делом надо заполнить файл настроек, находящийся по следующему пути libraries/main_type/settings.h


В строке

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

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


Далее перечисляются используемые датчики. Вам нужно оставить только те, которые вы используете. Остальные строчки сделать комментариями при помощи двойного слеша //

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Можно оставить всё как есть. Не подключенные датчики на работу не повлияют.

Далее перечисляются пины, на которых висят наши модули. Первым у нас будет пин RING модема. Он соответствует пину 2 ардуино. Т.к. это обычное перечисление, номер следующего пина будет на один больше предыдущего, т. е. 2, 3, 4 и т. д. Если вы закомментировали какие-то модули выше, то их пины не будут учитываться в перечислении.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

При сборке схемы модули подключаются начиная со 2-го пина друг за другом в том порядке, что указан в перечислении.

Далее нам надо настроить отправку e-mail.

Первым делом задаём SMTP сервер почты, к которой будет подключаться наш модуль SIM800L. Он прекрасно работает с яндекс почтой, с другими не тестировал. Советую завести там почтовый ящик, и слать через него. В этом случае настройки изменять не нужно.

Для яндекса у нас такие параметры сервера и порта:

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Далее за место слов login и password впишите логин и пароль от вашей почты

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Затем укажите полное название вашей почты и имя отправителя. В данном случае у нас указан отправитель SIM800L. Можете написать что-то своё.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Теперь впишите название почты получателя и его имя. На этот ящик будут приходить письма. Для отправки и получения можно указать один и тот же ящик. Тоже будет работать.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Если вы хотите отправлять письма сразу на два или три ящика , раскомментируйте вот эти дефайны, и впишите имя почты

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Поздравляю! На этом настройки закончены. Можно прошивать ардуину.


Как работает сигнализация.

Внимание! Сигнализация управляется только с номеров, записанных в телефонную книгу симкарты.

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

Администратор — единственный пользователь, который может отправлять DTMF и смс команды.

Для удалённого добавления пользователя в телефонную книгу Администратор должен отправить смс вида

AT+CPBW=,"+xxxxxxxxxxx",145,"USER"
где +xxxxxxxxxxx - номер телефона
USER - имя абонента

Модем настроен на поднятие трубки при звонке с номера Админа. Это сделано для возможности использовать DTMF команды. Звонки с других номеров будут сбрасываться.

Администратор может отправлять DTMF команды из списка ниже. Если команда принята, сигнализация сбросит звонок. Отчёт о выполнении команды придёт на почту. Любая команда представляет собой цифру и знак #, который означает завершение ввода. После этого модем завершит звонок и выполнит полученную команду.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, Gsm, Gprs, Длиннопост

Команды, не вошедшие в список, считаются USSD запросами. Например, мы хотим узнать баланс телефона. USSD запрос баланса нашего оператора *xxx#

где xxx — цифры.

Отправляем DTMF команду xxx#. Она будет подставлена в USSD запрос. Ответ оператора будет переслан на почту.


Порядок включения.

Подать питание на сигнализацию.

Дождаться прихода e-mail. Сигнализация загрузилась.

По умолчанию режим охраны выключен. При звонке любого зарегистрированного номера (кроме админа) сигнализация будет ставить/снимать с охраны и отправлять отчёт на почту. Звонок будет сброшен. При звонке с номера Администратора модем поднимает трубку и ждёт DTMF команду. Админ может поставить/снять с охраны сигнализацию командой 1# и 2# соответственно. После ввода команды звонок завершится сам.


Режимы работы:

Тревога.

При срабатывании одного из датчиков включится режим тревоги. На телефон Админа поступит звонок. Его надо сбросить. На почту будут отправлены показания сработавшего датчика. Продолжительность режима тревоги задана в файле настроек дефайном ALARM_MAX_TIME. По умолчанию 60 секунд. В течение этого времени идёт сбор статистики о сработавших датчиках. Когда время истечёт, информация будет отправлена на почту, а счётчики срабатываний обнулятся. Если датчики снова сработают, всё повторится.


Выключение сетевого питания. Режим низкого энергопотребления.

При пропадании электричества на 3 пине ардуины появится низкий уровень. Сигнализация переключится на питание от батареи. На почту придёт сообщение, что свет пропал Svet OFF. После этого, для экономии энергии батареи, ардуина уйдёт в сон, модем будет переведён в режим низкого энергопотребления.

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

При появлении электричества ардуина проснётся, переведёт модем в обычный режим работы, и отправит сообщение на почту Svet ON.


Поддерживаемые операторы.

Прошивка поддерживает основных российских операторов:

МТС, Билайн, Мегафон, Теле2. Если у вас другой оператор, и не отправляется e-mail, пишите в комментариях. Будем добавлять.


На этом всё. Скачать прошивку можно здесь https://github.com/wisenheimer/Arduino

Вопросы пишите в комментариях :)

Arduino & Pi

1.4K постов20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

А вот мне интересно: а кто по тревоге приедет?) Дешевый китайский ЧОП?

раскрыть ветку (28)
2
Автор поста оценил этот комментарий

Мне проще, сам приеду. Работаю неподалёку. Плюс есть кому позвонить на месте, чтобы проверить. Можно прикрутить сирену. Нужно задействовать всего 1 пин для включения. Если поставить любую покупную сигнализацию в гараж или на дачу, тоже ЧОП не приедет. Зато вы будете знать, что к вам залезли. А не узнаете об этом через несколько месяцев, когда последнее барахло растащат.

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Я вас понимаю, у вас определенные условия для такой "охраны" есть. Наверно еще пара сотен таких людей найдется, но как профессионал скажу так: Вы или Ваш сосед могут нарваться на серьезные проблемы в виде фомки по голове, или резиновой(не дай бог свинцовой) пули в боку, последствия понятны. Я пытаюсь просто убедить народ в том, что и так понятно - профессиональная охрана, да еще и с такими примочками как у Вас - это лучше чем "хозяин с дубинкой", конечно если он не Рэмбо, хотя тот тоже огребал)

раскрыть ветку (4)
Автор поста оценил этот комментарий

Покажите мне ЧОП, который с огнестрелом на объекты ездит и не сцыт применять при задержании. Если воры готовы на "мокруху", какая им разница, кого убивать?

раскрыть ветку (3)
Автор поста оценил этот комментарий

Мои парни были такими... 15 лет ЧОП работал в Коми. Масса задержаний, применения тоже были, но редко. Только в отношении придурков. Потеря была одна...

раскрыть ветку (2)
Автор поста оценил этот комментарий

А теперь что?
Кому есть, что терять, по достоинству оценят и быстроту, и вооружение ГБР, не?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Теперь ЧОПа нет, закрыл, неинтересно стало, устал... Да, я одним из первых в стране оценил ГБР, ввел ОПС, сначала на СВ диапазоне, потом приобрел выделенки на УКВ и погнал. Забавно было смотреть как ОВО утирается) Я даже пробивал мигалки синие по линии МЧС). Мужики в Перми были первыми, потом я... Но такой кипишь поднялся в МВД (тогда у нас министром был бывший гаишник), что пришлось снять, хоть все было законно... Да уж, ГБР - это сила... Да не о том пост, пардон ТС.

1
Автор поста оценил этот комментарий

Пока до строящегося дома не проложили дорогу (часть асфальт, часть щебенка)  - ни один ЧОП не готов был взять дом под охрану. На пульт удалось подключить только в этом году. Вот и оставалась надежда на ревун и SMS-оповещение. А также внедорожные свойства своей машины, собственную физическую форму и газовый баллончик.

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

Буквально на прошлой неделе сигналка предупредила об отключении котла и остывании дома (один из датчиков - температурный, настроенный на понижение температуры до плюс 10). Помогла избежать больших потерь от разморозки.

раскрыть ветку (6)
Автор поста оценил этот комментарий

Я об этом и говорю. А где такие дэбильные ЧОПики растут, что от денег отказываются?

раскрыть ветку (5)
Автор поста оценил этот комментарий

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

раскрыть ветку (4)
Автор поста оценил этот комментарий

Ну почему же? Я ставил мобилку (экипаж) так, чтобы время подъезда было не более 5 мин. И оговаривал это в договоре. Приезжали раньше, конечно, и брали за яйки частенько).

Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий

У вас там и модель угроз поинтереснее, хачи со стволами, если мы о ХМАО-ЯНАО говорим

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет, Коми, но всякое было...

1
Автор поста оценил этот комментарий
ЧОП на частные дома не успевает. Задача сигналки в данном случае - вспугнуть злоумышленника. Остро не хватает сирены.
А так, по собственному опыту использования GSM-сигналки - минимум один раз срабатывание было верным - были свежие следы на снегу.
раскрыть ветку (14)
Автор поста оценил этот комментарий

Тогда вся эта затея коту под хвост. Поверьте моему опыту. (Сам создал и руководил крупнейшим ЧОПом в регионе почти 15 лет). Все пугалки до поры, а что ЧОП не успевает - так это хрень а не работа. Мы даже дачи охраняли по ОПС.

раскрыть ветку (13)
2
Автор поста оценил этот комментарий
Успеть можно если сигналка работает в тихом режиме. Или если рядом есть дежурная машина. А так три-пять минут у мерзюков всегда есть - хватать и тикать.
раскрыть ветку (2)
Автор поста оценил этот комментарий

Именно так. Но у ТС об этом нет ни слова, поэтому я и задал такой вопрос. Технически можно удешевить многое, но человеческий фактор еще никто не отменял.

раскрыть ветку (1)
Автор поста оценил этот комментарий

ЧОП в комплектацию не входит. У меня просто сигналка. Кто захочет, приделает ревун. У кого есть возможность нанять ЧОП, поставит себе совсем другие сигнализации + тревожную кнопку. Это не тема статьи.

Автор поста оценил этот комментарий

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


а профи с болгарками на аккумах вообще никакая сигнализация не остановит

раскрыть ветку (9)
Автор поста оценил этот комментарий

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

раскрыть ветку (8)
Автор поста оценил этот комментарий

ну лично мне выбили окно в авто, которое на даче стояло, дети(осталась кепка). я готов потратить пару сот рублей на рассыпуху для пищалки, просто что бы проверить сработает или нет.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
Автор поста оценил этот комментарий

Лучшая сигнализация это сторож. Скажем так, свою нишу эта сигнализация может найти. К тому же она не только от воров, ещё может сообщить о задымлении, об утечке газа, воды и т.д. Всё зависит от установленных датчиков. Админ может знать, есть кто в помещении из пользователей, или нет. Кто, когда приходил. Все отчёты приходят на почту. Можно разные применения найти.

раскрыть ветку (5)
Автор поста оценил этот комментарий

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

раскрыть ветку (4)
Автор поста оценил этот комментарий

Не можете отреагировать, тогда зачем вам сигнализация?))  Платите полиции, они поставят вашу квартиру на охрану. Какие проблемы. Датчики там и так не дорогие, все меньше 100 рублей. Потому что простые. Датчик огня и температуры можно выкинуть, будет дешевле. Тут надо конкретно смотреть, что нужно. Если в гараж, где одна дверь. Хватит и одного геркона. В квартиру лучше полный набор. Когда GPRS не получает IP, модуль делает 3 попытки соединения в течении минуты, и перезагружается. Через 30 сек он готов передавать данные. Как организовать выделенный канал за городом?

раскрыть ветку (3)
Автор поста оценил этот комментарий

В смысле не можем реагировать? Как раз наоборот. Мы реагировали. А выделенный канал - это выделенная частота с дублем от глушилок. Разве это проблема для нормального ЧОПа? У меня было три канала, в т.ч. для радиостанций.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Сиби-радиостанция. КВ.
Хардкор - спутник (но или дорого, или нелегально, на что ЧОП не подпишется)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку