Taula de continguts:
- Pas 1: realització de la configuració inicial de DragonBoard 410c **
- Pas 2: localitzeu el vostre DragonBoard 410c mitjançant la seva antena GPS
- Pas 3: Instal·lació del dongle USB 3G / 4G
- Pas 4: transformar el DragonBoard 410c en un punt d'accés o punt d'accés Wi-Fi
- Pas 5: accedir al DragonBoard 410c sense fils mitjançant SSH, mitjançant la connectivitat de punt d'accés
- Pas 6: Connexió del DragonBoard 410c a l’OBD del cotxe mitjançant Bluetooth - Part 1/2
- Pas 7: Connectar el DragonBoard 410c a l’OBD del cotxe mitjançant Bluetooth - Part 2/2
- Pas 8: Connectar el DragonBoard 410c a l'OBD del cotxe mitjançant PyOBD
- Pas 9: llegir dades del cotxe mitjançant Python
- Pas 10: Scripts recurrents i procediment d'emmagatzematge de dades per a les dades capturades
- Pas 11: problemes al llarg del camí
- Pas 12: referències
Vídeo: DragonBoard i OBD2: 12 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Llegint les dades que surten del port OBD2 del vostre cotxe, és possible recollir-ne informació sorprenent. Amb el DragonBoard 410c, hem treballat en aquest projecte i el detallem aquí perquè pugueu fer-ho vosaltres mateixos.
Aquest projecte només va ser possible gràcies a la col·laboració amb #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que ens va permetre accedir al millor maquinari del mercat, així com al contacte amb els millors professionals per donar suport al desenvolupament.
L’equip estava format per aquests nois:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Màrqueting - [email protected]
Tenim moltes ganes d’ajudar-vos a assolir el vostre objectiu i assegurar-nos que completeu el vostre projecte, així que feu-nos-ho saber si necessiteu ajuda més enllà de les instruccions següents.
Per seguir aquest projecte en portuguès, clique aqui:
www.instructables.com/id/DragonBoard-Com-OBD
Per a aquest projecte hem utilitzat els elements següents:
- Qualcomm DragonBoard 410c
- Interfície OBD2 Bluetooth ELM327
- Dongle USB 3G / 4G
- Carregador de cotxes inversor de tensió (110v)
Pas 1: realització de la configuració inicial de DragonBoard 410c **
Amb Qualcomm DragonBoard 410c, vam iniciar el projecte instal·lant la distribució de Linux anomenada Linaro, que ens permet configurar tots els dispositius necessaris.
Per crear una imatge de Linaro per al DragonBoard, utilitzeu Ubunto a VirtualBox, de manera que pugueu utilitzar FastBoot (una aplicació basada en Linux). Per tant, bàsicament el que heu de fer és obrir el terminal a la VM Ubuntu i entrar:
sudo apt-get android-tools-fastboot
Per instal·lar Linaro, hem de seguir dos passos importants:
1) Instal·lació del BOOTLOADER
Nom del fitxer: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Descomprimiu els fitxers i seleccioneu la carpeta:
cd / FolderName (camí a la carpeta descomprimida)
Introduïu el codi següent:
dispositius sudo fastboot
Retorn previst:
(hexadecimal) arrencada ràpida
A continuació, escriviu:
sudo./flashall
Retorn previst:
acabat. temps total 1.000 s (sense errors)
Instal·lació del SISTEMA OPERATIU
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Descarregueu aquests 2 fitxers:
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Aquesta és l'última versió disponible fins al moment (17 de juny), de manera que el nom podria canviar en el futur. El patró que cercareu és "boot-linaro-VersionName". Aquest es diu "Stretch" i l'anterior era "Jessie".
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Aquesta és l'última versió fins ara (17 de juny) i el nom pot canviar en el futur. Cerqueu el patró "linaro-VersionName-alip".
Descomprimiu els fitxers de. GZ
Accediu a la carpeta "arrel", en relació amb els fitxers descomprimits
exemple: "/ Descàrregues", que és el lloc on s'emmagatzemen els fitxers descarregats.
Ara comenceu amb les ordres següents:
dispositius sudo fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Retorn previst (recordar l'hora pot variar):
acabat. temps total: 100,00 s
Connecteu un ratolí, un teclat i un monitor / TV mitjançant el port HDMI
Tingueu-ho a mà:
usuari: linaro
contrasenya: linaro
Obriu l'aplicació Lxterminal i procediu amb la descàrrega de la llista d'actualitzacions disponibles, quant als paquets instal·lats:
sudo apt-get update
Assegureu-vos d’instal·lar els paquets disponibles de la llista:
sudo apt-get upgrade
Consell: Linaro va ser escollit a causa d'un arrencada extremadament ràpida i una comunitat molt compromesa i orientada a la resolució de problemes, que estalvia molt de temps.
Pas 2: localitzeu el vostre DragonBoard 410c mitjançant la seva antena GPS
Comenceu instal·lant les aplicacions necessàries que seran els clients al mòdul GPS. Els noms de les aplicacions són: GNSS-GPSD, GPSD i GPSD-CLIENTS. Per fer-ho, seguiu les ordres:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Amb aquestes aplicacions instal·lades, necessitareu més ordres per iniciar-la correctament:
sudo systemctl start qdsp-start.service
sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service
Ara porteu el DragonBoard 410c a una zona molt oberta, amb una vista clara del cel, que li permetrà rebre el senyal dels satèl·lits. Ara escriviu al terminal:
gpsmon –n
A partir de les nostres proves, les dades començarien a aparèixer a la pantalla al cap de deu minuts, de mitjana. Això canvia molt d'un lloc a l'altre, a més de la posició del DragonBoard a la finestra o a l'interior, a més de moltes altres barreres que poden interferir en la recepció del senyal GPS.
Pas 3: Instal·lació del dongle USB 3G / 4G
Hi ha algunes maneres de connectar el DragonBoard 410c a la xarxa 3G / 4G / GSM:
- Ús d’un Shield / BreakoutBoard amb un mòdem GSM que també té una ranura SimCard;
- Utilitzeu un dongle USB 3G / 4G.
Per a aquest projecte, vam decidir utilitzar el dongle USB E3272 de Huawei, ja que era fàcil i ràpid comprar-ne un.
Per configurar el mòdem podeu utilitzar el terminal (mitjançant l’aplicació WVDial), però la manera més senzilla de fer-ho és mitjançant la interfície gràfica d’usuari (GUI) de Linaro. Per a això, segueix:
- Amb el dongle USB connectat al DragonBoard, feu clic amb el botó dret a la icona de "xarxes" a l'extrem inferior dret de la pantalla;
- "Edita connexions"> "Afegeix";
- Trieu "Banda ampla mòbil" al menú desplegable;
- Feu clic a "Crea".
Seguiu les instruccions de l'assistent i assegureu-vos de seleccionar el transportista adequat al menú, permetent que el dispositiu es connecti en conseqüència.
Pas 4: transformar el DragonBoard 410c en un punt d'accés o punt d'accés Wi-Fi
La forma més senzilla de configurar el DragonBoard 410c com a encaminador wifi o punt d'accés Wi-Fi (ara que heu configurat la connexió a Internet) és fer servir la interfície gràfica d'usuari del sistema. Per fer-ho, seguiu els passos següents:
- Feu clic amb el botó dret a la icona de xarxa a l'extrem inferior dret
- Trieu "Edita les connexions i, a continuació," Afegeix"
- Trieu "WiFi"
- Feu clic a crear
Canvieu el nom de la xarxa que voleu crear al camp "SSID" i canvieu el camp "Mode" a "Punt d'accés Wi-Fi".
Per assegurar-vos que funcionarà, verifiqueu el següent:
- Aneu a la pestanya "Configuració d'IPv4"
- Verifiqueu si el "mètode"
Pas 5: accedir al DragonBoard 410c sense fils mitjançant SSH, mitjançant la connectivitat de punt d'accés
Hem aconseguit crear una manera d’accedir al DragonBoard de forma remota, sense importar si esteu a prop o no. Normalment, haureu de connectar-vos a la mateixa placa, mitjançant wifi o bluetooth. Una altra manera seria accedir-hi connectant-se a la mateixa xarxa Wifi (per exemple: des d’un enrutador). En realitzar els passos següents, estem creant un dispositiu autònom que genera la seva pròpia xarxa i que s’obre al web per tal d’accedir-hi.
Podeu començar instal·lant el "SSH automàtic" mitjançant el codi següent:
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
Ara generarem una clau criptogràfica, utilitzant l’estàndard RSA. Aquesta clau s’utilitzarà per accedir de manera segura a una instància de punt final Linux, mitjançant la IP pública del mòdem 3G. L’objectiu principal d’aquest pas. El següent codi copiarà aquesta clau al dipòsit de claus de confiança de Linux, assegurant-se que hi hagi més seguretat a la connexió.
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: localhost: 22 user @ remote_server
Seguint aquests passos, acabeu de transformar el Qualcomm DragonBoard 410c en un servidor de núvol. / o /
Pas 6: Connexió del DragonBoard 410c a l’OBD del cotxe mitjançant Bluetooth - Part 1/2
La interfície de comunicació del cotxe es realitza mitjançant un port OBD2. Cal traduir la informació que s’intercanvia en aquest port i, per a això, necessitem un dispositiu intèrpret. Hi ha dues alternatives de maquinari: ELM327 o STN1170.
Per a aquest projecte, hem utilitzat un dispositiu Bluetooth amb un chipset basat en ELM327.
És important tenir en compte que la disponibilitat de l'ELM327 no significa que sigui la VERSIÓ ORIGINAL d'ELM327. La major part dels chipsets disponibles es basen en la versió 1.5, que va ser quan es va clonar la informació del xip i es va filtrar al mercat. L’ELM327 original ja és a la versió 2.2. L’evolució d’aquest chipset aporta més dades sobre els cotxes més nous. És important saber-ho, perquè segons les proves, és possible que pugueu o no accedir a les dades dels vehicles més nous.
Amb l’adaptador Bluetooth OBD2, trobeu el port OBD2 del vostre cotxe. Es pot localitzar en algun lloc sota el volant. Pot ser més fàcil buscar-lo mitjançant aquesta eina:
Accediu al DragonBoard 410c mitjançant SSH, des del vostre portàtil (recordeu que ara esteu al cotxe i no teniu un televisor / monitor per endollar la placa). Tan bon punt el dispositiu Bluetooth OBD2 s’insereixi al port del cotxe, seguiu els passos següents per accedir a la connectivitat bluetooth.
sudo bluetoothctl
emparellable a l'agent en l'escaneig d'agent per defecte activatEn aquesta etapa és important que copieu l’adreça MAC perquè la necessitareu per als passos següents
Escriviu aquestes ordres:
confia en MACADDRESS
parell MACADDRESS
Se us demanarà que escriviu el codi PIN per emparellar l’OBD2 Bluetooth amb la placa.
Normalment, el codi PIN és si 1234 o 0000 depèn del vostre maquinari
Ara hauríeu de veure la pantalla "Connexió correcta". Per sortir de l'aplicació Bluetooth, utilitzeu l'ordre següent:
deixar de fumar
El següent pas és ENLLAÇAR el dispositiu amb el port sèrie:
sudo rfcomm bind 0 MACADDRESS 1
Per assegurar-vos que l'operació ha tingut èxit, escriviu:
ls / dev
El port "Rfcomm0" hauria de figurar.
Pas 7: Connectar el DragonBoard 410c a l’OBD del cotxe mitjançant Bluetooth - Part 2/2
L'objectiu principal d'aquest pas és garantir que la comunicació entre els 3 dispositius funcioni:
ELM327, DragonBoard 410c i el cotxe
Baixeu l'aplicació "Pantalla" per enviar missatges en sèrie a través del port sèrie
sudo apt-get install screen
El port sèrie s’utilitzarà per enviar ordres AT i rebre les respostes entre el DragonBoard 410c i el dispositiu ELM327.
Accediu al següent enllaç per obtenir més informació sobre els comandaments AT:
elmelectronics.com/ELM327/AT_Commands.pdf
Advertència:
Tingueu molta cura amb aquest pas! Tota la informació que envieu al dispositiu s’interpretarà i s’enviarà al cotxe; si s’envia un missatge incorrecte, el cotxe pot ser mal interpretat i causar problemes. Presteu atenció a les ordres i estudieu-les abans d’intentar el vostre propi codi. Us recomanem que seguiu les instruccions que apareixen a continuació.
Seguiu la seqüència d'ordres següent per iniciar la comunicació:
-
Aquesta funció iniciarà la comunicació en sèrie mitjançant la pantalla:
pantalla / dev / rfcomm0
Tan bon punt es carregui el terminal, escriviu les ordres següents en aquesta seqüència:
ATZ
ATL1 ATH1 ATS1 ATSP0
Prova final de comunicació:
Escriviu la consola:
ATI
Hauria de retornar "ELM327 v1.5" o la versió ELM del vostre dispositiu
Això és una prova que la comunicació del dispositiu ELM i el DragonBoard 410c funciona
Consell ràpid
Per sortir de “Pantalla” és necessari escriure Ctrl + A seguit de Ctrl + D.
Pas 8: Connectar el DragonBoard 410c a l'OBD del cotxe mitjançant PyOBD
PyOBD és una biblioteca Python que permet la comunicació amb dispositius OBD2 que es poden connectar als cotxes. Amb això, podem extreure diverses dades, incloses la velocitat del vehicle i els errors elèctrics.
En aquest pas, hem d'assegurar-nos que les següents biblioteques python estiguin instal·lades a Linaro del vostre DragonBoard 410c:
-
PIP: gestor de paquets de Python
sudo apt-get install python-pip
-
SetupTools: gestor d'instal·lació de fitxers
sudo pip install -Tools de configuració de pip U.
-
Roda: instal·la el formatador del paquet
sudo apt-get install python-wheel
-
OBD: biblioteca Python per comunicar-se amb el dispositiu OBD
sudo apt-get install python-obd
-
GPS: biblioteca Python per obtenir dades del GPS
sudo pip instal·lar gps
-
Sol·licituds: paquet Python per a RESTful
sol·licituds d'instal·lació de sudo pip
Per verificar si el paquet d’OBD funciona correctament, seguiu aquests passos:
sudo python
Ara el cursor del terminal es canviarà a ">>>" que indica que Python s'està executant. Ara podeu començar a escriure les ordres següents:
-
Comenceu per importar la biblioteca OBD:
importar obd
-
Per connectar-vos al port sèrie utilitzeu l'ordre:
connection = old. OBD ("dev / rfcomm0")
- És normal que es mostri un missatge d'error que digui que la comunicació ha fallat; per tant, si això passa, proveu-ho una vegada més.
-
Per saber si Python rep informació del cotxe que passa per ELM327 mitjançant bluetooth, escriviu el següent:
connection.protocol_name ()
Pas 9: llegir dades del cotxe mitjançant Python
Crearem un fitxer anomenat: OBD.py, com a instruccions següents, seguit del codi.
Comenceu important la biblioteca OBD a Python per iniciar les connexions.
Per motius desconeguts, mitjançant el nostre maquinari, el primer intent de connexió sempre falla. El segon intent, sempre funciona. Per això, al codi, notareu dues línies de comandament que intenten establir la connexió.
Després que la connexió tingui èxit, vam iniciar un bucle infinit que busca dades OBD i els formata segons paràmetres predeterminats. Després d'això, crea un URL, mitjançant Query String, que permet enviar-lo al servidor mitjançant el mètode POST.
A l'exemple següent, hem aconseguit obtenir la informació següent:
- RPM
- Velocitat
Les funcions per capturar dades utilitzen dos paràmetres. Per exemple, utilitzant [1] [12] feu servir el [mòdul] [PID]. La llista de funcions es pot trobar a:
Per fi, genereu l'URL amb tota la informació concatenada i afegida al fitxer, anomenada "obd_data.dat".
A continuació es mostra el codi per a OBD.py.
Després de connectar i capturar les dades, crearem un fitxer anomenat: envia_OBD.py
Aquesta part del codi es fa més senzilla. Importeu les biblioteques relacionades amb la sol·licitud / enviar dades mitjançant RESTFUL.
Creeu un WHILE per utilitzar POST i envieu l'URL de la primera línia del fitxer, poblada anteriorment per OBD.py. Després, per evitar que es tornin a enviar dades, esborra aquesta línia del fitxer.
A continuació es mostra el codi del fitxer OBD.py.
Pas 10: Scripts recurrents i procediment d'emmagatzematge de dades per a les dades capturades
Tot el que hem fet fins ara estava orientat a assegurar-nos que el DragonBoard es comunicés correctament amb els components, com ara 3G, Wifi, Bluetooth, dades GPS i molt més.
Utilitzeu el codi següent per editar el fitxer "rc.local", que ja té algunes funcions i ordres predefinides. Es troba a '/ etc'. Per editar, utilitzeu l'ordre:
sudo nano /etc/rc.local
Ara hem de configurar tots els serveis i funcions, creant rutines que s’inicialitzen automàticament quan s’inicia el DragonBoard. Utilitzem BASH per fer-ho. BASH (Bourne-Again-SHell) és una aplicació d’intèrpret d’ordres de Linux.
El següent codi té ordres BASH i haureu d’inserir l’adreça MAC Bluetooth / OBD. Tingueu molt de compte per assegurar-vos que finalitzeu el codi amb "sortida 0", que és la resposta del sistema a què l'acció ha tingut èxit.
si [! -f / etc / ssh / ssh_host_rsa_key]
llavors 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
A partir d’ara, cada vegada que activeu el DragonBoard, es connectarà a 3G i enviarà dades de GPS i OBD al servidor escollit.
Pas 11: problemes al llarg del camí
A continuació, enumerem alguns dels problemes que hem trobat al llarg del camí abans d’escriure aquest document instructiu, però hem pensat que pot ajudar-vos si us passa.
-
PyOBD
Cal que sigueu molt prudents a l’hora d’enviar dades mentre us comuniqueu amb el cotxe. En un dels nostres primers intents, quan la comunicació no era estable, vam enviar una ordre incorrecta que bàsicament va estavellar l’ECU. El canvi de marxes estava bloquejat a l’aparcament i algunes de les llums del tauler continuaven parpellejant a l’atzar. La solució trobada va ser desconnectar un dels cables de la bateria durant uns 15 minuts. D'aquesta manera, l'ECU restablirà el seu estat predeterminat de fàbrica i, per tant, cancel·larà qualsevol ordre o canvi que haguem pogut fer
-
Linaro
Hem tingut un problema amb el nostre DragonBoard, que es va continuar reiniciant esporàdicament. L’equip de Linaro va resoldre el problema, que va llançar una versió més nova del sistema operatiu. Hem escrit aquest tutorial amb la versió actualitzada
-
GPS de DragonBoard
El DragonBoard 410c de Qualcomm no té una antena GPS interna, de manera que, per millorar l’adquisició del senyal GPS, hem d’instal·lar un connector per a una antena externa. Aquest procés s’explica millor al següent enllaç:
Pas 12: referències
Carregador d'arrencada
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Com instal·lar o Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Documentació de GPS per a DragonBoard
discuss.96boards.org/t/gps-software/170/16
Demostració GPS
gist.github.com/wolfg1969/4653340
OBD Python
github.com/brendan-w/python-OBD
Connectant RaspberryPi a un OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Recomanat:
Tacòmetre / indicador d'escaneig mitjançant Arduino, OBD2 i bus CAN: 8 passos
Tacòmetre / indicador d’escaneig amb Arduino, OBD2 i CAN Bus: qualsevol propietari de Toyota Prius (o d’un altre vehicle híbrid / especial) sabrà que als seus taulers d’ordres pot faltar algun dial. El meu prius no té rpm ni indicador de temperatura. Si sou un home de rendiment, és possible que vulgueu saber coses com l'avanç del temps i
Com connectar i controlar un llum mitjançant el mòdul ZigBee a Dragonboard: 5 passos
Com connectar i controlar una làmpada a través del mòdul ZigBee a Dragonboard: aquesta instrucció ensenya a l’usuari com connectar-se i instal·lar correctament el mòdul ZigBee al Dragonboard i com interactuar amb una làmpada controlada per ZigBee (OSRAM), creant una xarxa IOT ZigBee. : Dragonboard 410c; CC2531 dongle USB; T
Detecció de situacions emergents: Qualcomm Dragonboard 410c: 7 passos
Detecció de situacions d'emergència - Qualcomm Dragonboard 410c: buscant sistemes de seguretat que treballin per supervisar situacions d'emergència, és possible adonar-se que és massa difícil processar tota la informació registrada. Pensant en això, vam decidir utilitzar els nostres coneixements en processament d’àudio / imatge, sensors i
LibMiletus IoT Framework a DragonBoard: 4 passos
LibMiletus IoT Framework a DragonBoard: LibMiletus és un marc d’interoperabilitat de codi obert que permet als dispositius IoT identificar-se en una xarxa i, per tant, ser controlats per altres dispositius d’aquesta xarxa
Lector Bluetooth OBD2: 3 passos
Lector Bluetooth OBD2: Benvingut, aquest és el meu primer instructiu i, amb sort, és fàcil d’entendre i el podeu fer vostre. Si teniu alguna pregunta, no dubteu a posar-vos en contacte amb mi i potser us puc ajudar. Intentaré que sigui extremadament senzill de seguir amb això