Автозапуск для авто на ардуино
Arduino.ru
Модуль автозапуска автомобиля, по каналу GSM.
Модуль автозапуска автомобиля, с голосовыми сообщениями работы авто, по каналу GSM, разрабатывался с целью отсутствия автозапуска в авто, как дополнение к любой “простой” или штатной сигнализации. А так-же не иметь привязки к интернету (дополнительные траты) и SMS сообщений (сообщения могут “зависнуть” на сервере провайдера сотовой связи). Способностью работы с любым телефоном, кнопочным или смартфоном. Модуль работает в сетях GSM, надежность связи блока зависит от покрытия связью провайдером связи. Он не является автосигнализацией, а дополнением для автосигнализации с возможностью дистанционного запуска двигателя авто с ручной коробкой передач.
У модуля имеются следующие сервисные возможности.
Управление модулем следующее.
Когда пользователь звонит, на номер SIM карты, установленной в модуле. Происходит автоответ модуля и в динамике звучит двух тональный гудок. После прекращения звуков, в динамике наступает тишина.
После этого можно подавать следующие команды с клавиатуры телефона;
Основная часть интерфейса построена, из следующих функциональных блоков;
Пояснения входов схемы;
Podxvat выход на реле зажигания Podxvat
Start выход на реле стартера
Block выход на реле блокировки двигателя
Klaxon Ligh выход на реле дальнего света и клаксона
Parking вход на датчик паркинга или ручника
Stop вход от концевика педали тормоза
Ignition1 вход от замка зажигания для контроля наличия ключа в замке
Ignition 2 вход для контроля работы при отсутствии ключа в замке
Alarm вход при срабатывании колокола сигнализации авто
Tahometr вход от сигнала тахометра или форсунки
CentrZamok вход сигнала от центрального замка при закрытии дверей, замыканием на массу
ACC выход для вторичных приборов авто, мотор печки
Pusk_Sig вход на запуск от автосигнализации, команда открытия багажника
Blinks выход моргать поворотником
Immo – Deton На реле обходчика иммобилайзера и отключения датчика детонации.
В схеме не прорисованы обмотки катушек реле и их коммутационные цепи.
Некоторые реле коммутирующие цепи автомобиля расположены на печатной плате, как будет осуществлятся коммутация, зависит откомплектации авто.
Схема блока дополнительных реле:
Особенно обратить внимание каким сигналом управляется клаксон плюсом или массой.
Так же если в эл. схеме авто присутствуют силовые реле клаксона и дальнего света то можно исключить дополнительные силовые реле.
Собранное устройство напоминает технологию “бутерброд”, из-за экономии места, и следствия доработок.
Процесс сборки, когда готова печатная плата, в моем случае изготовлялась способом ЛУТ.
Сначала монтируются все оптопары и smd резисторы, так как две оптопары и резисторы находятся под SIM модулем. Затем монтируется GSM SIM модуль. SIM модуль, 1я (arduino) плата программная (нижняя) и 2я (arduino) обработчик тахометра (верхняя) устанавливаются при монтаже на штырьках. Печатные платы в Sprint-Layout6 и PDF прилагаются в архиве.
Стабилизатор mini360, впаивается вертикально рядом с SIM модулем, предварительно установив на нем 4,0 вольта, так как GSM модулю для работы, согласно документации, необходимо 3,6-4,2 вольта. Вход (12V.) и выход (4.0V) стабилизатора соединены к контактным площадкам основной платы проводниками.
Далее необходимо запрограммировать GSM SIM модуль для работы в Российских сетях сотовой связи. Мною была использована терминальная программа SIM900 DIALOG. Подключение, к примеру, по следующей схеме.
Отправив в терминальной программе, GSM модулю, по отдельности, следующие команды;
На каждую из команд должен прийти ответ ОК, в терминальной программе.
Не отключая модуля от компьютера, необходимо записать во внутреннюю flash память GSM модуля, голосовые файлы с расширением amr. Делается это через программу Sim800 Series ArmFile Download v1.00, следующие сообщения;
// 1 открываю двери! (зарезервировано на будущие доработки)
// 2 двигатель запущен, двигатель запущен.
// 3 оп, повторный запуск!
// 4 закрываю двери! (зарезервировано на будущие доработки)
// 7 все поняла, завожу!
// 8 двигатель блокирован, двигатель блокирован.
// 9 продолжайте движение!
// 10 оп, двигатель уже запущен!
// 12 низкое напряжение!
// 13 короткие гудки (зарезервировано на будущие доработки)
// 14 нарушение охраны!
// 15 открыта! дверь! авто!
// 16 Включена Тихая Блокировка. (зарезервировано на будущие доработки)
// 17 отключен! контроль! двери!
// 18 включен! контроль! двери!
// 20 не в режиме запуска
// 23 Включено! Зажигание!
// 24 не запустилась! попробуйте еще раз.
// 25 авто! в режиме! пидстопа!
В комплекте прилагается программа и голосовые файлы. Так как программа, ArmFile Download, не может записать одновременно более 10 файлов. То для удобства (что бы не прописывать каждый раз путь к файлам), на диск D:\ копируем папку Voice_files, с amr. файлами. И перед каждым запуском программы, для удобства, подменяем Config.ini в папке с программой ArmFile Download, прилагаемыми файлами (Config1.ini _ Config2.ini _ Config3.ini.), из папки Voice_files, переименовывая их в Config.ini.
После того как все запрограммировали, проверяем работоспособность GSM SIM800L модуля, например программой SIM900 DIALOG. Установив в модуль sim карту, подключив к питанию, запускаем терминальную программу, звоним на номер сим карты модуля. Увидев в терминале сообщение о входящем звонке, отправляем команду ответа на звонок АТА. Когда соединение произойдет можно проиграть записанные arm. файлы, отправив в окне терминала следующее.
Воспроизвести файл «в телефон» с уровнем громкости 90%: AT+CREC=4,»C:\User\9.amr»,0,90 (где 9.amr это номер голосового сообщения).
Убедившись, что все голосовые сообщения нормально проигрываются. Отключаем модуль для дальнейшей сборки.
Впаиваем на штырьках из комплекта Arduino остальные платы и рядом плату преобразователя уровней тахометра. Соединяем недостающие соединения проводниками. Так как у процессора Arduino 1й программной платы использованы все ножки, включая TX-RX, предназначенные для программирования и работы в мониторе порта, программирование при этом происходит нормально так как в Arduino присутствует загрузчик. И чтобы модуль мог корректно определять напряжение аккумуляторной батареи авто, необходимо вычислить коэффициент деления АЦП процессора, из-за разброса параметров резисторов на pin A6. Загружаем в плату скетч ACP_pin, наблюдая через монитор порта подбираем значение float m1 = ХХ.ХХ в скетче и сверяя с показанием тестера, измеряя напряжение питания модуля. Вычислив коэффициент АЦТ (ХХ.ХХ), записываем это значение в основном скетче Programs. Программируем обе платы Arduino нижнюю программную скетчем Programs (со скорректированным коэффициентом АЦП), верхнюю частотомера скетчем Frequency_meter. Подсоединяем необходимые внешние силовые реле.
Проверяем полностью собранное устройство на столе, вместо исполнительных устройств авто подключаем тумблера, кнопки и светодиоды. В качестве источника частоты тахометра, использовал трансформатор 220/3V. Работа скетчей расписана в них самих. Подключение к авто согласно схемы конкретного автомобиля.
Автозапуск GSM по смс на arduino и sim900
Автозапуск по смс и электронный запуск на arduino uno (nano) и sim900a
Спасибо всем кто проявил интерес к моей задумке!
Более полная информация в борт журнале. обновлён 31.01.2016г.
! Всё делалось исходя из работы моего автомобиля. Возможно придется подправить программу в зависимости от состояния датчикав вашего авто.
если в машине нет штатной сигнализации, нет подсоса, а двигатель инжектор. то эта система элементарно встроится в ваш автомобиль. А если есть штатная и есть обходчик, то думаю тоже не возникнет проблем с работой.
состояния датчиков: у некоторых моделей может быть по другому. — исправляется в программе.
лампа заряда — 12V если двигатель работает
двери — 12V если двери закрыты
ручник — 0V если ручник поднят
Из истории…
Задумал я как то усовершенствовать свою Toyota sprinter 1991 года самодельным автозапуском, но не просто как в большинстве, а смс командами, что бы растояние не было приградой. Всё это было мечтой всего лишь пол года назад. И наконец я довёл эту задумку до ума.
И так о функционале который я осуществил на данный момент.
2.- Посредством смс сообщения можно:
а: ЗАПУСТИТЬ или ОСТАНОВИТЬ двигатель на запрограммированный в коде таймер
(запуск произойдёт при условии правильного отключения двигателя, как описано в 3.), защита от дураков
Либо принудительно, предварительно плставив на охрану по смс, но если ручник не поднят то всё равно
запуск не произойдёт. Только надо быть уверенным в том что не включена передача.
б: поставить НА ОХРАНУ,
в: ПЕРЕЗАПУСТИТЬ контроллер
г: запустить цикличный ТАЙМЕР по заданному времени работы и остановки двигателя 10/60 минут(будут
добавлены ещё варианты прогрева.
д: можно так же сбросить сигнал тревоги. отправив постановку НА ОХРАНУ, ПЕРЕЗАГРУЗКУ, или просто
повернуть ключ в АСС
3.- Постановка на охрану – заведённый двигатель ставите на ручник, отключаете зажигание, двигатель
продолжает работать, у вас есть 60 сек чтобы покинуть авто. Затем двигатель глохнет, всё — начинает
контролироваться вскрытие дверей и запуск по смс.
4. При вскрытии авто поставленной на охрану издастся один сигнал, по истечении течении 20 сек запустится сирена и поступит 10-20 секундный информирующий вызов хозяину о изменении состояния автомобиля.
Если в течении 20 сек после вскрытия вы вставите ключ и повернёте до АСС то:
а. При работающем двигателе от СМС, авто перейдёт в режим работы от ключа.
б. При поставленной на охрану режиме перейдёт в нормальное, снятое с охраны состояние.
(при перезапуске — автозапуск по смс не сработает, ждёт запуска от ключа)
5. 5 команд СМС,
1 Запуск двигателя,
2 Остановка двигателя,
3 Охрана используёте с осторожностью, после постановки разрешё нзапуск по смс при поставленной на ручник, если точно уверены что не включили какую нибудь передачу).
4 перезапуск контроллера
5 Таймер (циклический)
О коде.
Код периодически буду подправлять, следите на Яндекс диске (по запросу)
Не обошлось и без помощи интернета, для работы с SIM900 я использовал код который демонстрировал включение и отключение светодиодов посредством смс. Немного его подправил и добавил свой код.
Автозапуск на Arduino своими руками
Добрый день. Хочу рассказать вам как сделать автозапуск для машины, на примере своей (Opel Zafira B. 2006 г.в., дигатель z18xer, коробка — easytronic. С Webasto). Сразу оговорюсь: система далеко не идеальна(дело в том, что машина в другом городе и делалось это все в сжатые сроки), но со временем будет дорабатываться. Нам потребуются следующие компоненты:
1)Arduino
2)GSM Shield
3)Пультик с приемником 433Мгц
4)Плата реле на 8 каналов
5)Блок питания для arduino
6)Обходчик иммобилайзера
8)Провода
7)Инструменты(паяльник, кусачки и т.д.)
Итак, начнем:
Для начала, ОБЯЗАТЕЛЬНО снимаем аккумулятор, затем, в машине, накинем свои провода на точки, которые нам потребуются для работы системы, это:
1)+/- 12в (для питания системы, замка зжигания и педали тормоза)
2)Педаль тормоза (нужно имитировать нажатие педали)
3)На блок управления Webasto
4)На кнопку «аварийки»
В замке зажигания:
1)Ключ в замке
2)ACC
3)IGN
4)Starter
По инструкции (ссылка, на последней странице есть табличка со всем проводами, полярностью и местом расположения) разбираем машину до такого состояния:
остались лишние детали=)
Так, теперь подключаем свои провода к проводам автомобиля, начнем с порога у левой ноги водителя:
1)Толстый красный провод (постоянный «+»)
2)Болт, прикрученный к корпусу (с него берем минус)
3)Коричневый с серой полосой (+ педали тормоза)
4)Коричневый с красной полосой (- ручника (в системе не успел задействовать))
Выглядит это следующим образом:
Для удобства, провода я подписал:
Так, теперь берем замок зажигания и припаиваем к нему провода (в инструкции, на страницах 7-8, описано как это делать) и обязательно проверяем нет ли нигде замыкания. У меня получилось вот так:
И провода, опять же подписал
Так, теперь ставим обходчик, использовался Starline BP-03:
кладем в блок наш ключ
верхний уплотнитель(?) пришлось немного срезать, чтобы коробочка закрылась
подсоединяем провода питания и провод рамки. «-» подключаем к нашему проводу с минусом, «+» к проводу с «IGN». Прячем блок куда-нибудь в труднодоступное место. Одеваем рамку на замок зажигания и плотно стягиваем стяжками:
Снимаем пультик управления webasto, разбираем, припаиваем провода к кнопке включения.
Теперь накинем провода на кнопку управления «аварийкой». Как это сделать описано в этой инструкции (тык, стр. 6)
Теперь займемся Arduino. Начнем с простого: подключим модуль реле по такой схеме
ну, с подключение GSM Shield проблем возникнуть не должно. А подключение приемника на 433Мгц такое же, как и у реле, за исключением того, что подключаемся к 10-12 пинам Arduino.
Находим какую-нибудь коробочку, в которую можно спрятать всю систему.Я решил проблему вот так (знаю криво смотрится=)):
.
К реле подключаем:
1)Ключ в замке и «+» 12В
2)ACC и «+» 12В
3)IGN и «+» 12В
4)Starter и «+» 12В
5)Провод аварийки и «-«
6)Два провода кнопки Webasto
7)Не используется
8)Педаль тормоза и «+» 12В
Берем Arduino, заливаем в нее скетч, только добавляем в самом начале «доверенные» номера. Подключаем блок питания, к нему Arduino. В GSM Shield вставляем симку. Прячем все это дело в коробочку и прячем куда-нибудь коробку. Я спрятал сюда:
Еще раз все тщательно проверяем и, если ничего не упустили, ставим на место аккумулятор. Собираем машину и радуемся.
И убираем следы 3-х дневной активности в гараже)
Вот что получилось у меня:
.
Всем спасибо за внимание=)
Opel Zafira 2006, двигатель бензиновый 1.8 л., 140 л. с., передний привод, роботизированная коробка передач — электроника
Машины в продаже
Комментарии 39
перезалей скетч плиз 🙂
спасибо за работу, собрал на основе вашего скетча свой) нашел у вас пару ошибок в скетче)))) + дописал процедуру автозапуска по таймеру (20 минут греется — глохнет на 2часа и тд)
Можно взглянуть на исправленный скетч?) Если не затруднит, то с комментариями к исправлениям. Машина год назад была продана, вместе с автозапуском. Интересно взглянуть что поменяли. Спасибо.
да там на самом деле наверное мало чего из вашего кода осталось) из интересного добавил замер вольтажа через бортовую сеть и определение таким образом завелась машина или нет, таймер выставить произвольный командой xxxhyyy
где xxx заводка через минут, yyy прогрев в минутах
в личку кину счас скетч
Привет!
Ссылка на скетч автора не работает. Не поделишься своим?)
где библиотеки для скетча скачать можно?
здравствуйте. не большой вопрос по скетчу… могли бы вы указать ссылки на библиотеки sms.h и HWserial.h Пытаюсь повторить Ваш опыт.
Спасибо.
Интересная тема.
Скетч для примера можете выложить.
Молодец! супер тема
как вы плату к коробке прикручивали?
Нет, просто болтается там «как есть». Не гремит, за счет того, что там еще лежит реле-модуль и куча проводов
Ламинат на фоне — Westerhof Maestro Aristocrat Барокко. Не спрашивайте, зачем я это помню…
Gsm какой использовали?
Примерно вот такой, только у меня был SIM900A. Пришлось перепрошивать, так как программно были заблокированы российские gsm-диапазоны.
А замок обязательно снимать, или провода можно в каком-нибудь разъеме найти?
Возможно можно найти другие точки подключения, мне мне было проще просто снять замок)
Прочитал. Конечно себе так делать не стал бы. Но автор молодец все равно. А теперь немного критики по устройству. Не увидел в схеме, да и в скетче контроль запуска двигателя. У вас стартер крутится определенное заранее заданное время? Не важно двигатель запустился или нет стартер крутит например 1 сек. А потом рапортует что двиг запущен. Не находите это не правильным? Стартер получает перегрузки когда молотит уже с заведенным двигателем. А что будет если он не заведется? Будет стоять с включенным зажиганием пока вы не решите что хватит греть машину? Так она у вас и не нагрелась, она же не завелась. Надо вводить цепь контроля запуска по тахометру. Взять на вашей машине можно с тахометра. Второе: у вас стоит модуль GSM подключите датчик температуры к ардуине и сделайте команду на запрос температуры двигателя, а можно и ввести автозапуск по температуре двигателя, к слову очень полезная функция. Третье, ввести ограничение на работу двигателя либо по времени либо по температуре. Это была порция критики которая поможет улучшить потребительские качества устройства, если вы конечно уже давно не сняли это с машины.
Есть здравый смысл в ваших словах) Только не думаю, что 2-й и 3-й пункт жизненно необходим. Это по желанию уже, нужно будет — сделаем, не нужно — ну и нет особого смысла с этим заморачиваться. Да, признаю, устройство не идеально, вообще, совсем. И ему очень далеко до идеала. Но, я в начала статьи указывал, что все делалось в сжатые сроки и собиралось из того, что есть. Нужно было сделать, чтобы ее можно было завести, всеми остальными «прелестями» современного автозапуска, пришлось временно пренебречь. Машина находится в другом городе и пока шанса добраться до нее нету. Так, теперь конкретно по пунктам. У меня стратер замыкается на 6 сек. Машина автоматически отключает стартер, если двигатель запустился, даже если мы замыкаем его. Поэтому стартер не перекручивается. Да, нужно делать систему контроля работы двигателя, я работаю над этим. Теперь, что будет, если она не заведется. Машина «живет» на северах, где всегда, практически, темно. Переключатель ближнего света стоит в положении auto и, получается, если машина завелась, то включается ближний свет, если нет, то, соответственно не включается. Из окна смотрим свет горит, значит завелась, нет, значит нет. В машине стоит webasto, за год использования системы она не завелась один раз, т.к. забыли перед запуском включить на полчаса отопитель.
надо скинуть с лампочки давления масла провод и написать что смс отправляется если лампочка давления масла потухла
Автозапуск для авто на ардуино
Грядут холода и очень хочется сесть в теплый автомобиль и не теряя времени на прогрев двинуться в путь.
Безусловно можно купить комплект сигнализации типа «стар лейн» тысяч за тридцать с установкой, но к чему тогда приложить очумелые ручки?
Идея в том чтобы использовать в качестве команды выход сигнализации или сигнал с вибромотора старенькой мобилки, который поступит на микроконтроллер, в программном коде оценить что двигатель еще не запущен, стоит на ручнике, нейтральной передаче через реле включить цепи питания двигателя, бортовой электроники, запустить мотор стартером и прогревать в течение заданного времени.
Что понадобится:
Аппаратная часть
старый мобильный телефон (или дешевый китайский gps-gsm-треккер с наличием линии внешнего выхода)
мини-ардуино контроллер
плата обвязки ардуино (делаем самостоятельно)
Программы
— среда разработки ардуино
— програма для разводки печатных плат spring layout
— руководство по «языку ардуино» на русском языке arduino.ru
прежде всего нужно понимать
1. в языке ардуино регистр букв различается например Setup и setup это две разные вещи.
2. каждая операция присвоения или запуска процедуры должна завершаться точкой с запятой ;
3. функции и условные операторы не заверщшаются точкой с запятой но должны иметь скобки для аргументов и фигурные скобки для исполняемого блока
первым делом обычно решают какие будут использованы входы и выходы у контроллера и присваивают им понятные имена констант |
затем добавляют две стандартные процедуры, которые обазятельно должны быть в каждом скетче ардуино |
процедура setup выполняется один раз при включении контроллера или при нажатии на кнопку сброс, в ней производят необходимые настройки входов и выходов |
пишем основной костяк программы: |
теперь можно наполнить процедуру проверки запуска |
тут мы понимаем что в одних автомобилях сигнал что заряд пошел может иметь значение +12 а в других наоборот 0, и тоже самое с датчиком ручника, с тем чтобы обеспечить универсальность добавляем в верхнюю часть кода пару констант const int hand_brake_on = 1; // 0= поднятый датчик ручника замыкает на массу тормоз активен (жигули), 1= датчик ручника в поднятом состоянии выдает высокий уровень напряжения |
Проверяем что же у нас получилось:первый тестслабое место этого кода в том что миллисекунды в ардуино обнуляются каждые 49 суток
|