Автозапуск ардуино своими руками

Удаленный Автозапуск двигателя

Дальнейшее развитие проекта Кнопки запуска.

Итак, накатавшись с удобством и забыв о ключах, подошло время к зиме. И ожидая в холодной машине пока она не прогреется подтолкнуло поискать как с этим справляются очумелые автолюбители. Полазив на форумах и почитав несколько статей от знающих людей было решено делать GSM модуль к уже проверенной «Кнопке».

Выбор пал на Ардуино (собственно только сам контроллер) и GSM шилд на модуле SIM800L (как самый доступный около 3,5$) .
Т.к. GSM модуль в пиковых значениях потребляет до 2А применил DC/DC преобразователь LM2596S.

На контроллере реализованы 5 входов:
— Педаль тормоз;
— Ручной тормоз;
— Датчик масла (программно пока не реализован);
— Тахометр (программно пока не реализован);
— Вход напряжения Аккумулятора.

Реле — автомобильные с током до 30А с внешним подключением. Ключ для управления на MOSFET транзисторах. В первом варианте (что нашлось) были irfz44n, после использовал Si4800BDY (или подобные, полно на старых материнках).

Также Имеется разъем для подключения bluetooth или WIFI(планируется) для управления или пере прошивки по воздуху. Собственно bluetooth был опробован как удлинитель UART для мониторинга при написании программы. Также bluetooth планируется для управления с брелка.

А теперь самое интересное!
Для связи с «Авто» я применил сервер с MQTT протоколом — cloudmqtt.com.
Когда я начинал с ним работать использование их серверов было бесплатно, к сожалению сейчас это платно, старые зарегистрированные аккаунты остались бесплатными (хотя для дела можно и купить это того стоит).
Возможно использовать другие серверы суть не меняется (только адресация данных). Например — mqtt.4api.ru.

Что Мы можем через приложение:
— Видеть Напряжение на Аккумуляторе;
— Видеть состояние датчиков температуры (реализовано до 10 шт);
— Видеть баланс на номере «Авто»;
— Видеть состояние «Пусковых» реле (Клемма 15, 50, ACC) и заведен авто или нет;
— Также Мы можем изменить время прогрева;
— Реализовано автоматическое отключение от GPRS через 2 минуты после выключения прогрева или через 5 минут если было подключение без включения двигателя;
— Также Добавлен вывод ошибок подключения и др. Опционально;
— И счетчик суточной перезагрузки.

Источник

Автозапуск ардуино своими руками

Грядут холода и очень хочется сесть в теплый автомобиль и не теряя времени на прогрев двинуться в путь.

Безусловно можно купить комплект сигнализации типа «стар лейн» тысяч за тридцать с установкой, но к чему тогда приложить очумелые ручки?

Идея в том чтобы использовать в качестве команды выход сигнализации или сигнал с вибромотора старенькой мобилки, который поступит на микроконтроллер, в программном коде оценить что двигатель еще не запущен, стоит на ручнике, нейтральной передаче через реле включить цепи питания двигателя, бортовой электроники, запустить мотор стартером и прогревать в течение заданного времени.

Что понадобится:
Аппаратная часть
старый мобильный телефон (или дешевый китайский gps-gsm-треккер с наличием линии внешнего выхода)
мини-ардуино контроллер
плата обвязки ардуино (делаем самостоятельно)

Программы
— среда разработки ардуино
— програма для разводки печатных плат spring layout
— руководство по «языку ардуино» на русском языке arduino.ru

поскольку тут собрались фанаты ардуино то и программный код будем писать под этот процессор.
а я попутно попробую на этом примере по шагам рассказать как пишется ардуино — код

прежде всего нужно понимать
1. в языке ардуино регистр букв различается например Setup и setup это две разные вещи.
2. каждая операция присвоения или запуска процедуры должна завершаться точкой с запятой ;
3. функции и условные операторы не заверщшаются точкой с запятой но должны иметь скобки для аргументов и фигурные скобки для исполняемого блока

первым делом обычно решают какие будут использованы входы и выходы у контроллера
и присваивают им понятные имена констант

затем добавляют две стандартные процедуры, которые обазятельно должны быть в каждом скетче ардуино

процедура setup выполняется один раз при включении контроллера или при нажатии на кнопку сброс,
в ней производят необходимые настройки входов и выходов

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

// variable for actual mode
int actual_mode = 0; // какое текущее состояние 0 — двигатель выключен, 2 — двигатель должен быть запущен

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

