Taula de continguts:
- Pas 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Step 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Pas 3: Instal·leu O Dongle USB 3G / 4G
- Pas 4: Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
- Pas 5: accediu a DragonBoard 410c Per SSH Sem Fio, utilitzant O Hotspot
- Pas 6: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
- Pas 7: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
- Pas 8: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Pas 9: Informació complementària de Carro Usando Python
- Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Pas 11: Dificuldades Encontradas
- Pas 12: Referències
Vídeo: DragonBoard Com OBD: 12 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Através de la leitura del protocol OBD2 del carro, és possible rebre informació del veicle. Utilitzant un DragonBoard 410c vinguem a treballar en aquest projecte, i traiem aqui o caminho detalhado per reproduir aquest tema.
Aquest projecte va ser fet em parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que permetiram que tivéssim els nostres millors programes, així com el contingut amb els millors serveis per contribuir amb el desenvolupament.
Participar d'aquest projecte:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Màrqueting - [email protected]
Temos total interesse em ajudar você a concluir o seu projecteto, então não deixe de entrar em contato conosco!
Per seguir aquest projecte en anglès, feu clic aquí:
www.instructables.com/id/DragonBoard-and-OBD2/
A estrutura d'aquest projecte inclou els següents components, conformes presentades a la imatge acima:
- Qualcomm DragonBoard 410c
- Interfície OBD2 Bluetooth ELM327
- Dongle USB 3G / 4G
- Carregador Veicular d’Inversió de Tensão (110v)
Pas 1: Fazendo O Setup Inicial Da DragonBoard 410c
Utilitzant un Qualcomm DragonBoard 410c, iniciamos o projecto amb una instal·lació de distribució Linaro de Linux, que ens permet configurar completament el dispositiu.
Per a la imatge de Linaro per a DragonBoard, utilitzeu Ubuntu, pèl VirtualBox, utilitzeu FastBoot, que és aplicatiu basat en Linux. És necessari estar en entorn Linux per poder instal·lar-lo.
Per instal·lar Fastboot, accedir o Terminal de la seva màquina Virtual Ubuntu, i digital:
sudo apt-get android-tools-fastboot
-
Per instal·lar o Linaro, precisament passarem per 2 passos importants:
- Instal·lant o BOOTLOADER
-
Nom de l'arxiu: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Retire os arquivos de dentro do ZIP
-
Pasta entra na:
cd / NomeDaPasta (caminho da pasta descompactada)
-
Fazer o comando:
dispositius sudo fastboot
-
Resposta esperada:
(hexadecimal) arrencada ràpida
-
Então digite:
sudo./flashall
-
Resposta esperada:
acabat. temps total 1.000 s (sem erros)
(sem erros)
-
Instal·lant o Sistema Operacional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Baixar dois arquivos:
-
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Aquest arquiu és a l'última versió (Junho / 17) i o nom futur pot ser alterat. Una base de nom que s'ha de buscar és "boot-linaro-NomeDaVersão". Nesta versió o nom és “Stretch” i va ser anteriorment “Jessie”
-
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Aquest arquiu és una última versió (Junho / 17) i o nom futur pot ser alterat. Cerqueu per “linaro-NomeDaVersão-alip”
- Retirar os arquivos de dentro do. GZ
-
Entrar na pasta “raiz” em relaciona als arquius compactats
exemple: “/ Downloads” que és o local on arquivos baixados estão
-
Entre els comandaments:
dispositius sudo fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (recordant que el temps pot variar):
acabat. temps total: 100,00 s
- Conecte um Mouse, Teclado e um monitor / TV na porta HDMI
-
Utilitzeu:
- Usuari: linaro
- Senha: linaro
-
Abra a interface Lxterminal e faça o download da lista de atualizações disposíveis dos pacotes instalados:
sudo apt-get update
-
Realize a installationção dos pacotes disponíveis using o code:
sudo apt-get upgrade
Dicas: O Linaro tem um boot extremadament ràpid, i una comunitat bastant engajada per a solució de problemes.
Step 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Comece com a instal·lació dos aplicatius que serviran de client per a GPS, seran ells o GNSS-GPSD, o GPSD i o GPSD-CLIENTS. Faça isso using o command:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Com ele instalado, vocé precisará rodar alguns comandos per iniciar o aplicar, são eles:
sudo systemctl start qdsp-start.servicesudo systemctl start gnss-gpsd.servicesudo systemctl start qmi-gps-proxy.service
Leve sua DragonBoard 410c per um local aberto, com visada per o céu, e digite no terminal:
gpsmon –n
Pelos testes realizados, o tempo medio até as informações começarem a aparecer na tela, é de cerca de 10 minutos. Isso varia muito da localização da DragonBoard, quantidade de prédios ao seu redor, além de altres barreiras naturais que possam atrapalhar a recepció do sinal do GPS.
Per aconseguir capturar aquestes informacions i enviar-les a un nucli, utilitzeu el codi abaix, alterant o endereçant el vostre lloc web:
Pas 3: Instal·leu O Dongle USB 3G / 4G
Existeixen algunes formes de fer un DragonBoard 410c per accedir a un 3G / 4G:
- Instal·lació de Shield / BreakoutBoard amb mòdem GSM i ranura per a SimCard;
- Utilitzar un Dongle USB 3G / 4G;
Per a aquest projecte optem pel cabell Dongle USB 3G / 4G del model Huawei E3272, es pot obtenir aquest dispositiu.
Per configurar o mòdem, es pot utilitzar el terminal (com a aplicació WVDial), ja que més fàcil és utilitzar una interfície Gràfica del Usuari (GUI) de Linaro. Faça de la següent forma:
- Com o Dongle USB connectat, feu clic amb botó direito no ícone de “redes” no canto inferior direito da tela.
- "Edita connexions"> "Afegeix"
- Escolta una opció: "Banda ampla mòbil"
- Feu clic a "Crea"
Siga a tela d’instal·lació del sistema operacional, conforme imatges acima, configurant una operadora de telefonia conforme sim card comprado. Per a la criació d’aquest projecte, s’utilitza la targeta Sim da Tim (i el mòdem inicialment es ven a la venda).
Pas 4: Transformant un punt d'accés WiFi / punt d'accés DragonBoard 410c Em
Per utilitzar un DragonBoard 410c com un roteador wifi (ara que es pot configurar una connexió amb internet), d'una manera més senzilla, s'utilitzarà una interfície pròpria del sistema. Siga os passos abaixo:
- Clique no botão direito no ícone de “redes” no canto inferior direito.
- "Edita connexions"> "Afegeix"
- Escolliu l'opció "WiFi"
- Feu clic a "Crea"
Coloque o nome da rede que você quer criar no field "SSID" e depois altere o “Mode” for “Hotspot”.
Per garantir o funcionament:
- Vegeu “Configuració d'IPv4”
- Vegeu el “Mètode” com a “Compartit a altres ordinadors”
Pas 5: accediu a DragonBoard 410c Per SSH Sem Fio, utilitzant O Hotspot
Criamos um jeito d’acessar a placa remotament, independentment de la forma que aquesta estigui connectada, no depenent d’estar proper a Dragonboard per connectar directament a ela, o al wifi em que aquesta estigui connectada. Aquest és el mètode de connexió dels servidors Linux d'Amazon.
Comencem instal·lant o SSH automàtic, utilitzant un codi abaixo.
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
Agora vamos gerar uma chave criptografada com patró de seguretat RSA. Esta chave serve para que a pessoa que a tenha, tenha autorização per accedir a una instància del punt final exclusiu no Linux, através de l'IP públic al mòdem 3G, objectiu principal d'aquest pas. Na sequência, o code faz a copia da chave para o repositório de chaves confiáveis do Linux, garantint encara més confiança per a 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
Així mateix, acabem de transformar un DragonBoard 410c en un servidor cloud! / o /
Pas 6: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
A interface de comunicação com os carros é feita através da porta OBD2. A information que transita nesta porta precise ser traduzida, e para isso precisamos de um interpretador que trate os dados. Té dues opcions per a aquest maquinari: ELM327 o STN1170.
Per a aquest projecte, utilitzeu un dispositiu Bluetooth amb xip basat en ELM327.
Important destacar que la disponibilitat d'aquest maquinari no necessàriament representa una versió ORIGINAL de ELM327. A major part disponível está na versão 1.5, que va ser quan el xip original va ser clonat i col·locat a la venda no mercat. O chipset original està disponible en versió 2.2. A evolutionção deste versionamento traz ao chip mais informações sobre os carros mais novos. És important saber-ho, depenent dos testes realitzats, podent o no aconseguir obtenir informació determinada de vehicles més nous.
De posse do seu dispositiu OBD2 Bluetooth, es troba amb una porta OBD2 do seu carro. El podeu estar localitzat logo abaixo do volante, no console central o perto da caixa de fusíveis. O local varia bastant entre muntadores i models. L'opció per localitzar és utilitzar aquesta eina:
Acess a DragonBoard 410c com SSH, using their Notebook (lembrando that agora você està no carro, e não possui mais uma tela para connectar a placa).
Assim que o device OBD2 Bluetooth for inserido no conector do carro, siga os passos abaixo for ter control from connectivity bluetooth:
sudo bluetoothctl
emparellable a l'agent en l'escaneig d'agent per defecte activatEn aquest moment és important que es copiï o l'adreça MAC es precisi per als propers passos
Digita:
confia en MACADDRESS
parell MACADDRESS
En aquest moment s'ha d'aparèixer una sol·licitud digital per al PIN de parament del Bluetooth OBD2.
O PIN generalment és 1234 o 0000
Após un teixit de succés de connexió, digitant aquest comandament, sentit el programa controlador de Bluetooth digitant:
deixar de fumar
Ara és precís fer un "BIND" del dispositiu amb un porta sèrie:
sudo rfcomm bind 0 MACADDRESS 1
Per validar o succeir l'operació digital:
ls / dev
A porta “Rfcomm0 deve estar na lista.
Pas 7: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
L'objectiu d'aquest pas garanteix el funcionament de la comunicació entre els dispositius:
ELM327, DragonBoard 410c i Veículo
Baixa a l'aplicació “Screen” per enviar mensatges a la Porta Serial
sudo apt-get install screen
A Porta Serial serà usada per envio i recebiment de Comandos AT entre a DragonBoard 410c e o ELM327.
Per saber més sobre Comandos AT, accés:
ATENÇÃO:
Tome muito cuidado nesta parte! Totes com informacions enviades per al dispositiu connectat fins al carro, poder ser interpretades i enviades al carro de manera errada i ocasionar o mal funcionament del seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Recomanem que siga com a instruccions abaixo detalhadamente.
Siga a seqüència de comandaments abaixo per donar inici a comunicació:
-
Aquesta funció farà obrir o terminal de comunicació serial.
pantalla / dev / rfcomm0
Assim que o terminal carregar, digite os comandos abaixo nesta sequência (e entenda o que cada um deles faz):
-
Reinicia o dispositiu. As vezes você precisará fazer isso.
ATZ
-
Liga a funcionalidad de quebra de linha nos comandos, facilitando una visualización.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga o espaçament entre palavras.
ATS1
-
Definiu o protocol de comunicació del carro per a "Automàtic".
ATSP0
Prova de comunicació final:
-
Digite sense consola:
ATI
- He de retornar “ELM327 v1.5” o una versió del ELM del seu dispositiu.
- Isso prova que o ELM327 està comunicant com a placa sem problemes, i podem prosseguir.
Dica
Per a l'aplicació “Screen” és necessari obrir: Ctrl-A seguido de Ctrl-D
Pas 8: Lligant un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD és la vostra biblioteca de Python específica per a comunicação com o padron OBD2 dos veículos. Com ela, podem extrair diverses informacions da rede de comunicação do carro, inclosos dats com a velocitat i fins i tot errors de part elèctrica.
Per a aquesta etapa, precisament garantim que les següents biblioteques estiguin instal·lades en Linaro da sua DragonBoard 410c:
-
PIP - Gerenciador de módulos do Python
sudo apt-get install python-pip
-
SetupTools - gestor d'arquius d'instal·lació
sudo pip install -U pip setuptools
-
Wheel - formatador d'arquius per a instal·lació
sudo apt-get install python-wheel
-
OBD - biblioteca per a interpretació de dats OBD
sudo apt-get python-obd
-
GPS - biblioteca com dados do gps
sudo pip instal·lar gps
-
Sol·licituds - mòdul de sol·licituds
sol·licituds d'instal·lació de sudo pip
Per saber-se a la biblioteca de Python està funcionant correctament, precisament rodar els comandaments:
sudo python
En aquest moment o el cursor del terminal es mudarà per aquest ícone “>>>” indicant que el programa està rodant Python. Podem venir a digitar els comandaments per a serem interpretats segons abaixo.
- Comece importando a biblioteca
importar obd
-
Per fer una connexió amb un ús serial o ordre
connection = obd. OBD ("/ dev / rfcomm0")
-
Per descobrir-se o Python s’obté informació extra per carro, passant pel Bluetooth, ELM327 até arribar sense carro, digite:
connection.protocol_name ()
Pas 9: Informació complementària de Carro Usando Python
Vamos criar um arquivo chamado: OBD.py, conforme instruções abaixo e code na sequência.
Importem una biblioteca OBD per dins de Python per iniciar com a connexions.
Per motius desconeguts, una primera connexió amb un nou maquinari, sempre ha de ser. Na segona tentativa, funciona sempre. Per tant, no hi ha cap codi que hi hagi dues línies de connexió (amb).
Seguint o funcionament del codi, com a connexió feita, iniciamos um loop infinito que busca os dados do OBD, format d’acord amb paràmetres estabelecidos. Feu clic a URL, utilitzant Query String, perquè pugueu enviar-lo al servidor mitjançant un mètode POST.
Cap exemple abaixo pegamos com a següents informacions:
- RPM
- Velocitat
- Odòmetre *
Com a funcions per a la captura dos dies utilitzats per paràmetres. Per exemple, utilitzant [1] [12] estem buscant [mòdul] [PID]. Esta lista pot ser trobada en:
Per últim, a humm a URL com totes as informações são concatenadas e adicionadas em um arquivo, chamado "obd_data.dat".
Codi per OBD.py:
import obdimport timeodoInicial = -1 paramOdo = 0 #Conect OBDprint "Primeira conexao" con = obd. OBD ("/ dev / rfcomm0") print "Segunda conexao" con = obd. OBD ("/ dev / rfcomm0") while True: respRPM = con.query (obd.commands [1] [12]) print respRPM respVelo = con.query (obd.commands [1] [13]) print respVelo respOdo = con.query (obd.commands [1] [49]) print respOdo paramRPM = int (float (str (respRPM).replace ("revolutions_per_minute", ""))) paramVelo = int (float (str (respVelo).replace ("kph", ""))) paramOdo = int (float (str (respOdo).replace ("kilometer", ""))) url = "https://www.website.com/OBD?vel="+str(paramVelo)+"&rpm="+str (paramRPM) + "& odo =" + str (paramOdo) + "\ n" time.sleep (0.2) print url file = open ("obd_data.dat", "a +") file.write (url) file.close () URL d'impressió
Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py
Aquesta part del codi fica més simples. Vine a importar biblioteques relacionades amb sol·licituds / enviament de dats, utilitzant RESTFUL.
Criamos um while per enviar através de POST a URL da first line do arquivo que populado anteriormente hair OBD.py. Depois disso, para evitar que o dado seja enviado mais de uma vez, ela apaga esta linha do arquivo.
Codi per a l'arxiu OBD.py:
sol·licituds d’importació
importar el temps mentre és True: try: time.sleep (0.2) url = "" amb open ('obd_data.dat', 'r') com a fin: data = fin.read (). splitlines (True) url = data [0] requests.post (url) amb open ('obd_data.dat', 'w') com a fout: fout.writelines (dades [1:]) excepte: imprimeix 'exception'
Cas tenha algum problema copiant estes codis, baixe os arquivos abaixo:
Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Tot o que es va fer ara va ser orientat a garantir que a DragonBoard es van formar comunitats amb diferents components de solució, com a comunicació 3G, WiFi, Bluetooth, Dados do GPS, entre altres.
Vamos usar o código abaixo para editar o arquivo 'rc.local', que já tem algumas funções e comandos pré-definidos, e fica no diretório '/ etc'. Per fer l'edició, utilitzeu o comanda:
sudo nano /etc/rc.local
Ara precisem configurar la inicialització de tots els processos, serveis i funcions, criant rotines perquè funcionin automàticament al començament de Dragonboard. Utilitzem BASH per fer-ho. O BASH (Bourne-Again-SHell) és un aplicatiu per a la interpretació de comandaments Unix.
No proper code, that tem commandos BASH, você precisará inserter or MacAddress by your device OBD / Bluetooth, and alsom precisa ter quite cuidado for garantir that o code seja colocado sempre before the command "exit 0" that is a response of success of sistema.
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 de agora, sempre que a placa for iniciada, ela já vai se connectar através do 3G e enviar os dados de GPS e OBD para o servidor escolhido.
Pas 11: Dificuldades Encontradas
Listamos abaixo algumas barreira que trobem al llarg del desenvolupament del projecte, que resolem abans de criar aquest instructable, però que és important alertar-lo, cas que estigui tendeix dificultats també.
-
PyOBD
É preciso ter muito cuidado na hora de transmitir os dados e comunicar com o carro. Nas primer tentatives, quan a comunicação ainda não eravel com o dispositiu, enviamos alguns comandaments per a carro, i acabem causant algun problema en ECU. En aquest moment o cable automàtic no s'aconsegueix més mudances, ficat travat. Alem disso, as luzes do painel começaram a piscar aleatoriamente. A solution for this event that occasionamos foi o desligamento dos cabos da bateria, mantenint assim per 15 minuts. Desta forma, forçamos o reset completo das ECUs do carro, retornant ele ao estàgio original de fábrica, portanto cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD
-
Linaro
Tivemos un problema de arranque no Linaro, quan aleatòriament o OS reiniciava. Aquest problema va ser resolt al llarg del desenvolupament del projecte, pela equipe do Linaro, que soltou uma atualização, e já construímos este tutorial utilitzant una informació més atualitzada
-
GPS a DragonBoard
A Qualcomm Dragonboard 410c no té antenes GPS internes, i és millor rebre recepció de sinal, és precís instal·lar o connectar i adquirir una antena externa. Per fer aquest procediment, segueix els passos proposats pel programa Qualcomm:
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/
Instruccions per a la criació del túnel SSH
gist.github.com/kr0no/63e34c77b02843b46a8d89d8f7b5e4b6
Instal·lant o SSH sense Linux
ask.xmodulo.com/install-autossh-linux.html
Recomanat:
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
Codis OBD II P0420 / P0430 Solució: 5 passos
Codis OBD II P0420 / P0430 Solució: teniu aquesta llum molesta al tauler del vostre Mustang? Heu canviat el sistema d’escapament? Si heu instal·lat una canonada en h o una canonada en off-road (sense convertidors catalítics) o heu eliminat els convertidors catalítics per fer-ne un ús, els vostres
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
Modifiqueu el cable OBD-II per no descarregar la bateria del cotxe: 5 passos
Modifiqueu el cable OBD-II per no descarregar la bateria del cotxe: des de fa temps, tots els vehicles estan equipats amb un port de diagnòstic integrat. Molt sovint aquest port està disponible com a connector OBD-II. Hi ha diversos dispositius capaços de comunicar-se mitjançant aquest connector, molts d'ells estan basats en