Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Компоненты и расходные материалы

Arduino UNO ×1
SparkFun CAN-BUS Shield ×1
Мужской заголовок 36 позиций 1 ряд (0.1") — для SparkFun CAN-Bus Shield ×1
Кабель SparkFun OBD-II — DSUB-9 — для международных стандартов ×1
Кабель OBD-II — DSUB-9 — для европейских/немецких стандартов ×1
CANdiy-Shield v2 CAN-Bus Shield — напряжение I/O переключаемо 3.3V/5V, совместим с 3.3V платами ×1
Корпус для Arduino (в магазине Arduino отсутствует, но можно найти у дистрибьюторов) ×1

Приложения и онлайн-сервисы

О проекте

Я езжу на электромобиле — Smart ForTwo Electric Drive. Здоровье тягового аккумулятора критично и поддерживается системой управления батареей (BMS). Она контролирует все 93 элемента во время заряда/разряда и следит за балансом напряжения. Обычно доступ к этому блоку управления имеют только сервисные инструменты.

Автомобиль оснащен GSM-модемом для получения данных о состоянии заряда (SOC), пробеге и прочей базовой информации. Некоторое время модем работал в расширенном режиме, собирая диагностические данные. Чтобы узнать, что именно передается, я решил прослушать CAN-шину.

Вдохновившись похожими проектами для других электромобилей (например, Nissan Leaf), я записал весь трафик CAN-шины во время езды и зарядки. Первые перехваченные потоки действительно содержали диагностические данные — но как их декодировать?

Подробности о прослушивании CAN-шины и реверс-инжиниринге описаны в отдельной статье.

Что необходимо

Приобретите нужное оборудование. В современных автомобилях физический уровень реализован через CAN-шину. Доступно как минимум два CAN-шилда — см. список компонентов. Необходимо подключиться к диагностическому разъему автомобиля — OBD-разъему, поэтому купите кабель или сделайте его сами. ВАЖНО: существуют два стандарта кабелей OBD — DSUB-9 — выберите правильный! См. фото ниже:

ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

При изготовлении собственного кабеля рекомендуется использовать старый витую пару. Одну из пар используйте для CAN-H и CAN-L — это улучшит целостность сигнала. Также не превышайте длину 1 метра, чтобы минимизировать отражения сигнала.

Начало работы

Шаг 1

Подготовьте оборудование и найдите подходящий корпус для плат.

ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Шаг 2

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

Шаг 3

Подключитесь к автомобилю и включите питание. Запустите диагностическую сессию и получите полезную информацию о батарейном пакете...

ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Шаг 4

Используйте табличный процессор для поиска коррелирующих данных. Например, сравните SOC (состояние заряда, с приборной панели) с реальным SOC от BMS. Или постройте график напряжений элементов и увидьте, что некоторые ячейки ограничивают пакет при зарядке, достигая порога отключения первыми...

ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Шаг 5

Улучшайте код по желанию — занимайтесь своим хакерством. У SparkFun Shield есть слот для SD-карты, поэтому можно сделать свой CAN-логгер. Или создайте красивый фронтенд/приложение для отображения данных...

Надеюсь, этот инструмент будет полезен — удачи!

Код

ED_BMSdiag — ПО для Arduino

https://github.com/MyLab-odyssey/ED_BMSdiag.git

Схемы

Для SparkFun CAN-Bus Shield:
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Для CANdiy-Shield:
ED BMSdiag – Набор для диагностики CAN‑BUS и OBD‑II на базе Arduino

Производственный процесс

  1. Профессиональное руководство по анимации битмапов на TFT-экране ILI9341 2.4" с Visuino
  2. Веб-управляемая DMX-система освещения: Arduino Mega как мастер-контроллер
  3. Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
  4. FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
  5. DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
  6. Создание пользовательских LED-часов с будильником — видно с 12 метров
  7. HSV Clock: Яркие, настраиваемые часы для энтузиастов Arduino
  8. Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
  9. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  10. Оптимизированные решения питания для проектов на Arduino