Mục lục:

Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu: 5 bước
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu: 5 bước

Video: Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu: 5 bước

Video: Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu: 5 bước
Video: Biến hình khi văn phòng Schannel có khách đến 2024, Tháng sáu
Anonim
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu
Seeed Studio CAN-BUS V2.0 Hacking - Bắt đầu

Hướng dẫn này dành cho những người mới bắt đầu đã biết cách sử dụng Arduino. Bước đầu biết làm thế nào để bắt đầu luôn là một vấn đề khó khăn và tốn thời gian trong bất kỳ dự án nào. Nhưng cho đến khi bạn biết cách xung quanh mình, hầu như bạn luôn ước rằng mình có ai đó chỉ cho bạn những điều cơ bản.

Trong hướng dẫn này, chúng tôi sẽ trả lại một số dữ liệu CAN-BUS từ xe của bạn.

Và đừng lo lắng! Tôi sẽ đi thẳng vào vấn đề mà không lan man và sử dụng các từ buzz để khiến tôi giống như một hacker thông minh:-)

Cá nhân tôi khuyên bạn nên sử dụng các tấm chắn CAN-BUS của Seeed Studio. Cant thực sự nói cho bất kỳ thương hiệu nào khác nhưng CAN-BUS Shield từ SeeedStudio đã phục vụ tôi rất tốt.

Lưu ý quan trọng: Lá chắn can-bus là bắt buộc. Tôi thực hiện lưu ý này vì khá thường xuyên mọi người hỏi bạn có phải sử dụng tấm chắn CAN-BUS hay không. Tấm chắn có MCP2515 (Bộ điều khiển CAN) và MCP2551 (Bộ thu phát) sẽ xử lý dữ liệu CAN-BUS đến cổng nối tiếp của Arduino của bạn.

Phần cứng cần thiết. 1. Arduino UNO - Bất kỳ tương thích với arduino nào cũng được. Tôi đã sử dụng cái này

2. SeeedStudio CAN-BUS Shield. Tôi lấy nó trực tiếp từ SeeedStudio, đây là liên kết

3. Một số dây để kết nối vào CAN-BUS

4. một Phương tiện mà bạn có thể lấy dữ liệu từ

Phần mềm bắt buộc1. Arduino IDE, Duh! Rõ ràng:-)

2. Thư viện CAN-BUS SeeedStudio. Có thể tải xuống từ GIT Hub

Một số thông tin quan trọng bổ sung nếu bạn muốn đọc thêm về lá chắn SeeedStudio CAN-BUS.

Bắt đầu nào!

Bước 1: Thiết lập và kết nối phần cứng

Image
Image
Thiết lập và kết nối phần cứng
Thiết lập và kết nối phần cứng
Thiết lập và kết nối phần cứng
Thiết lập và kết nối phần cứng
Thiết lập và kết nối phần cứng
Thiết lập và kết nối phần cứng

Hãy bắt đầu với phần khó nhất. Chúng tôi phải tìm một nơi trong xe của bạn để chúng tôi có thể sử dụng XE BUÝT. Tôi không thể làm được gì nhiều cho bạn ở đây, bạn phải tự mình tìm ra điều này. Trong trường hợp của tôi, tôi đã khai thác vào CAN-BUS qua radio. Đúng! Radio. Xe có âm thanh xe hơi tích hợp thường đặt độ sáng màn hình âm thanh nổi trên xe dựa trên cài đặt đèn pha của xe khi lái xe vào ban đêm. Điều này thường được thực hiện thông qua CAN-BUS Nội thất.

Tôi đã sử dụng cáp bộ mở rộng USB có đầu USB đực và đầu USB cái. Vì vậy, tôi chỉ cần cắt nó làm đôi và sau đó hàn mặt cái vào đầu nối của radio. Bạn có thể muốn mua một đầu nối nam nữ cho loại radio của mình, bằng cách đó, bạn không phải mắc vào hệ thống dây điện của xe và làm mất hiệu lực bảo hành hoặc có thể gây ra nguy cơ hỏa hoạn.

Và sau đó phần nam mình kết nối với tấm chắn CAN-BUS của SeeedStudio như trong hình. Bằng cách này tôi có thể kết nối / ngắt kết nối khi cần thiết.

Mẹo: Sử dụng dây màu đỏ cho CAN-H và màu đen cho CAN-L

Bước 2: Cài đặt phần mềm vào Arduino

Cài đặt Phần mềm vào Arduino
Cài đặt Phần mềm vào Arduino
Cài đặt Phần mềm vào Arduino
Cài đặt Phần mềm vào Arduino
Cài đặt Phần mềm vào Arduino
Cài đặt Phần mềm vào Arduino

Tải xuống Thư viện SeeedStudio từ wiki SeeedStudio CAN-BUS.

github.com/Seeed-Studio/CAN_BUS_Shield

Cài đặt thư viện như trong hình.

Từ Arduino IDE, chọn Thư viện Bao gồm Phác thảo - Thêm Thư viện.zip.

Sau khi thêm thư viện, hãy đóng Arduino IDE và mở lại. Bây giờ bạn sẽ có thể tải một số ví dụ từ File Menu File Ví dụ về lá chắn CAN-BUS Nhận kiểm tra

Đối với hướng dẫn này, hãy tải ví dụ kiểm tra nhận.

Quan trọng!

Sau đây sẽ yêu cầu một số thử nghiệm và sai sót.

Tôi đã sử dụng chiếc xe Jeep JK 2010 Rubicon của mình để lấy dữ liệu và xe buýt nội thất của nó chạy ở mức 125Kbs.

Trong phần thiết lập nơi nó đọc

while (CAN_OK! = CAN.begin (CAN_500KBPS)) Tôi đã phải thay đổi nó thành

trong khi (CAN_OK! = CAN.begin (CAN_125KBPS))

Nếu bạn làm sai điều này, bạn sẽ không thể truy xuất dữ liệu có thể đọc được. Trong hầu hết các trường hợp, bao gồm cả của tôi, xe của bạn sẽ chạy bonker. I. E là cụm đèn sáng lên như cây thông Noel và cần gạt nước sẽ bắt đầu di chuyển. bởi vì tấm chắn bus can đang làm hỏng bus.

Bước 3: Kết nối nó và bắt đầu truy xuất dữ liệu

Kết nối nó và bắt đầu truy xuất dữ liệu
Kết nối nó và bắt đầu truy xuất dữ liệu
Kết nối nó và bắt đầu truy xuất dữ liệu
Kết nối nó và bắt đầu truy xuất dữ liệu
Kết nối nó và bắt đầu truy xuất dữ liệu
Kết nối nó và bắt đầu truy xuất dữ liệu

Trước khi bạn kết nối, vui lòng kiểm tra tỉnh táo trước khi bạn kết nối nó với xe của bạn. Điều cuối cùng bạn muốn làm là gửi điện đến CAN-BUS có khả năng làm nổ ECU Xe của bạn.

Tôi đã không thực hiện kiểm tra sự tỉnh táo và chỉ sau khi tôi nhận ra rằng mình không nhận được dữ liệu, tôi mới thấy tôi đã kết nối USB của Máy tính xách tay trực tiếp với Nguồn USB của Arduino. May mắn là không có chuyện gì xảy ra.

Trong các hình ảnh của bước này, tôi đã sử dụng Máy tính xách tay Lenovo của mình được tải bằng Linux Mint. Ngoài ra, bạn có thể sử dụng bất kỳ hệ điều hành nào để kết nối với cổng nối tiếp của Arduino, 1. Thiết lập máy tính xách tay trong xe của bạn và cấp nguồn cho tấm chắn Arduino CAN-BUS bằng cáp USB.

2. Khởi động Putty hoặc Arduino serial Monitor (Tôi thích Putty hơn), Khi nó được kết nối, bạn sẽ thấy một thông báo trong bảng điều khiển nối tiếp cho bạn biết rằng nó đã quản lý để khởi tạo lá chắn Can-Bus.

3. Bật xe. Nó không cần phải được bắt đầu miễn là chìa khóa ở vị trí bật.

4. Kết nối Arduino với CAN-BUS. Thời điểm nó được kết nối, dữ liệu sẽ bắt đầu truyền vào bảng điều khiển.

Bước 4: Dữ liệu và Ý nghĩa của Tất cả

Dữ liệu và Ý nghĩa của Tất cả
Dữ liệu và Ý nghĩa của Tất cả
Dữ liệu và Ý nghĩa của Tất cả
Dữ liệu và Ý nghĩa của Tất cả

Khi dữ liệu được truy xuất, nó sẽ kết xuất dữ liệu đó sang định dạng HEX sau đây.

ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8

ID thường đại diện cho một Node trong xe của bạn.

Hãy làm một ví dụ đơn giản. (Dưới đây là bịa đặt và không có thật, chỉ là một ví dụ)

ID nút điều hòa không khí = 0x402 BẬT MÁY BAY TẮT = 13 BẬT MÁY BAY = 14 ĐẶT CHỮA MÁY BAY THÀNH THẤP = 7C ĐẶT CHỮA BẰNG MÁY BAY THÀNH THẤP = 7C ĐẶT TẮT MÁY BAY THÀNH TRUNG BÌNH 8C

Vì vậy, nếu chúng ta bật Aircon và đặt nó ở chế độ trung bình, thông báo sẽ giống như thế này0x402, 13, 8C

điều tương tự cũng xảy ra với các nút khác, ví dụ ID khóa trung tâm Khóa trung tâm = 0x503LOCK tất cả các cửa = 14

Vì vậy, nếu bạn nhấn nút để khóa tất cả các cửa, thông báo sẽ như thế này

0x502, 14

Một số lưu ý bổ sung.

Một số thông báo được điều khiển theo trạng thái và một số hoặc trong giây lát.

Ví dụ 1. Đèn đầu như điều khiển trạng thái. Khi bạn đặt một công tắc trong xe đến một vị trí cụ thể, nút sẽ tiếp tục phát đi phát lại thông báo. Nếu bạn phải can thiệp vào CAN-BUS, hãy gửi một thông báo để tắt đèn trên đầu. Nó sẽ nhanh chóng tắt và sau đó bật lại vì nút nơi công tắc được đặt để bật đèn pha sẽ lại gửi thông báo để bật đèn.

Ví dụ 2. Bỏ qua các bản nhạc trên thiết bị đầu radio của bạn. khi bạn nhấn một nút và nút đó sẽ tạo ra và ngay lập tức ngắt mạch khi bạn rời khỏi nút đó, Nó sẽ gửi một thông báo để bỏ qua bản nhạc và không bao giờ lặp lại cho đến khi bạn yêu cầu nhấn lại nút.

Thông thường, các nút bấm tạm thời là hữu ích nhất vì bạn có thể điều khiển các tính năng trong xe của mình bằng cách gửi một lệnh duy nhất mà không phải lo lắng rằng lệnh của mình sẽ bị ghi quá mức. Trong đó các tính năng được điều khiển bởi trạng thái sẽ bị ghi đè vô thời hạn.

Một số mẹo và ý tưởng

Thấy rằng bây giờ bạn có thể kết xuất dữ liệu mà bạn có thể sử dụng nó để xây dựng các mạch Arduino của riêng bạn sẽ phản ứng dựa trên các thông báo được thấy trên CAN-BUS. Ví dụ. Giả sử bạn lắp đặt đèn chiếu sáng sau chợ. Không cần phải tìm hiểu kỹ hệ thống dây điện hiện có, bạn có thể lắp đặt đèn pha của mình một cách độc lập và chỉ bật chúng khi Arduino của bạn phát hiện thông báo trên CAN-BUS.

Gửi dữ liệu vào CAN-BUS

Nếu bạn làm theo hướng dẫn ở phần đầu của hướng dẫn này, bạn đã cài đặt các thư viện SEEEDStudio. Trong Arduino IDE có một số ví dụ bạn có thể thử.

Biết ID và thông báo CAN0-BUS của nút mà bạn muốn tương tác.

Thật không may, đây không phải là một nhiệm vụ rất dễ dàng. Nhưng đây là một Ý tưởng. Sử dụng tính năng Ghi nhật ký của Putty và kết xuất tất cả dữ liệu phiên vào tệp. Hãy để Arduino giám sát bus có thể trong khoảng 5 phút và sau đó lưu nhật ký ra ngoài.

Sau đó, bắt đầu một phiên mới và bắt đầu kết xuất dữ liệu. Nhưng lần này trong khi kết xuất dữ liệu của nó nhấn một nút. Đừng nhấn nhiều hơn một nút. Nhấn nút một vài lần để đảm bảo rằng nó đã chụp được nút nhấn.

Sau đó, sử dụng một số loại công cụ so sánh và so sánh tệp để phát hiện sự khác biệt. Excel hoạt động tốt cho việc này.

Một số mã bạn có thể thử

Nếu bạn có cùng mẫu xe Jeep 2010 Rubicon với tôi (tôi chắc chắn những điều dưới đây cũng sẽ phù hợp với các mẫu xe '07, '08', 09)

Bạn có thể thử các thông báo sau. Tải các ví dụ gửi từ menu ví dụ Arduino và thay đổi có liên quan.

Tham gia tủ khóa phía sau: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

Blinker Trái Bật: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

Blinker Phải Bật: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

ESP Bật / TẮT: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

Trong hướng dẫn tiếp theo của tôi, tôi sẽ gửi một số dữ liệu đến CAN-BUS của xe Jeep của tôi để chứng minh cách bạn có thể can thiệp vào nó.

Chúc may mắn!

Bước 5: Xem Video

Xem video để biết thêm độ tốt của CAN-BUS!

Đề xuất: