OBD-II сканер автомобиля или диагностика системы через Raspberry Pi

OBD-II сканер автомобиля или диагностика системы через Raspberry Pi

Встроенная диагностика (On Board Diagnostic или просто — OBD-II сканер): компьютерная система, разработанная производителями автомобилей для диагностики состояния такого рода машин. Основное внимание при работе системы ODD уделяется диагностике состояния двигателя автомобиля, а главными целями является выявление ошибок (неисправностей) компонентов автомобильного мотора. Современные конструкции авто дополняют усовершенствованные варианты диагностики (OBD-II). Подключение для мониторинга осуществляется через порт DLC транспортного средства.

Рабочая эффективность диагностической системы OBD-II

Практически любые проблемы допустимо обнаруживать в конструкции транспортного средства посредством OBD-II. Например, дефекты и неисправности:

  • выпускного коллектора,
  • тормозного устройства (ABS – Anti Block System),
  • подушек безопасности (iSRS & SRS),
  • а также характеристик впуска и т. д.

Стоит отметить: устаревшая версия устройства OBD несколько ограничивает сканирование в плане полной диагностики автомобиля.

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

  • процессор с частотой 700 МГц,
  • 512 МБ SDRAM,
  • встроенные интерфейсы (Ethernet, HDMI, RCA),
  • двойной разъём USB,
  • слот для карт SD.

Кроме того, платой «Raspberry Pi» поддерживается множество входных / выходных контактов, что оптимально способствует созданию новых устройств и приложений.

OBD-II сканер для диагностики авто на Raspberry Pi 4
Вот таким выглядит достаточно производительный компактный компьютер Raspberry Pi 4, подходящий для организации диагностики OBD-II

Таким образом, «Raspberry Pi» удачно подходит в качестве одно-платного компьютера для организации функционала OBD-II, учитывая высокий уровень производительности за счёт «ARM11». Кроме того, устройство «Raspberry Pi» наделяется входным портом «Ethernet» и «USB», тем самым упрощает подключение к сети Интернет или другим устройствам.

Как можно использовать «Raspberry Pi» для диагностики OBD-II?

Настройку сканера OBD-II нельзя рассматривать однообразным процессом по той простой причине, что существует масса разновидностей и марок автомобилей, собственно, как и OBD-II сканеров. В целом же процесс можно описать следующей последовательностью:

  1. Изначально пользователь загружает специальное приложение на мобильный телефон, которое применимо для конкретного сканера OBD-II. Для любого другого сканера, как правило, требуется своё приложение.
  2. Следующим шагом пользователь подключает сканер OBD-II к разъёму «DLC» (Data Link Connector) автомобиля, обычно расположенного в нише под рулевым колесом.
  3. Затем между устройствами организуется связь через кабель или беспроводным способом («Bluetooth», «Wi-Fi»).

Контактная схема терминала «DLC» следующая:

  1. Контакт (резерв производителя).
  2. Протокол J1850.
  3. Контакт (резерв производителя).
  4. Шина (корпусная) заземления.
  5. Шина (сигнальная) заземления.
  6. Высокий уровень CAN (J-2284).
  7. Линия «K» ISO9141-2 / DIS 14230-4.
  8. Контакт (резерв производителя).
  9. Контакт (резерв производителя).
  10. Шина сигнала протокола J1850.
  11. Контакт (резерв производителя).
  12. Контакт (резерв производителя).
  13. Контакт (резерв производителя).
  14. Сигнал CAN протокола J2284.
  15. Линия «L» (ISO 9141 и ISO / DIS 14230-4).
  16. Питание от АКБ.

Существует целый ряд коммерческих «Bluetooth»-сканеров, пригодных для использования, однако лучшим вариантом считается «Raspberry Pi Nano Bluetooth Dongle» — недорогое решение, простое в плане установки.

OBD-II сканер и конфигурация разъёмов DLC
Существуют разные конфигурации разъёмов DLC, в зависимости от стандарта: A — стандарт ISO; B — стандарт VPW; C — стандарт PWM; рабочие контакты для каждого указаны красным цветом

