สารบัญ:

Seeed Studio CAN-BUS V2.0 แฮ็ค - เริ่มต้นใช้งาน: 5 ขั้นตอน
Seeed Studio CAN-BUS V2.0 แฮ็ค - เริ่มต้นใช้งาน: 5 ขั้นตอน

วีดีโอ: Seeed Studio CAN-BUS V2.0 แฮ็ค - เริ่มต้นใช้งาน: 5 ขั้นตอน

วีดีโอ: Seeed Studio CAN-BUS V2.0 แฮ็ค - เริ่มต้นใช้งาน: 5 ขั้นตอน
วีดีโอ: DIY EV Part 1 - How to read the CAN Bus in your car using an Arduino Part 1 2024, พฤศจิกายน
Anonim
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน
Seeed Studio CAN-BUS V2.0 การแฮ็ก - เริ่มต้นใช้งาน

คำแนะนำนี้มีไว้สำหรับผู้เริ่มต้นที่รู้จัก Arduino แล้ว การเริ่มต้นรู้วิธีดำเนินการอยู่เสมอเป็นเรื่องที่เจ็บปวดและใช้เวลานานในทุกโครงการ แต่จนกว่าคุณจะรู้เส้นทางรอบตัวคุณ แทบจะตลอดเวลาที่คุณอยากให้มีคนมาแสดงข้อมูลพื้นฐานให้คุณดู

ในคำแนะนำนี้เราจะส่งคืนข้อมูล CAN-BUS บางส่วนจากรถของคุณ

และไม่ต้องกังวล! ฉันจะลงรายละเอียดให้ตรงประเด็นโดยไม่พูดพล่ามและใช้คำพูดที่ฉวัดเฉวียนเพื่อทำให้ฉันดูเหมือนแฮ็กเกอร์ที่ฉลาด:-)

โดยส่วนตัวแล้วฉันขอแนะนำโล่ Seeed Studio CAN-BUS ไม่สามารถพูดถึงแบรนด์อื่น ๆ ได้ แต่ CAN-BUS Shield จาก SeeedStudio ได้ให้บริการฉันเป็นอย่างดี

หมายเหตุสำคัญ: โล่แคนบัสเป็นสิ่งจำเป็น ฉันจดบันทึกนี้เพราะมีคนถามบ่อยมากว่าคุณต้องใช้โล่ CAN-BUS หรือไม่ ชิลด์มี MCP2515 (ตัวควบคุม CAN) และ MCP2551 (ตัวรับส่งสัญญาณ) ที่จะประมวลผลข้อมูล CAN-BUS ไปยังพอร์ตอนุกรมของ Arduino ของคุณ

ฮาร์ดแวร์ที่จำเป็น.1. Arduino UNO - Arduino ใด ๆ ก็เพียงพอแล้ว ผมก็ใช้ตัวนี้ครับ

2. SeeedStudio CAN-BUS Shield ฉันได้รับโดยตรงจาก SeeedStudio นี่คือลิงค์

3. สายไฟบางเส้นสำหรับต่อเข้ากับ CAN-BUS

4. ยานพาหนะที่คุณสามารถดึงข้อมูลจาก

ซอฟต์แวร์ที่จำเป็น1. Arduino IDE อุ๊ย! อย่างชัดเจน:-)

2. ห้องสมุด SeeedStudio CAN-BUS ดาวน์โหลดได้จาก GIT Hub

ข้อมูลสำคัญเพิ่มเติมบางอย่างหากคุณต้องการอ่านเพิ่มเติมเกี่ยวกับ SeeedStudio CAN-BUS shield

มาเริ่มกันเลย!

ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ

Image
Image
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ
การตั้งค่าฮาร์ดแวร์และการเชื่อมต่อ

เริ่มจากส่วนที่ยากที่สุดกันก่อน เราต้องหาที่ในรถของคุณที่เราสามารถแตะเข้าไปใน CAN-BUS ได้ ฉันไม่สามารถทำอะไรให้คุณที่นี่ได้มากนัก คุณต้องคิดให้ออกด้วยตัวเอง ในกรณีของฉัน ฉันแตะ CAN-BUS ผ่านทางวิทยุ ใช่! วิทยุ. ยานพาหนะที่มีเครื่องเสียงติดรถยนต์ในตัวมักจะตั้งค่าไฟแสดงผลแบบสเตอริโอในรถยนต์ตามการตั้งค่าไฟหน้าของรถเมื่อขับในเวลากลางคืน โดยปกติจะทำผ่าน CAN-BUS ภายใน

ฉันใช้สายต่อ USB ที่มีหัวต่อ USB ตัวผู้และตัวเมีย ฉันก็เลยผ่าครึ่งแล้วบัดกรีด้านตัวเมียเข้ากับขั้วต่อวิทยุ คุณอาจต้องการซื้อคอนเน็กเตอร์ตัวผู้สำหรับวิทยุประเภทของคุณ เพื่อที่คุณจะได้ไม่ต้องต่อสายไฟในรถยนต์และทำให้การรับประกันของคุณเป็นโมฆะหรืออาจก่อให้เกิดอันตรายจากไฟไหม้ได้

จากนั้นส่วนชายที่ฉันเชื่อมต่อกับโล่ SeeedStudio CAN-BUS ตามที่แสดงในภาพ วิธีนี้ฉันสามารถเชื่อมต่อ/ยกเลิกการเชื่อมต่อเมื่อจำเป็น

เคล็ดลับ: ใช้สายสีแดงสำหรับ CAN-H และสีดำสำหรับ CAN-L

ขั้นตอนที่ 2: ติดตั้งซอฟต์แวร์ลงใน Arduino

ติดตั้งซอฟต์แวร์ลงบน Arduino
ติดตั้งซอฟต์แวร์ลงบน Arduino
ติดตั้งซอฟต์แวร์ลงบน Arduino
ติดตั้งซอฟต์แวร์ลงบน Arduino
ติดตั้งซอฟต์แวร์ลงบน Arduino
ติดตั้งซอฟต์แวร์ลงบน Arduino

ดาวน์โหลดไลบรารี SeeedStudio จากวิกิ SeeedStudio CAN-BUS

github.com/Seeed-Studio/CAN_BUS_Shield

ติดตั้งไลบรารีตามที่แสดงในภาพ

จาก Arduino IDE ให้เลือก Sketch Include Library - เพิ่ม.zip Library

หลังจากเพิ่มไลบรารีแล้วให้ปิด Arduino IDE แล้วเปิดใหม่อีกครั้ง ตอนนี้คุณสามารถโหลดตัวอย่างบางส่วนจากเมนูไฟล์ ตัวอย่างไฟล์ โล่ CAN-BUS รับการตรวจสอบ

สำหรับบทช่วยสอนนี้ ให้โหลดตัวอย่างการตรวจสอบการรับ

สำคัญ!

ต่อไปนี้จะต้องมีการลองผิดลองถูก

ฉันใช้ Jeep JK 2010 Rubicon เพื่อดึงข้อมูลและภายในรถวิ่งที่ 125Kbs

ในส่วนการตั้งค่าที่อ่านว่า

ในขณะที่ (CAN_OK != CAN.begin(CAN_500KBPS)) ฉันต้องเปลี่ยนเป็น

ในขณะที่ (CAN_OK != CAN.begin(CAN_125KBPS))

หากคุณเข้าใจผิด คุณจะไม่สามารถเรียกข้อมูลที่อ่านได้ ในกรณีส่วนใหญ่รวมทั้งของฉัน รถของคุณจะพัง เช่น คลัสเตอร์ที่สว่างขึ้นเหมือนต้นคริสต์มาส และที่ปัดน้ำฝนจะเริ่มเคลื่อนที่ เนื่องจาก can bus shield ทำให้บัสเสียหาย

ขั้นตอนที่ 3: เชื่อมต่อและเริ่มดึงข้อมูล

เชื่อมต่อและเริ่มดึงข้อมูล
เชื่อมต่อและเริ่มดึงข้อมูล
เชื่อมต่อและเริ่มดึงข้อมูล
เชื่อมต่อและเริ่มดึงข้อมูล
เชื่อมต่อและเริ่มดึงข้อมูล
เชื่อมต่อและเริ่มดึงข้อมูล

ก่อนที่คุณจะเชื่อมต่อ โปรดตรวจสอบสุขภาพจิตก่อนจะต่อเข้ากับรถของคุณ สิ่งสุดท้ายที่คุณต้องการทำคือ ส่งกำลังไปยัง CAN-BUS ของคุณ ซึ่งอาจทำให้ ECU ของรถคุณพัง

ฉันไม่ได้ทำการตรวจสอบสติ และหลังจากที่ฉันรู้ว่าฉันไม่ได้รับข้อมูล ฉันเห็นหรือไม่ว่าฉันเชื่อมต่อ USB ของแล็ปท็อปกับ USB Power ของ Arduino โดยตรง โชคดีที่ไม่มีอะไรเกิดขึ้น

ในรูปภาพของขั้นตอนนี้ ฉันใช้แล็ปท็อป Lenovo ที่บรรจุ Linux Mint คุณสามารถใช้ระบบปฏิบัติการใดก็ได้เพื่อเชื่อมต่อกับพอร์ตอนุกรมของ Arduino

1. ติดตั้งแล็ปท็อปในรถของคุณและเปิดเครื่องป้องกัน Arduino CAN-BUS ด้วยสาย USB

2. เริ่ม Putty หรือ Arduino Serial Monitor (ฉันชอบ Putty) เมื่อเชื่อมต่อแล้ว คุณจะเห็นข้อความในคอนโซลอนุกรมที่แจ้งว่าสามารถเริ่มต้น Can-Bus shield ได้

3. เปิดรถ ไม่จำเป็นต้องสตาร์ทตราบใดที่กุญแจอยู่ในตำแหน่งเปิด

4. เชื่อมต่อ Arduino กับ CAN-BUS ทันทีที่เชื่อมต่อข้อมูลจะเริ่มสตรีมไปยังคอนโซล

ขั้นตอนที่ 4: ข้อมูลและความหมายทั้งหมด

ข้อมูลและความหมายทั้งหมด
ข้อมูลและความหมายทั้งหมด
ข้อมูลและความหมายทั้งหมด
ข้อมูลและความหมายทั้งหมด

เมื่อดึงข้อมูลแล้วจะดัมพ์เป็นรูปแบบ HEX ต่อไปนี้

รหัส, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8

รหัสมักจะแสดงถึงโหนดภายในรถของคุณ

มาทำตัวอย่างง่ายๆ (ข้างล่างนี้สร้างขึ้นไม่ใช่ของจริง เป็นเพียงตัวอย่าง)

รหัสโหนดเครื่องปรับอากาศ = 0x402 ปิดเครื่องปรับอากาศ = เปิดเครื่องปรับอากาศ 13 เปิด = 14 ชุดพัดลมระบายอากาศไปที่ต่ำ = 7C ตั้งค่าพัดลมระบายอากาศไปที่ปานกลาง 8C ตั้งค่าพัดลมเป่าลมให้สูง 9C

ดังนั้นถ้าเราเปิดแอร์แล้วตั้งเป็นสื่อกลาง ข้อความจะเป็นแบบนี้0x402, 13, 8C

เช่นเดียวกับโหนดอื่น ๆ เช่น Central LockingCentral Locking ID= 0x503LOCK ประตูทั้งหมด = 14

ดังนั้นหากคุณกดปุ่มล็อกประตูทุกบาน ข้อความจะเป็นแบบนี้

0x502, 14

หมายเหตุพิเศษบางอย่าง

ข้อความบางส่วนได้รับการขับเคลื่อนโดยรัฐและบางส่วนหรือในชั่วขณะหนึ่ง

ตัวอย่างที่ 1 ไฟหน้าเป็นแบบ State Drive เมื่อคุณตั้งสวิตช์ในรถไปยังตำแหน่งเฉพาะ โหนดจะเผยแพร่ข้อความซ้ำไปซ้ำมา หากคุณต้องรบกวน CAN-BUS ให้ส่งข้อความเพื่อปิดไฟหน้า มันจะดับไปชั่วครู่แล้วเปิดใหม่อีกครั้งเพราะโหนดที่สวิตช์ถูกตั้งให้เปิดไฟหน้าจะส่งข้อความให้เปิดอีกครั้ง

ตัวอย่าง2. ข้ามแทร็กบนวิทยุเฮดยูนิตของคุณ เมื่อคุณกดปุ่มและเป็นปุ่มชั่วขณะหนึ่งที่จะสร้างและทำลายวงจรทันทีเมื่อคุณปล่อยทิ้งไว้ มันจะส่งข้อความหนึ่งข้อความเพื่อข้ามแทร็กและจะไม่ทำอีกจนกว่าคุณจะขอให้กดปุ่มอีกครั้ง

โดยปกติแล้ว ปุ่มชั่วขณะจะมีประโยชน์มากที่สุด เนื่องจากคุณสามารถควบคุมคุณสมบัติต่างๆ ในรถของคุณได้ด้วยการส่งคำสั่งเดียวโดยไม่ต้องกังวลว่าคำสั่งของคุณจะถูกเขียนทับ โดยที่คุณสมบัติที่ขับเคลื่อนโดยรัฐจะถูกเขียนทับอย่างไม่มีกำหนด

เคล็ดลับและความคิดบางอย่าง

เมื่อเห็นว่าขณะนี้คุณสามารถถ่ายโอนข้อมูลที่คุณสามารถใช้เพื่อสร้างวงจร Arduino ของคุณเองซึ่งจะตอบสนองตามข้อความที่เห็นใน CAN-BUS ตัวอย่างเช่น สมมติว่าคุณติดตั้งหลังจากไฟสปอตไลท์ของตลาด คุณสามารถติดตั้งไฟหน้าได้อย่างอิสระและเปิดขึ้นเมื่อ Arduino ตรวจพบข้อความบน CAN-BUS โดยไม่ต้องเจาะสายไฟที่มีอยู่

กำลังส่งข้อมูลเข้า CAN-BUS

หากคุณทำตามคำแนะนำในตอนต้นของคำแนะนำนี้ คุณได้ติดตั้งไลบรารี่ของ SEEEDStudio แล้ว ใน Arduino IDE มีตัวอย่างบางส่วนที่คุณสามารถลองใช้ได้

รู้ ID และข้อความ CAN0-BUS ของโหนดที่คุณต้องการโต้ตอบด้วย

น่าเสียดายที่นี่ไม่ใช่งานง่ายนัก แต่นี่คือไอเดีย ใช้คุณสมบัติการบันทึกของ Putty และถ่ายโอนข้อมูลเซสชันทั้งหมดไปยังไฟล์ ให้ Arduino ตรวจสอบ can bus ประมาณ 5 นาที แล้วบันทึกออกจากระบบ

จากนั้นเริ่มเซสชันใหม่และเริ่มดัมพ์ข้อมูล แต่คราวนี้ในขณะที่มันดัมพ์ข้อมูลกดปุ่ม อย่ากดมากกว่าหนึ่งปุ่ม กดปุ่มสองสามครั้งเพื่อรับประกันว่าจะจับการกดปุ่ม

จากนั้นใช้เครื่องมือเปรียบเทียบบางประเภทและเปรียบเทียบไฟล์เพื่อระบุความแตกต่าง Excel ใช้งานได้ดีสำหรับสิ่งนี้

รหัสบางอย่างที่คุณสามารถลองได้

หากคุณมีรถจี๊ป 2010 Rubicon รุ่นเดียวกับฉัน (ฉันแน่ใจว่าด้านล่างจะใช้ได้กับรุ่น '07, '08', 09)

คุณสามารถลองข้อความต่อไปนี้ โหลดตัวอย่างการส่งจากเมนูตัวอย่าง Arduino และการเปลี่ยนแปลงมีความเกี่ยวข้อง

ล็อคเกอร์ด้านหลัง: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

กะพริบซ้าย: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

กะพริบขวา: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

เปิด/ปิด ESP: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

ในคำแนะนำต่อไปของฉัน ฉันจะส่งข้อมูลบางอย่างไปยัง CAN-BUS ของ Jeep เพื่อแสดงให้เห็นว่าคุณจะเข้าไปยุ่งเกี่ยวกับมันได้อย่างไร

โชคดี!

ขั้นตอนที่ 5: ดูวิดีโอ

ดูวิดีโอสำหรับความดี CAN-BUS เพิ่มเติม!

แนะนำ: