Автосканер ELM327. Инструкция по работе с OBD2

Автосканер ELM327. Инструкция по работе с OBD2.

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

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

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

ВНИМАНИЕ: сегодня мы рассмотрим китайскую версию ELM327 и поговорим именно о ней. Как отличить китайскую версию от оригинальной? Да очень просто. Скорее всего всё что Вам попадется в продаже будет китайского производства. Китайскую версию я брал на Aliexpress или можно купить в автомагазине по приемлемой цене. Оригинальная версия автосканера стоит баснословных денег, да и к чему Вам она?

Что такое ELM327 и зачем он нужен?

ELM327 – Это сканер или адаптер, который подключается к бортовому компьютеру машины через разъём OBD-II и считывает показания с электронных блоков управления. Этот чудо прибор поможет Вам:

Многие сканеры открывают и больше возможности, так же многое зависит и от автомобиля. Цвет корпуса и форма могут отличаться.

Сканер чаще всего представлен в виде:

Стоимость данного девайса начинается обычно от 300 ₽. Все что дешевле брать не советую. Ориентироваться надо на стоимость 300-600 рублей. Дорогой сканер OBD-II покупать нет смысла.

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

Какие автомобили можно продиагностировать ELM327

Первое что Вам нужно знать это есть ли в Вашем автомобиле диагностического разъема OBD 2 и где он находиться. Сделать это проще всего забив в поисковик Марку и год выпуска автомобиля.

OBD 2 и где он находиться. Сделать это проще всего забив в поисковик Марку и год выпуска автомобиля в интернет. Инструкция ELM327

Диагностический разъем OBD-II

Выбор приложения для диагностики

Я думаю что здесь у Вас вопросов не возникнет. Заходим в Google Play (Плэй маркет) и скачиваем приложение “InCarDoc free” (Автомобильный доктор). Преимуществом является то, что программа на русском языке. Этим приложением я пользуюсь уже на протяжении длительного времени и проблем у меня с ним не возникало, тем более что в сети есть PRO версия которую можно установить бесплатно.

Есть так-же програмки под названием Torque, OpenDiag Mobile, Car Scanner ELM OBD2, ХобДрайв и другие. Torque например поможет вывести на экран дополнительные виджеты, а если у Вас магнитола на Android, то можно использовать эту программу как бортовой компьютер. Выбор на самом деле большой. Цель у всех одна – прочитать электронные блоки вашего автомобиля. Если по каким-то причинам Вам не нравиться “InCarDoc free” то попробуйте что-то из выше предложенного.

Инструкция ELM327

Итак у нас есть адаптер ELM327 Bluetooth версии 1.5, телефон на базе Android с установленной программой InCarDoc free, Автомобиль с разъемом OBD-II. Теперь можно приступить непосредственно к диагностике:

4. Как только Вы успешно подключились к автомобилю его следует завести.
5. Диагностика автомобиля. Следуйте инструкции на картинке ниже. Что бы продиагностировать автомобиль перейдите во вкладку “Диагностика”, после нескольких секунд на экране появиться список ошибок которые есть в Вашем автомобиле. Сделайте скриншот экрана с ошибками, это необходимо для их дальнейшего изучения и поиска причины их возникновения. Теперь можете смело очистить их. Следуйте инструкции ниже:

ELM327 Bluetooth версии 1.5, телефон на базе Android с программой InCarDoc free, OBD-II. Инструкция по работе с ELM327

сброс ошибок авто в программе InCarDoc free

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

ELM327 Bluetooth версии 1.5, телефон на базе Android с программой InCarDoc free, OBD-II. Инструкция по работе с ELM327

Вывод на экран динамических параметров авто в программе InCarDoc free

7. Что бы закончить работу со сканером ELM327 просто нажмите кнопку “Отключить” в программе InCarDoc free. Заглушите двигатель автомобиля и извлеките сам сканер из диагностического разъёма OBD-II.

Заключение

Из приведенной мной инструкции видно, что диагностика автомобиля это несложная процедура. Всего в несколько легких действий Вы сможете самостоятельно диагностировать автомобиль и при необходимости сбросить ошибки. Так-же можно изучать характеристики автомобиля, по их результатам выявляются более серьезные поломки. Зачем платить кому-то деньги, если вы и сами с легкостью сможете вылечить свой автомобиль. А если и не получиться самостоятельно устранить дефект в автомобиле, то на сервис Вы поедите уже с проблемой, так как знаете что конкретно у Вас сломано. В таком случае сервису будет сложнее содрать с Вас деньги за дополнительные услуги или вовсе Вас обмануть!
Как Вам такая ситуация? Автомобиль сломался далеко от сервиса, а поломка очень простая (например от вибрации выскочила фишка с датчика). Можно только представить сколько в таком случае этот копеечный сканер сэкономит Вам денег!

OBD2 reader — диагностика автомобиля

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

