Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы

Здравствуйте.

Я разрабатываю приложение для поиска неисправностей автомобиля и расшифровки кодов ошибок его ЭБУ через elm327 (на данном этапе только по стандарту OBD2) на Android для развития навыков программирования на Java и здесь раскажу об итогах года и планах развития работы c elm327 в моем приложении.


После релиза я обещал выложить пост о продвижении приложения, ведь мало его создать, нужно еще и продвинуть как-то, чтобы его начали скачивать. После публикации на Пикабу в первый день было 30 скачиваний, затем некоторый провал на пару недель по два три скачивания в день и уже начали опускаться руки, от того, что никому это приложение не нужно, но потом после обработки алгоритмами GooglePlay приложение начало индексироваться и искаться в поиске по запросу "Расшифровка кодов ошибок". Сейчас приложение стало уже выходить на первых позициях в поиске по этому и подобным запросам. Денег на рекламу и мотивированные установки я пока не тратил ни копейки.

Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

За год удалось заработать 100 долларов, мало конечно, но для начала достаточно.

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

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


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


И нашел! Библиотека obd-java-api (разработчик Pires) позволяет работать с bluetooth адаптером elm327 для взаимодействия с ЭБУ автомобиля. Интегрировав эту библиотеку в мое приложение, я получил возможность читать коды ошибок OBD2(система бортовой диагностики для систем, связанных с токсичностью выхлопных газов) попутно расшифровывая считанные коды ошибок, а также сбрасывать ошибки, связанные с токсичностью выхлопов и гасить лампу CheckEngine.


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

Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

Что же дальше?


Во-первых мне необходимо понять, как ошибки читаются через мою программу на реальных автомобилях у пользователей (пока только тестировал на симуляторе с разными наборами возможных ошибок), а для этого нужна обратная связь от пользователей: какая марка, какого года выпуска, как много ошибок считалось (и удалось ли вообще), сбрасывается ли CheckEngine. Возможно вы будете одним из этих пользователей и надеюсь мое приложение окажется вам полезным;


Во-вторых мне нужно добавить пользовательские строки инициализации Elm327, чтобы обеспечить чтение автомобилей с переходными протоколами, на смену которым пришел стандартизированный OBD2. Эти строки конечно уже есть во многих программах диагностики авто на Android, но мне интересно разобраться в этом на практике. В основном отличия в адресах ЭБУ двигателя и тестера, и обмене на уровне адресов блоков, а не функциональном адресе OBD2 по умолчанию в Elm327;


В-третьих, хочу решить (и надеюсь вы мне поможете в этом), что реализовывать в первую очередь и что вам нужнее для диагностики автомобиля:


Первый вариант - чтение кодов ошибок как можно большего количества блоков управления (доступных для чтения при стандартной распиновке модуля elm327) по протоколу UDS, а также сброс этих ошибок.

Для этого нужно каким-то образом найти адресацию запросов и ответов специфичных ЭБУ (для Renault я нашел много информации для размышления в Ddt4All, а вот на другие марки пока не получается найти (есть противоречивая информация по адресации блоков для BMW и VAG));


Второй вариант - чтение стандартных и нестандартных параметров (так называемых PID) с построением графиков. Правда добавлять кастомные csv файлы с PID как в Torque мне пока не по зубам, но запрограммировать максимальное количество наборов PID для разных моделей авто попробовать можно.


Сейчас у меня 75% пользователей, установивших мое приложение, почему-то удаляет его обратно, надеюсь этот показатель изменится в лучшую сторону после внедрения нового функционала..


В честь начала декабря и приближающегося нового года раздаю 31 промокод на ПРО-версию без рекламы и с возможностью делиться результатами расшифровки группы ошибок и поиска кодов ошибок через Elm327:

1) ZTD6GVFC7CGJQVVUW613LXV

2) SCF2180DG7FU5RTUTCKM0FV

3) 5KLL4PEJZVGJW9ZQSAEHER5

4) T4DXA32Y22NUHZQ3ET5145S

5) CTFC8JDGSZ4B6F667CC3QUA

6) 5D5S2YQ09XQK9LD7QR6HTUR

7) 2MQ9F7NZ85HBA44B4AQNPAM

8) 21LKGHQRFN7W0CP97SAQZGJ

9) 361EHRR1U7RUTMH0UDT18ZY

10) K3SD9AK4B7BE3A9NQEQ5GWY

11) 11FJ3YZQBZZW7LN4CPWT6Q7

12) H95TXKLX9RJP72W0S38G7LX

13) RHKSF35HBH4J36UTRDF0FW5

14) AF2CFTPK2ZYGF3Z61251DQP

15) HLUPZ4G7SJH2UJG452BSX29

16) 9HA0WCXXWMUKTMSVCT3RJV0

17) CSDZAZZD2WYDCS0MNNK63ZT

18) 91EASHV9WD9JPJPL8YMMAAF

19) 53L1RYKWWQV36PWEYG4BZA2

20) TGTY9HAALMXQT8SEC27R2SE

21) S57GQ9U8G8QC2WA5FSYKJYM

22) S21JT8ZEVZNPCRNTTZDEU2A

23) 2PBVJE2UYR1JM02R3LUM0YP

24) WP5V2R3TNP3TVVG24T2LALU

25) JF4Q77VXEZKUXR51W8EXUEA

26) 58XCRAJRW0Z5PYVH9J29M3A

27) BRT34K0C5G1KKKB00NPWT3V

28) 1A0KP8HVWFP7K6G95XC19NL

29) X8PBXVAG3GB2GM1UEJKNP85

30) GB5RR0RAXL64DG9KS86SBEW

31) TSTC0710SG9MMLWJU8N2CJ6


Просьба отписываться в комментариях о том, какой номер промокода вы использовали.


Если будут проблемы с активацией промокодов пишите на почту wheelsoftlab.tech@gmail.com


Для заинтересовавшихся вот ссылка на приложение: https://play.google.com/store/apps/details?id=ru.wheelsoft.f...