const int hand_brake_on = 1; // 0= поднятый датчик ручника замыкает на массу тормоз активен (жигули), 1= датчик ручника в поднятом состоянии выдает высокий уровень напряжения
const int sharging_on = 1; // 0 когда во время работы генератора или от датчика давления масла на этом входе низкое состояние, 1 когда на лампе генератора при работе генератора высокое состояние
и изменяем код процедуры запуска

пишем вторую чать кода, процедуру выключения двигателя

Проверяем что же у нас получилось:

первый тест

Дальше ставим задачу добавить три попытки запуска мотора, причем чтобы стартер выключался сразу после
появления сигнала на датчике заряда но время работы стартера не превышало 10 секунд, добавить индикатор
статуса работы контроллера (будет в режиме прогрева показывать с какой попытки произошел запуск а в
режиме ожидания запуска показывает что контроллер готов к запуску — включен, ручник и нейтралка стоят.)

слабое место этого кода в том что миллисекунды в ардуино обнуляются каждые 49 суток
для того чтобы в случае если запуск произошел в течении последних 20 минут до обнуления
мотор не молотил еще 49 суток нужно обнулить и время старта внутри функции контролирующей
выключение двигателя

Источник

Arduino.ru

Автоматический запуск двигателя автомобиля

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

Здравствуйте все. Воспользовался проектом Алексея Козина по автозапуску машины. Спасибо ему большое. http://arduino.ru/forum/proekty/kotntroller-distantsionnogo-progreva-avtomobilya

Код изменил и добавил под свои запросы. Так как в программировании новичек, то сначала писал программку затем испытывал, но так как сразу ничего не работало то приходилось подставлять костыли. Наворотил кучу условий и код разросся. Мне было важно чтобы работало на моей машине Hyundai I30 автомат.

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

Что в итоге получилось.

Система может запускать двигатель по звонку с мобильного и глушить его по звонку. Так же прогревать двигатель определенное время. Отзванивается хозяину когда двигатель завелся автоматически и когда заглушен. Телефонным звонком можно настроить автоматический запуск по температуре. Включает обогрев сидений по пороговому значению температуры. Звонит хозяину когда некто или нечто стучит по машине.

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

Для проекта воспользовался старой мобилкой . Сигналом на запуск с нее является вибромоторчик. А сигнал обратной связи когда контроллер отзванивается приходит на кнопку телефона «зеленая трубочка». Там всегда сохраняются последние звонки и если на нее подать сигнал три раза мобилка совершит дозвон на последний входящий.

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

Плату не разводил. Подумал что на макетной сделать будет быстрее. Но потом пожалел не очень краиво получилось.

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

Схемка принципиальная промежуточный вариант.

На схеме не хватает кое чего. На ней нужно добавить входной сигнал АСС на ножку А2. В сктче она задействована. И вибродатчик не нужно притягивать к земле, так как сигнал с него земля.

Перерисовал схему нормально, на карандашном ресунке ничего не видно было.

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

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

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

вибромоторчик. а если кто номером ошибется? используйте sim900 или sim800L, или старый сименс накройняк. юзайте АТ команды.

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

Да уж схемка получилась нечитаемая . Нарисую попозже выложу. Кстати вибродатчик взял от старой сигналки.

Термодатчик я расположил прямо на плате поэтому пороговою температуру нужно ставить с учетом что датчик в салоне.

Все уже работает на машине месяц пока без сбоев. Правда если сильные холода нужно изменить время зарядки разрядки телефона.

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

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

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

вибромоторчик. а если кто номером ошибется? используйте sim900 или sim800L, или старый сименс накройняк. юзайте АТ команды.

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

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

На телефоне есть UART, почему бы его не использовать в проекте?

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

Если честно я не знаю что это такое уарт. Я так понимаю это нужно смс ки потом слать. По мне удобнее позвонил машине дождался двух гудков и сбросил, машина завелась. И тут же отзвонилась. Даже трубку брать не надо. Так же иглушить двигатель, только сбрасывать после первого гудка.

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

Спасибо, теперь все понятно. Практики мы и воры, разыскиваем и воруем практические решения, чуть чуть доробатываем и пользуемся. А ссылки на википедию нам не помошники, нам бы попроще и чтобы работало.

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

Перерисовал принципиальную схему теперь читаемая.

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

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

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

Напишите пожалуйста весь список деталей которые нужны для сборки. Особено интересуют реле.

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

подскажите а какой термодатчик вы использовали?

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

Остальные детали видно на принципиальной схеме.

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

подскажите а какой термодатчик вы использовали?