Существует несколько вариаций адаптера ELM327, которые классифицируются по способу передачи данных – Bluetooth, WIFI, USB. Исходя из того что целью разработки является мобильное устройство под операционной системой Android можно подобрать две наиболее подходящие версии ELM327, такие как Bluetooth и WIFI. Так как способ получения и обработки данных один, а отличаются они всего лишь вариантами подключения к адаптеру, то можно выбрать всего один, организовать при помощи него диалог, а после добавить остальные варианты подключения.

ELM327 1.5 vs ELM327 2.1

Одной из первых проблем, с которыми можно столкнуться стала проблема выбора непосредственно адаптера, в нашем случае Bluetooth. Оказывается если вам необходимо поддерживать все (по крайней мере большинство) автомобилей необходимо выбирать версию v1.5 вместо v2.1, что на самом то деле необходимо несколько раз уточнить при покупке адаптера, потому как продавцы пытаются выдать версию адаптера не за ту, которая есть на самом деле, т. к. они особо ничем не отличаются. На деле же в версии v2.1 отсутствует поддержка протоколов J1850 PWM и J1850 VPW, что говорит о том, что у вас не получится подключиться к автомобилям, которые используют эти протоколы.

Подключение

Подключение к адаптеру происходит в несколько этапов:

AT Z [reset all]
Сброс настроек адаптера до заводского состояния.
AT L1-0
Включить/Отключить символы перевода строки.
AT E1-0
Echo on – off
AT H1-0
Headers on – off
AT AT0-1-2
Adaptive Timing Off — adaptive Timing Auto1 — adaptive Timing Auto2
AT ST FF
Установить таймаут на максимум.
AT D [set all to Default]
Сброс настроек в исходное, настроенное пользователем состояние.
AT DP [Describe the current Protocol]
Сканер способен самостоятельно определять протокол автомобиля, к которому он подключен.
AT IB10 [set the ISO Baud rate to 10400]
Команда устанавливает скорость обмена данных для ISO 9141-2 и
ISO 14230-4 10400
AT IB96 [ set the ISO Baud rate to 9600]
Команда устанавливает скорость обмена данных для ISO 9141-2 и
ISO 14230-4 9600 для протоколов 3,4,5.
AT SP h [ Set Protocol h]
Команда выбора протокола h, где h:

0 – Automatic;
1 — SAE J1850 PWM (41.6 Kbaud);
2 — SAE J1850 VPW (10.4 Kbaud);
3 — ISO 9141-2 (5 baud init, 10.4 Kbaud);
4 — ISO 14230-4 KWP (5 baud init, 10.4 Kbaud);
5 — ISO 14230-4 KWP (fast init, 10.4 Kbaud);
6 — ISO 15765-4 CAN (11 bit ID, 500 Kbaud);
7 — ISO 15765-4 CAN (29 bit ID, 500 Kbaud);
8 — ISO 15765-4 CAN (11 bit ID, 250 Kbaud);
9 — ISO 15765-4 CAN (29 bit ID, 250 Kbaud);
AT SP Ah [Set Protocol h with Auto]

Команда устанавливает по умолчанию протокол h, если подключение по протоколу h не удалось, тогда адаптер начинает автоматический подбор протокола.

Исходя из описанных выше команд, формируем инициализационную строку.

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

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

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

Считывание диагностических данных

Для считывания диагностических данных используются специальные команды PID’s.
PID (Parameter id’s — Бортовые диагностические идентификаторы параметров) – коды, которые используются для запроса показателей определенных датчиков автомобиля.

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

Также есть возможность получать текущие данные от автомобиля при этом команда получения данных от авто будет иметь вначале 01, указывая на то что мы хотим получить real data. Если же мы хотим получить сохраненные данные автомобиля, то вначале команды необходимо указать 02. Например, команда для получения текущей скорости автомобиля – 010D, а для получения сохраненной скорости – 020D.

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

0100 – PIDs supported [01 — 20]
0120 – PIDs supported [21 — 40]
0140 – PIDs supported [41 — 60]
0160 – PIDs supported [61 — 80]
0180 – PIDs supported [81 – A0]
01A0 – PIDs supported [A1 — C0]

Я продемонстрирую как определить какие датчики присутствуют в автомобиле при помощи одного из пидов. Например:

Используя следующую табличку можем определить какие пиды поддерживаются нашим автомобилем, начиная от 01 до 20:

Исходя из получившихся данных можем определить, что наш автомобиль поддерживает следующие пиды:

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

Считывание и расшифровка ошибок автомобиля

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

А теперь пояснение.

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

3, 4, 5 символы формируются по этой таблице:

Исходя из этого можем попробовать разобрать следующий ответ 0001000000111110

Эпилог

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

Источники:

https://family-auto. ru/elm327-obd2/

https://habr. com/ru/post/444726/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: