Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta dokumentacja przedstawia prosty i efektywny kosztowo sposób zhakowania strumienia OBD samochodu. W tym staram się pokazać ogólny sposób uzyskania informacji OBD.
Tutaj używam Arduino UNO, CAN-Bus shield(1.2), kabla DB9 do podłączenia do portu OBD oraz do programowania Arduino IDE (co pomaga z łatwością wypalić kod do uno).
Rozpocząłem ten projekt od ustanowienia automatycznej blokady drzwi, gdy pojazd nabiera prędkości 20KM i automatycznego zwinięcia wszystkich okien, gdy samochód jest zamknięty od zewnątrz.
Aby znaleźć dane, które wytworzono z portu OBD, należy przeanalizować i zrozumieć dane przed rozpoczęciem tego projektu. (Potrzebujesz więcej cierpliwości i ciągłej pracy).
Tutaj zaczyna się historia. (Próbuję na Hyundai Grand i10, Magna, 2019 - Marka w Indiach, dane będą się różnić w zależności od producentów / wariantów itp.).
Krok 1: Linki do zakupu sprzętu
- CAN-bus arduino shield - CAN-bus shield
- Arduino UNO - Arduino UNO
- Port OBD do kabla DB9-kabel DB9
Krok 2: Zorganizuj sprzęt, IDE i inne niezbędne rzeczy
Przed rozpoczęciem projektu musimy upewnić się, że cały sprzęt używany do tego projektu powinien sprawdzić i działać zgodnie z oczekiwaniami. Musimy więc podłączyć sprzęt do portu OBD i upewnić się, że sprzęt nie wytwarza dymu ani niepotrzebnego ciepła, a następnie musimy nagrać przykładowy kod, aby upewnić się, że sprzęt może odczytać strumień danych z OBD.
Pierwszy krok zaczyna się tutaj, skonfiguruj Arduino IDE w maszynie i upewnij się, że są na nim zainstalowane niezbędne biblioteki. Świeci po podłączeniu arduino uno do komputera, następnie w Arduino IDE wybieramy podłączony port szeregowy i typ płytki.
Przykładowy kod należy pobrać z repozytorium git i wypalić kod do Arduino Uno, następnie podłączyć nakładkę do portu OBD i rozpocząć odczyt strumienia danych.
Repozytorium Git -
github.com/JijovarghesePunalur/CarHacks.git
Możesz uzyskać przykładowy kod i bibliotekę do łączenia i wyodrębniania strumienia danych Can-bus. Po sklonowaniu projektu możesz skopiować pliki biblioteki do folderu plików arduino i wykonać proces kompilacji i nagrywania w arduino IDE.
Przed wypaleniem kodu do Arduino Uno należy podłączyć arduino do komputera, a następnie wybrać port szeregowy i typ płytki w Arduino IDE.
W przykładowym folderze można zobaczyć operacje odczytu, operacje zapisu i pliki Serial-Message, w zasadzie zawartość utworzoną przy użyciu wspólnych plików bibliotecznych. Serial-Message różni się od programu Read na podstawie formatu wyjściowego, czyli w tym projekcie próbowałem użyć can-utils w linuksie do uporządkowania powtarzających się wiadomości.
Użycie i wykonanie can-utils można znaleźć w pliku Readme.md CarHaks.
Krok 3: Łącze wideo
Ten film daje dokładne wyobrażenie o strumieniu danych magistrali CAN (port OBD). Może to być proste, bo zamieściłem tylko niezbędne informacje.
Krok 4: Zrób to sam i zaskocz
Napisz z powrotem do magistrali CAN, używając wyodrębnionych danych za pomocą Serial Message, to naprawdę cię zaskoczy. (Możesz znaleźć program do pisania w repozytorium, wypróbuj go teraz).
Możesz kontrolować wszystko, co jest związane z ECU / BCM, wystarczy przeanalizować dane, a następnie odpisać.
Następny projekt będzie oparty na tym opracowaniu - Kontrolowanie samochodu za pomocą smartfona.