Inhaltsverzeichnis:

Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte - Gunook
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte - Gunook

Video: Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte - Gunook

Video: Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte - Gunook
Video: CAN to USB protocol converter (ECAN-U01 Operation Instructions) 2024, November
Anonim
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte
Seeed Studio CAN-BUS V2.0 Hacking - Erste Schritte

Dieses anweisbare ist für Anfänger gedacht, die sich bereits mit Arduino auskennen. Das anfängliche Know-how, um loszulegen, ist bei jedem Projekt immer mühsam und zeitaufwendig. Aber bis Sie sich auskennen, wünschen Sie sich fast immer, Sie hätten jemanden, der Ihnen die Grundlagen zeigt.

In diesem anweisbaren geben wir einige CAN-BUS-Daten von Ihrem Fahrzeug zurück.

Und keine Sorge! Ich komme gleich zur Sache, ohne weiterzureden und Schlagworte zu verwenden, um mich wie ein cleverer Hacker klingen zu lassen:-)

Ich persönlich empfehle die Seeed Studio CAN-BUS Shields. Ich kann nicht wirklich für eine der anderen Marken sprechen, aber das CAN-BUS Shield von SeeedStudio hat mir sehr gute Dienste geleistet.

Wichtiger Hinweis: Der Can-Bus-Schirm ist obligatorisch. Ich habe diese Notiz gemacht, weil die Leute oft fragen, ob Sie ein CAN-BUS-Shield verwenden müssen. Das Shield verfügt über einen MCP2515 (CAN-Controller) und einen MCP2551 (Transceiver), die CAN-BUS-Daten an den seriellen Port Ihres Arduino verarbeiten.

Die erforderliche Hardware.1. Arduino UNO - Jedes arduino-kompatible Gerät reicht aus. Ich habe diesen benutzt

2. SeeedStudio CAN-BUS-Abschirmung. Ich habe es direkt von SeeedStudio bekommen, hier ist der Link

3. Einige Kabel zum Anzapfen des CAN-BUS

4. ein Fahrzeug, von dem Sie Daten abrufen können

Die erforderliche Software1. Arduino-IDE, duh! Offensichtlich:-)

2. SeeedStudio CAN-BUS-Bibliothek. Herunterladbar von GIT Hub

Einige zusätzliche wichtige Informationen, wenn Sie mehr über das SeeedStudio CAN-BUS-Shield erfahren möchten.

Lass uns anfangen!

Schritt 1: Hardware-Setup und Verbindung

Image
Image
Hardware-Setup und -Verbindung
Hardware-Setup und -Verbindung
Hardware-Setup und -Verbindung
Hardware-Setup und -Verbindung
Hardware-Setup und -Verbindung
Hardware-Setup und -Verbindung

Beginnen wir mit dem schwierigsten Teil. Wir müssen in Ihrem Fahrzeug eine Stelle finden, an der wir den CAN-BUS anzapfen können. Ich kann hier nicht viel für Sie tun, das müssen Sie selbst herausfinden. In meinem Fall habe ich den CAN-BUS über das Radio angezapft. Jawohl! das Radio. Fahrzeuge mit integriertem Car-Audio stellen die Displaybeleuchtung des Auto-Stereo-Displays bei Nachtfahrten in der Regel entsprechend der Scheinwerfereinstellung des Fahrzeugs ein. Dies geschieht in der Regel über den Innenraum-CAN-BUS.

Ich habe ein USB-Verlängerungskabel verwendet, das ein männliches USB- und ein weibliches USB-Ende hat. Also habe ich es einfach halbiert und dann die weibliche Seite auf den Stecker des Radios gelötet. Möglicherweise möchten Sie eine männliche Buchse für Ihren Radiotyp kaufen, damit Sie nicht in die Verkabelung Ihres Fahrzeugs einspleißen und Ihre Garantie erlöschen lassen oder möglicherweise eine Brandgefahr besteht.

Und dann den männlichen Teil, den ich wie im Bild gezeigt mit dem SeeedStudio CAN-BUS-Schild verbunden habe. Auf diese Weise kann ich bei Bedarf eine Verbindung herstellen/trennen.

Tipp: Rotes Kabel für CAN-H und schwarzes Kabel für CAN-L verwenden

Schritt 2: Installieren Sie die Software auf dem Arduino

Installieren Sie die Software auf dem Arduino
Installieren Sie die Software auf dem Arduino
Installieren Sie die Software auf dem Arduino
Installieren Sie die Software auf dem Arduino
Installieren Sie die Software auf dem Arduino
Installieren Sie die Software auf dem Arduino

Laden Sie die SeeedStudio-Bibliothek aus dem SeeedStudio CAN-BUS-Wiki herunter.

github.com/Seeed-Studio/CAN_BUS_Shield

Installieren Sie die Bibliothek wie in den Bildern gezeigt.

Wählen Sie in der Arduino-IDE Sketch Include Library - Add.zip Library.

Nachdem Sie die Bibliothek hinzugefügt haben, schließen Sie die Arduino IDE und öffnen Sie sie erneut. Sie können nun einige der Beispiele aus dem Datei-Menü Datei-Beispiele laden CAN-BUS-Schild Empfangsprüfung

Laden Sie für dieses Tutorial das Beispiel für die Empfangsprüfung.

Wichtig!

Das Folgende erfordert einige Versuche und Irrtümer.

Ich habe meinen Jeep JK 2010 Rubicon zum Abrufen von Daten verwendet und sein Innenbus läuft mit 125 Kbs.

Im Setup-Abschnitt, wo es heißt

Während (CAN_OK != CAN.begin(CAN_500KBPS)) musste ich es ändern in

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

Wenn Sie dies falsch machen, können Sie keine lesbaren Daten abrufen. In den meisten Fällen, einschließlich meiner, wird Ihr Fahrzeug verrückt. D.h. das Cluster leuchtet wie ein Weihnachtsbaum und die Scheibenwischer beginnen sich zu bewegen. weil die Abschirmung des CAN-Busses den Bus beschädigt.

Schritt 3: Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten

Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten
Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten
Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten
Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten
Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten
Verbinden Sie es und beginnen Sie mit dem Abrufen von Daten

Bitte führen Sie vor dem Anschließen einen Gesundheitscheck durch, bevor Sie es an Ihr Fahrzeug anschließen. Das Letzte, was Sie tun möchten, ist, Strom an Ihren CAN-BUS zu senden, der möglicherweise die ECU Ihres Fahrzeugs durchbrennt.

Ich habe keine Gesundheitsprüfung durchgeführt und erst nachdem ich festgestellt habe, dass ich keine Daten bekomme, habe ich gesehen, dass ich den USB des Laptops direkt an die USB-Stromversorgung des Arduino angeschlossen habe. Zum Glück ist nichts passiert.

In den Bildern dieses Schritts habe ich meinen Lenovo Laptop mit Linux Mint geladen. Off-grob können Sie jedes Betriebssystem verwenden, um eine Verbindung zum seriellen Port Ihres Arduino herzustellen.

1. Richten Sie den Laptop in Ihrem Fahrzeug ein und schalten Sie das Arduino CAN-BUS-Shield mit einem USB-Kabel ein.

2. Starten Sie Putty oder den seriellen Arduino-Monitor (ich bevorzuge Putty). Wenn er angeschlossen ist, sollten Sie eine Meldung in der seriellen Konsole sehen, die Ihnen mitteilt, dass es gelungen ist, das Can-Bus-Schild zu initialisieren.

3. Schalten Sie das Fahrzeug ein. Es muss nicht gestartet werden, solange sich der Schlüssel in der Ein-Position befindet.

4. Verbinden Sie das Arduino mit dem CAN-BUS. Sobald die Verbindung hergestellt ist, werden die Daten in die Konsole gestreamt.

Schritt 4: Die Daten und ihre Bedeutung

Die Daten und ihre Bedeutung
Die Daten und ihre Bedeutung
Die Daten und ihre Bedeutung
Die Daten und ihre Bedeutung

Wenn die Daten abgerufen werden, werden sie in das folgende HEX-Format ausgegeben.

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

Die ID stellt normalerweise einen Knoten innerhalb Ihres Fahrzeugs dar.

Machen wir ein einfaches Beispiel. (Das Folgende ist erfunden und nicht echt, nur ein Beispiel)

Klimaanlage Node ID= 0x402 AIRCON AUSSCHALTEN = 13 AIRCON EINSCHALTEN = 14 AIRCON GEBLÄSE AUF NIEDRIG EINSTELLEN = 7C AIRCON GEBLÄSE AUF MITTEL EINSTELLEN 8C AIRCON GEBLÄSE AUF HOCH 9C. EINSTELLEN

Wenn wir also die Klimaanlage einschalten und auf Medium stellen, sieht die Meldung so aus 0x402, 13, 8C

das gleiche gilt für andere Knoten, Beispiel Central LockingCentral Locking ID= 0x503LOCK alle Türen = 14

Wenn Sie also den Knopf drücken, um alle Türen zu verriegeln, sieht die Nachricht so aus

0x502, 14

Einige zusätzliche Anmerkungen.

Einige Nachrichten sind zustandsgesteuert und einige oder vorübergehend.

Beispiel 1. Scheinwerfer als zustandsgesteuert. Wenn Sie einen Schalter im Fahrzeug auf eine bestimmte Position stellen, sendet der Knoten die Nachricht immer wieder. Wenn Sie in den CAN-BUS eingreifen mussten, senden Sie eine Nachricht, um die Scheinwerfer auszuschalten. Es wird kurz aus- und wieder eingeschaltet, da der Knoten, an dem der Schalter zum Einschalten der Scheinwerfer eingestellt ist, erneut eine Nachricht zum Einschalten sendet.

Beispiel2. Überspringen von Titeln auf Ihrem Radio-Hauptgerät. Wenn Sie eine Taste drücken und es sich um eine kurzzeitige Taste handelt, die den Stromkreis schließt und sofort unterbricht, wenn Sie sie verlassen, wird eine Nachricht gesendet, um den Titel zu überspringen, und nie wieder, bis Sie die Taste erneut drücken.

In der Regel sind momentane Tasten am nützlichsten, da Sie Funktionen in Ihrem Fahrzeug durch Senden eines einzigen Befehls steuern können, ohne befürchten zu müssen, dass Ihr Befehl überschrieben wird. Wobei zustandsgesteuerte Funktionen auf unbestimmte Zeit überschrieben werden.

Einige Tipps und Ideen

Da Sie jetzt in der Lage sind, die Daten zu speichern, können Sie damit Ihre eigenen Arduino-Schaltungen aufbauen, die basierend auf den Nachrichten auf dem CAN-BUS reagieren. zum Beispiel. Angenommen, Sie installieren nach dem Marktscheinwerfer. Ohne in Ihre vorhandene Verkabelung graben zu müssen, können Sie Ihre Scheinwerfer unabhängig installieren und nur einschalten, wenn Ihr Arduino eine Nachricht auf dem CAN-BUS erkennt.

Senden von Daten in den CAN-BUS

Wenn Sie den Anweisungen am Anfang dieser Anleitung gefolgt sind, haben Sie die SEEEDStudio-Bibliotheken installiert. In der Arduino IDE gibt es einige Beispiele, die Sie ausprobieren können.

Kennen Sie die ID und die CAN0-BUS-Nachricht des Knotens, mit dem Sie interagieren möchten.

Leider ist dies keine ganz leichte Aufgabe. Aber hier ist eine Idee. Verwenden Sie die Protokollierungsfunktion von Putty und speichern Sie alle Sitzungsdaten in einer Datei. Lassen Sie das Arduino den Can-Bus für etwa 5 Minuten überwachen und speichern Sie dann das Protokoll.

Starten Sie dann eine neue Sitzung und beginnen Sie mit dem Dumping der Daten. Aber dieses Mal drücken Sie während des Dumps der Daten einen Knopf. Drücken Sie nicht mehr als eine Taste. Drücken Sie die Taste einige Male, um sicherzustellen, dass der Tastendruck erfasst wurde.

Verwenden Sie dann eine Art Vergleichstool und vergleichen Sie die Datei, um die Unterschiede zu erkennen. Excel funktioniert dafür hervorragend.

Einige Codes, die Sie ausprobieren können

Wenn Sie das gleiche Jeep 2010 Rubicon-Modell wie ich haben (ich bin mir sicher, dass das folgende auch für die Modelle '07, '08', 09 funktioniert)

Sie können die folgenden Nachrichten versuchen. Laden Sie die Sendebeispiele aus dem Arduino-Beispielmenü und ändern Sie die relevanten.

Hinteres Schließfach aktivieren.: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

Blinker links an: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

Blinker rechts an: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);

ESP Ein/Aus: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);

In meinem nächsten anweisbaren werde ich einige Daten an den CAN-BUS meines Jeeps senden, um zu demonstrieren, wie Sie es stören können.

Viel Glück!

Schritt 5: Sehen Sie sich das Video an

Sehen Sie das Video für mehr CAN-BUS-Güte!

Empfohlen: