Вопрос

Подключение к бортовому компьютеру

Я подумываю о том, чтобы заменить радиопанель в своей машине на самодельное устройство на базе Raspberry Pi, что-то вроде этого устройства.



Однако его польза была бы гораздо выше, если бы я мог получать информацию с бортового компьютера, встроенного в приборную панель, в частности данные о мгновенном расходе топлива. С помощью датчика GPS можно было бы анализировать и оптимизировать расход топлива на километр при разных скоростях и на разных участках дороги.



Насколько сложно, если вообще возможно, будет считывать такие данные?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/32085/tapping-into-the-on-board-computer

10 Комментариев

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



    Если это новый автомобиль, вам придётся иметь дело с протоколом CAN, а это очень сложно.



    Лучше всего приобрести адаптер OBD2 (бортовая диагностика II), который позволит вам получать данные, передаваемые ЭБУ/PCM. Это программируемые идентификаторы (PID). Например, PID может быть скоростью, частотой вращения двигателя, температурой охлаждающей жидкости двигателя и т. д.



    Чтобы узнать расход топлива, вам нужно будет произвести некоторые вычисления. Уровень топлива/расход топлива — это не те параметры, которые обычно передаются ЭБУ/PCM, даже если они отображаются на приборной панели. Приборная панель/датчики управляются через CAN-шину, а параметры передаются по протоколу OBD2.



    С помощью Raspberry Pi вы можете подключиться к адаптеру OBD2 (его можно купить на Amazon примерно за 30–90 долларов) через Bluetooth или Wi-Fi, а затем считать нужные вам идентификаторы PID.



    CAN-шина https://en.wikipedia.org/wiki/CAN_bus



    OBD2 Начало работы с OBD-II



    Кроме того, вы можете просто приобрести адаптер OBD2, использовать телефон или планшет на базе Android и запустить Torque Pro, который сделает всё, что вам нужно. Я постоянно использую его в своих автомобилях, когда езжу на трек или тестирую модификации. Он выполнит все расчёты, связанные с расходом топлива.



    Вот скриншот, на котором Torque показывает некоторые доступные PID для моего автомобиля.



    введите описание изображения здесь


  1. Если в вашем автомобиле есть порт OBD2/ODBII, то это возможно. Я думаю, что проще всего будет использовать кабель типа ELM327 или даже Bluetooth-адаптер для обеспечения связи между Raspberry Pi и автомобилем.


  1. Чтобы подтвердить ответ Макса, скажу, что это не должно быть слишком сложно. Вот отличная ссылка для начала http://www.cowfishstudios.com/blog/obd-pi-raspberry-pi-displaying-car-diagnostics-obd-ii-data-on-an-aftermarket-head-unit



    Очень крутой проект, будет интересно посмотреть, что из этого получится.


  1. OBD Sounds — это именно то, что мне нужно. Я попробую и сообщу о результатах.
  1. Обратите внимание, что в последней версии Raspberry Pi 3 есть встроенный модуль Bluetooth, поэтому вам может понадобиться только адаптер BT OBD-II и некоторое программное обеспечение.
  1. да. Скорее всего, это не такая уж большая проблема, ведь не так много людей ходят и ищут ELM327, подключённый к случайным автомобилям, и пытаются подключиться к ним. Кроме того, для работы порта OBD2 в автомобиле должно быть включено зажигание. Но об этом стоит помнить.
  1. @Madushan Думаю, с точки зрения безопасности лучше использовать кабель ODB — USB.
  1. Также обратите внимание, что в ELM327 не предусмотрена защита (кроме хорошо известного PIN-кода для сопряжения по Bluetooth), поэтому, если вы его используете, имейте в виду, что любой, кто находится в зоне действия, потенциально может подключиться к нему и считать/изменить параметры вашего автомобиля. Изменение некоторых параметров OBD/ECU движущегося транспортного средства является нарушением закона.
  1. Как было предложено в одном из ответов, ELM327 подходит идеально. (Остерегайтесь тех, кто утверждает, что у них версия 2.1. Это китайские подделки, которые могут повредить ваш автомобиль) . Если вы используете Android-планшет вместо Raspberry Pi, это может быть проще? Вы можете использовать эту библиотеку для связи с ELM327 по Bluetooth github.com/pires/obd-java-api
  1. Я думаю, что считать данные с бортового компьютера будет не так уж сложно, ведь для этого есть аппаратные устройства, предназначенные для взаимодействия с Pi.
Вы уже ответили на этот вопрос