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 запрещен)

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

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

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

Нифига не понятно для меня, но автор молодец и картинки интересные! Уважаю людей с прямыми руками!

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

Спасибо) В начале и я ничего не понимал. Разобрался со временем))

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

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

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

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

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

К тому же если связь пропадёт, на телефон придёт уведомление от Blynk. Можно начинать беспокоиться.

Через смартфон в интернет выходить смысла нет, есть SIM800L, которая может это сделать. Надо только приложение Blynk к ней прикрутить. Просто хотел не оплачивать дополнительный интернет на телефоне.

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

Слушай вот ты шаришь походу. Вопрос.

Можно ли как нибудь с компа управлять например реле каким нибудь. Хочу в теплицу себе умную сделать. Смарт теплицу)

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

Купить Wi-Fi реле и управлять им с телефона. С обычного компьютера затруднительно будет, там нет нужных портов. Можно взять одноплатный компьютер типа RASPBERRY PI, у него есть выходы GPIO, вот на них можно цеплять реле. В сети полно проектов для умных теплиц. Лучше поискать и почитать, как там реализовано.

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

Управлять с компьютера можно, если к Arduino добавить Ethernet модуль и поднять на самой Arduino простенький вебсервер спомощью которого будешь управлять  реле по сети (проекты в инете есть). Но здесь возникает другой вопрос. Как далеко находится теплица? Если за домом :), то это будет один путь реализации сетевого соединения, а вот если теплица на  достаточном удалении, то возникает вопрос связи с интернетом. Хотя и это вполне решаемо.

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

Esp8266 прошивается Easy ESP и управляется по WiFi.

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

Заебись спасибо)

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

Скажите, откуда у вас коробочка от ALART-RMOD?

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

Купил в Чип и Дип https://www.chipdip.ru/product/g720

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

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

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

Я нигде не писал что это автомобильная сигнализация))

В максимальной конфигурации сначала будет звонок на телефон, потом сообщение в Blynk и на почту. Если вай фай отвалился, то это сообщение уйдёт на мыло по GPRS, если и оно не отправится, то придёт в смс.

Сигнализация будет пытаться его отправить, пока не появится связь.

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

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

Чито? Если джиэсэм заглушен то ни по джиэсэм ни по джипиэрэсу ничего не уйдет. Глушилки давят сигнал в близи нефиг делать. Сервер блинк ничего никуда не пошлет, ни блинк ни какой другой.

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

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

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