ED BMSdiag – Kit Diagnostik Arduino CAN-BUS dan OBD-II
Komponen dan Perlengkapan
- Arduino UNO — 1 unit
- SparkFun CAN-BUS Shield — 1 unit
- Male-Header 36 Posisi 1 Baris — Panjang (0,1") — untuk SparkFun CAN-Bus shield — 1 unit
- Kabel SparkFun OBD-II ke DSUB-9 — untuk "maker" internasional — 1 unit
- Kabel OBD-II ke DSUB-9 — untuk "maker" Jerman (atau Eropa) — 1 unit
- CANdiy-Shield v2 CAN-Bus Shield — tegangan IO dapat dipilih antara 3,3V dan 5V — 1 unit
- Kotak Arduino untuk Arduino — 1 unit
Aplikasi dan Layanan Online
Tentang Proyek Ini
Saya mengemobil listrik — smart for two electric drive. Kesehatan baterai traction sangat penting dan dipertahankan oleh sistem manajemen baterai (BMS). Sistem ini memantau semua 93 sel saat pengisian / pengosongan dan menjaga keseimbangan tingkat tegangan yang merata. Biasanya hanya alat service yang dapat membaca informasi dari ECU ini.
Mobil dilengkapi modem GSM untuk mengakses data status seperti state of charge (SOC), jarak tempuh yang tersedia, dan informasi sederhana lainnya. Untuk beberapa waktu, modem berada dalam mode extended untuk mengumpulkan informasi diagnostik mobil. Penasaran dengan isinya, saya mencoba menyisipkan ke CAN bus untuk mengetahui apa yang ditransmisikan.
Terinspirasi oleh proyek serupa untuk mobil listrik lain — seperti Nissan Leaf — saya mencatat lalu lintas CAN bus lengkap saat mengemudi atau saat memasang mobil. Aliran yang disisipkan pertama-tama benar-benar mencakup data diagnostik tersebut — tapi bagaimana cara mendekode-nya?
Anda akan menemukan detail tentang penyisipan CAN bus dan reverse engineering dalam artikel terpisah di sini.
Apa yang Dibutuhkan
Dapatkan perangkat keras yang diperlukan. Pada mobil modern, lapisan fisik dilakukan melalui CAN bus. Setidaknya ada dua shield CAN bus yang tersedia — lihat daftar komponen. Anda harus terhubung ke port diagnostik mobil — konektor OBD, jadi beli kabel atau buat sendiri. CATATAN: ada dua standar untuk kabel OBD ke DSUB-9 — pilih yang tepat!
Saat membuat kabel sendiri, ide bagus adalah menggunakan kabel jaringan twisted pair lama. Gunakan salah satu kabel yang berpasangan untuk CAN-H dan CAN-L. Ini akan meningkatkan integritas sinyal. Juga JANGAN melebihi 1 m panjang, untuk meminimalkan pantulan sinyal.
Mulai
Langkah 1
Siapkan perangkat keras dan temukan kotak yang bagus untuk papan.
Langkah 2
Unduh proyek dari repositori github saya. Lihat detail di sana untuk instalasi. Kompilasi kode dan flash ke Arduino.
Langkah 3
Hubungkan ke mobil dan nyalakan. Mulai sesi diagnostik dan dapatkan informasi berguna tentang paket baterai Anda...
Langkah 4
Gunakan program spreadsheet dan temukan data yang berkaitan. Misalnya bandingkan SOC (State of Charge, dari dasbor) dengan SOC asli dari BMS. Atau plot tegangan sel dan lihat bahwa beberapa sel membatasi paket saat pengisian, karena mereka mencapai batas pemadaman terlebih dahulu...
Langkah 5
Perbaiki kode jika Anda ingin — lakukan hacking sendiri. Shield Spakfun memiliki pembaca kartu SD, jadi Anda dapat membuat pencatat CAN bus sendiri.
Atau Anda buat frontend / app yang menampilkan data...
Saya harap alat ini berguna — Semoga senang!
Kode
ED_BMSdiag Arduino Software
https://github.com/MyLab-odyssey/ED_BMSdiag.git
Skematik
untuk Sparkfun CAN-Bus shield
untuk CANdiy-shield