GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

Приветствую всех. В предыдущих частях я рассказал, как сделать GSM сигнализацию на ардуино. Затронул тему изготовления беспроводных датчиков для неё. Обещал сделать датчик, работающий по Wi-Fi. И в итоге так увлёкся, что переработал весь проект.


Итак, я решил, что мобильный GPRS это конечно хорошо, но будет ещё лучше, если сигнализация сможет подключаться к домашней Wi-Fi сети и общаться со смартфоном через интернет и мобильное приложение. Для этого мне понадобилась отдельная плата с Wi-Fi модулем. Я подключил к ардуине плату NodeMcu v3 с чипом esp8266. Управление сигнализацией реализовал со смартфона в приложении Blynk.


Для новой сигнализации спроектировал печатную плату, на которой могут разместиться:


- Arduino Nano V3.0

- NodeMcu v3 для выхода в интернет.

- SIM800L для мобильной связи.

- Радиомодуль NRF24L01 для приёма сигналов от беспроводных датчиков.

- ИК-приёмник

- Датчик температуры DS18B20.

- Термистор.

- Микроволновый датчик движения RCWL-0516.

- Зуммер.

- Микрофон.

- MOSFET транзисторы AO3400A для включения платы NodeMcu и внешних маломощных устройств.

- Разъёмы для подключения других датчиков

- Переключение на резервный источник питания


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


Т.к. сигнализация модульная, можно выбрать ту конфигурацию, которая нужна именно Вам.


Связь может осуществляться через SIM800L или NodeMcu на выбор, либо с обоими модулями одновременно (рекомендуется). В последнем случае имеет два независимых канала связи, что более надёжно.

Ардуино и NodeMcu общаются по шине I2C. На плате выведены разъёмы для подключения датчиков по этой шине.

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

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

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

Распиновка новой платы немного отличается от схемы предыдущего проекта. Поэтому я решил вынести прошивки в отдельный проект. Дальше будут выходить обновления только для этой платы. Новая версия скетча Signalka.ino подходит и для старого проекта. Ею можно обновляться. Необходимо лишь привести в соответствие номера зарезервированных пинов в файле https://github.com/wisenheimer/Signaling-Blynk/blob/master/l...


Прошивка для NodeMcu написана в среде Arduino IDE. Чтобы собрать проект, необходимо установить библиотеку для esp8266. Как это сделать, можете почитать, например, здесь https://habr.com/ru/post/371853/

Хочу обратить внимание, что с последней версией библиотеки у меня проект не заработал. Плата не хотела подключаться к серверам Blynk. Пришлось откатиться на версию 2.4.2. И проблема исчезла.


Для управления сигнализацией через плату NodeMcu нам надо создать в телефоне приложение Blynk. Это такой конструктор, в котором собирается мобильное приложение из готовых визуальных элементов - виджетов. За каждый виджет нужно платить местной валютой - энергией. Бесплатно даётся 2000 энергии. Если не уложиться в эту сумму, то дополнительную энергию можно докупить за реальные деньги. Мы же из соображений бережливости соберём приложение, которое стоит ровно 2000 энергии.


В статье я не буду затрагивать технические детали по созданию приложения Blynk, настройке и работе сигнализации. Всё это я изложил в файле описания проекта

https://github.com/wisenheimer/Signaling-Blynk/blob/master/R...

Перейдите туда, и следуя инструкции, создайте вот такое приложение:

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

После запуска и подключения к серверу Blynk увидим следующее:

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

В терминал будут выводиться сообщения сигнализации. Так же из него можно отправлять в сигнализацию команды управления (AT, СМС и DTMF команды).

Кнопки ALARM, GUARD и EMAIL в данной конфигурации означают флаги управления сигнализацией. Любой флаг можно включить и отключить из приложения нажатием на кнопку.


ALARM - флаг тревоги. Устанавливается в 1 при срабатывании одного из датчиков. Сбрасывается самостоятельно при завершении режима тревоги.

GUARD - флаг постановки на охрану.

EMAIL - флаг отправки сообщений сигнализации на указанную электронную почту. Так же включается и отключается из приложения.


Далее следует перечисление датчиков и их текущее показание. В данном примере у нас подключено два датчика:

18B20 - это датчик температуры DS18B20, распаянный на плате.

RADAR - микроволновый датчик движения RCWL-0516.


При срабатывании датчика на экране телефона появится сообщение тревоги

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

Если плата NodeMcu потеряет связь с сервером Blynk, то на телефон так же придёт сообщение.

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост
GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

Эти же сообщения отправятся на указанный вами в настройках e-mail.


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

