По немного описываю что было сделано за последние годы в машине, заполняю бортжурнал)
В моей комплектации авто есть датчики TPMS и лампочка на приборной панели, которая сигнализирует о том, что что-то не то с каким-то колесом. В дорестайте можно на приборке увидеть реальное давление в шинах, чего мне очень не хватает. Конечно, лампочка это хорошо, но она не показывает если нужно выровнять давление, подкачать немного. В итоге я начал поиски того, что можно сделать. Вариант выкинуть родные датчики и поставить китайские с китайской же приблудной для андроида тоже рассматривал, но все-таки хотелось как-то выудить информацию с родных датчиков. Тем более течстрим может эту информацию показать, потому я был уверен в том, что информация гуляет по кан шине где-то. Искал и сканировал я долго) Находил коды от Rav4, не подошли. Потом полностью сканировал пару минут шину и пробовал что-то там откопать… Но не получилось. Думал сделать через ОДБ сканер. Сначала простенький китайский, потом купил даже проверенный… Но тоже оказалось, что не одна программа на андроид не видит ничего. В итоге я нашел схему именно на мою машину моего региона и получилось так, что блок ТПМС не связан с кан шиной никак. У него идет один провод практически напрямую на лампочку в приборке и еще один на разъем ОДБ для течстрима…


На этом этапе я отмел идею ловить данные в шине машины, а делать диагностически запросы все время — не вариант.
Потом я нашел очень интересный проект, где на контроллере, дисплее и приемнике делают блок ТПМС, который принимает сигнал напрямую из эфира и выводит на экран. В принципе прикольно. Единственное что, у меня датчики на 315Мгц а приемники СС1101 идут с настройкой входного тракта на 433Мгц. Но не долго думая купил приемник, ардуинки нашлись, дисплей тоже. И вот, УРА, я получил первые данные напрямую с колес! Круто! Такую штуку, был бы гараж — повесил бы на стену) Правда принимало оно непосредственно вблизи.
Изменил по даташитам входные фильтры, поставил антенну на 315Мгц, не маленькую спиральку а полуволновой диполь. Начал уверенно принимать до 3х колес одновременно. Потом я потратил пару недель копаясь в оптимизациях в коде. Там параметров приемника просто огромное количество. Но добился хороших успехов. Начал принимать данные с 4х колес одновременно с окна дома (машина во дворе, у окна). Все свои изыскания отправил автору, он внес изменения и оптимизации в код проекта, если кому нужно оно уже там.

В итоге идея была такая, принимаем сигнал, но выводим его не на дисплей а по юсб передаем на андроид голову. Там пишу программку по отображению. План хороший, но есть одно НО. В салоне машины, где бы я не ставил антенну все равно она работает нестабильно. То принимает все сигналы, то пропускает. Возможно зависит от того, где сейчас датчик, снизу/сверху, как колесо стало. Скорее всего сказывается то, что датчики передают в модуляции FSK, а приемник не умеет работать аппаратно в этой кодировке. Потому контрольные суммы больше используются только для проверки целостности принятых дюнных а не для коррекции ошибок налету.




Мучайся я настройкой много вечеров. Не спорю, мне нравится такие проекты, потому это время не потрачено было зря) Но все же я еще разв глянул на схему системы в машине. И подумал, а вдруг, стало интересно что творится в проводе от антенны до блока ТПМС. Вдруг там гуляют пакеты с данными. Подключаюсь к проводу логическим анализатором через резистор и стабилитрон, чтобы не спалить его и смотрю что там гуляет в проводах… И? Вроде ничего(

Но потом внес патерн нужного сигнала и FSK кодирование и ВОТ ОНО! Знакомый сигнал по проекту с антенной и дисплеем)


В итоге оказалось, что в проводе полный шум пока нет сигнала и проскакивают данные, когда есть сигнал. Родная антенна полностью может заменить СС1101 приемник при этом ничего менять не нужно в родной системе. Просто отводка от этого провода через резистор в 10К и стабилитрон на 4.7В, чтобы не спалить порт ардуинки и не повлиять на работу системы. Если что в проводе амплитуда сигнала вольт 8-9.
Дальше дело техники, распознаю сигнал ардуинкой, достаю данные из него и отправляю в сериал порт все что распознал.


Для андроид магнитолы написал программу, которая в фоне принимает данные и если они отклоняются от нормы — на весь экран всплывает сама программа с индикациями. Дизайн одолжил у китайской какой-то программы, т.к. не художник. Так же сделал кнопку не беспокоить на 1 час, 3 часа, день. Например если колесо немного спустило, но нужно доехать чтобы не раздражало. Но при этом чтобы не забыть. Дело было давненько, уже подробностей по программированию не сильно помню…

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