DS18B20. В основном он используется для включения обогрева сидений в момент автозапуска. А запуск по температуре можно включать и выключать настройкой с помощю звонка по телефону, три гудка — режим включен, четыре гудка в трубке выключен. Алгоритм записан прямо в пояснениях в скетче.

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

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

Вы совершенно правы надо на текстолите. Я использовал мягкий многожильный провод для монтажа. Думаю поработает. Как раз и проверю.

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

Уважаемый Фёдор спасибо за коментарий по поводу реле. Скажите а вы можете выложить схему запуска и алгоритм без всяких наворотов только запуск по звонку и остановка двигателя для коробки автомат.

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

В первом посте ссылка на проект Алексея Козина который я использовал за основу. Еще раз ему спасибо. В том проекте все без наворотов. Я думаю сможете и из моего проекта все ненужное Вам выпилить, а можно ничего не выпиливать из скетча. Просто в схеме не использовать не нужные Вам ножки. например сигнал на реле обогрева сидений, температурный и вибродатчик.

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

В первом посте ссылка на проект Алексея Козина который я использовал за основу. Еще раз ему спасибо. В том проекте все без наворотов. Я думаю сможете и из моего проекта все ненужное Вам выпилить, а можно ничего не выпиливать из скетча. Просто в схеме не использовать не нужные Вам ножки. например сигнал на реле обогрева сидений, температурный и вибродатчик.

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

установить это под чехлом ручки , и скажем при команде запуска лазар включается и если приёмник его ловит то запуск разршен! все это завязать вместе с ручником?

как идейка? можно так реализовать?

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

А как вы мочить собираетесь положение нейтрали с помощью данных девайсов? Может лучше поставить гироскоп и если он будет чувствовать продольное ускорения, то программа будет сразу прекращать все попытки и глушить двигатель?

Бесплатная доставка GY-521 MPU-6050 mpu6050 модуль 3 оси датчики аналоговый гироскоп акселерометр модуль для arduino
http://s.aliexpress.com/FJNZFv2U
(from AliExpress Android)

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

а если авто под уклоном?

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

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

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

В Этом плане можно просто подключиться к датчику абс, но это тоже не вариант нужно исключить возможность запуска вовсе !

люди ставят геркон и магнит по подобию в какой либо точке поставить приемник а на ручке закрепить передатчик который в нетральном положении кпп пудет точно бить в приемник, в любом другом положении лучь мимо значит запрет запуска а так же от угона!

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

Подскажите а что за маленькое чёрное релле на фото платы. Невидно маркировки.

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

Это реле включает зарядку телефона периодически. В данном скетче период зарядки телефона 4 часа, а период ожидания 44. Но я думаю надо изменить. На морозе 44 часа батарейка телефона не держит и телефон вырубается . Думаю часов 10 между зарядками надо оставить. А черное реле использовал из старой сигнализации на 12V 2A.

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

Какая классная идея. Копеечная деталька с громадным потенциалом. Проводов никуда тянуть не надо, в схему машины лезть. Получиться легко повторяемый универсальный девайс. Можно еще несколько функций на него повесить, например как кто то писал здесь включение ДХО при движении, охранную функцию.

Теперь может кто подскажет простой датчик движения на основе этой платки?

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

Я именно сразу подумал Про это . Допустим данные сКейч который у тебя на коробку автомат за место педали тормоза повесить данный девайс , только твой скетч почему-то у меня выдает ошибку, он просто не загружается в Arduino
Я не очень в программировании может попробуешь твой скейт переделать под это. Принцип: в момент включения зажигания лучь светит на приемник и включает нормально замкнутое реле которое размыкает плюс имитирующий педаль тормоза .

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

Я имел ввиду датчик ускорений, а не лазер. Так как не очень понимаю как физически удобно установить лазер и приемник и тянуть к ним провода. А с датчиком ускорения можно обойтись и без сигнала и провода от педали тормоза. Вообщем классная идея. Наверное займусь.
На счет ошибки в скетче, он не совсем корректно скопировался, комменты переползли на новую строку, надо перед всеми комментами проверить и поставить по две косых черты

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

OneWire oneWire(ONE_WIRE_BUS); ругается на эту строчку

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

OneWire oneWire(ONE_WIRE_BUS); ругается на эту строчку

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

Sketch uses 8,908 bytes (28%) of program storage space. Maximum is 30,720 bytes.
Global variables use 285 bytes (13%) of dynamic memory, leaving 1,763 bytes for local variables. Maximum is 2,048 bytes.

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

