Автозапуск на ардуино и sim800c своими руками
Arduino Pro Mini+SIM800, дополнение к авто сигнализации с автозапуском.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
У большинства авто сигнализаций с авто запуском (сигналок) или отдельных модулей автозапуска, имеется дополнительный вход (проводок - pin) для внешнего дистанционного автозапуска прогрева авто. Достаточно этот pin, замкнуть на массу в течении 2 сек. произойдет запуск авто (если соблюдены все условия запуска для авто сигнализации). Если еще один раз замкнуть данный проводок на массу, произойдет принудительная остановка автозапуска авто.
К авто сигналке был добавлен блок управления из статьи, http://www.rlocman.ru/shem/schematics.html?di=66614, собранный из телефона и обычной логики.
Было решено сменить элементную базу. За основу взяты скетч и схема, https://github.com/martinhol221/SIM800L_DTMF_control, но с сильно урезанным функционалом.
Функции модуля Arduino Pro Mini+SIM800 в следующем.
- При звонке на устройство, происходит авто ответ и проигрывание Voice(1) .arm /*жду команду*/ из памяти SIM800 модуля.
- При подаче DTMF команды 123 /*start*/, проигрывание Voice(7) *все поняла завожу*,
опрос pin A2 (pin A2 =0, ручник, тормоз), включение pin D12, /*starter*/на время 2 сек., через развязывающий диод и управляющий транзистор (на провод сигналки).
Если запуска не произошло, на А3 не появилась 1 (не включилось зажигание авто), то проигрывание Voice(6) (повторный запуск). Значит авто не подготовлено к запуску.
- При появлении на pin A3 = 1 (зажигание от авто), проигрывание Voice(5) (*двигатель запущен*)
- При подаче DTMF команды 321 (stop), проигрывание Voice(6) (*стоп прогрева*), включение pin D11=1 (OUT_4) , на время 2 сек. через развязывающий диод и управляющий транзистор (на провод сигналки).
- При подаче DTMF команды 789 , блокировка двигателя, включение pin D8 (OUT_5, блокировка двигателя), проигрывание Voice(8) *двигатель блокирован *). Подача 1 с D8 на D4 (D4 организован как вход IN_7, пока так проще обрабатывать), с IN_7 -D4 на D9 выдает прерывистый сигнал на реле клаксона и дальнего света авто.
- При подаче DTMF команды 987 , сброс блокировки двигателя.
В приведенном скетче никак не могу осуществить;
Если во время прогрева от arduino, на PSO_Pin - A3 ( зажигание) переключится с 1 на 0 (по какой то причине отключилось зажигание авто или сигналка авто делает следующую попытку запуска) на время
40 сек (приблизительно, все зависит от сигналки) и Feedback_Pin == HIGH - А1 (имитация команды на запуск в arduino, есть прогрев). То нужен сброс прогрева, в скетче arduino (сброс имитации команды прогрева в arduino).
Необходимо задать время через которое выполнится команда
99. if (digitalRead(PSO_Pin) == LOW && digitalRead(Feedback_Pin) == HIGH) && PsoTime
Если прошло время отключенного зажигания меньше, необходимо сбросить таймер .
100. digitalRead(PSO_Pin) == HIGH && digitalRead(Feedback_Pin) == HIGH
В процессе отработки скетча выяснил что millis не сбрасывается, а только останавливается, до следующего изменения на PSO_Pin
Если можете, ЛЮДИ ДОБРЫЕ, толкните пожалуйста в нужном направлении. Или прочитать как сделать задержку на выполнение команды, приходящей в течении некоторого времени и сброс цикла если время не прошло. Для меня проще поставить внешний 555 таймер, но есть желание дописать скетч.
Arduino занялся 2 месяца, не на чем было, ну и не интересовался раньше.
Так же где можно прочитать, что прописать в скетче что бы привязка номера телефона была не к программе, а к SIM карте.
О правильном подключении GSM модема SIM800L или по чему не работает модем с Arduino.
Особенности SIM800:
- Четырехдиапазонный GSM/GPRS модуль, 850/900/1800/1900 МГц
- В зависимости от версии модема, интерфейс USB для обновления программного обеспечения, UART, FM-radio, Bluetooth, PCM
- Управление AT командами
- Встроенный стек TCP/IP, UDP/IP, Протоколы HTTP, FTP, Email, PING, MMC
- Определение местоположения по базовым станциям.
- Декодирование и формирование DTMF-тонов
- Воспроизведение аудиофайлов локально и в сторону удаленного абонента
800 серия или что означает буква в конце:
Не только тип корпуса, хотя это основное различие. SIM800A, как и SIM800F, электрически совместим с популярным, но уже снятым с производства SIM900 и предназначен для его замены, SIM800C выполнен в корпусе с возможностью ручного монтажа, LGA монтаж, имеет на борту bluetooth, SIM800L для поверхностного монтажа и имеет на борту FM радио. Программно они полностью совместимы.
Как подключить к Arduino:
Питание:
Диапазон напряжение питания SIM800 (не китайского модуля на SIM800, а модема) составляет от 3,4 до 4,4 В. Рекомендуемое напряжение 4,0 В. Модем рассчитан на батарейное питание от одной Li-Ion банки, напряжение 5 вольт не допустимого, попытки запитать модем от 5 вольт приводит к тому, что модем выключается (уходит в защиту).
Источник питания должен обеспечивать достаточный ток, не менее 2А. Потребляемый ток модема зависит от режима его работы, максимальный пик потребления происходит при включении модуля и соединении с базовой станцией. На вход VBAT настоятельно рекомендуется подключать конденсатор большей емкости с низкий ESR. Потребление электричества не линейное, происходит короткими импульсами, в эти моменты важно не допустить проседания напряжения питания ниже 3,0 В.
В документации на модем, для получения заветных 4,0 вольт, рекомендуют использовать линейный стабилизатор с низким падением напряжения MIC29302 либо более распространенный DC-DC преобразователь LM2596, схема включения выше. Подойдет и MP1584EN, главное напряжение в приделах от 3,4 до 4,4 В и достаточный запас мощности. Плохая идея брать питание от USB, либо выхода 5 вольт ардуино, в этом случаи добиться стабильной работы модема, будет практически не возможно.
Логические уровни и UART:
Как и питание, у модема не стандартный логический уровень 2,8 В, что добавляет веселья. При попытки подключить что либо к 5 или 3,3 вольтовой логике, модем выключается.
Включение модема и PWRKEY:
Например чтобы включить модем, необходимо на ногу PWRKEY модема подать логический 0, тоесть соединить с массой.
В документации предлагают использовать транзисторный ключ, чтобы избежать возможность попадания высокого для модема напряжение 5 вольт на вход.
На китайских модулях о согласовании уровней не заботятся, часто выход PWRKEY выводят на колодку без транзистора, либо соединятся с массой на самом модуле, в этом случаи модуль включается при подачи питания, что не является верным и лишает возможности программного управления питанием модема с микроконтроллера.
Временные интервалы включения показаны на графике выше, включать модуль ногой PWRKEY следует по прошествии 0,5 секунд после подачи питания на ноги VBAT, а добиться ответа на команды по UART, можно не раньше трех секунд после включения.
Один из вариантов согласования из документации, обратите внимание на выход VDD_EXT, на этом выходе модем формирует напряжение 2,8 вольт, предназначенное для периферийных устройств.
Другой вариант, рекомендуемый для 5 вольтовых уровней, конвертировать при помощи транзисторов, схема включения аналогична дешевым китайским конвертерам в виде модулей для ардуино.
Подобным решением можно воспользоваться только при проектировании устройств на SIM800, т.е. не используя готовые китайские модули для ардуино, на которых не озаботились вывести выход VDD_EXT на колодку.
Согласовать уровни можно делителем напряжения на двух резисторах, в этом случаи не понадобятся дополнительные напряжения и выход VDD_EXT, но данный способ увеличивает нагрузку на порт и может не стабильно работать на высоких скоростях UART интерфейса.
Правильным решением будет использовать модули с уже установленным на плате конвертером логических уровней, но про разновидности модулей ниже.
Разновидности китайских модулей:
Модуль на SIM800C с минимальной обвязкой. Отсутствует конвертер уровней UART интерфейса, фильтры, стабилизатор питания. Самый популярный, дешевый и малогабаритный.
Аналогичный китайский модуль на SIM800L
Этот модуль уже поинтереснее, есть конвертер уровней (на плате два транзистора 2n7002) два включенных последовательно диода, чтобы снизить напряжение питания 5 вольт до положенных модему 4.2 вольта, решение сомнительное но самое дешевое. Выведена нога для антенны встроенного bluetooth. Все еще отсутствуют фильтры в аналоговой части
Существует аналогичный модуль с тойже распиновкой, но за место конвертера уровней, стоит стабилизатор напряжения питания на DC-DC преобразователе MP1584EN. Странное решение.
Этот мало чем отличается от модулей выше, есть конвертер уровней, есть два диода чтобы снизить напряжение питания 5 вольт до положенных модему 4.2 вольта, к сожелению отсутствуют голосовые функции! возможно будет удобней в подключении, есть крепежные отверстия.
Все таки как подключать к Arduino:
А что подключать и к чему? разновидностей модулей десятки, версий ардуино плат тоже. Я не рекомендую использовать плату Arduino UNO, как и любую другую с ATmega328, совместно с библиотекой SoftwareSerial для работы с модемом, возможно данная связка подойдет для проверки работы модема и отладки, но в устройствах стабильной работы добиться практически не возможно.
В случаи с Arduino Leonardo и аппаратным UART:
Не простой случай с дешевым модулем на SIM800L, тут нужен отдельный стабилизатор напряжения питания на 4,0 В, нужно согласовывать логические уровни с ардуино при помощи резистивного делителя напряжения, ибо по другому согласовать не получится.
Чуть проще с подобными модулями, где конвертер уровней установлен на плате. Только не забываем дать питание и для конвертера.
Управление модемом:
С наступлением дачного сезона возникла необходимость охраны дачного домика. Хотелось сделать простенькую но надежную охранную сигнализацию с передачей сигнала на сотовый телефон. Решено было собрать устройство с передачей тревоги на сотовый телефон на базе электронных плат приобретенных на Алиэкспресс. Как говорится дешево но сердито. Основными элементами данной конструкции являются модуль GSM SIM800L и плата Aрдуино(можно применить любую- Nano ,Uno,Pro Mini и тому подобные).
Устройство на пять тревожных входов для контактных датчиков. К каждому входу можно подключить один или несколько датчиков последовательно соединенных В скетче присвоить каждому охранному шлейфу свое название (например-входная дверь, окно 1, окно 2 и так далее). Охранное устройство работает так: при разрыве электрической цепи первого шлейфа блок сперва дает вызов на первый телефон абонента, следом прекращает звонок и также на №2. №2 нужен в виду того что если вдруг первый абонент не в сети или подсел аккумулятор и прочие неприятности). Если срабатывают шлейфа следующие за первым, тогда происходит отсылка СМС сообщения с названием сработавшего шлейфа, в том же случае на оба номера абонентов.
Перечень инструментов и материалов.
-литий –ионный аккумулятор от старого телефона 3,7В\1600мА-1шт
-соединительные провода;
-паяльник;
-тестер;
-прозрачная пластмассовая коробка -1шт;
-плата Arduino Nano -1 шт;
-резисторы 10кОм-7шт;
- макетная плата из фольгированного текстолита;
- выключатель питания-1шт;
-модуль SIM800L -1шт;
-понижающая плата 1-2А -1шт;
-клеммные разъемы.
Шаг первый. Сборка схемы охранного GSM устройства.
Фото схемы.
Шаг второй. Программирование устройства.
В СИМ карте должны быть удалены пинкоды и все ненужные функции. Еще предварительно нужно настроить сам модуль SIM800L-в сети есть много видео по этой теме, ничего сложного в этом нет. В скетче указываем ваши номера телефонов, корректируем названия охранных зон, можно установить время контроля системы (если прибор работает нормально через заданное время придет контрольная СМС). Заливаем скетч в Arduino и проверяем работу устройства.
Шаг третий. Проверка работоспособности устройства.
При подаче напряжения питания пока загружаются модуль SIM800L и плата Arduino у вас есть примерно 20 секунд чтобы покинуть охраняемое помещение. На модуле SIM800L светодиод указывает на работу в сети- часто мигает это поиск сети, раз в пять секунд- работа в сети. Когда прибор найдет сеть разорвите соответствующие охранные входы, после этого произойдет дозвон или присылка СМС. Значит прибор работает нормально.
Фото СМС. К этому прибору можно будет включить любые охранные извещатели с выходами в виде контактов, реле от исполнительных устройств, только в соответствие с вашими потребностями и фантазией. В целом мы изготовили несложный, охранный прибор. Такой самодельный сторож можно сделать для организации охраны любых объектов. Чтобы включить прибор сигнализации нужно через выключатель на SIM800 и Аrduino подать 4,2 Вольта. При первого входа пройдет звонок на абонента №1, после переключится на №2. Дополнительный №2 предусмотрен для дублирования. Обрыв шлейфа №2,3,4,5 делает выдачу SMS с конкретным названием нарушенного шлейфа, соответственно на оба телефона. Все платы поместим в любом в подходящем корпусе. В общем я думаю это неплохой интересный приборчик который можно в дальнейшем развить далее-добавить функции GSM розетки, управление по DMTF и многое другое.
Подробнее можно посмотреть в видео
SIM800C — это компактный gsm/gprs модуль. Помимо GSM, модуль так же поддерживает Bluetooth версии 3.0. А ещё SIM800C может воспроизводить аудио и поддерживает протоколы POP3, SMTP, MMS, FTP, HTTP, SSL и др.
Несмотря на плюсы, у данного модуля есть и минусы:
У модуля, который мы будем подключать, выведен необходимый минимум для доступа к подавляющему большинству функций, включая голосовые (выходы для подключения микрофона и динамика):
И обратная сторона.
Назначение выводов модуля:
Теперь соберем простую схему
Схема сборки для настройки модема
После сборки схемы, загрузим тестовый скетч для настройки модема
После загрузки скетча, запускаем Serial Monitor и видим ответ от модема.
AT+CLTS=1 автоматическое определение времени по сети
AT+IPR=9600 задаем скорость работы модуля
AT&W сохранение настроек
AT+IPR?- команда проверки скорости обмена.
AT+CLTS?-команда проверки определения времени
Существует ряд команд при помощи которых можно определить состояние GSM-модуля и совершать конкретные действия, также получить полезную информацию при диагностике модуля. Некоторые из них представлены ниже:
Практическое применение.
Для примера, попробуем поуправлять светодиодом, подключенным к Arduino Nano, посылая с помощью SMS команды «1» и «0». Аналогичным образом можно управлять и любой другой нагрузкой, используя вместо светодиода реле.
Добавлен светодиод
Загрузим несложный скетч для управления светодиодом или реле с помощью СМС сообщений.
Теперь проверим работу схемы: отправляем на номер SIM карты, которая вставлена в SIM800L модуль СМС с «1» и в течении 10 секунд загорится светодиод, а чтобы его выключить отсылаем сообщение с «0».
Таким образом мы управляем любой нагрузкой с помощью модуля SIM800L и Arduino. Разумеется, вместо светодиода можно подключить, например, реле и контактор, что позволит управлять более или менее серьезной нагрузкой дома и в саду.
Модификация по железу свелась в применении дешевого китайского корпуса с Алиэеспрес, и выбрасывания лишних разъемов, сейчас провода идут сразу в клеммники на плату, а корпус можно приклеить ''под тарпеду", от применения литиевой батареи пришлось отказаться.
Функция активируется путем отправки на номер СМС сообщения с текстом narodmon=on или narodmon=off.
Тоже самое тут Автозапуск своими руками 2.0 (на M590, легкая версия за 8 $) только на модеме M590 без функции снятия трубки и ввода доп команд.
Обновлено 12.10.2017
Перезалил фото на новых платкх, схема немного изменена, позже выйдет отдельный пост
Citroen C5 2003, двигатель дизельный 2.0 л., 110 л. с., передний привод, автоматическая коробка передач — электроника
Машины в продаже
Citroen C5, 2003
Citroen C5, 2001
Citroen C5, 2001
Citroen C5, 2007
Комментарии 30
Здравствуйте, можно приобрести это чудо у вас?
Красавчик)я тоже собирал себе такое, только со своим вариантом прошивки, а сейчас собираю такой же только с кнопкой запуска от китайского модуля запуска и с блютузом hc-05, хочу попробовать реализовать безключевой доступ по блютуз сигналу вблизи авто
красивое решение, автор молодец
на mini360 подстрочник заменен на 27к для стабильных 4,1в?
и мне одному кажется, что крутить стартер фиксированное время не совсем правильно? что если при задержке запуска в 6 секунд, двигатель запуститься через 3, то есть еще 3 секунды стартер будет крутиться с уже запущенным двиглом
По крайней мере у опелей ЭБУ двигателя отключает стартер ещё одним реле, даже если вы держите ключ минуту. В моем Ситроене, если авто уже схватило а стартер не выключен, то тупо срабатывает обгонная муфта стартера недавая двигателю выйти на холостые обороты. Пока это самый универсальный и простой способ, в планах замерять просадку напряжения при кручении, и отрубать стартер раньше времени если резко снижается ток разряда. Но тут нужно индивидуально колебровать под каждое авто, пока с апреля завожусь именно так.
теперь понятно почему нет дополнительных условий на стартер, на моей стартер не блокируется, придется предусмотреть дополнительное прерывание запуска
во сколько обошелся выпуск плат?
и еще, можно схему платы увидеть?
Схему выложу в новом посте до нового года.
Производители заводских сигналок не забивают себе голову блокировками от перекрута, по моему мнению лучше перекрут 2 сек. чем 2 недкрута…
Не хватает управления через приложение android-это была бы просто бомба)))
К новому году будет управление через любое MQTT приложение в гуглплее, по крайней мере постараюсь успеть.
github.com/martinhol221/SIM800L_DTMF_control
Хорошее решение!
Просто царский Новогодний подарок будет всем подписчикам!
А для новой платы на м590 прошивка и схема тоже новые?
Старая, как раз редактирую
Пришли новые платки, сопутствующие вопросы в личку
Резисторы 10 кОм в цепях база-эмиттер BD139 у Вас стоят? На схеме есть а на плате нет. Или навесным ставили?
По феншую не помешают, я не ставил на плату.
получилось проверить на железе?
Тоже иду таким путем. Проект никак закрыть немогу.
пришел через смс, dial, dtmf. сейчас ищу решение через MQTT
не на чем проверить, я уже 2 года с этим железом не работаю
Как решили задачу с запуском вебасто?
Сам с полгода искал недорогую возможность запуска Webasto через GSM.
Жаль раньше не наткнулся на эту замечательную статью…
Единственное пожелание, нельзя ли дополнить ссылками на Али список необходимого от и до?!
Просто местами встречается "берем любой преобразователь" для кого то это конечно простой вопрос, но не для всех (множество параметров). Я бы был Вам примного признателен! Как и многие думаю.
Про вебасто: у меня стоит не штатная вебаста и мне не совсем понятно как можно регулировать время работы дистанционно?! В моем случае лишь имитируется короткое нажатие на пульте для включения, еще одно короткое нажатие выключение. Если штатная установка, то там вообще по CAN шине связь… И как реализовать вообще становится непонятно!
Читайте также: