Визуализация данных считываемых с ELM327 адаптера через bluetooth на arduino | BayRepo. ХобТех – электроника, программирование, эксперименты, исследования
Появилась идея реализовать визуализатор для данных собираемых автомобильным OBD2 адаптером на базе ELM327 с поддержкой BlueTooth соединения. Хотелось обойтись без использования TorqueLite/Pro и прочих программных компонент, требующих наличие телефона.
Взаимодействие и считывание было решено организовать с помощью Arduino Nano. Платка маленькая, большое число готовых библиотек для реализации задумки, а так же возможно питание от аккумулятора 12-ю вольтами. Т.к ток потребления сравнительно не большой, то перегрева внутреннего стабилизатора не должно быть. В крайнем случае можно поставить внешний стабилизатор до 7 вольт с радиатором, а далее уже внутренний стабилизатор на плате справится без перегрева.
Для взаимодействия был выбран модуль BlueTooth HC05/06. Все имелось в наличии, поэтому поле для экспериментов было открыто.
По задумке управляться устройство должно следующим способом:
- сенсорная кнопка, нет дребезга и не требует усилий при нажатии.
- переключатели, для отключения питания и принудительного сброса сохраненных настроек.
Первым делом возник вопрос, а ка же проверять работоспособность схемы и программы, не гонять же постоянно автомобиль. И решение было найдено, есть программа эмулятор, которая успешно запустилась под Windows 10. Программа называется OBDSim – https://icculus.org/obdgpslogger/obdsim.html.
Выглядит при запуске примерно вот так:
И может подцепиться при запуске к COM порту. Запускать нужно в командном окне, командой:
obdsim.exe -w COM9
ну или тем COM портом, который создался при сопряжении с блутуз адаптером. Сам процесс сопряжения показан на видео в конце статьи.
Изначально была проведена операция сопряжения obdsim с TorqueLite, чтоб убедиться, что сопряжение работает и команды посылаемые в obdsim и ответы, воспринимаются корректно.
Это был первый этап – проверка. Второй этап – компьютер с obdsim выступает в роли мастера, а arduino nano в связке с HC06(который может быть только в роли slave) в роли ведомого.
Для arduino nano была набросана простая программа с использованием ELMDuino и вновь симуляция закончилась успехом. Весь процесс соединения и работы устройства показан на видео в конце статьи.
И третий этап – это окончательная реализация визуализатора на HC05 в режиме master.
Сразу было решено, что сопрягать ELM327 и визуализатор нужно в автоматическом режиме, т.е перевод HC05 в режим приема команд должен сам микроконтроллер.
Была найдена библиотека, которая с небольшими изменениями (перевел ее с Serial, на SoftwareSerial) отлично заработала в проекте.
Окончательная схема получилась такая:
и примерно так выглядит на макетке:
только аккумулятор 12В.
На HC05 я напаял два проводка на выходы 34 – CMD и выход 11 – RESET.
И эти проводки были подсоединены к микроконтроллеру для перевода HC05 в режим передачи данных или в режим приема команд, а так же для жесткого сброса (hardReset).
В режиме команд МК посылает HC05 следующие команды:
AT+INIT AT+ORGL AT+ROLE=1 AT+RESET AT+INIT AT+RMAAD AT+CMODE=1 AT+INQM=0,6,20 AT+CLASS=0 AT+INQ
Данный набор команд ищет все видимые устройства и по очереди показывает MAC адреса данных блутуз устройств на дисплее.
Если за время отображения адреса нажать на сенсорную кнопку, то адрес запишется в постоянную память микроконтроллера и HC05 будут отправлены следующие команды:
AT+INQC AT+RESET AT+INIT AT+CMODE=0 AT+PSWD=XXXX AT+RESET AT+INIT AT+PAIR=XXXXXX,XX,XXXX,30 AT+BIND=XXXXXX,XX,XXXX AT+LINK=XXXXXX,XX,XXXX
После данного набора команд в Windows 10 появляется окошко с запросом пароля и устанавливается сопряжение. В автомобиле же в ELM327 просто устанавливается сопряжение. Работа данного устройства также показана в видео в конце статьи.
Далее HC05 сбрасывается командой HardReset и переводится в режим обмена данными. С этого момента перебираются различные скорости для SoftwareSeria от 4800 до 38400.
Как только сопряжение визуализатора и ELM327 или obdsim произошло, сразу отображается дисплей с отображаемым параметром:
Короткое однократное нажатие на сенсорную кнопку переключает следующий отображаемый параметр.
Долгое нажатие на сенсорную кнопку (более 5 сек, в этот момент светодиод начинает мигать) отображает экран со всеми доступными для считывания параметрами:
При выключении запоминается какой параметр отображался и на какой скорости осуществлялась связь с ELM327.
На текущий момент вот доступные для считывания параметры OBD2:
{ VEHICLE_SPEED, string5, NULL, string5_1 }, { ENGINE_RPM, string4, NULL, string4_1 }, { ENGINE_LOAD, string0, NULL, string0_1 }, { ENGINE_COOLANT_TEMP, string1, NULL, string1_1 }, { FUEL_PRESSURE, string2, NULL, string2_1 }, { INTAKE_MANIFOLD_ABS_PRESSURE, string3_0, string3_1, string3_2 }, { TIMING_ADVANCE, string6, NULL, string6_1 }, { INTAKE_AIR_TEMP, string7, NULL, string7_1 }, { MAF_FLOW_RATE, string8, NULL, string8_1 }, { THROTTLE_POSITION, string9, NULL, string9_1 }, { RUN_TIME_SINCE_ENGINE_START, string10, NULL, string10_1 }, { DISTANCE_TRAVELED_WITH_MIL_ON, string11_0, string11_1, string11_2 }, { FUEL_RAIL_PRESSURE, string12_0, string12_1, string12_2 }, { FUEL_RAIL_GUAGE_PRESSURE, string13_0, string13_1, string13_2 }, { FUEL_TANK_LEVEL_INPUT, string14, NULL, string14_1 }, { ABS_BAROMETRIC_PRESSURE, string15, NULL, string15_1 }, { CONTROL_MODULE_VOLTAGE, string16, NULL, string16_1 }, { ABS_LOAD_VALUE , string17, NULL, string17_1 }, { RELATIVE_THROTTLE_POSITION, string18, NULL, string18_1 }, { AMBIENT_AIR_TEMP, string19, NULL, string19_1 }, { ETHONOL_FUEL_PERCENT, string20, NULL, string20_1 }, { RELATIVE_ACCELERATOR_PEDAL_POS, string21_0, string21_1, string21_2 }, { ENGINE_OIL_TEMP, string22, NULL, string22_1 }, { FUEL_INJECTION_TIMING, string23, NULL, string23_1 },
Вот сам код для Arduino IDE. Для сборки необходимо установить библиотеки:
- Adafruit_GFX_Library
- Adafruit_SSD1306
- BluetoothHC05 – https://github.com/BayRepoOrg/Bluetooth_HC05
- ELMDuino
- U8g2_for_Adafruit_GFX
U8g2- GFX_Library_for_Arduino
Все библиотеки есть в стандартном менеджере библиотек, кроме BluetoothHC05, которая скачивается с указанного репозитория.
Для сброса запомненных данных: адреса блутуз устройства и скорости, нужно отключить питание визуализатора, и законнектить переключателем присоединенным к ножке d12 контроллера на землю и включить визуализатор, данные мгновенно будут стерты из памяти. Обратное отключение питания и отключения земли от ножки D12 вернет МК в стандартное рабочее состояние и он снова начнет искать доступные BlueTooth устройства.
Видео моделирования:
ELM 327 mini
ELM 327 miniEnglish Русский
₽ RUR$ USD€ EUR- Описание
- Отзывы (0)
v. 2.1
ELM 327 mini v.2.1
Кнопка включения позволяет использовать Ваш диагностический адаптер на постоянной основе не извлекая его из диагностического разъема.
Небольшой размер. Полный функционал.Читает и удаляет коды ошибок («CheckEngine»). Функционал OBD2-адаптером ELM327 Bluetooth Micro New v1.5 зависит от используемого Вами программного обеспечения.
Рабочие протоколы:
– ISO15765-4 (CAN-шина): Mitsubishi ,Audi, Opel, Porsche, Volvo, Jaguar, VW, Ford, Saab,Renault, Peugeot, Chrysler, Mazda,
– ISO9141-2: Nissan, Lexus, Porsche, Toyota, Audi, Honda, BMW, Mercedes, Infinity
– ISO14230-4 (KWP2000): Hyundai, Daewoo, KIA
В комплекте с OBD2-адаптером ELM327 Bluetooth Micro New Вы получите диск с программами.
Технические характеристики:
Питание: от встроенного OBDII-разъема автомобиля.
Потребляемый ток: 45 мА.Радиус работы: до 10 метров в помещении.
Скорость обмена данными: 38400 или 9600 кбит/с. Индикаторы на корпусе: OBD Tx/Rx, RS232 Tx/Rx, питание.
Кнопка вкл/выкл адаптера без извлечения из разъема.
Встроенная защита от перегрузок питания и короткого замыкания.
Пока нет отзывов
Оставить отзыв
Все поля обязательны к заполнению
Перед публикацией отзывы проходят модерацию
Не забудьте купить
2 700 ₽
Android толщиномер
от 990 ₽
ПодробнееBluetooth сканер ELM 327
11%
16 900 ₽
(ДОРАБОТАН) Delphi ds150e Одноплатный (5V)
8%
21 900 ₽
(ДОРАБОТАН) Delphi ds150e CARS (5V)
8%
22 900 ₽
(ДОРАБОТАН) Delphi ds150e TRUCKS
40%
2 990 ₽
ELM 327 Ford-Mazda USB
3 490 ₽
ELM 327 Ford-Mazda BT
1 500 ₽
ELM 327 v. 1.4-1.5 Green USB
1 500 ₽
ELM 327 mini
2 500 ₽
K Line USB VAG COM KKL (Русская версия)
15 900 ₽
Ford VCM автосканер Ford VCM II
31%
от 24 900 ₽
ПодробнееCummins Inline 6
Вам также могут понравиться
31%
от 24 900 ₽
ПодробнееCummins Inline 6
2 500 ₽
K Line USB VAG COM KKL (Русская версия)
от 990 ₽
ПодробнееBluetooth сканер ELM 327
1 500 ₽
ELM 327 mini
2 700 ₽
Android толщиномер
40%
2 990 ₽
ELM 327 Ford-Mazda USB
15 900 ₽
Ford VCM автосканер Ford VCM II
1 500 ₽
ELM 327 v.