Ахой, ребята!
Речь пойдёт о том, как я привязал Raven к своему умному дому. Для этого я сделал прототип электронного блока, у которого есть связь с автомобилем через шину CAN-комфорт, блок реле для имитации вставленного ключа в замок зажигания и обходчик иммобилайзера (IMMO Bypass). Над наименованием блока долго не думал, назвал его BAF (Block of Additional Functions), по скольку помимо автозапуска блок будет иметь и прочие фичи, с запуском не связанные.
Прототип я собрал на базе 32-битного микроконтроллера ESP8266 распаянного на плате разработчика Wemos D1 R2 Mini. Для связи с шиной CAN был взят самый распространённый модуль MCP2515, с некоторыми доработками, позволяющими ему работать с 3,3Вольтовой логикой ESPшки

Блок реле и IMMO Bypass я решил объединить в один отдельный модуль, которым рулит расширитель портов MCP23017.

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

Как выяснилось, в самом замке нет абсолютно никакой логики, лишь микрики и антенна. Отследив контакты самой антенны, я узнал её сопротивление и занялся подбором подобной


Первое, что мне пришло в голову — намотать пару десятков витков из проволоки и спрятать в них транспондер — такое уже прокатывало на моём прошлом автомобиле и иммо спокойно обманывался. Однако в этот раз я пошёл другим путём. Пару месяцев назад у меня появился на складе мёртвый блок ABS от какого-то Seat'а, из которого я вытащил электромагнитные катушки соленоидов. Как оказалось их форма была просто идеальна для погружения в них транспондера, но сопротивление было не совсем подходящим

Подключенный последовательно 10-Омный резистор решил эту проблему

Транспондер я замотал в изоленту, чтобы не болтался и поместил внутрь соленоида, который теперь стал дополнительной антенной. Временно подключив соленоид вместо оригинальной антенны машина бодренько опознала ключ. На всякий случай подключил сканер и проверил — ошибок не появилось, ключ опознаётся.

Проведя дальнейшую обратную разработку замка я выяснил, что мне потребуется 3 микрореле, которые будут эмулировать вставленный ключ (первое положение ACC, второе положение IGN и третье — запуск двигателя), и одно дополнительное реле в виде переключателя родной антенны замка на дополнительную. Для уменьшения количества проводов и занятых пинов на ESP'шке я использовал расширитель портов MCP23017. К выходам расширителя через 4 мосфета подключил 4 микрореле, 3 из которых подключены параллельно микрикам положения ключа и ещё одно в разрыв антенны иммобилайзера. Так же на один вход расширителя через резистивный делитель я подключил контакт от клеммы 15 (на неё подается +12В после опознавания ключа) для обратной связи


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


Сам блок я решил временно упаковать в корпус от блока иммобилайзера какой-то Тойоты

И добавил в цепь разъёмы для упрощения дальнейшей разборки и доработок

На этом работы с прототипом эмулятора замка были закончены. В дальнейшем планирую вытравить нормальную печатную плату, распаять всё это на ней и залить эпоксидной смолой, дабы у злоумышленников не было физического доступа к компонентам эмулятора.
Переходим к самому модулю BAF. Для связи с умным домом я использую Wi-Fi сеть, по скольку Raven что дома, что на работе стоит на частной парковке и имеет доступ к ней. Для улучшения приёма я прикупил антенну по типу той, что используется в роутерах и метровый провод к ней. Сначала думал вложить её в переднюю левую стойку, но увидев, что места там крайне мало, решил расположить её в крыше перед козырьком на стыке кузова и лобового стекла, предварительно замотав её в звукопоглощающую изоленту, дабы не дребезжала ни обо что




Сразу оговорюсь, решение вложить антенну в крышу оказало поспешным, сигнал стал хуже, нежели когда антенна в тестовом виде лежала на рулевой колонке под приборкой. Разница ~20%, так что в будущем буду её переносить

Саму ESP'шку я программирую в среде Arduino IDE. Это мне позволяет заливать прошивку как по проводу, так и "по воздуху", если ноут и ESP находятся в одной локальной сети.

После доработки дистанционного запуска и прописывания нового девайса в умный дом я выяснил, что когда двигатель запущен, пассат отключает возможность управления центральным замком с брелка ДУ (можно открыть только механически). Потому пришлось дописывать в программу возможность управления замками через умный дом. Интерфейсом для этого послужила шина CAN-комфорт к которой я подключился возле блока Gateway. Благодаря шлюзу CAN я смог не только управлять замками, но и получил обратную связь о состоянии каждого замка (открыто, закрыто, закрыто с пульта ДУ), капота и двери багажника. Помимо этого из шины я получаю данные о работе двигателя, положение стёкол, руля и много всего прочего, что я могу отслеживать из дома не подходя к машине. Для того, чтобы авто было сложнее украсть когда двигатель запущен дистанционно я добавил защиту в виде проверки ключа в замке. Если сесть в заведённый автомобиль без ключа и как-либо повлиять на него (изменение угла наклона руля, смена передачи или касание педали тормоза), автомобиль глохнет и закрывает все замки наглухо (режим Safe популярный у концерна VAG — двери нельзя открыть ни изнутри, ни снаружи). Чтобы этого избежать, нужно вставить ключ в замок зажигания, иммо проведёт опознание его и если ключ окажется верным, то автомобиль не заглохнет, а микрореле, которые были включены до этого, разомкнутся, переведя автомобиль в обычный режим работы.
Теперь моё утро выглядит так: как только я решаю, что пора прогревать двигатель, я просто отдаю голосовую команду ассистенту умного дома и Raven запускает двигатель. Прямо перед выходом я точно так же голосом или на терминале управления открываю замки и сажусь в прогретую машину. Остаётся вставить ключ и ехать)
UPDATE 21.04.2020:
Проблема управления ЦЗ через брелок разрешилась перекодированием блока комфорта.






Комментарии 25
привет подскажи. куда можно приложить чип иммобилайзера у замка что бы распознал его? хочу просто чтоб заводил другим ключем без прописки
Привет. Таких исследований я не проводил — надо прикладывать в разные места и смотреть видит ли машина его. Но могу предположить, что если разобрать замок и вложить чип внутрь самого механизма приемника ключа — то должно сработать. Однако, я крайне не рекомендую так делать, ибо ключи у пассатов все одинаковые и единственное, что их отличает — это как раз таки чип иммобилайзера (не считая системы дистанционного и механического открытия ЦЗ). Если твою машину вскроют — завести смогут даже пластиковой обманкой
Есть ли у вас статья с описанием работы вашего умного дома? Какие функции вам показались интересными и как вы их реализовали?
Увы, нету, хотя и было желание написать, но это займет слишком много времени, которое я пока не готов на это выделить. Самая полезная функция — управление светом и запуском автомобиля при помощи голоса. Почти все реализовано своими силами (железо паял сам, код писал сам)
Понятно) Написать распознавание голоса с нуля очень непростая задача, если я правильно вас понял. Я больше приверженец готовых решений вроде того же Home Assistant.
Я про оконечные устройства имел ввиду) конечно нет смысла изобретать велосипед, для голосового интерфейса я использовал Гугл помошника, как сервер — распберри пи, а на ней уже крутится операционка Hass os
Теперь все встало на свои места))) ;-)
Я правильно понял про момент с ключом: на заведенной машине вставляешь ключ, происходит проверка иммо, и тогда на кане появляется инфа что ключ правильный и эту инфу из кана использует твой блок что бы отключить доп реле и оставить питание от самого замка?
Почти так. ещё повлиять на авто надо, педальку нажать, например
Охренеть
А зачем изобретать велосипед?
За 100 дол купите себе вебасто и вопрос закрыт
С самого начала так и хотел сделать, но с привязкой к умному дому. Однако, в моём крае вебасто 100 долларов не стоит и найти его сложно
Вы с этим умным домом осторожнее
Дабы он не сел в ваш умный пассат и не укатил из страны, пока вас нету )))
Вот это работа! Красава!
Очень хочется так задаться, но пока руки не доходят, да и опыта/знаний маловато. У меня проблема в том что бы электричку по ночам будить для зарядки. Не в курсе если только к CAN подключиться, можно машину разбудить? или надо эмитировать старт машины?
Спасибо! Не очень понял что значит «будить электричку для зарядки». Если вопрос стоит в том, чтобы пробудить шину кан, то да, достаточно послать любое пустое сообщение и шина сразу же просыпается секунд на 5-10, для этого нужно подключить лишь два провода самой кан к трансиверу, даже масса не нужна
Проблема в том что машина «засыпает» после определенного времени и зарядной устройство которое у меня не может разбудить машину что бы она начала брать ток когда дёшево заряжаться. Сейчас я просто подхожу и открываю дверь в машина и она начинает заряжаться. Хотелось бы просто поставить на таймер, особенно когда по дому валяются микроконтроллеры которые я не знаю куда включить.
Я понял куда копать. Закажу модуль, посмотрим как пойдёт. Спасибо.
3.14здец, че тут скажешь 😲
Заморочился ты не на шутку 👍👍👍👍👍👍
Что еще будет)
По себе могу сказать, началось с часов от б7 и понеслась- комфорт, бсм, гейт, руль, приборка итд итп
да ты прям мой план зачитал)
Это может поступить в розницу?)
Тут вопрос о каком именно компоненте речь. Потому что без уже имеющегося умного дома моё устройство бессмысленно, оно как бы является клиентом и ему нужен сервер. А обходчики иммобилайзера в каждой сигналке с автозапуском есть)
Охренеть! Просто охренеть, вроде на словах все не так сложно, а вот попробуй сам так сделать!
Снимаю шляпу, что следующее по планам? По голосовой команде будет выезжать с парковки на встречу?)
Спасибо! Планов много, ваг — это конструктор, можно "чё хошь" собрать) Но есть уже кое-что оплаченное, что я жду. Будет неоновая подсветка, но не только ради шоу 2000-ых аля Форсаж, а сильно "умнее", с привязкой к моему любимому CAN интерфейсу)
100 баллов 👍👍👍👍. Респект.