GSM-сигнализация на Arduino Nano и SIM800L: устройство и схема

GSM-сигнализация на Arduino Nano и SIM800L: устройство и схема

Проект охранной системы на четыре шлейфа с резервным питанием и голосовым оповещением через SIM800L. Материал ознакомительный: в исходном коде есть ошибки.

Общая структура

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

Центром системы служит Arduino Nano, связь обеспечивает GSM-модуль SIM800L. Вокруг них выстроены остальные блоки: основной и резервный источники с реле контроля питания, зарядное устройство аккумулятора, шина питания с несколькими уровнями напряжения, световая и звуковая индикация, клавиатура, блок контроля шлейфов. Дополнительно предусмотрен двухканальный релейный модуль — охранной функции у него нет, он позволяет удалённо включать, например, обогрев или освещение.

Основное и резервное питание

Основной источник — блок, преобразующий 220 В сети в 12 В при токе 3 А. Запас по току объясняется пиковыми нагрузками: на заряд севшего аккумулятора уходит около 1 А, а GSM-модуль при поиске сети и регистрации способен потреблять до 2 А, плюс Arduino, обмотки реле, индикация и шлейфы. Напряжение 12 В выбрано ради шлейфов: в длинных проводах с датчиками 5 В затухали бы быстрее, а из 12 В легко получить более низкие уровни.

Блок питания 12 В 3 А в металлическом корпусе

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

Свинцовая аккумуляторная батарея на 12 В

Здесь вместо него применён Li-Ion элемент формата 18650 ёмкостью 2500 мАч. Его 3,7 В поднимает до 12 В повышающий DC-DC преобразователь MT3608, способный работать от 2 В и выдавать почти до 28 В.

Li-Ion аккумулятор типоразмера 18650
Подключение аккумулятора к преобразователю MT3608

Переключением источников занимается реле с обмоткой на 12 В и контактами, рассчитанными на ток до 3 А. Пока сеть есть, напряжение идёт в шину через диод и одновременно питает обмотку: реле держит аккумулятор отключённым. При пропадании сети контакты возвращаются в нормальное положение, аккумулятор подключается к MT3608, и 12 В попадают в шину через второй диод.

Подзаряжает аккумулятор модуль на микросхеме TP4056. Ток заряда задаётся ограничительным резистором: чем меньше его сопротивление, тем быстрее заряд. Разъём Micro-USB модуля в проекте не используется.

Шина питания, индикация и клавиатура

Из 12 В два понижающих преобразователя на MP2307DN формируют 5 В и 3,3 В; каждый рассчитан на ток до 3 А, выходное напряжение выставляется подстроечным резистором. От 5 В питаются логика Arduino, TP4056 и обмотки двух реле, линия 3,3 В отведена исключительно под SIM800L.

Вместо дисплея применён RGB-светодиод: три цвета и режим мигания позволяют закодировать достаточно сообщений. За звук отвечает 12-вольтовая пьезосирена, подключённая через транзисторный ключ на MOSFET IRL540N, поскольку напрямую к Arduino её подключить нельзя. Мембранная матричная клавиатура позволяет ставить систему на охрану и снимать с неё паролем, если телефон разряжен или недоступен.

Контроль охранных шлейфов

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

Сопротивление измеряется через напряжение. Шлейф питается от 12 В через токоограничивающий резистор, а делитель согласует этот уровень с аналоговым входом Arduino Nano, рассчитанным максимум на 5 В. Конденсатор в каскаде фильтрует наведённые помехи, что важно для длинных и уличных линий. При исправном шлейфе на входе АЦП получается около 2,43 В — примерно середина диапазона. Допустимым считается коридор от 2 до 3 В, всё за его пределами — сигнал тревоги.

Подготовка SIM800L

Для первой проверки в модуль вставляют SIM-карту, подают питание и ждут регистрации в сети: светодиод на плате начинает мигать раз в 3 секунды. В Arduino загружают скетч-мост на библиотеке SoftwareSerial, который пересылает данные между монитором порта и модемом на скорости 9600; программный порт объявлен как SoftwareSerial mySerial(11, 10) — RX и TX. На команду AT исправный модем отвечает OK.

У SIM800L есть собственная память, пригодная для хранения звуковых файлов. Свободный объём показывает команда AT+FSMEM (в примере — 180224 байта), список файлов в папке C:\User\ — команда AT+FSLS=C:\User\. Модуль воспроизводит звук в формате AMR, поэтому фразы сначала получают в MP3 — надиктовывают или создают синтезатором речи, — а затем конвертируют, например программой AMR-Player. В проекте десять сообщений: об установке соединения, постановке и снятии с охраны, тревоге, включении и отключении каждой из двух нагрузок, нормальном и низком заряде батареи. В AMR они заняли 45,6 кБ против 254 кБ в MP3.

Файлы записывает утилита Sim800 Series AmrFile Downloader V1.00, данные идут по цепочке компьютер — Arduino Nano — SIM800L. Монитор порта перед этим закрывают, чтобы освободить COM-порт, проверяют скорость обмена, после подачи питания выжидают 5 секунд на инициализацию модуля и нажимают Start.

Логика работы

После включения сигнализация регистрируется в сети, и светодиод мигает синим. Успешная инициализация обозначается зелёным цветом, недоступная сеть — красным. Далее система ждёт команды с клавиатуры или звонка с заранее заданного номера. На охрану объект ставится клавишей # на клавиатуре либо соответствующей клавишей телефона при установленном соединении. При постановке с клавиатуры охрана включается через 20 секунд, чтобы человек успел выйти из помещения.

← Все статьи