уважаемый fyodor.m не могли бы вы отправить мне скомпелированный скетч или в блокноте, а то тут перепрыгнули строки и как только я н пытался поправить его у меня не получилось. заранее благодарен вот моя почта constantinoff@list.ru

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

долго думал как избавится от акуммулятора в телефоне, что бы небыло этого гемора с зарядкой, оказалось все просто, заказал DC-DC конвертер на алиэкспресе за 50 рублей, настроил его на понижение тока с 12 до 3,7 вольт и впаял вместо батареи. Работает отлично, блок не греется. А на телефоне даже пропал значек уровня заряда батареи. Остается один вопрос как мне изменить скетч что бы добавить в него строку в которой он будет включать телефон, после того как аврду включается сам? Можно и самому включать его конечно, когда скидываешь клемму это нужно будет делать каждый раз, а хочется что бы арду его включал сам. импульс нужен в 2 секунды. провода с кнопки включения я уже вывел.

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

уважаемый fyodor.m не могли бы вы отправить мне скомпелированный скетч или в блокноте, а то тут перепрыгнули строки и как только я н пытался поправить его у меня не получилось. заранее благодарен вот моя почта constantinoff@list.ru

ps. ваш скетч мне подходи больше всего, только бы добавить в него строку о включении телефона и он будет просто супер

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

Надо же даже телефончик похожий.

На проводочках которые подпаиваются к кнопке телефона «зеленая трубочка» я припаял выносную кнопку( ее видно на моем фото трубки в черной термоусадке) в параллель, так как после подпайки проводов механическая кнопка на телефоне не срабатывает, проводки мешают.

Вы правы Батарейка точно не нужна, проверено что даже полностью заряженая прои -15 градусах, телефон вырубается.

На счет автоматического включения телефона подумаю.

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

есть еще одна мысль по поводу безопасности. У некоторых старых сигналок таких как бумеранг, защита от постановки на скорость работала следующим образом. Поворачиваешь ключ, а машина не глохнет, выходишь из нее (загарается лампа открытия двери), закрываешь дверь и машина глохнет, ну и тем самым ставится на режим «готов к автозапуску». Если после этого снять с сигналки или открыть дверь, то автозапуск уже не сработает. По правде мне кажется это довольно простым решением, ведь трудно выйти из заведенной машины и закрыть дверь, если она стоит на скорости?

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

Если я правильно понял логику что то не очень удобно. Захотел заглушить двигатель, например в пробке конкретно встал, так после поворота ключа в OFF еще и хлопать дверью надо. Да и не хорошо, мне кажется, релюшки силовые постоянно запитаны будут в пути. Опять же дополнительный сигнал открытия двери тянуть в схему надо. Хотя если беспокоитесь о сохранности авто его надо предусмотреть. В этом проекте сигнал от дверей не учитывается. Тоесть если взломать дверь во время автопрогрева двигатель будет продолжать молотить и заглохнет только при нажатии педали тормоза.

Жду датчик ускорений трехосный, прийдет буду эксперементировать с ним.

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

Я не агитарую за этот способ, я просто предложил как вариант на обсуждение. Может кому в голову придёт вариант его модернизации.

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

Собственно говоря вы можете глушить двигатель и педалью, но после этого режим «готов к запуску» будет сброшен, а поставлен в этот режим может быть только после закрытия двери с работающим двигателем. Ну как вариант.

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

долго думал как избавится от акуммулятора в телефоне, что бы небыло этого гемора с зарядкой, оказалось все просто, заказал DC-DC конвертер на алиэкспресе за 50 рублей, настроил его на понижение тока с 12 до 3,7 вольт и впаял вместо батареи. Работает отлично, блок не греется. А на телефоне даже пропал значек уровня заряда батареи. Остается один вопрос как мне изменить скетч что бы добавить в него строку в которой он будет включать телефон, после того как аврду включается сам? Можно и самому включать его конечно, когда скидываешь клемму это нужно будет делать каждый раз, а хочется что бы арду его включал сам. импульс нужен в 2 секунды. провода с кнопки включения я уже вывел.

Для включения телефона можно использовать выход A1 который использовался для реле зарядки телефона. Провода от кнопки включения телефона подключить через оптрон к выводу А1. А провод с А1 который идет на реле зарядки телефона через бустер нужно убрать. Смотри схемку.

Изменения в коде смотри ниже. Питание телефона надо подавать через предохранитель ардуинки. Теперь при каждой подаче питания на ардуинку на этапе сетапа включится телефон.

Источник

Читайте также:  Как сделать железный забор своими руками
Оцените статью