Inhoudsopgave:
- Stap 1: Hardware-installatie en verbinding
- Stap 2: Installeer de software op de Arduino
- Stap 3: Sluit het aan en begin met het ophalen van gegevens
- Stap 4: De gegevens en wat het allemaal betekent
- Stap 5: Bekijk de video
Video: Seeed Studio CAN-BUS V2.0 hacken - Aan de slag: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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
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
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:
Levensduur batterij van actiecamera hacken: 4 stappen (met afbeeldingen)
Hack Action Camera Batterijduur: Of je nu een GoPro, Contour of een andere camera hebt, deze is voor jou! Camcorderbatterijen zijn vaak een probleem. Of je maakt lange video's en ze gaan niet lang genoeg mee, of je bent gewoon vergeten om hem eerder volledig op te laden. Misschien is het heel co
Kid's quad hacken in een zelfrijdend, lijnvolgend en obstakeldetecterend voertuig: 4 stappen
Kid's Quad Hacken in een zelfrijdend, lijnvolgend en obstakeldetecterend voertuig. In de Instructable van vandaag zullen we een 1000 Watt (ja, ik weet dat het veel is!) Elektrische kinderquad veranderen in een zelfrijdend, lijnvolgend en obstakel vermijdend voertuig! Demovideo:https://youtu.be/bVIsolkEP1kVoor dit project hebben we de volgende materialen nodig
IKEA Växer hacken: 12 stappen (met afbeeldingen)
IKEA Växer hacken: hier is een snel weekendproject om IKEA's Växer (+ Krydda) binnencultivatorlicht te automatiseren, door het te integreren in Home Assistant met behulp van een microcontroller en ESPHome. Dit veronderstelt dat je al aan de slag bent met Home Assistant
Seeed IoTea LoRa-oplossing (update 1811): 5 stappen
Seeed IoTea LoRa-oplossing (update 1811): Internet+ is nu een populair concept. Deze keer probeerden we internet plus landbouw om theetuin te laten groeien uit internetthee
Seeed IoTea LoRa-oplossing (met Azure, update 1812): 5 stappen
Seeed IoTea LoRa-oplossing (met Azure, Update 1812): Microsoft Azure is een cloudservice die krachtigere en stabielere rekenkracht biedt. Deze keer probeerden we onze IoTea-gegevens ernaartoe te sturen