Можно было бы добавить графики и дополнительные визуальные плюшки. Для этого понадобилось бы докупить энергии. Каждый в праве доработать проект под себя. Я же ограничусь бесплатной версией.


Теперь несколько слов о том, как создать и подключить беспроводной Wi-Fi датчик.

В предыдущей своей статье я описал беспроводной датчик на ардуино с ИК-передатчиком.

Wi-Fi датчик представляет из себя тоже самое, только для связи мы используем радиомодули nRF24L01. Передающий в датчике, принимающий в сигнализации. Под этот модуль уже предусмотрено место на плате сигнализации. Учтите, что при его использовании будут заняты 9, 10, 11, 12 и 13 пины платы ардуино. По этой причине не возможно одновременное использование ИК и Wi-Fi приёмников.


Схема соединения выглядит следующим образом

GSM/GPRS/Wi-Fi+Blynk сигнализация на Arduino Сигнализация, Arduino, Esp8266, Sim800l, Gprs, Blynk, Длиннопост

Скетч проекта лежит по этой ссылке


https://github.com/wisenheimer/Signaling-Blynk/blob/master/n...


Там необходимо будет указать свои датчики, подключенные к ардуино.

В скетче задано два датчика. Вам нужно только вписать свои.

Sensor sens[SENS_NUM]=
{
Sensor(DOOR_PIN,DIGITAL_SENSOR, "DOOR", HIGH, 0),
Sensor(5, DIGITAL_SENSOR, "MOVE", LOW)
};

Первый датчик это геркон, второй - датчик движения.

Пин DOOR_PIN зарезервирован под геркон и соответствует 4 пину ардуины.


При срабатывании любого из этих датчиков по Wi-Fi будет отправлено сообщение RF_CODE, которое примет сигнализация, и включит режим тревоги.


Соответственно в скетче сигнализации нужно аналогично прописать беспроводной датчик


Sensor sens[SENS_NUM]={
Sensor(DOOR_PIN, DIGITAL_SENSOR,"DOOR",  HIGH, 0),
Sensor(DOOR_PIN, DS18B20,  "18B20", LOW, 10, 45),
Sensor(A7,  TERMISTOR,  "TERM",  LOW, 10, 45),
Sensor(6,  DIGITAL_SENSOR,"RADAR",LOW),
#if RF_ENABLE // Датчик с Wi-Fi модулем nRF24L01
Sensor( RF24_SENSOR, "Koridor",RF0_CODE),

Sensor( RF24_SENSOR, "Zal",RF1_CODE)

#endif
};

В примере заданы два беспроводных Wi-Fi датчика, где

RF24_SENSOR - тип датчика

"Koridor" и "Zal" - имена датчиков, которые будут выводиться в сообщениях

RF0_CODE и RF1_CODE - индивидуальные коды RF_CODE, которые отправляют датчики при срабатывании.


В будущем постараюсь добавить поддержку Blynk в прошивку ардуино с модемом SIM800L. Чтобы можно было обойтись без NodeMcu. Пока на всё это не хватает времени.


Скачать проект можно по ссылке https://github.com/wisenheimer/Signaling-Blynk

Arduino & Pi

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

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

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

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

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

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

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

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

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

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
Даёшь автомобильную сигнализацию на ардуине!!!! Ради этого подписался!
раскрыть ветку (8)
2
Автор поста оценил этот комментарий

Какие в ней должны быть функции?

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

примерно такие

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

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

PS: И еще один аспект за кастомную разводку платы, все это хозяйство надо заливать лаком для защиты от влаги (например в холодное время заехали на мойку с 99% влажностью у вас все покрылось инеем, а затем он растаял на солнце) . 

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

Всё это прекрасно, только я не буду делать автомобильную сигнализацию. У меня и автомобиля то нету)) Кто хочет, тот пусть делает на основе моего проекта.

1
Автор поста оценил этот комментарий
Gps, передача данных+смс, в идеале секретка, но с 2-4 или-каналами подтвержения(смс, вайфай, флешка с файлом в магнитолу), отслеживание каких-нибудь параметров, я уж хз, хоть вес водителя на тензодатчике.
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

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

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

RFID прикрутить. Сейчас у многих подъезды с метками. Или банковскую карту можно заюзать. Это, чтобы лишнее не таскать. Ну на худой конец метрошный билет подойдет или картоку на али заказать, хотя обычно одна карта или брелок в комплекте идет.
А еще ИМХО хорошая идея - блютус. Телефон сейчас у всех. А поскольку сигнализация кастомная, то типового решения для перехвата вашего общения с сигой у жуликов наверняка не найдется.

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