Innehållsförteckning:
- Steg 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Steg 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Steg 3: Instalando O Dongle USB 3G/4G
- Steg 4: Transformera en DragonBoard 410c Em Hotspot / Access Point WiFi
- Steg 5: Acessando a DragonBoard 410c Por SSH Sem Fio, Utilizando O Hotspot
- Steg 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
- Steg 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
- Steg 8: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Steg 9: Extraindo Informações Do Carro Usando Python
- Steg 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Steg 11: Dificuldades Encontradas
- Steg 12: Referenser
Video: DragonBoard Com OBD: 12 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Através da leitura do protocolo OBD2 do carro, é possível receber informationa do veículo. Använd en DragonBoard 410c som kommer att levereras nästa gång, och vi kan också göra detaljerade detaljer för att återskapa dem.
Este projeto foi feito em parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora que permitiram que tivéssemos acesso aos melhores hardwares, além do contato com os melhores profissionais para contribuir com o desenvolvimento.
Deltagare:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marknadsföring - [email protected]
Temos total interesse em ajudar você a concluir o seu projeto, então não deixe de entrar em contato conosco!
För att följa detta projekt på engelska, klicka här:
www.instructables.com/id/DragonBoard-and-OBD2/
A estrutura deste projeto inclui os seguintes componentes, conforme apresentados and imagem acima:
- Qualcomm DragonBoard 410c
- ELM327 Bluetooth OBD2 -gränssnitt
- Dongle USB 3G/4G
- Carregador Veicular de Inversão de Tensão (110v)
Steg 1: Fazendo O Setup Inicial Da DragonBoard 410c
Utnyttjar en Qualcomm DragonBoard 410c, iniciamos or projeto com for a installalação da distribuição Linaro to Linux, que noos permitiu configuração completea do dispositivo.
Para criar uma imagem do to Linaro para a DragonBoard, use of Ubuntu, for VirtualBox, for usar or FastBoot, que é um aplicativo baseado em Linux. Det är nödvändigt att installera en Linux-kod för installeraren.
För installation av Fastboot, åtkomst till Terminal för olika virtuella Ubuntu och siffror:
sudo apt-get android-tools-fastboot
-
Para instalar o Linaro, precisamos passar for 2 passos muito importantes:
- Instalando o BOOTLOADER
-
Nome do arquivo: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Retire os arquivos de dentro do ZIP
-
Entra na pasta:
cd /NomeDaPasta (caminho da pasta descompactada)
-
Fazer o comando:
sudo fastboot -enheter
-
Resposta esperada:
(hexadecimal) fastboot
-
Antal siffror:
sudo./flashall
-
Resposta esperada:
färdiga. total tid 1.000s (sem erros)
(sem erros)
-
Instalando o Sistema Operacional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Gör så här:
-
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. En bas som du inte kan säga är en "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. Upphandling av "linaro-NomeDaVersão-alip"
- Retirar os arquivos de dentro do. GZ
-
Entrar na pasta “raiz” em relação aos arquivos compactados
exemplo: "/Nedladdningar" som ett lokalt program kan göras
-
Entre com os comandos:
sudo fastboot -enheter
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (lembrando que o tempo pode variar):
färdiga. total tid: 100,00s
- Ansluta mus, dator och bildskärm/TV med HDMI
-
Utnyttja:
- Användning: linaro
- Senha: linaro
-
Om du vill ha ett gränssnitt kan du ladda ner en lista över de installerade inställningarna:
sudo apt-get uppdatering
-
Inse en instalação dos pacotes disponíveis usando o código:
sudo apt-get uppgradering
Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante engajada para solução de problemas.
Steg 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Kommer att installera något som kan hjälpa dig med GPS, skicka GNSS-GPSD, GPSD eller GPSD-KLIENTER. Faça isso usando o comando:
sudo apt-get install gnss-gpsd gpsd gpsd-klienter
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 para 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 minutos. Isso varia muito da localização da DragonBoard, quantidade de prédios ao seu redor, além de outras barreiras naturais que possam atrapalhar and recepção do sinal do GPS.
Para conseguir capturar essas informações and mandar para a núvem, use o código abaixo, alterando o endereço do seu website:
Steg 3: Instalando O Dongle USB 3G/4G
Existem algumas formas de fazer a DragonBoard 410c accessor to rede 3G/4G:
- Instalando um Shield / BreakoutBoard com Modem GSM och slot för SimCard;
- Utnyttja om Dongle USB 3G/4G;
För bästa möjliga optik för Dongle USB 3G/4G och Huawei modell E3272, kan du enkelt få tillgång till en annan enhet.
Para configurar o modem, você poderá utilizar or terminal (com a aplicação WVDial), porém o jeito mais fácil é utilizar a própria Interface Gráfica do Usuário (GUI) do Linaro. Faça da seguinte forma:
- Com o Dongle USB conectado, clicar com botão direito no ícone de “redes” no canto inferior direito da tela.
- “Redigera anslutningar”> “Lägg till”
- Escolha a opção: “Mobilt bredband”
- Klicka på "Skapa"
Siga a tela de instalação do system operacional, conforme imagens acima, konfigurando a operadora de telefonia conforme sim card comprado. Para criação deste projeto, utilizamos um Sim Card da Tim (e um modem inicialmente vendido pela Vivo).
Steg 4: Transformera en DragonBoard 410c Em Hotspot / Access Point WiFi
För att använda DragonBoard 410c som roteador wifi (kan du konfigurera en internetanslutning), kan du enkelt använda ett enkelt gränssnitt för system. Siga os passos abaixo:
- Klicka inte på en bot för att du inte ska kunna”ändra” ingen canto inferior direito.
- “Redigera anslutningar”> “Lägg till”
- Escolha och opção “WiFi”
- Klicka på "Skapa"
Fönstret kan inte användas för att visa "SSID" och att ändra "Mode" för "Hotspot".
Para garantir o funcionamento:
- Va na aba “IPv4 -inställningar”
- Veja se "Metod" kan också användas som "Delat med andra datorer"
Steg 5: Acessando a DragonBoard 410c Por SSH Sem Fio, Utilizando O 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. Este é o método de conexão dos servidores Linux och Amazon.
Kommer att installera Auto Auto SSH, användbar eller inte längre.
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. Esta chave serve para que a pessoa que a tenha, tenha autorização for acessar and instância do endpoint exclusivo no Linux, através do IP público do modem 3G, objetivo principal deste passo. Om du vill ha en kopia av 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 användare@remote_server:.ssh/autoriserade nycklar autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 användare@remote_server
Com isso, acabamos de transformar a DragonBoard 410c em um servidor cloud! \o/
Steg 6: Ligando a 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. En informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Hög duas för hårdvara: ELM327 eller STN1170.
Para este projeto, utilizamos um dispositivo Bluetooth com chip baseado em ELM327.
Viktigt att få en maskinvara som är tillgänglig för en originalversion av ELM327. A maior parte disponível está to versão 1.5, que foi quando o chip original foi clonado e colocado a venda no mercado. O chipset originalversion 2.2. A evolução deste versionamento traz ao chip mais 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.
De posse do seu dispositivo OBD2 Bluetooth, encontre a porta OBD2 do seu carro. Ela pode estar localizada logo abaixo do volante, no console central ou perto da caixa de fusíveis. O local varia bastante entre as montadoras e modelos. Uma opção para localizar é usar esta ferramenta:
Acesse a DragonBoard 410c com SSH, utilizando seu Notebook (lembrando que agora você está no carro, e não possui maa uma tela para conectar a placa).
Assim que o dispositivo OBD2 Bluetooth for inserido no conector do carro, siga os passos abaixo para ter control da conectividade bluetooth:
sudo bluetoothctl
parbar på agenten vid standardagentskanning påNeste momento é importante que você copie o MAC Address pois precisará para os próximos passos
Digite:
lita på MACADDRESS
par MACADDRESS
Neste momento deve aparecer uma solicitação for digitar or PIN de pareamento do Bluetooth OBD2.
O PIN geralmente é 1234 ou 0000
Du kan också hitta en konexo, digital este comando, en programstyrning för Bluetooth digitando:
sluta med
Agora é preciso fazer um "BIND" do dispositivo com a porta serial:
sudo rfcomm bind 0 MACADDRESS 1
Para validar o sucesso da operação digite:
ls /dev
En portfölj av "Rfcomm0" har en lista.
Steg 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Objetivo deste passo é garantir o funcionamento da comunicação entre os dispositivos:
ELM327, DragonBoard 410c och Veículo
Baixe a aplicação “Screen” för enviar mensagens pela Porta Serial
sudo apt-get installera skärmen
En Porta Serial será usada para envio e recebimento de Comandos AT entre a DragonBoard 410c e o ELM327.
Para saber mais sobre Comandos AT, acesse:
ATENÇÃO:
Tome muito cuidado nesta parte! Om du vill ha information om en dispositivo conectado ao carro, så kan vi tolka e enviadas ao carro de maneira errada e ocasionar o mal-funcionamento do seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Rekomendamos que siga som instruções abaixo detalhadamente.
Siga a sequência de comandos abaixo para dar início à comunicação:
-
Esta função fará abrir o terminal de comunicação serial.
skärm /dev /rfcomm0
Assim que o terminal carregar, digite os comandos abaixo nesta sequência (e entenda o que cada um deles faz):
-
Reinicia o dispositivo. As vezes você precisará fazer isso.
ATZ
-
Liga a funcionalidade de quebra de linha nos comandos, facilitando a visualização.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga o espaçamento entre palavras.
ATS1
-
Definiera o protokoll för de kommunicação do carro para “Automático”.
ATSP0
Teste de comunicação Final:
-
Digite no console:
ATI
- Ele deve retornar “ELM327 v1.5” ou a versão do ELM do seu dispositivo.
- Isso prova que o ELM327 está comunicando com a placa sem problemas, e podemos prosseguir.
Dica
Para sair da aplicação “Skärm” och nödvändig öppning: Ctrl-A seguido de Ctrl-D
Steg 8: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD é uma biblioteca de Python específica para 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 moddulos do Python
sudo apt-get install python-pip
-
SetupTools - installatörsgäst
sudo pip install -U pip setuptools
-
Hjul - formatador de arquivos para instalação
sudo apt-get install python-hjul
-
OBD - biblioteca para interpretação de dados OBD
sudo apt-get python-obd
-
GPS - biblioteca com dados do gps
sudo pip installera gps
-
Begäranden - módulo de solicitações
sudo pip installationsförfrågningar
Para saber se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:
sudo python
Det här är en markör som gör att terminalen kan användas för att ange “>>>” som visar att programmet har ett Python -program. Podemos começar a digitar os comandos para serem interpretados conforme abaixo.
- Kommer importera till biblioteca
importera obd
-
Para fazer a conexão com a porta serial use o comando
anslutning = 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 ()
Steg 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 and biblioteca OBD para dentro do Python para iniciariar as conexões.
Por motivos desconhecidos, a primeira conexão com nosso hardware, falha semper. Na segunda tentativa, funciona semper. 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. Hämta en webbadress, användningsfrågesträng, för att kunna använda en tjänst för att använda POST.
Inga exemplo abaixo pegamos som seguintes informações:
- Varvtal
- Velocidade
- Odômetro *
Som funções para captura dos dados utilizam dois parâmetros. Exemplo, usando [1] [12] estamos buscando [módulo] [PID]. Esta lista pode ser encontrada em:
Förresten, a humm a URL com todas as informações são concatenadas e adicionadas em um arquivo, chamado "obd_data.dat".
Information om OBD.py:
import obdimport timeodoInicial = -1 paramOdo = 0 #Conect OBDprint "Primeira conexao" con = obd. OBD ("/dev/rfcomm0") skriv ut "Segunda conexao" con = obd. OBD ("/dev/rfcomm0") medan 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]) skriv ut 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 () Skriv ut url
Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py
Esta parte do código fica mais simples. 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.
Cogido para o arquivo OBD.py:
importförfrågningar
importera tid medan True: försök: time.sleep (0.2) url = '' med öppen ('obd_data.dat', 'r') som fin: data = fin.read (). splitlines (True) url = data [0] request.post (url) med open ('obd_data.dat', 'w') som fout: fout.writelines (data [1:]) utom: print 'exception'
Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:
Steg 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Tudo o que foi facto até agora era orientado a garantir que a DragonBoard fizesse comunicação com os different differenteses componentes da solução, como a comunicação 3G, WiFi, Bluetooth, Dados do GPS, entre outros.
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'. Para fazer a edição, använd o comando:
sudo nano /etc/rc.local
Agora precisamos configurar a inicialização de todos os processos, serviços and funções, criando rotinas para que funcionem automaticamente ao iniciariar a Dragonboard. Vamos utilizar o BASH para fazer isso. O BASH (Bourne-Again-SHell) é um aplicativo para interpretação de comandos Unix.
No próximo código, que tem comandos BASH, você precisará inserir o MacAddress do seu dispositivo OBD/Bluetooth, e também precisa ter bastante cuidado para garantir que o código seja colocado semper antes do comando "exit 0" que é a resposta de sucesso do sistema.
om [! -f/etc/ssh/ssh_host_rsa_key]
sedan systemctl stop ssh.socket || true dpkg-omkonfigurera 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 através do 3G e enviar os dados de GPS e OBD para o servidor escolhido.
Steg 11: Dificuldades Encontradas
Listamos 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 transmitir os dados e comunicar com o carro. Nas primeira tentativas, quando a comunicação ainda não era estável com o dispositivo, enviamos alguns comandos para o carro, e acabamos causando algum problema på ECU. Neste momento o câmbio automático não aceitava mais mudanças, ficou travado. Além disso, som luzes gör 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 minuter. Desta forma, forçamos o reset completeo das ECUs do carro, retornando ele ao está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 reiniciava. Este problema foi resolvido 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 med DragonBoard
En Qualcomm Dragonboard 410c -antenn för GPS -internat, en para melhor recepção de sinal, en exakto installer o conector e adquirir uma antena externa. Para fazer este procedimento, siga os passos propostos pela própria Qualcomm:
Steg 12: Referenser
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Installera eller installera DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokumentation för GPS för DragonBoard
discuss.96boards.org/t/gps-software/170/16
GPS -demo
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Conectando 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
Installera o SSH utan Linux
ask.xmodulo.com/install-autossh-linux.html
Rekommenderad:
Hur man ansluter och styr en lampa genom ZigBee -modulen på Dragonboard: 5 steg
Hur man ansluter och styr en lampa genom ZigBee -modulen på Dragonboard: Denna instruktion lär användaren hur man ansluter och korrekt installerar ZigBee -modulen på Dragonboard och interagerar den med en ZigBee -styrd lampa (OSRAM), vilket skapar ett ZigBee IOT -nätverk. : Dragonboard 410c; CC2531 USB -dongel; T
OBD II -koder P0420/P0430 Fix: 5 steg
OBD II -koder P0420/P0430 Fix: Har du det här irriterande ljuset på strecket på din Mustang? Har du bytt avgassystem? Om du har installerat ett terränggående h-rör eller x-rör (inga katalysatorer) eller tagit bort dina katalysatorer för spåranvändning
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensorer: 7 steg
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensors: O objetivo desse tutorial é Mostrar as etapas needs á rias para configurar o ambiente de desenvolvimento, de modo que seja poss í vel comunicar com a Dragonboard 410c atrav é s de um computador / notebook usando comunica & ccedi
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Ändra din OBD-II-kabel för att inte ladda ur bilens batteri: 5 steg
Ändra din OBD-II-kabel för att inte ladda ur bilens batteri: Sedan länge har alla fordon utrustats med en inbyggd diagnosport. Mycket ofta är denna port tillgänglig som en OBD-II-kontakt. Det finns flera enheter som kan kommunicera med denna kontakt, många av dem är baserade