Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы
Здравствуйте.
Я разрабатываю приложение для поиска неисправностей автомобиля и расшифровки кодов ошибок его ЭБУ через elm327 (на данном этапе только по стандарту OBD2) на Android для развития навыков программирования на Java и здесь раскажу об итогах года и планах развития работы c elm327 в моем приложении.
После релиза я обещал выложить пост о продвижении приложения, ведь мало его создать, нужно еще и продвинуть как-то, чтобы его начали скачивать. После публикации на Пикабу в первый день было 30 скачиваний, затем некоторый провал на пару недель по два три скачивания в день и уже начали опускаться руки, от того, что никому это приложение не нужно, но потом после обработки алгоритмами GooglePlay приложение начало индексироваться и искаться в поиске по запросу "Расшифровка кодов ошибок". Сейчас приложение стало уже выходить на первых позициях в поиске по этому и подобным запросам. Денег на рекламу и мотивированные установки я пока не тратил ни копейки.
За год удалось заработать 100 долларов, мало конечно, но для начала достаточно.
После января 2019 года было очень много работы и почти до сентября не удавалось заниматься приложением, только базу расшифровок кодов ошибок пополнял периодически.
В ноябре обновил приложение и добавил около 20000 расшифровок ошибок определенных производителями. Также добавил возможность расшифровывать сразу несколько кодов ошибок, чтобы видеть более полную картину неисправностей в случае большого количества ошибок.
Но главная цель была сделать полный цикл поиска расшифровки ошибок в моем приложении и делать это не хуже, а может даже и лучше, чем другие аналогичные приложения. Для этого я начал искать, как читать данные через elm327 на Java.
И нашел! Библиотека obd-java-api (разработчик Pires) позволяет работать с bluetooth адаптером elm327 для взаимодействия с ЭБУ автомобиля. Интегрировав эту библиотеку в мое приложение, я получил возможность читать коды ошибок OBD2(система бортовой диагностики для систем, связанных с токсичностью выхлопных газов) попутно расшифровывая считанные коды ошибок, а также сбрасывать ошибки, связанные с токсичностью выхлопов и гасить лампу CheckEngine.
В будущем хочу добавить возможные причины неисправности для некоторых ошибок и может быть даже примерное расположение датчиков.
Что же дальше?
Во-первых мне необходимо понять, как ошибки читаются через мою программу на реальных автомобилях у пользователей (пока только тестировал на симуляторе с разными наборами возможных ошибок), а для этого нужна обратная связь от пользователей: какая марка, какого года выпуска, как много ошибок считалось (и удалось ли вообще), сбрасывается ли 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...