- Управление Сигнализацией с Автозапуском с Телефона — Как Подключить и Настроить Sher-Khan на Машине со Смартфона?
- Как подключить телефон к охранной сигнализации с автозапуском?
- Видео по подключению к сигнализации со смартфона
- Настройки сигнализации в машине через телефон
- Видео по настройке охранной сигнализации с автозапуском
- Блок GSM автозапуска для сигнализации SCHER-KHAN
- Модуль
Управление Сигнализацией с Автозапуском с Телефона — Как Подключить и Настроить Sher-Khan на Машине со Смартфона?
Лет 10 назад об управлении сигнализацией автомобиля со смартфона невозможно было даже подумать. Сегодня же сигнализации с автозапуском с возможностью подключения к охранной системе через мобильное приложение для телефона распространены повсеместно. Starline, Pandora, Sher-Khan и другие бренды имеют подобные модели в своей линейке. Более того, использование мобильного приложения позволяет детально настроить охранную систему машины. В том числе, задействовать смартфон в качестве метки, отсутствие которой не дает завести двигатель. Сегодня мы наглядно посмотрим, как подключить телефон к автомобильной охранной сигнализации с автозапуском из серии Шерхан Мобикар.
Как подключить телефон к охранной сигнализации с автозапуском?
Прежде всего необходимо скачать и установить на свой смартфон приложение для вашей модели сигнализации. У StarLine и Pandora есть свои программы. Для Шерхана ищем в Google Play или App Store приложение «Mobicar»
Далее все манипуляции нужно проводить в непосредственной близости от автомобиля, так как соединение телефона с сигнализацией происходит по сигналу Bluetooth. Сначала требуется разблокировать центральный замок машины. После чего ввести сигнализацию с автозапуском в режим сопряжения.
- Зажимаем на 2 секунды кнопку «4» на брелке
- Далее на 2 секунды зажимаем одновременно кнопки «1 + 4»
- Наконец, клавишу «3» также на пару секунд
Теперь можно включить блютуз на смартфоне и запустить приложение Sher-Khan Mobicar. На стартовом экране жмем на «Начать подключение»
После непродолжительного поиска на странице отобразится номер сигнализации, установленной в машине. Нажимаем на «Подключить»
Для подключения телефона к сигнализации потребуется ввести шестизначный код, который необходимо взять с дисплея брелка. На нем видно только первые 4 цифры. Последние 2 отобразятся после краткого нажатия на кнопку «2». Вводим данный код в текстовое поле в мобильном приложении.
После успешного подключения жмем на «Начать использование»
Видео по подключению к сигнализации со смартфона
Настройки сигнализации в машине через телефон
Теперь мы получим полный контроль с телефона над всеми скрытыми настройками сигнализации. С главной страницы открывается быстрый доступ к управлению центральным замком, запуском двигателя и открытию багажника.
Причем изображение автомобиля динамически отображает его состояние. Например, при работе аварийки или поворотников они также мигают на картинке. А при заведенном двигателе контур обведен голубым свечением
В слайдере выше отображаются текущая скорость, напряжение в электросистеме, температура, и т.д. Для перехода в основное меню нужно нажать на иконку в левом верхнем углу.
Доступны следующие настройки сигнализации:
- Звуковые сигналы — можно отключить работу сирены для оповещения о постановке или снятии машины с охраны
Световая индикация — тоже самое, касательно включения поворотных сигналов при открытии центрального замка, срабатывании датчиков удара и прочих событиях. Здесь же можно активировать «вежливую подсветку», когда фары горят в течение некоторого времени после перехода в режим охраны для того, чтобы подсветить водителю дорогу к дому.
Чувствительность датчиков — настройка уровня беспокойства для срабатывания сигнализации
Управление охраной — детальные параметры конфигурации сигнализацией автомобиля.
Самое интересное в данном разделе то, что можно активировать подключенный смартфон в качестве иммобилайзера и охранной метки. При включении данной функции двигатель будет заводиться только при наличии в салоне привязанного телефона с включенным Bluetooth. Также можно выставить дальность приема сигнала. При появлении смартфона в его зоне автоматически будет срабатывать постановка на охрану или открываться центральный замок автомобиля
Команды — меню настройки дополнительных команд сигнализации для быстрого к ним доступа с кнопко пульта
Видео по настройке охранной сигнализации с автозапуском
Источник
Блок GSM автозапуска для сигнализации SCHER-KHAN
Модуль
Функционал модуля довольно широк — взаимодействие с устройствами с помощью АТ — команд, подключение микрофона и колонок, совершение звонков, прием и отправка SMS и USSD-запросов, спящий режим модуля — погружение и пробуждение, распознавание DTMF, определение приблизительных координат, FM-радио, прием и отправка данных по GPRS и т. д.
На плате расположены необходимые выводы
Питание модуля рассчитано на литиевые аккумуляторы и лежит в пределах 3.4-4.5 В, рекомендованное 4 В. При питании от другого источника требуется обеспечить силу тока в 2А без просадок, иначе он просто не сможет зарегистрироваться в сети.
Взаимодействие с модулем осуществляется по интерфейсу UART (Serial) при помощи специальных AT-команд. Линии данных рассчитаны на напряжение от 2,1 до 3,1В, при работе с ардуино входящую линию необходимо пропустить через делитель напряжения, чтобы привести к требуемому диапазону, исходящую с напряжением 2,8В ардуино воспринимает нормально и делитель не требуется.
При первом включении светодиод на плате начинает часто, равномерно мигать, что означает что сеть еще не найдена. При успешной регистрации в сети, светодиод начинает мигать редко, примерно раз в секунду или две.
Полный список АТ команд можно найти в мануале по командам
Более подробную информацию по модулю можно получить из даташита
Есть еще сайт с подробнейшим описанием модуля и примерами работы с ним, с которого я и взял всю информацию и код в основной своей массе взят оттуда.
От парковки до места работы расстояние такое, что брелок от сигнализации не берет. Зимой чтобы сесть в теплую машину надо выйти, дойти ближе к парковке, завести, вернуться, подождать. О комфорте это плохо напоминает.
Выхода 2:
заводить по таймеру — не удобно, потому что выхожу в разное время.
поменять сигнализацию на ту, которая имеет возможность GSM запуска — дорого.
Но нашелся и третий. Как то при случайном чтении инструкции обратил внимание на возможность запуска с сигнала внешнего устройства, есть специальный вход на сигнализации, просто подаем на этот вход + или — бортовой сети и машина заводится точно так же как и с брелока, то есть все проверки на возможность запуска проводит сама сигнализация, остается только подать сигнал на контакт.
Посмотрел бегло инструкции других моделей охранных систем SCHER-KHAN — на всех что мне попались такая возможность есть.
Потребуется модуль SIM800L, ардуино (в моем случае про мини с питанием 3,3В), и STEP_DOWN преобразователь для получения 4В из 12В. Собрал я это все давно, в начале прошлой зимы на макетной плате, показывать её не буду — там всё страшно)) Отработало всё практически год и за это время недостатков я не заметил, ни разу не зависло и других отказов не было. Теперь, перед наступающей зимой решил привести это всё в красивый вид.
Собрал всё на плате
Схема
Все резисторы на 10 кОм, только R7 — 1кОм, R8 — 220 Ом.
Не показан конденсатор напаянный на модуль sim800l, как оказалось он очень нужен, без него не хватало питания и он не мог зарегистрироваться в сети. Уровень сигнала высокий, а регистрироваться не хочет, в таких случаях рекомендую сразу смотреть цепи питания.
Код для Ардуины
Сразу хочу предупредить — в основном все скопировано/вставлено из чужих примеров, я совсем не программист, для меня главное работает безотказно, а как там всё внутри не так важно.
От себя попытался добавить спящий режим как для ардуины, так и для модема. Перезагрузку при зависании и раз в сутки для надежности. Несколько дополнительных команд.
#define RING 2 //пин входящего звонка
#define RESET_GSM 12 //пин перезагрузки sim800l
#define SLEEP_GSM 6 //пин спящего режима sim800l
#define START_ENGINE 3 //пин сигнала автозапуска для сигнализации
#define R1 20 // сопротивление резистора R1
#define R2 5 // сопротивление резистора R2
#define LED 13 // светодиод на плате ардуино
unsigned long sleep_sim; //таймер сна модема
boolean callback = false; //нужно ли перезвонить по последнему входящему номеру
volatile int nbr_remaining; // volatile to be modified in interrupt function
unsigned long timing = 0; //переменная для задержки
unsigned long reset_if_gsm_hover = 30000;
String LastNumber = «»; //переменная для хранения последнего входящего номера
String _response = «»; // Переменная для хранения ответа модуля
int resetCounter = 1; // количество циклов сна после последней перезагрузки, цикл сна = 8сек
unsigned long led_standby = 0; // счетчик для мигания светодиодом
pinMode(RING, INPUT_PULLUP); // к пину RING
pinMode(RESET_GSM, OUTPUT); // к пину RESET модема для его перезагрузки
digitalWrite(RESET_GSM, HIGH); // режим LOW — перезагрузка
pinMode(SLEEP_GSM, OUTPUT); // к DTR пину GSM модуля
digitalWrite(SLEEP_GSM, LOW); // пробуждаем GSM модуль
pinMode(START_ENGINE, OUTPUT); // к сигнализации
digitalWrite(START_ENGINE, LOW); // режим HIGH — автозапуск
pinMode(LED, OUTPUT); //светодиод на ардуино
digitalWrite(LED, LOW); // HIGH — горит
wdt_enable(WDTO_8S); //сторожевой таймер на 8 сек
Serial.begin(9600); // Скорость обмена данными с компьютером
SIM800.begin(9600); // Скорость обмена данными с модемом
Serial.println(«Start!»);
sendATCommand(«AT», true); // Отправили AT для настройки скорости обмена данными
// Команды настройки модема при каждом запуске
_response = sendATCommand(«AT+CLIP=1», true); // Включаем АОН
//_response = sendATCommand(«AT+DDET=1», true); // Включаем DTMF
_response = sendATCommand(«AT+CSCLK=1», true); // Включаем возможность перевода sim800l в спящий режим
_response = sendATCommand(«AT+CMGF=1;&W», true); // Включаем текстовый режим SMS (Text mode) и сразу сохраняем значение (AT&W)!
>
String sendATCommand(String cmd, bool waiting) <
String _resp = «»; // Переменная для хранения результата
Serial.println(cmd); // Дублируем команду в монитор порта
digitalWrite(SLEEP_GSM, LOW); // пробуждаем GSM модуль
delay(300);
SIM800.println(cmd); // Отправляем команду модулю
if (waiting) < // Если необходимо дождаться ответа…
_resp = waitResponse(); //… ждем, когда будет передан ответ
// Если Echo Mode выключен (ATE0), то эти 3 строки можно закомментировать
if (_resp.startsWith(cmd)) < // Убираем из ответа дублирующуюся команду
_resp = _resp.substring(_resp.indexOf(«\r», cmd.length()) + 2);
>
Serial.println(_resp); // Дублируем ответ в монитор порта
>
return _resp; // Возвращаем результат. Пусто, если проблема
>
String _resp = «»; // Переменная для хранения результата
long _timeout = millis() + 10000; // Переменная для отслеживания таймаута (10 секунд)
while (!SIM800.available() && millis() led_standby) < //мигание светодиодом в дежурном режиме
digitalWrite(LED, HIGH);
led_standby = millis() + 3000;
delay(10);
//Serial.println(readVoltage(100));
> else <
digitalWrite(LED, LOW);
>
if ((millis() — sleep_sim) > 120000) < //через 2 мин бездействия модем отправляем спать
digitalWrite(SLEEP_GSM, HIGH);
callback = false;
sleep_sim = millis();
Serial.println(«sleep_gsm»);
>
if (millis() > 86000000) < //каждые сутки перезагрузка модема и ардуины
Serial.println(«reset_timeout»);
digitalWrite(12, LOW);
delay(100);
digitalWrite(12, HIGH);
delay(20000);
>
_response = sendATCommand(«AT+SAPBR=0,1», true);
if (_response.length() -1
String innerPhone = «»; // Переменная для хранения определенного номера
if (phoneindex >= 0) < // Если информация была найдена
phoneindex += 8; // Парсим строку и…
innerPhone = _response.substring(phoneindex, _response.indexOf(«\»», phoneindex)); //… получаем номер
LastNumber = innerPhone;
Serial.println(«Number: » + innerPhone); // Выводим номер в монитор порта
>
// Проверяем, чтобы длина номера была больше 6 цифр, и номер должен быть в списке
if (innerPhone.length() >= 7 && whiteListPhones.indexOf(innerPhone) >= 0) <
digitalWrite(3, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(3, LOW); // turn the LED off by making the voltage LOW
sendATCommand(«ATA», true); // Если да, то отвечаем на вызов
sendATCommand(«AT+CREC=4,\»C:\\User\\6.amr\»,0,99″, true); //проигрываем аудиофайл
sendATCommand(«ATH», true); //сбрасываем
timing = millis(); //сбрасываем счетчик до засыпания модема
callback = true; //разрешаем перезвонить через заданное время если завелась
> else <
sendATCommand(«ATH», true); // Если нет, то отклоняем вызов
>
>
if (_response.startsWith(«+CMTI:»)) < // Пришло сообщение об отправке SMS
int index = _response.lastIndexOf(«,»); // Находим последнюю запятую, перед индексом
String result = _response.substring(index + 1, _response.length()); // Получаем индекс
result.trim(); // Убираем пробельные символы в начале/конце
_response = sendATCommand(«AT+CMGR=» + result, true); // Получить содержимое SMS
parseSMS(_response); // Распарсить SMS на элементы
>
if (_response.indexOf(«+CIPGSMLOC: 0,») > -1) < //поиск, формирование ответа и ответ с координатами
String LAT;
String LNG;
String Answer;
LAT = _response.substring(_response.indexOf(«+CIPGSMLOC: 0,») + 24, _response.indexOf(«+CIPGSMLOC: 0,») + 33);
LNG = _response.substring(_response.indexOf(«+CIPGSMLOC: 0,») + 14, _response.indexOf(«+CIPGSMLOC: 0,») + 23);
Answer = «yandex.ru/search/?text=E» + LNG + «%20N» + LAT + «\n» + readVoltage(200) + «V»;
Serial.println(«GSM»);
sendSMS(LastNumber, Answer); //отправляем смс на последний номер
sendATCommand(«AT», true);
sendATCommand(«AT+CMGDA=\»DEL ALL\»», true); // Удалить все сообщения, чтобы не забивали память модуля
sendATCommand(«AT+SAPBR=0,1», true); // отключаем интернет
>
>
if (Serial.available()) < // Ожидаем команды по Serial…
SIM800.write(Serial.read()); //… и отправляем полученную команду модему
>
//если прошла минута после звонка и напряжение больше 13,2 вольта и разрешено перезвонить звоним, значит завелась
if (millis() — timing > 45000 && callback == true) <
if (readVoltage(100) > 13.2) <
sendATCommand(«ATD» + LastNumber + «;», true); //
delay(1000); //
callback = false;
>else <
callback = false;
>
>
>
// узнаем напряжение бортовой сети
float readVoltage(int samples) < // samples — сколько раз нужно прочитать сенсор
unsigned long avg_sum = 0;
float u1;
for (int i = 0; i Планирую купить +107 Добавить в избранное Обзор понравился +108 +195
Источник