Spisu treści:

Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki: 5 kroków
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki: 5 kroków

Wideo: Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki: 5 kroków

Wideo: Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki: 5 kroków
Wideo: Wersow vs me 🫣 2024, Listopad
Anonim
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki
Seeed Studio CAN-BUS V2.0 Hakowanie - Pierwsze kroki

Ta instrukcja jest przeznaczona dla początkujących, którzy już znają się na Arduino. Wstępna wiedza, jak zacząć, jest zawsze bolesna i czasochłonna w każdym projekcie. Ale dopóki nie poznasz swojego sposobu poruszania się, prawie zawsze żałuj, że nie masz kogoś, kto pokaże ci podstawy.

W tej instrukcji zwrócimy niektóre dane CAN-BUS z Twojego pojazdu.

I nie martw się! Przejdę od razu do sedna bez gadania i używania modnych słów, żeby zabrzmieć jak sprytny haker:-)

Osobiście polecam nakładki Seeed Studio CAN-BUS. Naprawdę nie mogę mówić za żadną z innych marek, ale CAN-BUS Shield od SeeedStudio bardzo mi służył.

Ważna uwaga: osłona magistrali can-bus jest obowiązkowa. Zrobiłem tę notatkę, ponieważ dość często ludzie pytają, czy musisz użyć osłony CAN-BUS. Tarcza ma MCP2515 (kontroler CAN) i MCP2551 (transceiver), które będą przetwarzać dane CAN-BUS na port szeregowy twojego Arduino.

Wymagany sprzęt.1. Arduino UNO - Wystarczy dowolny kompatybilny z arduino. Użyłem tego

2. Osłona CAN-BUS SeeedStudio. Dostałem go bezpośrednio z SeeedStudio, oto link

3. Niektóre przewody do podłączenia do magistrali CAN

4. Pojazd, z którego można pobrać dane

Wymagane oprogramowanie1. IDE Arduino! Oczywiście:-)

2. Biblioteka SeeedStudio CAN-BUS. Do pobrania z GIT Hub

Kilka dodatkowych ważnych informacji, jeśli chcesz przeczytać więcej o osłonie SeeedStudio CAN-BUS.

Zacznijmy!

Krok 1: Konfiguracja sprzętu i połączenie

Image
Image
Konfiguracja sprzętu i połączenie
Konfiguracja sprzętu i połączenie
Konfiguracja sprzętu i połączenie
Konfiguracja sprzętu i połączenie
Konfiguracja sprzętu i połączenie
Konfiguracja sprzętu i połączenie

Zacznijmy od najtrudniejszej części. Musimy znaleźć miejsce w Twoim pojeździe, gdzie możemy podłączyć się do CAN-BUS. Niewiele mogę tu dla ciebie zrobić, musisz sam to rozgryźć. W moim przypadku podłączyłem się do CAN-BUS przez radio. Tak! radio. Pojazdy ze zintegrowanym samochodowym systemem audio zwykle ustawiają podświetlenie wyświetlacza samochodowego stereo na podstawie ustawienia reflektorów pojazdu podczas jazdy nocą. Odbywa się to zwykle za pośrednictwem wewnętrznej magistrali CAN.

Użyłem przedłużacza USB, który ma męski i żeński koniec USB. Więc po prostu przeciąłem go na pół i przylutowałem stronę żeńską do złącza radia. Możesz kupić męskie złącze żeńskie do swojego typu radia, w ten sposób nie będziesz musiał splatać się z okablowaniem pojazdu i unieważnić gwarancję lub potencjalnie spowodować zagrożenie pożarowe.

A potem męską część podłączyłem do nakładki SeeedStudio CAN-BUS tak jak na zdjęciu. W ten sposób mogę łączyć/rozłączać w razie potrzeby.

Wskazówka: użyj czerwonego przewodu dla CAN-H i czarnego dla CAN-L

Krok 2: Zainstaluj oprogramowanie na Arduino

Zainstaluj oprogramowanie na Arduino
Zainstaluj oprogramowanie na Arduino
Zainstaluj oprogramowanie na Arduino
Zainstaluj oprogramowanie na Arduino
Zainstaluj oprogramowanie na Arduino
Zainstaluj oprogramowanie na Arduino

