AT+CMGR=3,0
|
Добрый день! Опять мультиобзор китайских электронных компонентов, как обычно обо всём понемногу, постараюсь покороче, но получится ли? Итак, встречайте, GSM сигнализация стоимостью до 700 ₽. Интересно? Прошу под «cut»!
Приступим! Перед началом рекомендую заглянуть в этот , меньше компонентов и большая автономность. Итак, «техзадание», основные требования к сигнализации:
1) Оповещать при срабатывании датчиков.
2) В случае отключения питания должна быть предусмотрена некоторая автономность.
3) Управление сигнализацией через sms и звонки.
Из-за того, что процесс создания сигнализации затянулся на несколько месяцев и некоторые продавцы уже не продают те компоненты которые были у них куплены, ссылки будут актуализированы на товары других продавцов у которых максимальное или приближенное к максимальному число продаж товара и лучшая цена. Цены в обзоре актуальны на дату его написания.
Перечень того что понадобится:
Список изменений
GSM_03_12_2016-14-38.hex
- исправлена работа устройства с модемом M590.
GSM_05_12_2016-13-45.hex
- добавлена консольная команда memtest, оптимизация использования оперативной памяти.
GSM_2016_12_06-15-43.hex
- добавлен вывод результатов команд в консоль, оптимизация памяти. Занято: 49% SRAM.
GSM_2016_12_07-10-59.hex
- теперь телефонные номера добавляются и удаляются правильно. Занято: 49% SRAM, 74% Flash Memory.
GSM_2016_12_07-15-38.hex
- добавлена возможность подключения датчика движения , подключается к пину A0 (в данном случае пин A0 используется как цифровой). Добавлены смс - команды PIROn
, PIROff
. Занято: 48% SRAM, 76% Flash Memory.
GSM_2016_12_08-13-53.hex
- Теперь после успешного выполнения команды, которая в ответ не отправляет смс сообщение, устройство однократно мигает синим светодиодом. Теперь после некорректного выполнения команды, которая в ответ не отправляет смс сообщение, устройство дважды мигает синим светодиодом. Теперь после инициализации параметров устройства, если включен «тихий» режим (SendSms = 0), устройство в течение 2 секунд часто мигает синим светодиодом. Исправлена ошибка из-за которой номер не всегда удалялся из памяти командой DeletePhone. Занято: 48% SRAM, 78% Flash Memory.
GSM_2016_12_11-09-12.hex
- Добавлены консольные команды AddPhone и DeletePhone, синтаксис аналогичен смс-командам. Оптимизация памяти. Занято: 43% SRAM, 79% Flash Memory.
GSM_2017_01_03-22-51.hex
- Реализована поддержка и ему подобных расширителей портов ввода/вывода на чипе PCF8574, для подключения дополнительных 8 датчиков, в том числе герконов. Автоматический поиск адреса и автоматическая настройка модуля. Стандартные названия датчиков и логический уровень их срабатывания изменяется с помощью команды EditSensor. Изменены содержания тревожных смс для основного датчика (пин D0) «Alarm! Main sensor!» и датчика движения (пин A0) «Alarm! PIR sensor!». Добавлены команды EditSensor и I2CScan. Занято: 66% SRAM, 92% Flash Memory.
GSM_2017_01_15-23-26.hex
- Поддержка модема A6_Mini. Контроль наличия внешнего питания (пин D7). Добавлены смс команды WatchPowerOn, WatchPowerOff. Добавлены консольные команды ListConfig, ListSensor. Теперь смс команда EditSensor работает правильно. Незначительно «урезан» вывод отладочной информации в монитор порта. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_01_16-23-54.hex
- Теперь в ответном сообщении на смс команду «Info» так же сообщается состояние датчика движения. Исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Теперь устройство оповещает не только об отключении, но и о возобновлении внешнего питания. Все модемы стали «меньше болтать», теперь в мониторе порта стало немного чище. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_02_04-20-23.hex
- Исправлена ошибка «Watch the power on». Теперь после снятия с охраны, выключается «тревожный пин». Теперь после удаления номера в консоль выводится правильная информация. Возможно исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Занято: 66% SRAM, 90% Flash Memory.
GSM_2017_02_14-00-03.hex
- Теперь по умолчанию отправляются смс сообщения, параметр SendSms снова равен 1. Теперь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика. Занято: 66% SRAM, 90% Flash Memory.
GSM_2017_03_01-23-37.hex
- Команда WatchPowerOn удалена. Добавлена консольная команда WatchPowerOff, идентична смс команде. Добавлены команды WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 - мониторинг внешнего питания включен если сигнализация поставлена на охрану, WatchPowerOn2 - мониторинг внешнего питания включен всегда. Реализована функция постановки на охрану и снятия с охраны внешними устройствами, для этого используются выводы A1(D15) и A2(D16). Сигнализация ставит/снимает охрану при появлении на выводе A1(D15) высокого уровня +5В или на выводе A2(D16) низкого уровня GND. Вывод A1(D15) подтягивается к GND, вывод A2(D16) подтягивается к +5V через резисторы 20 (10) кОм. Добавлены команды GuardButtonOn и GuardButtonOff. Теперь после постановки на охрану мигает красный светодиод, пока не будет проверена целостность контура основного герконового датчика. Если контур целый загорается красный светодиод. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_03_12-20-04.hex
- Теперь в консоли стало ещё чище, но если включен тестовый режим «TestOn», то в консоль выводится дополнительная информация. Исправлен баг «Sent!», теперь в консоль правильно выводится информация об отправке сообщений. Исправлен баг «повторного ложного вызова». Теперь запрос баланса должен работать корректно на всех модемах. Занято: 67% SRAM, 95% Flash Memory.
GSM_2017_04_16-12-00.hex
- Исправлен . Теперь команды Info и Money всегда будут присылать ответное смс. Команда GuardButtonOn заменена командами GuardButtonOn1 и GuardButtonOn2. Занято: 67% SRAM, 99% Flash Memory.
GSM_2017_04_21-09-43.hex - не рекомендуется к использованию, только в качестве тестирования, спасибо за выявленные ошибки:)
- Теперь параметр sendsms не влияет на отправку смс сообщений мониторинга электросети. Добавлена смс команда DelayBeforeGuard отвечающая за задержку при постановке на охрану, значение не может превышать 255 секунд. Добавлена смс команда DelayBeforeAlarm отвечающая за задержку отправки уведомлений и включение «тревожного пина» при срабатывании датчиков, значение не может превышать 255 секунд. Удалены команды ClearSMS, теперь сообщения удаляются автоматически после получения. Занято: 68% SRAM, 100% Flash Memory.
GSM_2017_04_22-20-42.hex
- Исправлены множественные ошибки. Команды ClearSMS снова присутствуют в прошивке. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_04_23-17-50.hex
- Теперь запрос баланса должен работать корректно на всех модемах. Постановка и снятие с охраны внешними устройствами теперь работает правильно. Ответные сообщения смс команды Info не должны быть пустыми. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_04_24-13-22.hex
- Теперь передача консольных команд в GSM модуль производится только если включен тестовый режим. Теперь нет разделения на смс команды и консольные команды, все существующие команды можно передавать как через смс, так и через консоль. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 68% SRAM, 94% Flash Memory.
GSM_2017_04_25-20-54.hex
- Исправлен баг при котором команда ListConfig меняла значение последнего события. Теперь при вводе команд через косоль не отправляются ненужные смс сообщения. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 94% Flash Memory.
GSM_2017_04_30-12-57.hex
- Временно включён вывод дополнительной информации в консоль при отправке смс сообщений и формировании ответа на команду Info. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 92% Flash Memory.
GSM_2017_05_06-11-52.hex
- Исправлен с функцией DelayBeforeAlarm. Занято: 66% SRAM, 93% Flash Memory.
GSM_2017_05_23-21-27.hex
- Незначительно изменён вывод информации в консоль. Добавлена поддержка модулей расширения портов на PCF8574A c адресами от 0x38 до 0x3f включительно. Исправлен баг c . Теперь устройство перезагружается автоматически после команд FullReset, ResetConfig, ResetPhone и в случае успешного выполнения команды MemTest. Добавлена команда WatchPowerTime. Теперь возможно установить время, по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Занято: 67% SRAM, 94% Flash Memory.
GSM_2017_05_26-20-22.hex
- Исправлена инициализация памяти датчиков платы расширения. Изменён синтаксис команды AddPhone. Добавлена команда EditMainPhone. Изменен принцип работы системы уведомлений, при срабатывании датчика сначала будут отправлены sms сообщения, после чего будут совершены голосовые вызовы. Тревожные sms сообщения будут отправлены на телефонные номера с признаком «S» (SMS). Голосовые вызовы будут совершены на номера с признаком «R» (Ring). Сообщения об отключении/включении внешнего источника питания будут отправлены на телефонные номера с признаком «P» (Power). Добавлена команда RingTime. Теперь возможно установить длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд. Теперь команда RingOn/RingOff глобально включает/отключает оповещение голосовыми вызовами. Добавлена команда ResetSensor. Занято: 68% SRAM, 99% Flash Memory.
GSM_2017_06_02-17-43.hex
- Командам AddPhone и EditMainPhone добавлен параметр «I» (Info), отвечающий за sms уведомление о постановке или снятии устройства с охраны. Теперь после добавления основного номера устройство автоматически перезагружается. Теперь можно вносить в память устройства одинаковые номера. При добавлении второго и последующих дублирующихся номеров с них автоматически будут сняты атрибуты «M», «S», «P» и «I». Эти номера будут использованы для повторного голосового вызова при срабатывании датчиков. Исправлен баг кривого вывода в консоль после выполнения команды AddPhone, теперь информация не выводится автоматически после добавления номера. Добавлена команда Reboot. Занято: 69% SRAM, 99% Flash Memory.
GSM_2017_06_11-00-07.hex
- Теперь вновь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика, при этом не учитывается поставлено или снято устройство с охраны. Команды RingOn/RingOff удалены. Теперь устройство можно снять с охраны во время тревожного вызова, теперь они совершаются в фоновом режиме. Занято: 69% SRAM, 99% Flash Memory.
GSM_2017_07_04-21-52.hex
- Теперь команда Pause не присылает ответное смс. Удалены команды TestOn и TestOff. У всех номеров удалён признак Management. Занято: 68% SRAM, 96% Flash Memory.
GSM_2017_07_24-12-02.hex
- Добавлены команды ReedSwitchOn/ReedSwitchOff для мониторинга основного герконовго датчика, теперь его можно включать/отключать так же как и датчик движения. Исправлен баг команды Info. Команды TestOn и TestOff снова присутствуют в прошивке. Занято: 68% SRAM, 96% Flash Memory.
GSM_2017_07_26-10-03.hex
- Добавлена команда ModemID. Автоматическое определение модема осуществляется только если значение этого параметра равно 0. После установки значения параметра равным 0 производится автоматическая перезагрузка устройства. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_08_03-22-03.hex
- Теперь сигнализация может управлять внешними устройствами. Для управления используется аналоговый выход A3 (D17 - используется как цифровой). Логический уровень выхода (+5В или GND) может быть изменен, после изменения уровня через команду настройки устройство автоматически будет перезагружено. Длительность сигнала управления внешним устройством может быть изменена. Добавлены команды ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Некоторые изменения в логике работы команд управления. Оптимизация памяти. Занято: 68% SRAM, 99% Flash Memory.
GSM_2017_08_10-12-17.hex
- Удалены команды SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff и всё что с ними связано. Команда DelayBeforeAlarm заменена расширенными командами. Изменён вывод команды Info. Оптимизирован вывод команды ListConfig в консоль. Теперь к пинам D6 и A0 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пины D6 и A0 должны быть притянуты к земле (GND) через сопротивление 10 (20) кОм. Если датчик настроен на низкий уровень срабатывания (включен в режиме геркона), то проверяется целостность цепи. Логический уровень срабатывания по входам D6 и A0 (+5В или GND) может быть изменен, после изменения логического уровня устройство автоматически будет перезагружено. Для каждого из датчиков (main, second, PCF-платы расширения) при срабатывании может быть установлено своё время по истечение которого будет осуществлено уведомление (смс и/или голосовой вызов). «PIR Sensor» переименован в «Second sensor». Исправлена работа платы расширения, ошибка из-за которой устройство всегда уведомляло о срабатывании датчиков, вне зависимости от того поставлено устройство на охрану или нет. Теперь можно выбрать режим работы при котором устройство может мониторить датчики платы расширения как во включенном режиме охраны (GuardOn), так и при выключенном режиме (GuardOff). Добавлены команды PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelayBeforeAlarm. Занято: 68% SRAM, 99% Flash Memory.
*Последующие версии прошивок включают в себя изменения предыдущих версий.
Используемые порты Arduino Nano v3
D4
- выход «тревожного» пина, при срабатывании датчика на этом пине устанавливается сигнал высокого уровня
D5
- инверсный выход «тревожного» пина, при срабатывании датчика на этом пине устанавливается сигнал низкого уровня
D6
- герконовый датчик. Начиная с версии GSM_2017_08_10-12-17.hex к пину D6 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пин D6 должен быть притянут к земле (GND) через сопротивление 10 (20) кОм.
D7
- подключен к делителю напряжения от внешнего источника питания +5В. Верхнее плечо 2,2 кОм, нижнее 3,3 кОм.
Делитель напряжения
![](https://i1.wp.com/img.mysku-st.ru/uploads/images/03/44/13/2017/01/17/fbb0b8.jpg)
D8
- модем TX
D9
- модем RX
D10
- красный светодиод
D11
- синий светодиод
D12
- зеленый светодиод
Подключение периферии:
A0
- датчик движения . Начиная с версии GSM_2017_08_10-12-17.hex к пину A0 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пин A0 должен быть притянут к земле (GND) через сопротивление 10 (20) кОм.
A1
- Вход для внешнего управления. Сигнализация ставит/снимает охрану при появлении на входе высокого уровня +5В.
A2
- Инверсный вход для внешнего управления. Сигнализация ставит/снимает охрану при появлении на входе низкого уровня GND.
A3
- Настраиваемый (+5В или GND) выход для управления внешними устройствами. При поступлении команды управления значение на этом выходе изменяется в зависимости от того какое было установлено на установленный промежуток времени.
A4
- SDA I2C
A5
- SLC I2C
, для подключения дополнительных 8 датчиков.
Команды управления для hex - прошивки
Внимание!
Команды выделенные жирным шрифтом
могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Остальные команды могут быть выполнены с номеров с признаком «Management».
SMS - команды управления не чувствительны к регистру
:
AddPhone
- Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone
или FullReset
. Т.е. кто первый позвонил на устройство после его сброска на заводские установки тот и и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс. Невозможно добавить два одинаковых номера.
Пример команды:
Синтаксис команды:
AddPhone
- команда
: - разделитель
5 - записать в пятую ячейку памяти
+71234567890 - номер телефона
До версии GSM_2017_05_26-20-22.hex:
а - Параметр «Alarm» - на номера с этим параметром будут отправляться смс - сообщения о срабатывании сигнализации и сообщения постановке или снятии с охраны.
Начиная с версии GSM_2017_05_26-20-22.hex:
m - Параметр «Management» - разрешено управление сигнализацией
s - Параметр «SMS» - будет отправлено sms сообщение при срабатывании датчиков
r - Параметр «Ring» - будет совершен голосовой вызов при срабатывании датчиков
p - Параметр «Power» - будет отправлено sms сообщение при включении/отключении внешнего питания
i - Параметр «Info» - будет отправлено sms сообщение при постановке или снятии с охраны
При отсутствии параметров «m», «s», «r», «p»,«i» телефон заносится в память, но никак не используется.
DeletePhone
- Удалить номер телефона.
Пример команды:
Синтаксис команды:
DeletePhone - команда
: - разделитель
+71234567891 - номер телефона
EditMainPhone
- Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
Синтаксис команды:
EditMainPhone - команда
: - разделитель
srpi - параметры
BalanceNum
- Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:
Синтаксис команды:
BalanceNum - команда
: - разделитель
#103# - номер запроса баланса
L24 - Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.
EditSensor
- Изменить название датчика и логический уровень срабатывания. Всего может быть не более 8 дополнительных датчиков. После изменения параметров необходима перезагрузка устройства.
Пример команды:
EditSensor:1+Datchik dvizheniya v koridore#h
Синтаксис команды:
EditSensor - команда
: - разделитель
1 - записать в первую ячейку памяти
+ - разделитель
Datchik dvizheniya v koridore - название датчика, не может превышать 36 символов, включая пробелы.
#h - Признак высокого логического уровня с датчика, при получении которого сработает сигнализация. Если отсутствует "#h", сигнализация будет срабатывать при получении с датчика низкого логического уровня.
SleepTime
- Время «засыпания» сигнализации при получении смс - команды «Pause», указывается в минутах. Значение по умолчанию: 15, не может быть менее 1 и более 60.
Пример команды:
Синтаксис команды:
SleepTime - команда
: - разделитель
20 - 20 минут «сна».
AlarmPinTime
- Время на которое включается/выключается тревожный/инверсный пин, указывается в секундах. Значение по умолчанию: 60, не может быть менее 1 секунды и более 43200 секунд (12 часов).
Пример команды:
Синтаксис команды:
AlarmPinTime - команда
: - разделитель
30 - 30 секунд включения/выключения тревожного пина.
DelayBeforeGuard
- Время до постановки устройства на охрану, после получения соответствующей команды.
Пример команды:
Синтаксис команды:
DelayBeforeGuard - команда
: - разделитель
25 - 25 секунд до постановки на охрану
DelayBeforeAlarm
- Время по истечении которого будет отправлено «тревожное» смс уведомление, если за этот период времени сигнализация не была снята с охраны. Заменена расширенными командами начиная с версии GSM_2017_08_10-12-17.hex
Пример команды:
Синтаксис команды:
DelayBeforeAlarm - команда
: - разделитель
40 - 40 секунд до отправки «тревожного» уведомления
WatchPowerTime
- Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
Синтаксис команды:
WatchPowerTime - команда
: - разделитель
5 - 5 минут до отправки смс сообщения
RingTime
- Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
Синтаксис команды:
RingTime - команда
: - разделитель
40 - 40 длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.
ModemID
- Принудительная установка модели используемого модема. Возможные значения: 0 - автоопределение модема, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Пример команды:
Синтаксис команды:
ModemID - команда
: - разделитель
2 - ID модема.
ExtDeviceTime
- Количество секунд на которое изменится уровень сигнала на выходе управления внешним устройством.
Пример команды:
Синтаксис команды:
ExtDeviceTime- команда
: - разделитель
5 - 5 секунд
ExtDeviceLevelLow
- Внешнее устройство подключенное к выходу A3 управляется низким уровнем сигнала (GND). На выходе по умолчанию будет присутствовать высокий уровень +5В, пока не поступит команда управления внешним устройством
ExtDeviceLevelHigh
- Внешнее устройство подключенное к выходу A3 управляется высоким уровнем сигнала (+5V). На выходе по умолчанию будет присутствовать низкий уровень GND, пока не поступит команда управления внешним устройствомResetSensor
- сброс параметров датчиков расширителя порта
ResetConfig
- сброс настроек на заводские установки
ResetPhone
- удаление из памяти всех телефонных номеров
FullReset
- сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.
RingOn
- включить уведомление звонком на «главный» номер записанный в первую ячейку памяти при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
RingOff
- выключить уведомление звонком при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
SmsOn
- включить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
SmsOff
- выключить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
PIROn
- включить обработку датчика движения
PIROff
- выключить обработку датчика движения
ReedSwitchOn
- включить обработку основного герконового датчика
ReedSwitchOff
- выключить обработку основного герконового датчика
WatchPowerOn
- включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану. Удалена начиная с версии GSM_2017_03_01-23-37.
WatchPowerOn1
- включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану.
WatchPowerOn2
- включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено
WatchPowerOff
- выключить контроль внешнего питания
GuardButtonOn
- управление сигнализацией внешними устройствами или кнопкой включено Удалена начиная с версии GSM_2017_04_16-12-00.
GuardButtonOn1
- функция постановки или снятия
охраны внешними устройствами или кнопкой включена
GuardButtonOn2
- функция только постановки
на охрану внешними устройствами или кнопкой включена, снятие с охраны производится по звонку на устройство или с помощью смс команды.
GuardButtonOff
- управление сигнализацией внешними устройствами или кнопкой выключено
PCFForceOn
- постоянный мониторинг группы всех датчиков модуля расширения
PCFForceOff
- мониторинг группы всех датчиков модуля расширения только при постановке устройства на охрану
MainSensorLevelHigh
- тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (D6) от датчика
MainSensorLevelLow
- тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (D6) от датчика
MainSensorLevelOff
- обработка датчика на входе (D6) отключена
SecondSensorLevelHigh
- тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (A0) от датчика
SecondSensorLevelLow
- тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (A0) от датчика
SecondSensorLevelOff
- обработка датчика на входе (A0) отключена
MainDelayBeforeAlarm
- время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании основного датчика (D6), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
SecondDelayBeforeAlarm
- время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании дополнительного датчика (A0), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
PCFDelayBeforeAlarm
- время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании датчиков платы расширения (PCF8574), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
GuardOn - поставить на охрану
GuardOff - снять охраны
Open - команда управления внешним устройством
Info - проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о том с какого номера была включена/выключена охрана
Pause - приостанавливает работу системы на время установленное командой sleeptime в минутах, система не реагирует на срабатывания датчика.
TestOn - включается тестовый режим, мигает синим светодиодом.
TestOff - выключается тестовый режим.
LedOff - выключает светодиод режима ожидания.
LedOn - включает светодиод режима ожидания.
Money - запроса баланса.
ClearSms - Удалить из памяти все sms
Консольные команды (до версии GSM_2017_04_24-13-22.hex) - вводятся в мониторе порта Arduino IDE:
AddPhone - аналогична sms-команде AddPhone
DeletePhone - аналогична sms-команде DeletePhone
EditSensor - аналогична sms-команде EditSensor
ListPhone - вывод в монитор порта списка сохранённых в памяти телефонов
ResetConfig - аналогична sms-команде ResetConfig
ResetPhone - аналогична sms-команде ResetPhone
FullReset - аналогична sms-команде FullReset
ClearSms - аналогична sms-команде ClearSms
WatchPowerOn1 - аналогична sms-команде WatchPowerOn1
WatchPowerOn2 - аналогична sms-команде WatchPowerOn2
WatchPowerOff - аналогична sms-команде WatchPowerOff
GuardButtonOn - аналогична sms-команде GuardButtonOn . Удалена начиная с версии GSM_2017_04_16-12-00
GuardButtonOn1 - аналогична sms-команде GuardButtonOn1
GuardButtonOn2 - аналогична sms-команде GuardButtonOn2
GuardButtonOff - аналогична sms-команде GuardButtonOff
Memtest - тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.
I2CScan - поиск и инициализация поддерживаемых устройств на шине I2C.
ListConfig - вывод в монитор порта текущей конфигурации устройства.
ListSensor - вывод в монитор порта текущей конфигурации датчиков.
UPD. При использовании датчика движения
, для исключения ложных срабатываний при работе модема, необходимо между
пинами GND
и A0
Arduino поставить сопротивление
, спасибо говорим товарищу
AllowPhone = {«70001234501», «70001234502», «70001234503», «70001234504», «70001234505»} - Номера которым разрешено управлять охраной.
AlarmPhone = {«70001234501», «70001234502»} - Номера для отправки sms-уведомлений при срабатывании датчика и уведомления о снятии или постановке на охрану. На первый номер в списке будет осуществляться вызов при срабатывании датчика если выполнена команда RingOn, по-умолчанию эта опция включена. Это сделано потому что sms-сообщения могут прийти с некоторой задержкой, а звонок должен пройти сразу.
Если поступил вызов с разрешенного номера или sms-сообщение с командой GuardOn/GuardOff, то в зависимости от текущего состояния охраны будет отправлено sms-сообщение о постановке или снятии с охраны на номера перечисленные в массиве AlarmPhone, так же будет отправлено sms-сообщение на номер с которого поступил вызов.
При срабатывании датчика
отправляются sms-сообщения на все номера из массива (списка) AlarmPhone и осуществится голосовой вызов на первый номер из этого массива.
Световая индикация:
Светодиод светится красным цветом - поставлено на охрану.
Светодиод светится зелёным цветом - снято с охраны, включается/отключается sms-командой LedOn/LedOff.
Светодиод постоянно мигает синим цветом - сигнализирует о том что c Arduino всё в порядке, плата не зависла, используется исключительно для отладки, включается/отключается sms-командой TestOn/TestOff.
* В коде присутствует функция LedTest(), она мигает синим светодиодом, сделана лишь для того чтобы мониторить Arduino, мигает - значит работает, не мигает - зависла. Пока ещё не зависала:)
НЕ Актуально!
Подключение 2 и более датчиков для открытых прошивок (касается только этой прошивки sketch_02_12_2016.ino)
Для подключения дополнительных герконовых датчиков используем свободные цифровые пины D2,D3,D5 или D7. Схема подключения с дополнительным датчиком на D7.
![](https://i1.wp.com/img.mysku-st.ru/uploads/images/03/44/13/2016/10/11/933398.jpg)
Необходимые изменения в прошивке
...
#define DoorPin 6 // Номер входа, подключенный к основному датчику
int8_t DoorState = 0; // Переменная для хранения состояния основного датчика
int8_t DoorFlag = 1; // Переменная для хранения состояния основного датчика
#define BackDoorPin 7 // Номер входа, подключенный к дополнительному датчику
int8_t BackDoorState = 0; // Переменная для хранения состояния дополнительного датчика
int8_t BackDoorFlag = 1; // Переменная для хранения состояния дополнительного датчика...
void setup() {
...
pinMode(DoorPin, INPUT);
pinMode(BackDoorPin, INPUT);
...
...
void Detect() {
// Считываем значения с датчиков
DoorState = digitalRead(DoorPin);
BackDoorState = digitalRead(BackDoorPin);
//Обработка основного датчика
if (DoorState == LOW && DoorFlag == 0) {
DoorFlag = 1;
delay(100);
if (LedOn == 1) digitalWrite(GLed, LOW);
Alarm();
}
if (DoorState == HIGH && DoorFlag == 1){
DoorFlag = 0;
delay(100);
}
//Обработка дополнительного датчика
if (BackDoorState == LOW && BackDoorFlag == 0) {
BackDoorFlag = 1;
delay(100);
if (LedOn == 1) digitalWrite(GLed, LOW);
Alarm();
}
if (BackDoorState == HIGH && BackDoorFlag == 1){
BackDoorFlag = 0;
delay(100);
}
}
...
И ещё кое что
:
1. Диоды лучше использовать рассчитанные на ток 2 А, так как модуль заражает током в 1 А и нам ещё нужно чем то питать Arduino и модем. В этом экземпляре используются диоды 1N4007, если выйдут из строя заменю на 2 А.
2. Все резисторы для светодиода использовал на 20 кОм, для того чтобы ночью не освещать весь коридор.
3. На герконовый датчик между пином GND и пином D6 так же повесил резистор на 20 кОм.
На этом пока всё. Спасибо за внимание!
:)
Планирую купить
+204
Добавить в избранное
Обзор понравился
+112
+243
Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.Начнём!
Из чего будем собирать
Надо выбрать сердце нашей системе. На мой взгляд, для подобной сигнализации нет ничего лучше, чем Arduino Uno. Основной критерий - достаточное количество «пинов» и цена.![](https://i0.wp.com/habrastorage.org/web/187/587/f99/187587f991b349828aa529f801397302.png)
Основные характеристики Arduino Uno
Микроконтроллер - ATmega328
Рабочее напряжение - 5 В
Входное напряжение (рекомендуемое) - 7-12 В
Входное напряжение (предельное) - 6-20 В
Цифровые Входы/Выходы - 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы - 6
Постоянный ток через вход/выход - 40 мА
Постоянный ток для вывода 3.3 В - 50 мА
Флеш-память - 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ - 2 Кб (ATmega328)
EEPROM - 1 Кб (ATmega328)
Тактовая частота - 16 МГц
Подходит!Теперь необходимо выбрать gsm-модуль, ведь наша сигнализация должна уметь оповещать владельца автомобиля. Так, надо «погуглить»… Вот, отличный датчик - SIM800L, размер просто замечательный.
![](https://i2.wp.com/habrastorage.org/web/512/d21/df6/512d21df6aa240bd801b3f0bc2998aa3.jpg)
Подумал я и заказал его из Китая. Однако всё оказалось не так радужно. Датчик просто отказался регистрировать SIM-карту в сети. Было опробовано всё, что только возможно - результат нулевой.
Нашлись добрые люди, которые предоставили мне более крутую штуку - Sim900 Shield. Вот это уже серьёзный штучка. В Shield-е и разъём для микрофона и для наушников, полноценный телефон.![](https://i2.wp.com/habrastorage.org/web/ac9/548/5e2/ac95485e2ca24aa0b201b2a28da9148a.jpg)
Основные характеристики Sim900 Shield
4 стандарта рабочей частоты 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot класс 10/8
GPRS mobile station class B
Соответствует GSM phase 2/2+
Class 4 (2 W @850/ 900 MHz)
Class 1 (1 W @ 1800/1900MHz)
Управление с помощью AT команд (GSM 07.07 ,07.05 и SIMCOM расширенные AT команды)
Низкое энергопотребление: 1.5mA(sleep mode)
Диапазон рабочих температур: от -40°C до +85 °C
Подходит!Ок, но надо же снимать показания с каких-то датчиков, чтобы оповещать владельца. Вдруг автомобиль эвакуируют, тогда положение автомобиля явно будет меняться в пространстве. Возьмём акселерометр и гироскоп. Отлично. Такс, теперь ищем датчик.
Думаю, что GY-521 MPU6050 точно подойдёт. Оказалось, что в нём есть и датчик температуры. Надо бы и его задействовать, будет такая «киллер фича». Предположим, что владелец автомобиля поставил его под домой и ушёл. Температура в салоне автомобиля будет изменяется «плавно». Что же будет, если злоумышленник попытается проникнуть в автомобиль? Например у него получится открыть дверь. Температура в автомобиле начнёт изменяться стремительно, так как воздух в салоне начнёт смешиваться с воздухом окружающей среды. Думаю, что будет работать.
![](https://i2.wp.com/habrastorage.org/web/a12/395/e5f/a12395e5f31a4f07a580667bf3e08f4b.jpg)
Основные характеристики GY-521 MPU6050
Модуль 3-х осевого гироскопа + 3-х осевого акселерометра GY-521 на чипе MPU-6050. Позволяет определить положение и перемещение объекта в пространстве, угловую скорость при вращении. Так же имеет встроенный датчик температуры. Используется в различных коптерах и авиамоделях, так же на основе этих датчиков можно собрать систему захвата движений.
Микросхема - MPU-6050
Напряжение питания - от 3,5V до 6V (DC);
Диапазон гироскопа - ± 250 500 1000 2000 ° / с
Диапазон акселерометра - ± 2 ± 4 ± 8 ± 16g
Интерфейс связи - I2C
Размер - 15х20 мм.
Вес - 5 г
Подходит!Также пригодится датчик вибраций. Вдруг автомобиль попытаются вскрыть «грубой силой», ну или на парковке другой автомобиль заденет вашу машинку. Возьмём датчик вибраций SW-420 (регулируемый).
![](https://i0.wp.com/habrastorage.org/web/b97/03e/b7e/b9703eb7ee3c4b5abff2dc92ec41341e.png)
Основные характеристики SW-420
Напряжение питания - 3.3 - 5В
Выходной сигнал - цифровой High/Low (нормально закрытый)
Используемый датчик - SW-420
Используемый компаратор - LM393
Размеры - 32x14 мм
Дополнительно - Есть регулировочный резистор.
Подходит!Прикрутим модуль SD карты памяти. Будем ещё писать лог-файл.
![](https://i0.wp.com/habrastorage.org/web/cd0/714/d18/cd0714d183c841e0aafbc70819dd89d9.PNG)
Основные характеристики модуля SD карты памяти
Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Напряжение питания - 5 или 3,3 В
Объем памяти SD карты - до 2 Гбайт
Размеры - 46 х 30 мм
Подходит!И добавим сервопривод, при срабатывании датчиков будет поворачиваться сервопривод с видеорегистратором и снимать видео происшествия. Возьмём сервопривод MG996R.
![](https://i2.wp.com/habrastorage.org/web/edd/d85/ba9/eddd85ba974b477fa8a1f5d75bbc4c38.jpg)
Основные характеристики сервопривода MG996R
Стабильная и надежная защита от повреждений
- Металлический привод
- Двухрядный шарикоподшипник
- Длина провода 300 мм
- Размеры 40х19х43мм
- Масса 55 гр
- Угол поворота: 120 град.
- Рабочая скорость: 0.17сек/60 градусов (4.8В без нагрузки)
- Рабочая скорость: 0.13сек/60 градусов (6В без нагрузки)
- Пусковой момент: 9.4кг/см при питании 4.8В
- Пусковой момент: 11кг/см при питании 6В
- Рабочее напряжение: 4.8 - 7.2В
- Все детали привода выполнены из металла
Подходит!Собираем
Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.
Arduino представляет собой аппаратную платформу, используемую для быстрого создания различных электронных устройств, включая и охранные . Благодаря несложной конструкции, простоте языка программирования, а также использования открытых кодов даже непрофессионал сможет самостоятельно сделать многофункциональную сигнализацию для охраны своего дома, дачи, квартиры или гаража. Arduino GSM модуль станет оптимальным вариантном для создания бюджетной охранной системы, которую оптимально можно настроить под конкретный объект.
Область применения
Аппаратная платформа Arduino широко применяется в процессе создания различных электронных систем и устройств, которые могут принимать и обрабатывать сигналы от разно функциональных аналоговых либо цифровых сенсоров и датчиков. За результатами обработки получаемых сигналов может осуществляться управление внешними исполнительными механизмами и системами, подключаемыми к Arduino.
Пример использования данных модулей на видео:
Назначение
Аппаратная платформа Arduino обеспечивает возможным эффективно взаимодействовать с контролируемой средой через широкий спектр функциональных датчиков, которые могут контролировать различные параметры. Благодаря этому на базе такого рода платформ можно формировать охранные комплексы, которые будут следить за перемещениями по охраняемому периметру, за вскрытием окон и дверей, за повреждением стекол. Кроме датчиков охранного типа можно применять также и температурные сенсоры, датчики контроля за утечкой воды или газа.
Используя с платформой Ардуино GSM модуль информацию об опасности или внештатной ситуации на объекте можно предать владельцу максимально быстро. Для этой цели используется одна из сетей мобильных операторов.
Отличительной особенностью устройств Arduino является то, что их микроконтроллер может программироваться самим пользователем, используя язык Arduino, основанный на Wiring. Благодаря этому каждый может программировать алгоритм работы создаваемой охранной сигнализации так, как это требуется для конкретного охраняемого объекта и особенностей его применения.
Преимущества использования
На сегодняшний день существует множество аппаратных платформ и микроконтроллеров, которые могут получать информацию от внешних датчиков, обрабатывать ее и отправлять сигналы управления к исполнительным системам. Платформа Arduino максимально упрощает выполнение перечисленных процессов и владеет широким спектром преимуществ перед иными устройствами подобного рода.
- Небольшая стоимость. Платформы являются достаточно дешевыми устройствами по сравнению с аналогами, что никоим образом не отражается на их функциональности.
- Кросс-платформенность. Софт Arduino эффективно работает под такими операционными платформами, как Windows, Linux, Macintosh-OSX.
- Простота программирования. Для настройки микроконтроллеров используется среда программирования Processing. Она оптимально подойдет как профессиональным, так и малоопытным пользователям, которые работают с устройствами Arduino.
- Возможность усовершенствования. Специализированный софт Arduino отличается открытым кодом, что позволяет опытным пользователям его адаптировать под конкретные требования.
Высокая надежность аппаратной платформы. Платы Arduino выпускаются с микроконтроллерами ATMEGA8 и ATMEGA168 (более ранние модели) и с контроллерами ATmega32u4, Atmel ATmega328 (новые модели), которые отличаются высокой функциональностью и надежностью.
Принцип работы
Чтобы обеспечить полнофункциональную работу охранных систем или других устройств, построенных с применением платформ Arduino нужно иметь GSM модуль для Ардуино. С его помощью может осуществляться выход в Интернет, совершаться голосовой дозвон или отправка СМС-собщений.
В GSM-плате применяется специальный радиомодем M10, взаимодействие с которым обеспечивается за счет специальных AT-команд. Обмен информацией с модемом реализован с помощью программного последовательного интерфейса, владеющего цифровыми кодами.
Используемый в Ардуино GSM модем является 4-диапазонным, который может функционировать на следующих частотах: GSM 850MHz и 900MHz, PCS1900MHz и DCS1800MHz. В модеме реализована поддержка таких протоколов, как TCP/UDP и HTTP, обеспечивающих соединения через GPRS. Скорость передачи информационных пакетов в таком режиме будет составлять около 90 кбит/сек.
Отправка СМС через Arduino и GSM модуль реализуется при наличии установленной SIM-карты одного из сотовых операторов.»
Кроме этого появится возможность осуществлять передачу голосовых сообщений, совершать звонки – для этого дополнительно нужен микрофон и внешний динамик. Установка SIM-карты позволит использовать Arduino в режиме сотовой связи или GPRS.
Как подключать модули к ардуино
Перед тем, как подключить GSM модуль к Ардуино в его слот для следует установить подходящего типоразмера «симку» одного из операторов сотовой связи. После этого модуль подсоединяется к аппаратной платформе Arduino в соответствии с инструкцией и производится ее прошивка. Для этой цели используется ПК, который подключается к устройству с помощью USB-кабеля. После загрузки среды Arduino следует нажать клавишу Upload, что запустит процесс загрузки софта. По завершению этого процесса платформа может отсоединяться от компьютера и питаться от внешней системы питания.
Сравнительные характеристики GSM модулей
На потребительском рынке представлен широкий выбор различных GSM модулей под Arduino. Ниже приведены основные характеристики наиболее популярных.
Neoway M590
Ардуино GSM модуль M590 является беспроводным коммуникационным устройством, используемым в целях приема и передачи информации в сетях мобильной связи. Модуль этой серии создан на плате с минимальной обвязкой и позиционируется как GSM-модуль для аппаратной платформы Arduino.
![](https://i1.wp.com/bezopasnostin.ru/wp-content/uploads/2017/01/Neoway-M590.jpg)
С помощью этого устройства можно устанавливать мобильную связь с внешним телефоном, отправлять СМС-сообщения, производить обмен информацией по стандарту GPRS Class-10. В модуле этой конструкции нет микрофонного входа, что ограничивает возможность осуществления приема голосовой связи – соединение может устанавливаться, но звук передаваться не будет.
Для управления M590 используются АТ-команды, которые подаются посредством последовательной связи. В качестве рабочих радиочастот применяются частоты от 900 МГц до 1800 МГц. Величина питающего напряжения составляет в пределах 3,3…5 В. Поэтому GSM модуль Neoway M590 подключение к Ардуино осуществляет через специальный преобразователь напряжений 5 В « 3,3 В.
GSM-модуль SIM800L
Компактный Sim800l GPRS GSM модуль относится к устройствам, которые применяются для поддержки мобильной связи. Модуль построен на безе SIM-800L, созданного SIMCom Wireless Solutions и рассчитан для предоставления услуг к сервисам информационных сетей GPRS\GSM, используя для этого частоты от 850 МГц до 1900 МГц. С его помощью может осуществляться отправка SMS-сообщений, реализация звонков, а также обмен информацией по GPRS-каналам.
![](https://i1.wp.com/bezopasnostin.ru/wp-content/uploads/2017/01/SIM800L.jpg)
GSM-модуль комплектуется антенной, при потребности улучшения уровня сигнала можно использовать дополнительные антенны. Для управления модулем может использоваться ПК, подключаемый посредством специальной платы преобразования интерфейсов USB-UART либо же непосредственно через сам UART. Если используется Sim800l GPRS GSM модуль,
подключение к Ардуино должно реализовываться через преобразователь логических уровней. Это обусловлено тем, что у SIM800L величина напряжения на логическом высоком уровне составляет 2,8 В, а в Arduino – 3,3…5 В.
GPRS Shield от Seeed Studio
Подключение GSM модуля к Arduino обеспечит возможность использования технологий обмена данными GSM/GPRS, а также совершать звонки и посылать СМС-сообщения. Устройства этого типа построены с использованием модуля SIMCom SIM900. Они имеют слот для установки SIM-карты, разъем для подключения внешней антенны, набор 3,5-миллиметровых джеков для аудио входа и выхода. Управление и работа с Arduino GSM Shield осуществляется посредством Serial-соединений и набора специализированных AT-команд.
Этот модуль представляет собой специальную плату, используемую для управления цифровыми устройствами удаленно, а также для обмена информацией. Применение SIM900 позволяет Arduino работать по технологиям GSM/GPRS, обеспечивая голосовую связь, отправку СМС и обмен данными с помощью сотовых и мобильных сетей.
![](https://i2.wp.com/bezopasnostin.ru/wp-content/uploads/2017/01/GSM-GPRS-sim900.jpg)
Для функционирования этого модуля к нему подключается управляющий контроллер, источник питания, антенна, а также устанавливается SIM-карта мобильного оператора. При помощи специальных джамперов выполняется настройка способа обмена данными с контроллером. При потребности можно подключить динамик и микрофон.
Популярное в рубрике:
Как объединить слои в фотошопе в один или соединить их в группу...
читать
Перенос контактов на новый телефон android
читать
Самсунг Галакси перезагружается сам по себе — Решения Galaxy note...
читать
Основные возможности Kaspersky Rescue Disk
читать
Top