Inhoudsopgave:

Seeed Studio CAN-BUS V2.0 hacken - Aan de slag: 5 stappen
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag: 5 stappen

Video: Seeed Studio CAN-BUS V2.0 hacken - Aan de slag: 5 stappen

Video: Seeed Studio CAN-BUS V2.0 hacken - Aan de slag: 5 stappen
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Juli-
Anonim
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag
Seeed Studio CAN-BUS V2.0 hacken - Aan de slag

Deze instructable is bedoeld voor beginners die al de weg weten in Arduino. De eerste kennis van hoe je aan de slag moet, is altijd lastig en tijdrovend in elk project. Maar totdat je de weg weet, zou je bijna altijd willen dat iemand je de basis liet zien.

In deze instructable zullen we enkele CAN-BUS-gegevens van uw voertuig retourneren.

En maak je geen zorgen! Ik zal meteen ter zake komen zonder door te draven en buzz-woorden te gebruiken om me als een slimme hacker te laten klinken:-)

Persoonlijk raad ik de Seeed Studio CAN-BUS schilden aan. Ik kan niet echt spreken voor een van de andere merken, maar het CAN-BUS Shield van SeeedStudio heeft me heel goed gediend.

Belangrijke opmerking: de canbus-afscherming is verplicht. Ik heb deze notitie gemaakt omdat mensen vaak vragen of je een CAN-BUS-schild moet gebruiken. Het schild heeft een MCP2515 (CAN Controller) en MCP2551 (Transceiver) die CAN-BUS-gegevens naar de seriële poort van je Arduino zullen verwerken.

De benodigde hardware.1. Arduino UNO - Elke arduino-compatibel is voldoende. Ik heb deze gebruikt

2. SeeedStudio CAN-BUS-schild. Ik heb het rechtstreeks van SeeedStudio, hier is de link

3. Enkele draden om in de CAN-BUS af te tappen

4. een voertuig waarvan u gegevens kunt ophalen

De benodigde software1. Arduino IDE, duh! Blijkbaar:-)

2. SeeedStudio CAN-BUS-bibliotheek. Downloadbaar vanaf GIT Hub

Wat extra vitale informatie als je meer wilt lezen over het SeeedStudio CAN-BUS schild.

Laten we beginnen!

Stap 1: Hardware-installatie en verbinding

Image
Image
Hardware instellen en aansluiten
Hardware instellen en aansluiten
Hardware instellen en aansluiten
Hardware instellen en aansluiten
Hardware instellen en aansluiten
Hardware instellen en aansluiten

Laten we beginnen met het moeilijkste deel. We moeten een plek in uw voertuig vinden waar we de CAN-BUS kunnen aftappen. Ik kan hier niet veel voor je doen, dit moet je zelf uitzoeken. In mijn geval tikte ik via de radio op de CAN-BUS. Ja! de radio. Auto's met geïntegreerde autoradio stellen de verlichting van het autostereodisplay meestal in op basis van de koplampinstelling van het voertuig voor 's nachts rijden. Dit gebeurt meestal via de Interieur CAN-BUS.

Ik heb een USB-verlengkabel gebruikt met een mannelijk USB- en vrouwelijk USB-uiteinde. Dus ik sneed het gewoon doormidden en soldeerde toen de vrouwelijke kant op de connector van de radio. Misschien wilt u een mannelijke vrouwelijke connector kopen voor uw type radio, op die manier hoeft u niet in de bedrading van uw voertuig te splitsen en uw garantie ongeldig te maken of mogelijk brandgevaar te veroorzaken.

En dan het mannelijke deel dat ik heb aangesloten op het SeeedStudio CAN-BUS-schild zoals weergegeven op de afbeelding. Op deze manier kan ik verbinding maken/loskoppelen wanneer dat nodig is.

Tip: Gebruik rode draad voor CAN-H en zwarte voor CAN-L

Stap 2: Installeer de software op de Arduino

Installeer de software op de Arduino
Installeer de software op de Arduino
Installeer de software op de Arduino
Installeer de software op de Arduino
Installeer de software op de Arduino
Installeer de software op de Arduino

Download de SeeedStudio-bibliotheek van de SeeedStudio CAN-BUS-wiki.

github.com/Seeed-Studio/CAN_BUS_Shield

Installeer de bibliotheek zoals getoond in de afbeeldingen.

Selecteer vanuit de Arduino IDE Sketch Include Library - Add.zip Library.

Na het toevoegen van de bibliotheek sluit u de Arduino IDE en opent u deze opnieuw. U kunt nu enkele voorbeelden laden uit het menu Bestand Bestandsvoorbeelden CAN-BUS schild Ontvangstcontrole

Laad voor deze zelfstudie het voorbeeld van de ontvangstcontrole.

Belangrijk!

Het volgende vereist wat vallen en opstaan.

Ik heb mijn Jeep JK 2010 Rubicon gebruikt om gegevens op te halen en de interne bus rijdt op 125Kbs.

In het setup-gedeelte waar staat

terwijl (CAN_OK != CAN.begin(CAN_500KBPS)) ik het moest veranderen in

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

Als u dit verkeerd doet, kunt u geen leesbare gegevens ophalen. In de meeste gevallen, inclusief de mijne, zal uw voertuig gek worden. D.w.z. het cluster met licht op als een kerstboom en de ruitenwissers beginnen te bewegen. omdat het canbus-schild de bus corrumpeert.

Stap 3: Sluit het aan en begin met het ophalen van gegevens

Sluit het aan en begin met het ophalen van gegevens
Sluit het aan en begin met het ophalen van gegevens
Sluit het aan en begin met het ophalen van gegevens
Sluit het aan en begin met het ophalen van gegevens
Sluit het aan en begin met het ophalen van gegevens
Sluit het aan en begin met het ophalen van gegevens

Voordat u verbinding maakt, dient u eerst een gezondheidscheck uit te voeren voordat u deze aansluit op uw voertuig. Het laatste dat u wilt doen, is stroom naar uw CAN-BUS sturen en mogelijk de ECU van uw voertuig opblazen.

Ik heb geen gezondheidscheck gedaan en pas nadat ik me realiseerde dat ik geen gegevens ontvang, zag ik dat ik de USB van de laptop rechtstreeks op de USB-voeding van de Arduino had aangesloten. Gelukkig gebeurde er niets.

In de foto's van deze stap gebruikte ik mijn Lenovo-laptop geladen met Linux Mint. Off-grof kunt u elk besturingssysteem gebruiken om verbinding te maken met de seriële poort van uw Arduino, 1. Installeer de laptop in uw voertuig en schakel het Arduino CAN-BUS-schild in met een USB-kabel.

2. Start Putty of de Arduino seriële monitor (ik geef de voorkeur aan Putty). Als deze is aangesloten, zou je een bericht in de seriële console moeten zien dat het erin is geslaagd om het Can-Bus-schild te initialiseren.

3. Schakel het voertuig in. Het hoeft niet te worden gestart zolang de sleutel in de aan-stand staat.

4. Sluit de Arduino aan op de CAN-BUS. Op het moment dat het is aangesloten, beginnen de gegevens naar de console te streamen.

Stap 4: De gegevens en wat het allemaal betekent

De gegevens en wat het allemaal betekent
De gegevens en wat het allemaal betekent
De gegevens en wat het allemaal betekent
De gegevens en wat het allemaal betekent

Wanneer de gegevens zijn opgehaald, wordt deze in het volgende HEX-formaat gedumpt.

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

De ID vertegenwoordigt meestal een Node in uw voertuig.

Laten we een eenvoudig voorbeeld maken. (Het onderstaande is verzonnen en niet echt, slechts een voorbeeld)

Airco Node ID= 0x402TURN AIRCON UIT = 13TURN AIRCON ON = 14 STEL AIRCON BLOWER IN OP LAAG = 7C STEL AIRCON BLOWER IN OP MEDIUM 8C STEL AIRCON BLAZER IN OP HOOG 9C

Dus als we de airconditioning aanzetten en op medium zetten, ziet het bericht er als volgt uit 0x402, 13, 8C

hetzelfde geldt voor andere knooppunten, bijvoorbeeld Central LockingCentral Locking ID= 0x503LOCK alle deuren = 14

Dus als je op de knop drukt om alle deuren te vergrendelen, ziet het bericht er als volgt uit

0x502, 14

Enkele extra opmerkingen.

Sommige berichten zijn statusgestuurd en sommige of tijdelijk.

Voorbeeld 1. Koplampen als staat aangedreven. Wanneer u een schakelaar in het voertuig op een specifieke positie zet, blijft het knooppunt het bericht steeds opnieuw uitzenden. Als je de CAN-BUS moest storen, stuur dan een bericht om de koplampen uit te schakelen. Hij gaat even uit en dan weer aan omdat het knooppunt waar de schakelaar is ingesteld om de koplampen in te schakelen weer een bericht stuurt om hem aan te zetten.

Voorbeeld2. Nummers overslaan op uw radiohead-unit. wanneer je op een knop drukt en het is een kortstondige knop die het circuit maakt en onmiddellijk verbreekt wanneer je het verlaat, het zal één bericht sturen om het nummer over te slaan en nooit meer totdat je het vraagt, druk opnieuw op de knop.

Gewoonlijk zijn tijdelijke knoppen het handigst omdat u functies in uw voertuig kunt bedienen door een enkele opdracht te verzenden zonder dat u zich zorgen hoeft te maken dat uw opdracht wordt overschreven. Waar als status gestuurde functies voor onbepaalde tijd worden overschreven.

Enkele tips en ideeën

Aangezien je nu in staat bent om de gegevens te dumpen, kun je het gebruiken om je eigen Arduino-circuits te bouwen die zullen reageren op basis van de berichten die te zien zijn op de CAN-BUS. bijvoorbeeld. Stel dat u aftermarket-spots installeert. Zonder in uw bestaande bedrading te hoeven graven, kunt u uw koplampen zelfstandig installeren en alleen inschakelen wanneer uw Arduino een bericht op de CAN-BUS detecteert.

Gegevens verzenden naar de CAN-BUS

Als je de instructie aan het begin van deze instructable hebt gevolgd, heb je de SEEEDStudio-bibliotheken geïnstalleerd. In de Arduino IDE zijn er enkele voorbeelden die je kunt uitproberen.

De ID en het CAN0-BUS-bericht kennen van het knooppunt waarmee u wilt communiceren.

Helaas is dit geen erg gemakkelijke opgave. Maar hier is een idee. Gebruik Putty's Logging-functie en dump alle sessiegegevens naar een bestand. Laat de Arduino de can-bus ongeveer 5 minuten bewaken en sla het log vervolgens op.

Start vervolgens een nieuwe sessie en begin met het dumpen van de gegevens. Maar deze keer terwijl het de gegevens dumpt, drukt u op een knop. Druk niet op meer dan één knop. Druk een paar keer op de knop om te garanderen dat de druk op de knop is vastgelegd.

Gebruik dan een soort vergelijkingstool en vergelijk het bestand om de verschillen te zien. Excel werkt hier prima voor.

Enkele codes die u kunt proberen

Als je hetzelfde Jeep 2010 Rubicon-model als ik hebt (ik weet zeker dat het onderstaande ook zal werken voor modellen '07, '08', 09)

U kunt de volgende berichten proberen. Laad de verzendvoorbeelden uit het Arduino-voorbeeldmenu en de wijziging was relevant.

Schakel de achterste kluis in.: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

Linker knipperlicht aan: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

Knipperlicht rechts aan: CAN.sendMsgBuf (0x2A8, 0, 6, stmp);

ESP aan/uit: CAN.sendMsgBuf (0x2B0, 0, 4, stmp);

In mijn volgende instructable zal ik wat gegevens naar de CAN-BUS van mijn Jeep sturen om te laten zien hoe je ermee kunt interfereren.

Veel geluk!

Stap 5: Bekijk de video

Zie de video voor meer CAN-BUS goedheid!

Aanbevolen: