Sommario:
- Passaggio 1: configurazione e connessione dell'hardware
- Passaggio 2: installa il software su Arduino
- Passaggio 3: collegalo e inizia a recuperare i dati
- Passaggio 4: i dati e cosa significano
- Passaggio 5: guarda il video
Video: Seeed Studio CAN-BUS V2.0 Hacking - Per iniziare: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo istruttivo è pensato per i principianti che conoscono già Arduino. Il sapere iniziale come andare avanti è sempre un dolore e richiede tempo in qualsiasi progetto. Ma finché non saprai come muoverti, vorresti quasi sempre avere qualcuno che ti mostri le basi.
In questa istruzione restituiremo alcuni dati CAN-BUS dal tuo veicolo.
E non preoccuparti! Andrò dritto al punto senza divagare e usare parole d'ordine per farmi sembrare un hacker intelligente:-)
Personalmente consiglio gli shield CAN-BUS di Seeed Studio. Non posso davvero parlare per nessuno degli altri marchi, ma lo scudo CAN-BUS di SeeedStudio mi ha servito molto bene.
Nota importante: la schermatura can-bus è obbligatoria. Ho preso questa nota perché molto spesso le persone chiedono se è necessario utilizzare uno shield CAN-BUS. Lo shield ha un MCP2515 (CAN Controller) e un MCP2551 (Transceiver) che elaboreranno i dati CAN-BUS alla porta seriale del tuo Arduino.
L'hardware richiesto.1. Arduino UNO - Qualsiasi compatibile con Arduino sarà sufficiente. io ho usato questo
2. Schermo CAN-BUS SeeedStudio. L'ho preso direttamente da SeeedStudio ecco il link
3. Alcuni fili da collegare al CAN-BUS
4. un Veicolo da cui recuperare i dati
Il software richiesto1. Arduino IDE, Duh! Ovviamente:-)
2. Libreria CAN-BUS SeeedStudio. Scaricabile da GIT Hub
Alcune informazioni vitali extra se hai voglia di leggere di più sullo shield CAN-BUS SeeedStudio.
Iniziamo!
Passaggio 1: configurazione e connessione dell'hardware
Cominciamo con la parte più difficile. Dobbiamo trovare un posto nel tuo veicolo dove possiamo attingere al CAN-BUS. Non c'è molto che posso fare per te qui, devi capirlo da solo. Nel mio caso ho sfruttato il CAN-BUS tramite la radio. Sì! la radio. I veicoli con car audio integrato di solito impostano l'illuminazione del display stereo dell'auto in base all'impostazione dei fari del veicolo per la guida notturna. Questo di solito viene fatto tramite il CAN-BUS interno.
Ho usato un cavo di estensione USB con un'estremità USB maschio e una USB femmina. Quindi l'ho semplicemente tagliato a metà e poi ho saldato il lato femmina sul connettore della radio. Potresti voler acquistare un connettore maschio femmina per il tuo tipo di radio, in questo modo non devi collegare il cablaggio del tuo veicolo e invalidare la garanzia o potenzialmente causare un rischio di incendio.
E poi la parte maschio che ho collegato allo shield CAN-BUS di SeeedStudio come mostrato in figura. In questo modo posso connettermi/disconnettermi quando necessario.
Suggerimento: utilizzare il filo rosso per CAN-H e nero per CAN-L
Passaggio 2: installa il software su Arduino
Scarica la libreria SeeedStudio dal wiki CAN-BUS di SeeedStudio.
github.com/Seeed-Studio/CAN_BUS_Shield
Installa la libreria come mostrato nelle immagini.
Dall'IDE di Arduino selezionare Sketch Include Library - Add.zip Library.
Dopo aver aggiunto la libreria, chiudi l'IDE di Arduino e riaprilo. Ora sarai in grado di caricare alcuni degli esempi dal menu File Esempi di file Schermo CAN-BUS Controllo ricezione
Per questo tutorial caricare l'esempio di controllo di ricezione.
Importante!
Quanto segue richiederà alcune prove ed errori.
Ho usato la mia Jeep JK 2010 Rubicon per recuperare i dati e il suo autobus interno funziona a 125Kbs.
Nella sezione di configurazione dove si legge
mentre (CAN_OK != CAN.begin(CAN_500KBPS)) ho dovuto cambiarlo in
while (CAN_OK != CAN.begin(CAN_125KBPS))
Se sbagli questo non sarai in grado di recuperare i dati leggibili. Nella maggior parte dei casi, incluso il mio, il tuo veicolo andrà in tilt. Cioè il grappolo si accenderà come un albero di Natale e i tergicristalli inizieranno a muoversi. perché la schermatura del bus può corrompere il bus.
Passaggio 3: collegalo e inizia a recuperare i dati
Prima di connetterti, fai un controllo di integrità prima di collegarlo al tuo veicolo. L'ultima cosa che vuoi fare è inviare alimentazione al tuo CAN-BUS potenzialmente facendo esplodere la ECU del tuo veicolo.
Non ho fatto un controllo di integrità e solo dopo aver realizzato che non ricevevo dati ho visto che ho collegato l'USB del laptop direttamente all'alimentazione USB di Arduino. Per fortuna non è successo niente.
Nelle immagini di questo passaggio ho usato il mio laptop Lenovo caricato con Linux Mint. In modo approssimativo puoi utilizzare qualsiasi sistema operativo per connetterti alla porta seriale del tuo Arduino, 1. Installa il laptop nel tuo veicolo e accendi lo shield Arduino CAN-BUS con un cavo USB.
2. Avvia Putty o il monitor seriale Arduino (preferisco Putty), quando è collegato dovresti vedere un messaggio nella console seriale che ti dice che è riuscito a inizializzare lo shield Can-Bus.
3. Accendere il veicolo. Non è necessario avviarlo finché la chiave è in posizione di accensione.
4. Collegare Arduino al CAN-BUS. Nel momento in cui è connesso, i dati inizieranno a essere trasmessi nella console.
Passaggio 4: i dati e cosa significano
Quando i dati vengono recuperati, li scaricherà nel seguente formato HEX.
ID, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, BIT8
L'ID di solito rappresenta un nodo all'interno del tuo veicolo.
Facciamo un semplice esempio. (Il sotto è inventato e non reale, solo un esempio)
ID nodo aria condizionata= 0x402GIRA ARIA CONDIZIONATA OFF = 13GIRA ARIA CONDIZIONATA ON = 14 IMPOSTA SOFFIATORE ARIA CONDIZIONATA SU BASSO = 7C IMPOSTA SOFFIATORE ARIA CONDIZIONATA A MEDIO 8C IMPOSTA SOFFIATORE ARIA CONDIZIONATO SU ALTO 9C
Quindi, se accendiamo l'aria condizionata e la impostiamo su media, il messaggio sarà simile a questo0x402, 13, 8C
lo stesso vale per altri nodi, esempio Chiusura CentralizzataChiusura Centrale ID= 0x503BLOCCA tutte le porte = 14
Quindi, se premi il pulsante per bloccare tutte le porte, il messaggio sarà simile a questo
0x502, 14
Alcune note extra.
Alcuni messaggi sono guidati dallo stato e alcuni o momentaneamente.
Esempio 1. Fari anteriori come guidati dallo stato. Quando si imposta un interruttore nel veicolo su una posizione specifica, il nodo continuerà a trasmettere il messaggio più e più volte. Se dovessi interferire con il CAN-BUS invia un messaggio per spegnere i fari. Si spegnerà brevemente e poi si riaccenderà perché il nodo in cui è impostato l'interruttore per accendere i fari invierà nuovamente un messaggio per accenderlo.
Esempio2. Saltare le tracce sull'unità principale della radio. quando si preme un pulsante ed è un pulsante momentaneo che crea e interrompe immediatamente il circuito quando lo si lascia, invierà un messaggio per saltare la traccia e mai più finché non si chiede di premere nuovamente il pulsante.
Di solito i pulsanti momentanei sono i più utili perché puoi controllare le funzionalità del tuo veicolo inviando un singolo comando senza preoccuparti che il tuo comando venga sovrascritto. Dove le funzionalità guidate dallo stato verranno sovrascritte a tempo indeterminato.
Alcuni suggerimenti e idee
Vedendo che ora sei in grado di scaricare i dati, puoi utilizzarli per costruire i tuoi circuiti Arduino che reagiranno in base ai messaggi visualizzati sul CAN-BUS. per un esempio. Supponi di installare luci spot after market. Senza dover scavare nel cablaggio esistente, puoi installare i tuoi fari in modo indipendente e accenderli solo quando il tuo Arduino rileva un messaggio sul CAN-BUS.
Invio dati in CAN-BUS
Se hai seguito le istruzioni all'inizio di questo tutorial, hai installato le librerie SEEEDStudio. Nell'IDE di Arduino ci sono alcuni esempi che puoi provare.
Conoscere l'ID e il messaggio CAN0-BUS del nodo con cui si vuole interagire.
Purtroppo questo non è un compito molto facile. Ma ecco un'idea. Usa la funzione di registrazione di Putty e scarica tutti i dati della sessione su un file. Lascia che Arduino monitori il can bus per circa 5 minuti e poi salva il log out.
Quindi avvia una nuova sessione e inizia a scaricare i dati. Ma questa volta, mentre scarica i dati, premi un pulsante. Non premere più di un pulsante. Premi il pulsante un paio di volte per assicurarti che abbia catturato la pressione del pulsante.
Quindi usa una sorta di strumento di confronto e confronta il file per individuare le differenze. Excel funziona alla grande per questo.
Alcuni codici che puoi provare
Se hai il mio stesso modello Jeep Rubicon 2010 (sono sicuro che quanto segue funzionerà anche per i modelli '07, '08', 09)
Puoi provare i seguenti messaggi. Carica gli esempi di invio dal menu degli esempi di Arduino e le modifiche sono state rilevanti.
Attivare l'armadietto posteriore.: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);
Lampeggiatore sinistro acceso: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);
Lampeggiatore destro acceso: CAN.sendMsgBuf(0x2A8, 0, 6, stmp);
ESP On/OFF: CAN.sendMsgBuf(0x2B0, 0, 4, stmp);
Nella mia prossima istruzione invierò alcuni dati al CAN-BUS della mia Jeep per dimostrare come puoi interferire con esso.
Buona fortuna!
Passaggio 5: guarda il video
Guarda il video per più bontà CAN-BUS!
Consigliato:
Iniziare con STM32f767zi Cube IDE e caricare lo schizzo personalizzato: 3 passaggi
Introduzione a STM32f767zi Cube IDE e caricamento dello schizzo personalizzato: ACQUISTA (fare clic sul test per acquistare/visitare la pagina web) STM32F767ZI SOFTWARE SUPPORTATO · STM32CUBE IDE · µVISION KEIL MDK ARM · BANCO DA LAVORO EWARM IAR EMBEDDED · ARDUINO IDE Sono disponibili vari software utilizzato per programmare microcontrollori STM
Come configurare un Raspberry Pi e iniziare a usarlo: 4 passaggi
Come configurare un Raspberry Pi e iniziare a usarlo: per i lettori del futuro, siamo nel 2020. L'anno in cui, se sei fortunato ad essere sano e non infetto da Covid-19, all'improvviso tu , ho avuto molto più tempo libero di quanto avresti mai immaginato. Allora come posso occuparmi in modo non troppo stupido? Oh si
Seeed LoRa IoTea Solution: 5 passaggi
Seeed LoRa IoTea Solution: un sistema di raccolta automatica delle informazioni applicato alla piantagione di tè. Fa parte della raccolta intelligente di informazioni sull'agricoltura
Seeed IoTea LoRa Solution (Aggiornamento 1811): 5 passaggi
Seeed IoTea LoRa Solution (Aggiornamento 1811): Internet+ è un concetto popolare ora. Questa volta abbiamo provato Internet più l'agricoltura per far crescere l'orto del tè dall'Internet Tea
Seeed IoTea LoRa Solution (con Azure, Update 1812): 5 passaggi
Seeed IoTea LoRa Solution (con Azure, Update 1812): Microsoft Azure è un servizio cloud che fornisce una potenza di calcolo più potente e stabile. Questa volta abbiamo provato a inviargli i nostri dati IoTea