Программа obd2 для Андроид как работает

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

Выбор подключения

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

Как пользоваться блютуз автосканером ELM327? Как подключить/Считать ошибки/Список программ

Существует несколько вариаций адаптера 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, что говорит о том, что у вас не получится подключиться к автомобилям, которые используют эти протоколы.

Подключение

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

  • Подключение к адаптеру (Bluetooth, WIFI)
  • Отправка инициализационных команд (инициализационной строки)

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 не удалось, тогда адаптер начинает автоматический подбор протокола.

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

initializeCommands = Arrays.asList(«ATZ», «ATL0», «ATE1», «ATH1», «ATAT1», «ATSTFF», «ATDP», «ATSP0»);

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

Так же желательно обратить внимание на команду 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]

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

  • 0100 \ запрос
  • BB1E3211 \ ответ от авто

BB1E3211(16) > 10111011000111100011001000010001(2)

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

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

01, 03, 04, 05, 07, 08, 0C, 0D, 0E, 0F, 13, 14, 17, 1C, 20

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

Хотя это ограничивает некоторый функционал приложения. Например, запись истории.

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

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

  • 03 – Для отображения сохраненных кодов ошибок
  • 0A – Для отображения постоянных кодов ошибок.

private final static char[] dtcLetters = ; private final static char[] hexArray = «0123456789ABCDEF».toCharArray(); private void performCalculations(String fault) < final String result = fault; String workingData = «»; int startIndex = 0; troubleCodesArray.clear(); try < if (result.contains(«43»)) < workingData = result.replaceAll(«^43|[rn]43|[rn]», «»); >else if (result.contains(«47»)) < workingData = result.replaceAll(«^47|[rn]47|[rn]», «»); >for(int begin=startIndex; begin < workingData.length(); begin += 4) < String dtc = «»; byte b1 = Utility.hexStringToByteArray(workingData.charAt(begin)); int ch1 = ((b1 > 6); int ch2 = ((b1 > 4); dtc += dtcLetters[ch1]; dtc += hexArray[ch2]; dtc += workingData.substring(begin + 1, begin + 4); if (dtc.equals(«P0000»)) < continue; >troubleCodesArray.add(dtc); > > catch (Exception e) < Log.e(TAG, «Error: » + e.getMessage()); >>

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

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

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

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

Код ошибки: P103E

Эпилог

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

Матвиенко Александр, Хоссейн Фахр.
P.S. Оригинальную английскую версию статьи можно найти здесь

  • android development
  • obd2
  • автомобиль
  • автомобильные технологии
  • Java
  • Разработка под Android
  • IT-стандарты
  • Автомобильные гаджеты

Источник: habr.com

Автосканер ELM 327. Как работает

Есть разные приборы, способные провести электронную диагностику автомобиля своими руками. Один из них — автосканер ELM327. Расскажем что это, как пользоваться и какие программы (на русском языке) для работы нужны.

Что такое ЕЛМ 327

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

Например, на панели приборов загорелась лампочка «ошибка двигателя». Что она означает? С помощью сканера ELM 327 можно узнать точный вид неисправности — какая из систем не работает. После устранения данной ошибки можно её стереть из памяти . В результате погаснет сообщение на панели приборов и не надо ради этого заезжать в автосервис.

В качестве примера приведем автомобиль Лада Веста. У него указатель температуры двигателя не совсем корректный. При температуре от 55 до 90 градусов стрелка всегда показывает только «90». С помощью адаптера ЕЛМ-327 и приложения для смартфона можно перевести указатель температуры в прежний режим с плавным перемещением стрелки.

Что ещё может

  • Проверить нет ли ошибок в «мозгах» двигателя и стирание кодов неисправностей.
  • При покупке подержанной машины проверить совпадает ли VIN-номер с документами.
  • Замер времени разгона.
  • Вывод текущих параметров работы системы управления двигателя и коробки передач.
  • Подкорректировать алгоритм работы вариатора.
  • Сдвинуть температуру включения вентилятора системы охлаждения.
  • Сбросить показания датчика старения жидкостей.
  • Настройка запирания дверей при наборе скорости, прописка форсунок, адаптация дросселя, обслуживание сажевого фильтра, тест подешек безопасности и другие параметры.

Как подключить

Он подходит для всех машин, в которых есть разъем OBD2 (обычно расположен под рулевой колонкой). Данный прибор совместим с автомобилями из США, которые выпущены после 1996 года и из Европы, произведенные после 2001 года (если дизель, то после 2004 г.). На некоторых авто, выпущенных в 2003 году, сканеры могут не действовать. Поэтому перед покупкой уточняйте совместимость вашей машины и сканера.

Читайте также:
Топ программы для создания программ на компьютер

Размеры бывают стандарт — 5 на 3 сантиметра или мини, практически в 2 раза меньше. Большую популярность приобрела модификация ЕЛМ 327, в котором используется технология Bluetooth (соединение с телефоном без проводов). Особенно популярна версия v 1.5 . Она проста в управлении, поддерживает гораздо больше протоколов, надежная, недорогая.

Версия 2.1 нужна для современных автомобилей и использования всех распространенных диагностических программ. Для обычного автолюбителя версия 1.5 — предпочтительней.

Программы для работы

Есть много русскоязычных приложений для проведения диагностики машины. Среди них есть бесплатные версии и платные. Рассмотрим программы, которые совместимы с автосканером. Как правило, ПО прилагается к сканеру в комплекте. Но даже при его отсутствии, найти требуемое ПО можно в интернете и загрузить через Гугл Плей на смартфон с поддержкой Андроид.

Программа Torque

Очень удобная программа, считается одной из лучших. Есть бесплатная версия Lite и более полная Pro. Функционал приложения широко проявляется при использовании версии Pro. Но версия Lite не бесполезная. С ней реально проверить исправность сканера, а также то, совместим ли он с вашей машиной.

Также Torque Lite способна на отображение множества параметров и на сброс ошибок.

  1. диагностирование ошибок Check-Engine;
  2. вывод параметров онлайн на виртуальной панели приборов (напряжение АКБ, скорость, точные обороты тахометра, температура мотора);
  3. оповещение в случае, если показания параметров критичны;
  4. подсчет расхода топлива и сколько будет стоить поездка;
  5. есть возможность создания видео-записи во время перемещения автомобиля, здесь также потребуется плагин TrackRecorder.

Из минусов — не вся программа переведена на русский язык. Это также относится и к версии Pro, которая не бесплатная. Несмотря на данный факт программа пользуется наибольшим спросом среди автолюбителей.

Программа OBD Авто Доктор

  • считывание ошибок и их раскодировка;
  • сброс ошибок;
  • прочтение параметров онлайн;
  • прочтение VIN-номера кузова.

OpenDiag на базе Android

Ее название OpenDiag Mobile, а возможности намного больше, если сравнивать с аналогами. Приложение диагностирует электронные системы инжекторных машин отечественного выпуска, если будет подсоединен автосканер ELM327. Эта версия бесплатная, набрала тысячи позитивных отзывов в сети.

Некоторые нюансы

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

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

ELM 327 – нужная вещь для владельца и подходит для личного использования. Особенно он пригодится тем людям, которым часто необходимо обнулять ошибки двигателя. Это выгодней, чем обращаться в автосервис.

Источник: amastercar.ru

ELM327 — что это такое. Как им пользоваться? И причем тут версия 1.5 и 2.1

Меня уже давно просят высказать по диагностическому сканеру, который носит название ELM327. Он получил широкое распространение в нашей стране благодаря «китайским товарищам» которые сейчас производят (хреначат) его аналоги на своих заводах (что говорится не покладая рук). Сегодня мы разберемся, что это такое, зачем оно нужно, как им пользоваться, ну и собственно какую выгоду он может принести обычному водителю, а не диагносту. В общем все по полкам, будет и видео версия в конце …

ELM327 - как пользоваться

  • Что это такое?
  • Зачем нужен и что он вам дает?
  • Версия 1.5 и 2.1 в чем разница?
  • Как им пользоваться?
  • Моя практика
  • ВИДЕО ВЕРСИЯ
  • ИТОГ

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

По многим просьбам оставляю ссылку на проверенного продавца на АЛИЭКСПРЕССЕ — ПЕРЕЙТИ, хотя бы просто зайдите и посмотрите.

Что это такое?

ELM327 – изначально это название оригинального микроконтроллера. Это диагностический сканер, который был разработан (если сейчас мне не изменяет память) в Канаде, одной очень серьезной компанией. Подключается он по протоколу OBD2, через специальный универсальный разъем (одинаковый во всех современных авто), может сопрягаться с ЭБУ вашего автомобиля.

ОРИГИНАЛ ОЧЕНЬ дорогой. Цены на различные вариации начинаются от 4500 и до 15000 рублей (самый дорогой, что я видел, оснащенный дисплеем). Однако китайцы, купили этот аппарат (если выразится грубо) разобрали его, посмотрели внутренности, изготовили практически такие же микроконтроллеры (по другой информации оригинальный производитель собирал их в Китае), считали прошивку. И начали штамповать (зачастую подпольно), максимально удешевленные устройства.

Авто сканер

Подключения могут быть:

  • Проводные, через COM или USB порт
  • Беспроводные, либо через Bluetooth, либо через WIFI

Сути это не меняет, работает он всегда одинаково. Для того чтобы вам считать информацию, нужно поставить специальное программное обеспечение, либо:

  • НА компьютер
  • НА планшет
  • Или телефон

Сейчас это вообще не играет никакой роли. ХОЧЕТСЯ отметить, что профессиональные сканеры могут иметь свой дисплей, на котором будет отображение информации.

Зачем нужен и что он вам дает?

Любой диагностический прибор заточен на диагностику и считывание ошибок с вашего автомобиля. Например, если у вас загорелся CHECK ENGINE, вы подключаете в разъем этот прибор, подключаете смартфон, планшет или компьютер, считываете ошибку и далее по коду в интернете, можно найти что вышло из строя.

Сheck Engine

Кстати он может и «тушить» (сбрасывать) этот «CHECK» на панели приборов. Однако если вы не устраните проблему, то он опять загорится через определенное время.

Ошибки

Однако это профессиональные приборы, но у нас же «чудо из Китая» и он может намного больше, читает скорость, расход топлива, разгон, потребление воздуха температуры и т.д., некоторые функции реально полезные, лично мне они очень помогают (про это чуть позже).

Читайте также:
Программа это способ записи алгоритма

Версия 1.5 и 2.1 в чем разница?

Опять же на «АЛИ» есть различные версии таких ELM327, одни работают на прошивке версии 1.5, другие на 2.1. Но брать свежую — я вам не советую!

В чем тут критичное различие:

Версия 1.5 была полностью клонирована с оригинального сканера, то есть участие китайцев тут минимальное (просто содрали и залили в свой девайс). Однако «ЖЕЛЕЗО» все же китайское, да и сборка зачастую подвальная. Поэтому нужно выбирать правильных продавцов, как говорится «проверенных временем». Эта версия прошивки поддерживает большое количество свежих автомобилей, а также старых (которым больше 10 лет). Работает относительно безотказно и стабильно.

Подключение

Версия 2.1 это свежая версия прошивки, залитая в тоже «ЖЕЛЕЗО». Однако здесь к ней приложили руку китайские программисты, выкинули много функций которые по их мнению не нужны. Отсюда не видит большое количество автомобилей (особенно тех которым больше 10 лет), то есть можете купить такой ELM327, а он банально не подключится к вашему ЭБУ и ничего не прочитает. ДА и стабильность, оставляет желать лучшего. Вот почему именно версия 2.1, так плохо продается, собственно я вам ее и не советую.

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

Процесс появления не такой быстрый, даже новые на вид авто, зачастую используют старые ЭБУ, а поэтому ELM327 с «АЛИ» будет жить еще долго. Главное брать 1.5 версию.

Как им пользоваться?

Буду рассматривать самый распространенный, так называемый ELM327 mini, синего цвета, работает по Bluetooth. Именно его купили уже миллионы владельцев по всему миру.

Стоит отметить, что вам придется на свой планшет, а скорее всего на телефон, поставить специальные программы. Итак, теперь пошагово:

  • Выбираем программу на смартфон, их реально сотни в Google Play (лично я пользуюсь ANDROID), думаю на IPHONE их также много. Однако большое распространение получила программа «TORQUE» (она простая и понятная). Есть бесплатная версия, так называемая «LITE», а есть платная «PRO» (стоимость 165 рублей, однако многие «умельцы» могут найти ее бесплатно). И в бесплатной версии вы сможете сбрасывать ошибки, смотреть различные параметры и т.д. Однако «PRO» версия имеет другой интерфейс и расширенные возможности по считыванию температуры (именно этот параметр очень ценен для меня). Собственно ставим ее и дальше переходим к настройке и подключению

TORQUE

  • Идем к машине, в разъем подключаем наш ELM327, на смартфоне активируем Bluetooth, нужно выбрать в настройках именно наш девайс, вводим пароль, на многих китайских сканерах он либо «0000», либо «1234». В программе будет моргать машинка сверху, как только она перестанет моргать, значит соединение установлено!

Соединение

  • Все, дальше наслаждайтесь! Можете использовать встроенные функции, либо добавлять свои, есть очень большой список.
  • Отдельно хочется отметить что у этой программы нужно настроить специальные PID датчики, без них «прога» будет не видеть и не отображать большую часть датчиков. По умолчанию вшиты на такие автомобили как MERCEDES, FORD, GM, OPEL и еще несколько. НО НЕ НА ВСЕ! Чтобы их добавить переходим — шестеренка (на главной странице, слева внизу) — настройка — управление дополнительными PID — добавляем нужный набор.

Шестеренка

настройки

Управление PID

Добавляем набор

  • Однако не все наборы PID бесплатны. И например для KIA его нужно купить. Продается он также на GOOGLE PLAY

PID для KIA

  • Есть важная для многих функция считывания ошибок и их сброса. Вы поймете, в какую сторону смотреть и что делать (эту информацию даст вам код).

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

Моя практика

Вот лично я считаю, что у всех владельцев с АКПП, должен быть такой аппарат. Почему? ДА потому что просто вы можете считывать показания температуры, как с двигателя, так и с АКПП. Как известно перегрев автоматической трансмиссии — убивает ее, и неважно автомат у вас или вариатор. Перегрева быть не должно!

Температура должна находиться в пределах 90 – 100 градусов Цельсия. Если она у вас выше, то износ АКПП идет в разы быстрее. И вам нужно что-то делать.

Температура коробки

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

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

Сейчас небольшая видео версия смотрим.

ИТОГ

Что в итоге? Полезен ли китайский ELM за примерно 5 баксов (средняя цена) или это банально деньги на ветер? В целом я думаю — ПОЛЕЗЕН, 300 рублей не такие большие деньги, а ту информацию и возможности которые он дает – СТОЯТ реально намного больше (вспоминаем о АКПП). Ведь просто скинуть ошибку и прочитать ее код, на официальном СТО стоит в разы дороже, да и у «неофициалов» отдадите от 500 рублей, за один сеанс.

ELM327 - полезен

Есть конечно свои проблемы — не все они нормально работают, качество может хромать (бывает дикий подпольный Китай), можно нарваться на версию 2.1! Поэтому нужно брать у нормальных продавцов, с проверенными отзывами и репутацией, пусть он будет стоять у него немного дороже.

На этом собственно все! Читайте мой АВТОБЛОГ, подписывайтесь на обновления.

(77 голосов, средний: 4,49 из 5)

Источник: avto-blogger.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru