Sommario:
- Passaggio 1: esecuzione della configurazione iniziale di DragonBoard 410c**
- Passaggio 2: Individuazione della DragonBoard 410c tramite l'antenna GPS
- Passaggio 3: installazione del dongle USB 3G/4G
- Passaggio 4: trasformare la DragonBoard 410c in un hotspot/access point Wi-Fi
- Passaggio 5: accesso a DragonBoard 410c in modalità wireless utilizzando SSH, tramite connettività hotspot
- Passaggio 6: collegamento della DragonBoard 410c all'OBD dell'auto tramite Bluetooth - Parte 1/2
- Passaggio 7: collegamento della DragonBoard 410c all'OBD dell'auto tramite Bluetooth - Parte 2/2
- Passaggio 8: collegamento della DragonBoard 410c all'OBD dell'auto tramite PyOBD
- Passaggio 9: lettura dei dati dall'auto, utilizzando Python
- Passaggio 10: script ricorrenti e procedura di archiviazione dei dati per i dati acquisiti
- Passaggio 11: problemi lungo la strada
- Passaggio 12: riferimenti
Video: DragonBoard e OBD2: 12 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Leggendo i dati che escono dalla porta OBD2 della tua auto, è possibile raccogliere informazioni sorprendenti da essa. Utilizzando DragonBoard 410c, abbiamo lavorato a questo progetto e lo abbiamo dettagliato qui in modo che tu possa farlo da solo.
Questo progetto è stato possibile solo grazie alla partnership con #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora che ci ha permesso di avere accesso al miglior hardware sul mercato, nonché il contatto con i migliori professionisti per supportare lo sviluppo.
La squadra era composta da questi ragazzi:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Siamo molto desiderosi di aiutarti a raggiungere il tuo obiettivo e assicurarci di completare il tuo progetto, quindi facci sapere se hai bisogno di aiuto oltre alle istruzioni di seguito.
Para seguir este project in Português, clique aqui:
www.instructables.com/id/DragonBoard-Com-OBD
Per questo progetto abbiamo utilizzato i seguenti elementi:
- Qualcomm DragonBoard 410c
- Interfaccia OBD2 Bluetooth ELM327
- Chiavetta USB 3G/4G
- Caricabatteria da auto ad inverter di tensione (110v)
Passaggio 1: esecuzione della configurazione iniziale di DragonBoard 410c**
Utilizzando Qualcomm DragonBoard 410c, abbiamo avviato il progetto installando la distribuzione di Linux chiamata Linaro, che ci consente di configurare tutti i dispositivi necessari.
Per creare un'immagine di Linaro per DragonBoard, usa Ubuntu su VirtualBox, così puoi usare FastBoot (che è un'app basata su Linux). Quindi in pratica quello che devi fare è aprire il Terminale sulla VM Ubuntu e inserire:
sudo apt-get android-tools-fastboot
Per installare Linaro, dobbiamo seguire 2 passaggi importanti:
1) Installazione del BOOTLOADER
Nome file: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Decomprimi i file e seleziona la cartella:
cd /FolderName (percorso della cartella decompressa)
Inserisci il seguente codice:
sudo dispositivi fastboot
Ritorno previsto:
(esadecimale) fastboot
Quindi digita:
sudo./flashall
Ritorno previsto:
finito. tempo totale 1.000s (senza errori)
Installazione del SISTEMA OPERATIVO
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Scarica questi 2 file:
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Questa è l'ultima versione disponibile fino ad oggi (17 giugno), quindi il nome potrebbe cambiare in futuro. Il modello che stai cercando è "boot-linaro-VersionName". Questo si chiama "Stretch" e il precedente era "Jessie".
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Questa è l'ultima versione fino ad oggi (17 giugno) e il nome potrebbe cambiare in futuro. Cerca lo schema "linaro-VersionName-alip".
Decomprimi i file dal. GZ
Accedere alla cartella "root", in relazione ai file decompressi
esempio: "/Download" che è il luogo in cui vengono archiviati i file scaricati.
Ora inizia con i seguenti comandi:
sudo dispositivi fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Ritorno previsto (ricordando che l'orario può variare):
finito. tempo totale: 100.00s
Collega un mouse, una tastiera e un monitor/TV utilizzando la porta HDMI
Tieni questo a portata di mano:
utente: linaro
password: linaro
Aprire l'app Lxterminal e procedere con il download della lista degli aggiornamenti disponibili, relativi ai pacchetti installati:
sudo apt-get update
Assicurati di installare i pacchetti disponibili dall'elenco:
sudo apt-get upgrade
Suggerimento: Linaro è stato scelto per un avvio estremamente veloce e una community molto impegnata e orientata al problem solving, che fa risparmiare molto tempo.
Passaggio 2: Individuazione della DragonBoard 410c tramite l'antenna GPS
Inizia installando le app necessarie che saranno i client del modulo GPS. I nomi delle app sono: GNSS-GPSD, GPSD e GPSD-CLIENTS. Per farlo, segui i comandi:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Con queste app installate, avrai bisogno di più comandi per avviarlo correttamente:
sudo systemctl start qdsp-start.service
sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service
Ora porta il DragonBoard 410c in un'ampia area aperta, con una visuale libera del cielo, permettendogli di ricevere il segnale dai satelliti. Ora digita nel terminale:
gpsmon –n
Dai nostri test, i dati inizierebbero a essere visualizzati sullo schermo dopo 10 minuti, in media. Questo cambia molto da un luogo all'altro, oltre alla posizione della DragonBoard sulla finestra, o all'interno, oltre a molte altre barriere che possono interferire nella ricezione del segnale GPS.
Passaggio 3: installazione del dongle USB 3G/4G
Ci sono alcuni modi per connettere la DragonBoard 410c alla rete 3G/4G/GSM:
- Utilizzo di uno Shield / BreakoutBoard con un modem GSM che ha anche uno slot per SimCard;
- Usa una chiavetta USB 3G/4G.
Per questo progetto abbiamo deciso di utilizzare il Dongle USB E3272 di Huawei, perché è stato facile e veloce acquistarne uno.
Per configurare il modem puoi utilizzare il terminale (utilizzando l'app WVDial), ma il modo più semplice per farlo è utilizzare l'interfaccia grafica utente (GUI) di Linaro. Ad esso come segue:
- Con il Dongle USB collegato alla DragonBoard, fare clic con il pulsante destro del mouse sull'icona "reti" nell'angolo in basso a destra dello schermo;
- “Modifica connessioni” > “Aggiungi”;
- Scegli "Banda larga mobile" dal menu a discesa;
- Fare clic su "Crea".
Segui le istruzioni della procedura guidata, assicurandoti di selezionare l'operatore appropriato dal menu, consentendo al dispositivo di connettersi di conseguenza.
Passaggio 4: trasformare la DragonBoard 410c in un hotspot/access point Wi-Fi
Il modo più semplice per configurare DragonBoard 410c come router Wi-Fi o hotspot (ora che hai configurato la connessione Internet) è utilizzare la GUI del sistema. Per farlo, segui i passaggi seguenti:
- Fare clic con il tasto destro sull'icona della rete nell'angolo in basso a destra
- Scegli "Modifica connessioni e poi "Aggiungi"
- Scegli "WiFi"
- Fare clic su Crea
Modificare il nome della rete che si desidera creare nel campo "SSID" e modificare il campo "Modalità" in "Hotspot".
Per assicurarti che funzioni, verifica quanto segue:
- Vai alla scheda "Impostazioni IPv4"
- Verificare se il "Metodo"
Passaggio 5: accesso a DragonBoard 410c in modalità wireless utilizzando SSH, tramite connettività hotspot
Siamo riusciti a creare un modo per accedere a DragonBoard da remoto, indipendentemente dal fatto che ci sia vicino o meno. Di solito dovresti connetterti alla scheda stessa, usando wifi o bluetooth. Un altro modo, sarebbe quello di accedervi collegandosi alla stessa Rete Wifi (es: da un router). Eseguendo i passaggi successivi, stiamo creando un dispositivo autonomo, che genera la propria rete e si apre al web, per potervi accedere.
Puoi iniziare installando "Auto SSH", utilizzando il codice seguente:
sudo apt-get install gcc make
wget https://www.harding.motd.ca/autossh/autossh-1.4e.tgz tar -xf autossh-1.4e.tgz cd autossh-1.4e./configure make sudo make install
Ora genereremo una chiave crittografica, utilizzando lo standard RSA. Questa chiave verrà utilizzata per accedere in modo sicuro a un'istanza dell'endpoint Linux, tramite l'IP pubblico del modem 3G. L'obiettivo principale di questo passaggio. Il codice seguente copierà quella chiave nel Trusted Keys Repository di Linux, assicurandosi che la connessione sia ancora più sicura.
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub user@remote_server:.ssh/authorized_keys autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222:hostlocale:22 utente@server_remoto
Seguendo questi passaggi, hai appena trasformato Qualcomm DragonBoard 410c in un Cloud Server! \o/
Passaggio 6: collegamento della DragonBoard 410c all'OBD dell'auto tramite Bluetooth - Parte 1/2
L'interfaccia di comunicazione dell'auto avviene tramite una porta OBD2. Le informazioni che vengono scambiate in questa porta devono essere tradotte e per questo abbiamo bisogno di un dispositivo interprete. Esistono due alternative hardware: ELM327 o STN1170.
Per questo progetto abbiamo utilizzato un dispositivo Bluetooth con un chipset basato su ELM327.
È importante notare che la disponibilità dell'ELM327 non significa che sia la VERSIONE ORIGINALE dell'ELM327. La maggior parte dei chipset disponibili si basa sulla versione 1.5, ovvero quando le informazioni del chip sono state clonate e sono trapelate nel mercato. L'originale ELM327 è ora alla versione 2.2. L'evoluzione di questo chipset porta più dati sulle auto più recenti. È importante saperlo, perché a seconda dei test, potresti o meno essere in grado di accedere ai dati dai veicoli più recenti.
Con l'adattatore Bluetooth OBD2, trova la porta OBD2 della tua auto. Potrebbe trovarsi da qualche parte sotto il volante. Potrebbe essere più semplice cercarlo utilizzando questo strumento:
Accedi alla DragonBoard 410c tramite SSH, dal tuo notebook (ricorda che ora sei in macchina e non hai una TV/Monitor per collegare la scheda). Non appena il dispositivo Bluetooth OBD2 viene inserito nella porta dell'auto, seguire i passaggi seguenti per accedere alla connettività Bluetooth.
sudo bluetoothctl
abbinabile su agente su scansione agente predefinita attivaIn questa fase è importante copiare l'indirizzo MAC perché ne avrai bisogno per i passaggi successivi
Digita questi comandi:
fidati di MACADDRESS
coppia MACADDRESS
Dovrebbe essere richiesto con una richiesta di digitare il codice PIN per accoppiare il Bluetooth OBD2 con la scheda.
Di solito il codice PIN è 1234 o 0000 - dipende dal tuo hardware
Ora dovresti vedere la schermata "connessione riuscita". Per uscire dall'applicazione Bluetooth, utilizzare il seguente comando:
uscire
Il prossimo passo è BIND il dispositivo con la porta seriale:
sudo rfcomm bind 0 MACADDRESS 1
Per assicurarti che l'operazione sia riuscita, digita:
ls /dev
Dovrebbe essere elencata la porta "Rfcomm0".
Passaggio 7: collegamento della DragonBoard 410c all'OBD dell'auto tramite Bluetooth - Parte 2/2
L'obiettivo principale di questo passaggio è garantire che la comunicazione tra i 3 dispositivi funzioni:
ELM327, DragonBoard 410c e la macchina
Scarica l'app "Schermo" per inviare messaggi seriali tramite la porta seriale
sudo apt-get install screen
La porta seriale verrà utilizzata per inviare i comandi AT e ricevere le risposte tra la DragonBoard 410c e il dispositivo ELM327.
Accedere al seguente collegamento per ulteriori informazioni sui comandi AT:
elmelectronics.com/ELM327/AT_Commands.pdf
Avvertimento:
Stai molto attento con questo passaggio! Tutte le informazioni inviate al dispositivo verranno interpretate e inviate all'auto, se viene inviato un messaggio errato, può essere interpretato erroneamente dall'auto e causare problemi. Presta attenzione ai comandi e studiali prima di provare il tuo codice. Consigliamo vivamente di seguire alla lettera le istruzioni riportate di seguito.
Seguire la sequenza di comandi di seguito per avviare la comunicazione:
-
Questa funzione avvierà la comunicazione seriale utilizzando lo schermo:
schermo /dev/rfcomm0
Non appena il terminale si carica, digita i seguenti comandi in questa sequenza:
ATZ
ATL1 ATH1 ATS1 ATSP0
Prova finale di comunicazione:
Digita nella console:
ATI
Dovrebbe restituire "ELM327 v1.5" o la versione ELM del tuo dispositivo
Questa è la prova che la comunicazione tra il dispositivo ELM e la DragonBoard 410c funziona
Consiglio rapido
Per uscire da “Screen” è necessario premere Ctrl+A seguito da Ctrl+D.
Passaggio 8: collegamento della DragonBoard 410c all'OBD dell'auto tramite PyOBD
PyOBD è una libreria Python per abilitare la comunicazione con dispositivi OBD2 collegabili alle auto. Con ciò, possiamo estrarre diverse informazioni tra cui la velocità del veicolo e gli errori elettrici.
In questo passaggio dobbiamo assicurarci che le seguenti librerie Python siano installate in Linaro della tua DragonBoard 410c:
-
PIP - Gestore di pacchetti di Python
sudo apt-get install python-pip
-
SetupTools - gestore di installazione di file
sudo pip install -U pip setupstools
-
Wheel - installa il formattatore del pacchetto
sudo apt-get install python-wheel
-
OBD - Libreria Python per comunicare con il dispositivo OBD
sudo apt-get install python-obd
-
GPS - Libreria Python per ottenere dati dal GPS
sudo pip install gps
-
Richieste - Pacchetto Python per RESTful
sudo pip install richieste
Per verificare se il pacchetto di OBD funziona correttamente, segui questi passaggi:
sudo pitone
Ora il cursore del terminale verrà modificato in ">>>" indicando che Python è in esecuzione. Ora puoi iniziare a digitare i comandi seguenti:
-
Inizia importando la libreria OBD:
importare obd
-
Per connettersi alla Porta Seriale utilizzare il comando:
connessione = vecchio. OBD(“dev/rfcomm0”)
- È normale mostrare un messaggio di errore, dicendo che la comunicazione non è riuscita, quindi se ciò accade, prova ancora una volta.
-
Per scoprire se Python sta ricevendo informazioni dall'auto che passa attraverso ELM327 tramite bluetooth, digita quanto segue:
connection.protocol_name()
Passaggio 9: lettura dei dati dall'auto, utilizzando Python
Creeremo un file chiamato: OBD.py, come istruzioni di seguito, seguito dal codice.
Inizia importando la libreria OBD in Python per avviare le connessioni.
Per ragioni sconosciute, utilizzando il nostro hardware, il primo tentativo di connessione fallisce sempre. Secondo tentativo, funziona sempre. Ecco perché sul codice noterai due righe di comando che tentano di stabilire la connessione.
Dopo che la connessione è andata a buon fine, abbiamo avviato un ciclo infinito, che cerca i dati OBD, li formatta secondo i parametri preimpostati. Successivamente, crea un URL, utilizzando Query String, che consente di inviarlo al server utilizzando il metodo POST.
Nell'esempio seguente, siamo riusciti a ottenere le seguenti informazioni:
- RPM
- Velocità
Le funzioni per acquisire i dati utilizzano due parametri. Ad esempio, utilizzando [1][12] stai cercando [module] [PID]. L'elenco delle funzioni è disponibile su:
Infine, genera l'URL con tutte le informazioni concatenate e aggiunte al file, chiamato "obd_data.dat".
Il codice per OBD.py è sotto.
Dopo aver connesso e acquisito i dati, creeremo un file chiamato: envia_OBD.py
Questa parte del codice diventa più semplice. Importa le librerie relative ai dati di richiesta/invio, utilizzando RESTFUL.
Crea un WHILE per utilizzare POST e invia l'URL della prima riga del file, precedentemente popolato da OBD.py. Dopodiché, per evitare che i dati vengano inviati nuovamente, cancella quella riga dal file.
Di seguito è riportato il codice per il file OBD.py.
Passaggio 10: script ricorrenti e procedura di archiviazione dei dati per i dati acquisiti
Tutto ciò che abbiamo fatto finora è stato orientato per assicurarci che la DragonBoard comunicasse correttamente con i componenti, come 3G, Wifi, Bluetooth, dati GPS e altro ancora.
Usa il codice qui sotto per modificare il file "rc.local", che ha già alcune funzioni e comandi predefiniti. Si trova in '/etc'. Per modificare usa il comando:
sudo nano /etc/rc.local
Ora dobbiamo configurare tutti i servizi e le funzioni, creando delle routine che si inizializzano automaticamente all'avvio della DragonBoard. Usiamo BASH per farlo. BASH (Bourne-Again-SHell) è un'app per interprete di comandi Linux.
Il codice seguente contiene comandi BASH e sarà necessario inserire l'indirizzo MAC Bluetooth/OBD. Fai molta attenzione per assicurarti di terminare il codice con "exit 0" che è la risposta del sistema che l'azione ha avuto successo.
Se [! -f /etc/ssh/ssh_host_rsa_key]
poi systemctl stop ssh.socket||true dpkg-reconfigure openssh-server fi sudo systemctl start qdsp-start.service rfcomm bind 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo python /home/linaro /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0
D'ora in poi, ogni volta che accendi la DragonBoard, si connetterà al 3G e invierà i dati GPS e OBD al server prescelto.
Passaggio 11: problemi lungo la strada
Di seguito abbiamo elencato alcuni dei problemi che abbiamo riscontrato lungo la strada prima di scrivere questo Instructable, ma abbiamo pensato che potesse aiutarti se ti capita.
-
PyOBD
Devi essere molto cauto per inviare dati mentre comunichi con l'auto. In uno dei nostri primi tentativi, quando la comunicazione non era stabile, abbiamo inviato il comando sbagliato che ha praticamente mandato in crash l'ECU. Il cambio era bloccato nel parcheggio e alcune luci del cruscotto continuavano a lampeggiare casualmente. La soluzione trovata è stata quella di scollegare uno dei cavi della batteria per circa 15 minuti. Ciò ripristina l'ECU al suo stato predefinito di fabbrica, annullando quindi eventuali comandi o modifiche che potremmo aver apportato
-
Linaro
Abbiamo avuto un problema con la nostra DragonBoard, che continuava a riavviarsi sporadicamente. Il problema è stato risolto dal team di Linaro che ha rilasciato una versione più recente del sistema operativo. Abbiamo scritto questo tutorial con la versione aggiornata
-
Il GPS di DragonBoard
La DragonBoard 410c di Qualcomm non dispone di un'antenna GPS interna, quindi per migliorare l'acquisizione del segnale GPS, è necessario installare un connettore per un'antenna esterna. Questo processo è meglio spiegato nel seguente link:
Passaggio 12: riferimenti
Boot loader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Come installare o Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Documentazione GPS per DragonBoard
discuss.96boards.org/t/gps-software/170/16
Dimostrazione GPS
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Collegamento RaspberryPi à um OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Consigliato:
Tachimetro/indicatore di scansione utilizzando Arduino, OBD2 e CAN Bus: 8 passaggi
Tachimetro/indicatore di scansione utilizzando Arduino, OBD2 e CAN Bus: qualsiasi proprietario di Toyota Prius (o di altri veicoli ibridi/speciali) saprà che ai loro cruscotti potrebbero mancare alcuni quadranti! La mia prius non ha giri motore o indicatore di temperatura. Se sei un tipo da esibizione, potresti voler sapere cose come l'anticipo del tempismo e
Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: 17 passaggi
Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é mostrar as etapas necessárias para configurar o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), através do IDE Eclipse compile os códigos ed exporte para o Alvo (Drag
Come collegare e controllare una lampada tramite il modulo ZigBee su Dragonboard: 5 passaggi
Come collegare e controllare una lampada tramite il modulo ZigBee su Dragonboard: questa istruzione insegna all'utente come collegare e installare correttamente il modulo ZigBee sulla Dragonboard e come interagire con una lampada controllata da ZigBee (OSRAM), creando una rete ZigBee IOT. : Dragonboard 410c; CC2531 Chiavetta USB; T
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 Passaggi
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRIÇÃOO intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes indoor como casas ou shopping centres e aeroportos.A locomoção em ambientes já mapeados pode ou não s
Lettore Bluetooth OBD2: 3 passaggi
Lettore Bluetooth OBD2: benvenuto, questo è il mio primo Instructable e spero che sia facile da capire e che tu possa crearne uno tuo. Se avete domande non esitate a contattarmi e forse posso aiutarvi. Cercherò di renderlo estremamente semplice da seguire con questo