Pobierz bibliotekę SeeedStudio z wiki SeeedStudio CAN-BUS.

github.com/Seeed-Studio/CAN_BUS_Shield

Zainstaluj bibliotekę jak pokazano na zdjęciach.

Z Arduino IDE wybierz Sketch Include Library - Add.zip Library.

Po dodaniu biblioteki zamknij Arduino IDE i otwórz je ponownie. Będziesz teraz mógł załadować niektóre przykłady z menu Plik Przykłady plików Osłona CAN-BUS Odbierz kontrolkę

W tym samouczku załaduj przykład odbioru.

Ważny!

Poniższe będzie wymagało pewnych prób i błędów.

Użyłem mojego Jeepa JK 2010 Rubicon do pobierania danych, a jego wewnętrzny autobus działa z prędkością 125Kbs.

W sekcji konfiguracji, gdzie czytasz

natomiast (CAN_OK != CAN.begin(CAN_500KBPS)) musiałem to zmienić na

while (CAN_OK != CAN.begin(CAN_125KBPS))

Jeśli się pomylisz, nie będziesz w stanie odzyskać czytelnych danych. W większości przypadków, wliczając w to kopalnię, twój pojazd będzie szalony. Czyli klaster z zapali się jak choinka i wycieraczki zaczną się ruszać. ponieważ osłona magistrali może psuje autobus.

Krok 3: Podłącz i zacznij pobierać dane

Podłącz i zacznij pobierać dane
Podłącz i zacznij pobierać dane
Podłącz i zacznij pobierać dane
Podłącz i zacznij pobierać dane
Podłącz i zacznij pobierać dane
Podłącz i zacznij pobierać dane

Przed podłączeniem należy sprawdzić poprawność kondycji przed podłączeniem go do pojazdu. Ostatnią rzeczą, którą chcesz zrobić, to wysłać zasilanie do magistrali CAN-BUS, potencjalnie powodując wysadzenie ECU pojazdu.

Nie przeprowadziłem kontroli zdrowia i dopiero po tym, jak zdałem sobie sprawę, że nie otrzymuję danych, zauważyłem, że podłączyłem USB laptopa bezpośrednio do zasilania USB Arduino. Na szczęście nic się nie stało.

Na zdjęciach tego kroku użyłem laptopa Lenovo załadowanego Linux Mint. Poza tym możesz użyć dowolnego systemu operacyjnego do połączenia z portem szeregowym Arduino, 1. Skonfiguruj laptopa w pojeździe i zasil ekran Arduino CAN-BUS za pomocą kabla USB.

2. Uruchom Putty lub Arduino Serial Monitor (wolę Putty). Po podłączeniu powinieneś zobaczyć komunikat w konsoli szeregowej z informacją, że udało się zainicjować osłonę Can-Bus.

3. Włącz pojazd. Nie trzeba go uruchamiać, dopóki kluczyk jest w pozycji włączonej.

4. Podłącz Arduino do magistrali CAN. W momencie podłączenia dane zaczną być przesyłane strumieniowo do konsoli.

Krok 4: Dane i ich znaczenie

Dane i co to wszystko oznacza
Dane i co to wszystko oznacza
Dane i co to wszystko oznacza
Dane i co to wszystko oznacza

Po pobraniu danych zrzuci je do następującego formatu HEX.

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

Identyfikator zazwyczaj reprezentuje węzeł w twoim pojeździe.

Zróbmy prosty przykład. (Poniższy tekst jest zmyślony, a nie prawdziwy, tylko przykład)

ID węzła klimatyzacji = 0x402 WYŁĄCZ KLIMATYZACJA = 13 WŁĄCZ KLIMATYZACJA = 14 USTAW DMUCHAWĘ KLIMATYZACJI NA NISKĄ = 7 C USTAW DMUCHAW KLIMATYZACJI NA ŚREDNĄ 8 C USTAW DMUCHAW KLIMATYZACJI NA WYSOKIE 9 C

Więc jeśli włączymy klimatyzację i ustawimy ją na medium wiadomość będzie wyglądać tak 0x402, 13, 8C

to samo dotyczy innych węzłów, na przykład Central LockingCentral Locking ID= 0x503LOCK wszystkie drzwi = 14

Więc jeśli naciśniesz przycisk, aby zablokować wszystkie drzwi, wiadomość będzie wyglądać tak

0x502, 14

Kilka dodatkowych uwag.

Niektóre komunikaty są sterowane stanem, a inne chwilowo.

Przykład 1. Reflektory sterowane stanem. Gdy ustawisz przełącznik w pojeździe w określonej pozycji, węzeł będzie nadawał komunikat w kółko. Gdybyś musiał ingerować w CAN-BUS to wyślij wiadomość, żeby wyłączyć reflektory. Wyłączy się na chwilę, a potem ponownie włączy, ponieważ węzeł, w którym ustawiony jest przełącznik włączania reflektorów, ponownie wyśle komunikat, aby go włączyć.

Przykład2. Pomijanie utworów w radioodtwarzaczu. kiedy naciśniesz przycisk i jego chwilowy przycisk, który spowoduje i natychmiast przerwie obwód, gdy go opuścisz, wyśle jeden komunikat, aby pominąć utwór i nigdy więcej, dopóki nie poprosisz o ponowne naciśnięcie przycisku.

Zwykle najbardziej przydatne są chwilowe przyciski, ponieważ możesz sterować funkcjami w pojeździe, wysyłając pojedyncze polecenie bez obawy, że Twoje polecenie zostanie nadpisane. Gdzie funkcje zależne od stanu zostaną nadpisane na czas nieokreślony.

Kilka wskazówek i pomysłów

Widząc, że możesz teraz zrzucić dane, możesz ich użyć do zbudowania własnych obwodów Arduino, które będą reagowały na podstawie komunikatów widocznych na magistrali CAN-BUS. dla przykładu. Załóżmy, że instalujesz światła punktowe po rynku. Bez konieczności zagłębiania się w istniejące okablowanie, możesz zainstalować reflektory niezależnie i włączać je tylko wtedy, gdy Arduino wykryje komunikat na magistrali CAN-BUS.

Wysyłanie danych do CAN-BUS

Jeśli postępowałeś zgodnie z instrukcją na początku tej instrukcji, zainstalowałeś biblioteki SEEEDStudio. W Arduino IDE jest kilka przykładów, które możesz wypróbować.

Znajomość identyfikatora i komunikatu CAN0-BUS węzła, z którym chcesz współpracować.

Niestety nie jest to łatwe zadanie. Ale oto pomysł. Użyj funkcji rejestrowania Putty i zrzuć wszystkie dane sesji do pliku. Pozwól Arduino monitorować magistralę can przez około 5 minut, a następnie zapisz wylogowanie.

Następnie rozpocznij nową sesję i zacznij zrzucać dane. Ale tym razem podczas zrzucania danych naciśnij przycisk. Nie naciskaj więcej niż jednego przycisku. Naciśnij przycisk kilka razy, aby zagwarantować, że przechwycił naciśnięcie przycisku.

Następnie użyj jakiegoś narzędzia do porównywania i porównaj plik, aby dostrzec różnice. Excel świetnie się do tego sprawdza.

Niektóre kody, które możesz wypróbować

Jeśli masz ten sam model Jeepa 2010 Rubicon co ja (jestem pewien, że poniższe działa również dla modeli '07, '08', 09)

Możesz wypróbować następujące wiadomości. Załaduj przykłady wysyłania z menu przykładów Arduino i zmiany były istotne.

Włącz tylną blokadę.: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

Lewy migacz włączony: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

Prawy migacz włączony: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

ESP wł./wył.: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

W mojej następnej instrukcji wyślę trochę danych do CAN-BUS mojego Jeepa, aby zademonstrować, w jaki sposób możesz w to ingerować.

Powodzenia!

Krok 5: Obejrzyj wideo

Zobacz wideo, aby uzyskać więcej dobroci CAN-BUS!

Zalecana: