สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เอกสารนี้นำเสนอวิธีการแฮ็คสตรีม OBD ของรถยนต์ที่เรียบง่ายและคุ้มค่า ในนี้ฉันกำลังพยายามแสดงวิธีทั่วไปในการรับข้อมูล OBD
ที่นี่ฉันใช้ Arduino UNO, CAN-Bus shield (1.2), สายเคเบิล DB9 สำหรับเชื่อมต่อกับพอร์ต OBD และสำหรับการเขียนโปรแกรม Arduino IDE (ซึ่งช่วยในการเบิร์นโค้ดไปยัง uno ได้อย่างง่ายดาย)
ฉันเริ่มโครงการนี้เพื่อสร้างระบบล็อคประตูอัตโนมัติเมื่อรถมีความเร็ว 20 กม. และม้วนกระจกหน้าต่างทั้งหมดโดยอัตโนมัติเมื่อรถล็อคจากภายนอก
ในการค้นหาข้อมูลที่ผลิตจากพอร์ต OBD จำเป็นต้องวิเคราะห์และทำความเข้าใจข้อมูลก่อนเริ่มโครงการนี้ (ต้องใช้ความอดทนและต่อเนื่องมากขึ้น)
เรื่องราวเริ่มต้นขึ้นที่นี่ (ฉันกำลังลองใช้ Hyundai Grand i10, Magna, 2019 - ผลิตในอินเดีย ข้อมูลจะแตกต่างกันไปตามผู้ผลิต / รุ่นต่างๆ ฯลฯ)
ขั้นตอนที่ 1: ลิงก์การจัดซื้อฮาร์ดแวร์
- ตัวป้องกัน CAN-bus Arduino - ตัวป้องกัน CAN-bus
- Arduino UNO - Arduino UNO
- พอร์ต OBD ไปยังสายเคเบิล DB9 - สายเคเบิล DB9
ขั้นตอนที่ 2: จัดระเบียบฮาร์ดแวร์ IDE และสิ่งจำเป็นอื่นๆ
ก่อนเริ่มโครงการ เราต้องตรวจสอบให้แน่ใจว่าฮาร์ดแวร์ทั้งหมดที่ใช้สำหรับโครงการนี้ควรตรวจสอบและทำงานตามที่คาดไว้ ดังนั้นเราจึงต้องเชื่อมต่อฮาร์ดแวร์เข้ากับพอร์ต OBD และต้องแน่ใจว่าไม่มีควันหรือความร้อนที่ไม่จำเป็นที่ผลิตจากฮาร์ดแวร์ จากนั้นเราต้องเบิร์นโค้ดตัวอย่างเพื่อให้แน่ใจว่าฮาร์ดแวร์สามารถอ่านสตรีมข้อมูลจาก OBD ได้
ขั้นตอนแรกเริ่มต้นที่นี่ ตั้งค่า Arduino IDE ในเครื่อง และตรวจสอบให้แน่ใจว่าได้ติดตั้งไลบรารีที่จำเป็นไว้ เปิดหลังจากเชื่อมต่อ arduino uno กับคอมพิวเตอร์แล้วเราก็เลือกพอร์ตอนุกรมที่เชื่อมต่อและประเภทบอร์ดใน Arduino IDE
โค้ดตัวอย่างควรดาวน์โหลดจากที่เก็บ git และเบิร์นโค้ดไปยัง Arduino Uno จากนั้นเราเชื่อมต่อชิลด์กับพอร์ต OBD แล้วจึงเริ่มการอ่านสตรีมข้อมูล
ที่เก็บ Git -
github.com/JijovarghesePunalur/CarHacks.git
คุณสามารถรับโค้ดตัวอย่างและไลบรารีสำหรับเชื่อมต่อและแยกสตรีมข้อมูล Can-bus หลังจากการโคลนโปรเจ็กต์ คุณสามารถคัดลอกไฟล์ไลบรารีภายในโฟลเดอร์ไฟล์ arduino และดำเนินการคอมไพล์และเบิร์นกระบวนการใน arduino IDE
ก่อนเบิร์นโค้ดลง Arduino Uno คุณต้องเชื่อมต่อ Arduino กับคอมพิวเตอร์ก่อน จากนั้นจึงเลือก Serial Port และประเภทบอร์ดใน Arduino IDE
ในโฟลเดอร์ตัวอย่าง คุณสามารถดู การดำเนินการอ่าน การดำเนินการเขียน และไฟล์ Serial-Message โดยทั่วไปเนื้อหาที่สร้างโดยใช้ไฟล์ไลบรารีทั่วไป Serial-Message แตกต่างกับโปรแกรม Read ตามรูปแบบเอาต์พุต ซึ่งในโปรเจ็กต์นี้ ฉันพยายามใช้ can-utils ใน linux เพื่อคัดแยกข้อความที่เกิดซ้ำ
การใช้งานและการทำงานของ can-utils สามารถพบได้ในไฟล์ Readme.md ของ CarHaks
ขั้นตอนที่ 3: ลิงก์วิดีโอ
วิดีโอนี้จะให้แนวคิดที่ชัดเจนเกี่ยวกับสตรีมข้อมูล CAN-bus (พอร์ต OBD) มันอาจจะง่ายเพราะฉันใส่เฉพาะข้อมูลที่จำเป็นเท่านั้น
ขั้นตอนที่ 4: ทำเองและเซอร์ไพรส์
เขียนกลับไปที่ CAN-bus โดยใช้ข้อมูลที่แยกออกมาโดยใช้ Serial Message ซึ่งจะทำให้คุณประหลาดใจมาก (คุณสามารถหาโปรแกรมเขียนได้ในที่เก็บ ลองใช้เลย)
คุณสามารถควบคุมทุกอย่างที่เชื่อมต่อกับ ECU / BCM เพียงวิเคราะห์ข้อมูลแล้วเขียนกลับ
โครงการต่อไปจะขึ้นอยู่กับการศึกษานี้ - การควบคุมรถยนต์โดยใช้สมาร์ทโฟน