Прежде чем использовать «Bluetooth Dongle», потребуется установка последней версии «Raspbian Operating System» — операционной системы «Raspberry Pi». Этой системой обеспечивается успешная обработка и отображение данных. Операционная система «Raspbian OS» — бесплатный продукт на основе «Debian», оптимизированный под оборудование «Raspberry Pi».

Следующим шагом процесса является загрузка «pyOBD», представляющего программное обеспечение с открытым исходным кодом, совместимое с функционалом OBD-II, полностью написанное на языке «Phyton». Учитывая полную совместимость с диагностическими интерфейсами OBD-II, программа позволяет пользователю видеть данные, считываемые ECU (Electronic Control Unit) – блоком управления автомобиля. Соответственно, можно получить:

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

а также многое другое, что требуется в рамках тестирования и диагностики машины.

Процедура функционирования системы диагностики

Выстроенная на основе «Raspberry Pi» система тестирования способна диагностировать транспортные средства, собирать, хранить, принимать команды от мобильного приложения. Данные диагностики автомобиля собираются с помощью «iSaddle OBD2 Bluetooth» сканера и отправляются через «Bluetooth Dongle», выступающего в качестве дополнительного инструмента.

OBD-II сканер и Raspberry Pi Nano Bluetooth Dongle
Вот такая небольшая по размерам, удобная в применении «штучка», именуемая Bluetooth Dongle, используется в системе диагностического тестирования

После того, как диагностические данные получены «Raspberry Pi», программное обеспечение «pyOBD» отобразит интерфейс диагностических данных, основанных на диагностических кодах OBD-II, предварительно обработав эти данные. Для обработки диагностических данных приложением «pyOBD» используется программная платформа «Node.JS» в качестве языка на стороне сервера.

Традиционная платформа «PHP» готова обрабатывать относительно небольшое количество запросов, но противостоит массовым запросам. Платформа «Node.JS» демонстрирует лучшую производительность в условиях параллельной передачи данных, независимо производительности или сценариев.

Диагностические данные на следующем этапе помещаются в объекты «JSON», с последующим хранением в «MongoDB» (система управления базами данных NoSQL, ориентированная на документы).

Сканер OBD-II: схема взаимодействия устройств
Схема взаимодействия устройств: 1 — запуск диагностических команд; 2 — передача данных посредством Bluetooth; 3 — получение результатов диагностики; 4 — передача в облачный сервис; 5 — использование данных через смартфон

Системой «MongoDB» обеспечивается гибкость в процессе разработки, простота развертывания и копирования баз данных с одного сервера на другой сервер, по сравнению с конкурентом – «Oracle Databases».

Поэтому «MongoDB» рассматривается более подходящим для применения с OBD-II диагностикой. При подключении к сети Интернет объектов «JSON», хранящиеся в базе «MongoDB», могут легко анализироваться на стандартном смартфоне пользователя.

Пользователям смартфонов также доступно отправлять команды непосредственно системе управления автомобилем. Приложением генерируются входные данные в объекты «JSON» и сохраняются в базе «MongoDB». Через API «Node.JS» выполняется обработка объекта «JSON» списком команд «ELM-USB». Эти списки команд «ELM-USB» отправляются на сканер «Bluetooth iSaddle OBD-II», которым выполняются команды пользователя уже в системе автомобиля.

Заключительный штрих на OBD-II сканер

Диагностике автомобилей уделяется внимание. Мало того, отмечается фактор роста ежегодно и по мере увеличения числа транспортных средств. Разнообразие и неоднородность реализации диагностики транспортных средств делают к тому же этот процесс интересным. Здесь описана методика анализа диагностики с автомобиля OBD-II и обработка диагностических данных через любительский набор «Raspberry Pi». Это своего рода вариация на тему «сделать своими руками», а также продемонстрировать возможности «Raspberry Pi». На практике обычно применяются заводские сканеры, производство которых налажено широким ассортиментом.


При помощи информации: JPCS