Sommario:
- Passaggio 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Passaggio 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Passaggio 3: installazione di un dongle USB 3G/4G
- Passaggio 4: trasformare un hotspot / punto di accesso WiFi DragonBoard 410c Em
- Passaggio 5: accedere a DragonBoard 410c per SSH Sem Fio, utilizzando l'hotspot
- Passaggio 6: Legando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 1/2
- Step 7: Legando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 2/2
- Passaggio 8: legare un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Step 9: Extraindo Informações Do Carro Usando Python
- Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Fase 11: Dificuldades Encontradas
- Fase 12: Referências
Video: DragonBoard Com OBD: 12 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Através da leitura do protocolo OBD2 do carro, é possibile receber informações do veículo. Utilizando a DragonBoard 410c começamos a trabalhar neste projeto, e trazemos aqui o caminho detalhado para você reproduzir isso.
Este projeto foi feito em parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que allowiram que tivéssemos acesso aos melhores hardwares, além do contato com os melhores profissionais para contribuire com o desenvolvimento.
Partecipa al progetto:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Temos total interesse em ajudar você a concluir o seu projeto, então não deixe de entrar em contato conosco!
Per seguire questo progetto in inglese, clicca qui:
www.instructables.com/id/DragonBoard-and-OBD2/
A estrutura deste projeto inclui os seguintes componentes, conforme apresentados na imagem acima:
- Qualcomm DragonBoard 410c
- Interfaccia OBD2 Bluetooth ELM327
- Chiavetta USB 3G/4G
- Carregador Veicular de Inversão de Tensão (110v)
Passaggio 1: Fazendo O Setup Inicial Da DragonBoard 410c
Utilizzando Qualcomm DragonBoard 410c, inizia il progetto con l'installazione della distribuzione Linaro su Linux, non consente la configurazione completa del dispositivo.
Per creare un'immagine di Linaro per DragonBoard, utilizzare Ubuntu, VirtualBox, per FastBoot, che è un'applicazione basata su Linux. È necessario estar em ambiente Linux per poder instala-lo.
Per installare o Fastboot, accedere o Terminal da sua Máquina Virtual Ubuntu, e digitare:
sudo apt-get android-tools-fastboot
-
Para instalar o Linaro, precisamos passar por 2 passi muito importantes:
- Installazione o BOOTLOADER
-
Nome dell'archivio: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Ritirare gli archivi all'interno dello ZIP
-
Entra nella pasta:
cd /NomeDaPasta (caminho da pasta descompactada)
-
Fazer o comando:
sudo dispositivi fastboot
-
Risposta esperada:
(esadecimale) fastboot
-
Digita:
sudo./flashall
-
Risposta esperada:
finito. tempo totale 1.000s (sem errori)
(sempre errori)
-
Instalando o Sistema Operativo
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Baixar dois arquivos:
-
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Este arquivo é a última versão (Junho/17) e o nome futuro pode ser alterado. A base do nome que você deve buscar é “boot-linaro-NomeDaVersão”. Nesta versão o nome é “Stretch” e a anterior foi “Jessie”
-
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Este arquivo é a última versão (Junho/17) e o nome futuro pode ser alterado. Procure por “linaro-NomeDaVersão-alip”
- Retirar os arquivos de dentro do. GZ
-
Entra nella pasta "raiz" em relação aos aos arquivos compactados
esempio: “/Downloads” que é o local onde os arquivos baixados estão
-
Entre com os comandi:
sudo dispositivi fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (lembrando que o tempo pode variar):
finito. tempo totale: 100.00s
- Connetti un mouse, Teclado e un monitor/TV su porta HDMI
-
Utilizzare:
- Usuario: linaro
- Senha: linaro
-
Abra un'interfaccia Lxterminal e faça o scarica la lista degli aggiornamenti disponibili per i pacchetti installati:
sudo apt-get update
-
Realizza un'installazione dos pacotes disponíveis usando o codice:
sudo apt-get upgrade
Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante engajada para solução de problemas.
Passaggio 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Come installare le applicazioni per il servizio del cliente per GPS, inviare elementi o GNSS-GPSD, o GPSD e o GPSD-CLIENTS. Faça isso usando o comando:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Com ele instalado, você precisará rodar alguns comandos para iniciar o aplicativo, 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 para o céu, e digite no terminal:
gpsmon –n
Pelos testes realizados, o tempo médio até as informações começarem a aparecer na tela, é de cerca de 10 minuti. Isso varia muito da localizzare da DragonBoard, quantidade de prédios ao seu redor, além de outras barreiras naturais que possam atrapalhar a recepção do sinal do GPS.
Para conseguir capturar essas informações e mandar para a núvem, use o código abaixo, alterando o endereço do seu website:
Passaggio 3: installazione di un dongle USB 3G/4G
Esistono algumas formas de fazer a DragonBoard 410c acessar a rede 3G/4G:
- Installazione di Shield / BreakoutBoard con Modem GSM e slot per SimCard;
- Utilizzo del dongle USB 3G/4G;
Per questo progetto è possibile utilizzare il Dongle USB 3G/4G da Huawei modello E3272, facilmente installabile su questo dispositivo.
Per configurare il modem, utilizzare il terminale per utilizzare il terminale (con un'applicazione WVDial), utilizzare più facilmente il proprio dispositivo per l'interfaccia grafica dell'utente (GUI) di Linaro. Faça da seguito forma:
- Com o Dongle USB conectado, clicar com botão diretto no ícone de “redes” no canto lower diretto da tela.
- “Modifica connessioni” > “Aggiungi”
- Escolha a opção: "Banda larga mobile"
- Clicca su "Crea"
Siga la tela di installazione del sistema operativo, si adatta alle immagini, configurando un'operatrice di telefonia sim card comprado. Per creare un progetto, utilizzare la Sim Card da Tim (e un modem inizialmente venduto a Pela Vivo).
Passaggio 4: trasformare un hotspot / punto di accesso WiFi DragonBoard 410c Em
Per utilizzare un DragonBoard 410c come un router wifi (agora que você já configurou a conectividade com a Internet), una manera più semplice è utilizzare una propria interfaccia del sistema. Siga o passi abaixo:
- Clique no botão direito no ícone de “redes” no canto lower direito.
- “Modifica connessioni” > “Aggiungi”
- Scegli l'opzione "WiFi"
- Clicca su "Crea"
Coloque o nome da rede que você quer criar no campo "SSID" e depois altere o “Mode” para “Hotspot”.
Per garantire il funzionamento:
- Vá na aba “Impostazioni IPv4”
- Veja se o “Metodo” está marcado como “Condiviso con altri computer”
Passaggio 5: accedere a DragonBoard 410c per SSH Sem Fio, utilizzando l'hotspot
Criamos um jeito de acessar a placa remotamente, independente da forma que ela esteja conectada, não dependendo de estar próximo a Dragonboard para conectar diretamente à ela, ou ao wifi em que ela esteja conectada. Questo è il metodo di connessione dei server Linux da Amazon.
Começamos instalando o Auto SSH, utilizando o código 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 padrão de segurança RSA. Questo può essere utilizzato per l'accesso a un computer, un'autorizzazione per l'accesso a un'istanza dell'endpoint esclusivo su Linux, oltre all'IP pubblico del modem 3G, l'obiettivo principale è il passo. Na sequência, o código faz a copia da chave para o repositório de chaves confiáveis do Linux, garantindo ainda mais confiança para a conexão.
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
Com isso, acabamos de transformar a DragonBoard 410c em um servidor cloud! \o/
Passaggio 6: Legando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 1/2
Un'interfaccia di comunicazione che consente di accedere alla porta OBD2. A informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Ha due opzioni per questo hardware: ELM327 o STN1170.
Per questo progetto, puoi utilizzare il tuo dispositivo Bluetooth con chip basato su ELM327.
Importante destacar que a disponibilidade deste hardware não necessariamente rappresenta una versão ORIGINAL do ELM327. A maior parte disponível está na versão 1.5, que foi quando o chip original foi clonado e colocado a venda no mercado. La versione originale del chipset è la versione 2.2. A evolução deste versionamento traz ao chip più informações sobre os carros mais novos. É importante saber disso, pois dependendo dos testes realizados, poderá ou não conseguir obter determinadas informações de veículos mais novos.
Se possiedi un dispositivo OBD2 Bluetooth, puoi incontrare una porta OBD2 con qualsiasi dispositivo. Ela pode estar localizzata logo abaixo do volante, nessuna console centrale o perto da caixa de fusíveis. O local varia bastante entre as montadoras e modelos. Opzione per la localizzazione e l'uso di questa ferramenta:
Acesse a DragonBoard 410c com SSH, utilizzando seu Notebook (lembrando que agora você está no carro, e não possui mais uma tela para conectar a placa).
Assieme al dispositivo OBD2 Bluetooth per l'inserimento di nessun connettore sul carro, si prega di collegare il dispositivo per controllare la connessione bluetooth:
sudo bluetoothctl
abbinabile su agente su scansione agente predefinita attivaNeste momento é importante que você copie o MAC Address pois precisará para os próximos passis
Digita:
fidati di MACADDRESS
coppia MACADDRESS
Se necessario, è necessario richiedere la richiesta per la digitazione del PIN di configurazione del Bluetooth OBD2.
O PIN generalmente é 1234 o 0000
Após a tela de sucesso de conexão, digitando este comando, você sai do programa controlador do Bluetooth digitando:
uscire
Agora é preciso fazer um "BIND" do dispositivo con una porta seriale:
sudo rfcomm bind 0 MACADDRESS 1
Para validar o sucesso da operação digite:
ls /dev
A porta "Rfcomm0" deve estar na lista.
Step 7: Legando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth – Passo 2/2
L'obiettivo è garantire il funzionamento della comunicazione tra i dispositivi:
ELM327, DragonBoard 410c e Veículo
Baixe aplicação “Screen” para enviar mensagens pela Porta Serial
sudo apt-get install screen
A Porta Serial será usato per envio e recebimento de Comandi AT entre a DragonBoard 410c e o ELM327.
Per ulteriori informazioni sui comandi AT, accesso:
ATTENÃO:
Tome muito cuidado nesta parte! Tutte le informazioni disponibili per il collegamento del dispositivo su un carro, poderão ser interpretadas and enviadas ao carro de maneira errada e occasionalmente o mal-funzionamento del tuo carro! Estude bastante os comandi prima del tentativo di innovare i comandi. Recomendamos que siga as instruções abaixo detalhadamente.
Siga una sequenza di comandi abaixo para dar início à comunicação:
-
È possibile aprire il terminale di comunicazione seriale.
schermo /dev/rfcomm0
Assim que o terminal carregar, digite os comandis abaixo nesta sequência (e entenda o que cada um deles faz):
-
Reinicia o dispositivo. Come vezes você precisará fazer isso.
ATZ
-
Liga a funcionalidade de quebra de linha nos comandi, facilitando a visualização.
ATL1
-
Liga os cabeçalhos dos comandi.
ATH1
-
Liga o espaçamento entre palavras.
ATS1
-
Define o protocolo de comunicação do carro para “Automático”.
ATSP0
Test di comunicazione finale:
-
Digita nessuna console:
ATI
- È necessario restituire "ELM327 v1.5" o una versione di ELM sul proprio dispositivo.
- Isso prova que o ELM327 está comunicando com a placa sem problemas, e podemos prosseguir.
dica
Para sair da aplicação “Screen” é necessário apertar: Ctrl-A seguito da Ctrl-D
Passaggio 8: legare un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD é uma biblioteca de Python specifica per comunicação com o padrão OBD2 dos veículos. Com ela, podemos extrair diversas informações da rede de comunicação do carro, incluindo dados como velocidade e até mesmo erros da parte elétrica.
Para esta etapa, precisamos garantir que as seguintes bibliotecas estejam instaladas no Linaro da sua DragonBoard 410c:
-
PIP – Gerenciador de módulos do Python
sudo apt-get install python-pip
-
SetupTools – Gestore degli archivi di installazione
sudo pip install -U pip setuptools
-
Ruota – formatore di arquivos para instalação
sudo apt-get install python-wheel
-
OBD – biblioteca para interpretação de dados OBD
sudo apt-get python-obd
-
GPS – biblioteca com dados do gps
sudo pip install gps
-
Richieste – modulo di sollecitazione
sudo pip install richieste
Para saber se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandis:
sudo pitone
Neste momento o cursor do terminal vai mudar para este ícone “>>>” indicando que o programa está rodando Python. Podemos come un comando digitale per serem interpretati secondo abaixo.
- Comece importando una biblioteca
importare obd
-
Para fazer a conexão com a porta serial use o comando
connessione = obd. OBD(“/dev/rfcomm0”)
-
Para descobrir se o Python está conseguindo extrair informações do carro, passando pelo Bluetooth, ELM327 até chegar no carro, digite:
connection.protocol_name()
Step 9: Extraindo Informações Do Carro Usando Python
Vamos criar um arquivo chamado: OBD.py, conforme instruções abaixo e código na sequência.
Importamos a biblioteca OBD para dentro do Python para iniciar as conexões.
Per motivi desconhecidos, a primeira conexão com nosso hardware, falha sempre. Na segunda tentativa, funciona sempre. Por isso, no código verá que há duas linhas de conexão (con).
Seguindo o funcionamento do código, com a conexão feita, iniciamos um loop infinito que busca os dados do OBD, formata de acordo com os parâmetros estabelecidos. Depois cria a URL, utilizando Query String, para que possa enviar ao servidor utilizando o método POST.
Nessun esempio abaixo pegamos come seguintes informações:
- RPM
- Velocidade
- Odometro *
As funções para captura dos dados utilizam dois parâmetros. Per esempio, usando [1][12] estamos buscando [módulo] [PID]. Questa lista può essere incontrata:
Per ultimo, un humm un URL com tutto come informazioni concatenate e aggiunte em um arquivo, chamado " obd_data.dat ".
Codice 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() stampa url
Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py
Esta parte do codice fica più semplici. Começamos importando bibliotecas relacionadas à solicitações/envio de dados, usando RESTFUL.
Criamos um while para enviar através de POST a URL da primeira linha do arquivo que populado anteriormente pelo OBD.py. Depois disso, para evitar que o dado seja enviado mais de uma vez, ela apaga esta linha do arquivo.
Codice per archivio OBD.py:
richieste di importazione
import time while True: prova: time.sleep(0.2) url = '' with open('obd_data.dat', 'r') as fin: data = fin.read().splitlines(True) url = data[0] request.post(url) con open('obd_data.dat', 'w') come fout: fout.writelines(data[1:]) tranne: print 'exception'
Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:
Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Per questo motivo, è possibile che l'era dell'ora sia orientata a garantire che un DragonBoard possa comunicare con diversi componenti della soluzione, come una comunicazione 3G, WiFi, Bluetooth, GPS e altri.
Vamos usar o código abaixo para editar o arquivo 'rc.local', que já tem algumas funções e comandis pré-definidos, e fica no directório '/etc'. Para fazer a edição, use o comando:
sudo nano /etc/rc.local
Agora precisamos configurar a inicialização de todos os processs, serviços e funções, criando rotinas para que funcionem automaticamente ao iniciar a Dragonboard. Vamos utilizar o BASH per fazer isso. O BASH (Bourne-Again-SHell) è un applicativo per l'interpretazione dei comandi di Unix.
No próximo code, que tem comandis BASH, você precisará inserir o MacAddress do seu device OBD/Bluetooth, e também precisate ter bastante cuidado per garantir que o código seja colocado semper antes do command "exit 0" que é a resposta de sucesso do sistema.
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
A partir de agora, semper que a placa for iniciada, ela já vai se conectar attravés do 3G e enviar os dados de GPS e OBD para o servidor escolhido.
Fase 11: Dificuldades Encontradas
Listato abaixo algumas barreira que encontramos ao longo do desenvolvimento do projeto, que resolvemos antes de criar este Instructable, mas que é importante alertá-lo, caso esteja tendo dificuldades também.
-
PyOBD
É preciso ter muito cuidado na hora de trasmettitore os dados e comunicar com o carro. Nas primeira tentativas, quando una comunicazione non è disponibile con un dispositivo, è possibile utilizzare alguns comandi per il carro, e causare algum problema na ECU. Neste momento o câmbio automático não aceitava mais mudanças, ficou travado. Além disso, come luzes do painel começaram a piscar aleatoriamente. A solução para este evento que ocasionamos foi o desligamento dos cabos da bateria, mantendo assim por 15 minuti. Desta forma, forçamos o reset completo das ECUs do carro, retornando ele ao esttágio original de fábrica, portanto cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD
-
Linaro
Tivemos um problema de boot no Linaro, quando aleatoriamente o OS reniciava. Este problema per risolvere ao longo do desenvolvimento do projeto, pela equipe do Linaro, que soltou uma atualização, e já construímos este tutorial utilizando a informação mais atualizada
-
GPS su DragonBoard
A Qualcomm Dragonboard 410c non sono presenti antenne GPS interne, e per una migliore ricezione del segnale, è preciso instalar o conector e adquirir uma antena externa. Per fazer este procedimento, siga os passis propostos pela própria Qualcomm:
Fase 12: Referências
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/
Instruções para criação do túnel SSH
gist.github.com/kr0no/63e34c77b02843b46a8d89d8f7b5e4b6
Installando o SSH senza Linux
ask.xmodulo.com/install-autossh-linux.html
Consigliato:
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
Codici OBD II P0420/P0430 Correzione: 5 passaggi
Codici OBD II P0420/P0430 Fix: hai questa fastidiosa luce sul cruscotto della tua Mustang? Hai cambiato il tuo impianto di scarico? Se hai installato un tubo h o x-tubo fuoristrada (senza convertitori catalitici) o rimosso i tuoi convertitori catalitici per l'uso in pista, i tuoi sensori di ossigeno
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
Modifica il cavo OBD-II per non scaricare la batteria dell'auto: 5 passaggi
Modifica il tuo cavo OBD-II per non scaricare la batteria dell'auto: da molto tempo ormai tutti i veicoli sono dotati di una porta diagnostica di bordo. Molto spesso questa porta è disponibile come connettore OBD-II. Esistono più dispositivi in grado di comunicare utilizzando questo connettore, molti dei quali sono basati