Innholdsfortegnelse:
- Trinn 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Trinn 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Trinn 3: Instalando O Dongle USB 3G/4G
- Trinn 4: Transformandere en DragonBoard 410c Em Hotspot / Access Point WiFi
- Trinn 5: Acessando a DragonBoard 410c Por SSH Sem Fio, Utilizando O Hotspot
- Trinn 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
- Trinn 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
- Trinn 8: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Trinn 9: Extraindo Informações Do Carro Usando Python
- Trinn 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Trinn 11: Dificuldades Encontradas
- Trinn 12: Referanse
Video: DragonBoard Com OBD: 12 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Através da leitura do protocolo OBD2 do carro, é possível receber informationa do veículo. Utnyttelse av en DragonBoard 410c kommer til å levere et nytt prosjekt, og vi kan også kjenne detaljer for å reprodusere det.
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.
Deltakere:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Markedsføring - [email protected]
Temos total interesse em ajudar você a concluir o seu projeto, então não deixe de entrar em contato conosco!
For å følge dette prosjektet på engelsk, klikk her:
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 -grensesnitt
- Dongle USB 3G/4G
- Carregador Veicular de Inversão de Tensão (110v)
Trinn 1: Fazendo O Setup Inicial Da DragonBoard 410c
Utnyttelse og Qualcomm DragonBoard 410c, iniciamos or projeto com for a distribulação Linaro to Linux, que noos permitiuu configuração completea dispositivo.
Para criar uma imagem do Linaro for a DragonBoard, use of Ubuntu, for VirtualBox, for usb o FastBoot, que é um aplicativo baseado em Linux. Det er nødvendig å installere en Linux-poder for installasjon.
For installasjon av Fastboot, tilgang eller Terminal for suksessfull virtuell Ubuntu og siffer:
sudo apt-get android-tools-fastboot
-
For instalar o Linaro, precisamos passar for 2 passos muito importantes:
- Instalando o BOOTLOADER
-
Navn på arquivo: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Retire us arquivos de dentro do ZIP
-
Entra na pasta:
cd /NomeDaPasta (caminho da pasta descompactada)
-
Fazer o comando:
sudo fastboot -enheter
-
Resposta esperada:
(heksadesimal) fastboot
-
Antall sifre:
sudo./flashall
-
Resposta esperada:
ferdig. total tid 1.000s (sem erros)
(sem erros)
-
Instalando o Sistema Operacional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Gjør følgende:
-
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 base for å gi en buss til "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. Anskaffelse av “linaro-NomeDaVersão-alip”
- Retirar os arquivos de dentro do. GZ
-
Entrar na pasta “raiz” em relação aos arquivos compactados
eksempler: "/Nedlastinger" som en lokal lokal informasjon
-
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):
ferdig. total tid: 100,00 s
- Konstruer mus, skjerm og skjerm/TV med HDMI
-
Bruke:
- Usuário: linaro
- Senha: linaro
-
For et grensesnitt Lxterminal og faça for å laste ned en liste over tilgjengelige installasjoner for pakker:
sudo apt-get oppdatering
-
Realiser en instalação dos pacotes disponíveis usando o código:
sudo apt-get oppgradering
Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante engajada para solução de problemas.
Trinn 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Kommer med en installasjon som kan hjelpe kundene med GPS, sendo el GNSS-GPSD, o GPSD e o 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 for 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 and aparecer na tela, é de cerca de 10 minutes. 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:
Trinn 3: Instalando O Dongle USB 3G/4G
Eksisterende algumas formas de fazer til en DragonBoard 410c tilgang til en innløst 3G/4G:
- Instalando um Shield / BreakoutBoard com Modem GSM e slot for SimCard;
- Utnyttelse av Dongle USB 3G/4G;
For en optimal løsning for Dongle USB 3G/4G fra Huawei -modellen E3272, som også kan brukes til å disponere.
For å konfigurere et modem, kan du bruke terminalen (med aplicação WVDial), for å få et enkelt og praktisk bruk av grensesnitt Gráfica do Usuário (GUI) til Linaro. Faça da seguinte forma:
- Com o Dongle USB conectado, klikk her for å finne en “redes” no canto inferior direito da tela.
- "Rediger tilkoblinger"> "Legg til"
- Escolha a opção: “Mobilt bredbånd”
- Klikk på "Opprett"
Vi kan også installere et system for operasjonelle, konforme bilder og konfigurere et telefonsystem for et sim -kort. Para criação deste projeto, utilizamos um Sim Card da Tim (e um modem inicialmente vendido pela Vivo).
Trinn 4: Transformandere en DragonBoard 410c Em Hotspot / Access Point WiFi
For å bruke DragonBoard 410c som roteador wifi (kan du konfigurere en internettilkobling på internett), og flere enkle eksempler og et praktisk grensesnitt for et system. Siga os passos abaixo:
- Klikk no botão direito no ícone de “redes” no canto inferior direito.
- "Rediger tilkoblinger"> "Legg til"
- Escolha and opção “WiFi”
- Klikk på "Opprett"
Coloque o nome da rede que você quer criar no campo "SSID" e depois altere o "Mode" para "Hotspot".
Para garantir o funcionamento:
- Se på “IPv4 -innstillinger”
- Veja se "Metode" er "marcado como" Delt med andre datamaskiner"
Trinn 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 da Amazon.
Kommer installasjon av Auto SSH, kan brukes eller brukes.
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. Etterfølgende kan vi koble en kopi til en repositório de chaves confiáveis for Linux.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub bruker@remote_server:.ssh/autorisert_taster autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 bruker@remote_server
Com isso, acabamos de transformar a DragonBoard 410c em um servidor cloud! / o/
Trinn 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Et grensesnitt de comunicação com os carros é feita através da porta OBD2. A informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Du kan også lese mer om maskinvaren: ELM327 eller STN1170.
Para este projeto, utilizamos um dispositivo Bluetooth com chip baseado em ELM327.
Det er viktig å kjøpe en maskinvare som er nødvendig for en originalversjon av 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. O opprinnelige brikkesett 2.2. A evolução deste versionamento traz ao chip mais informações sobre os carros mais novos. Ét viktig 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. Du kan lese mer om lokaliseringen og brukeren av 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
kan pares med agenten ved standard agentskanning påNeste momento en importante que você copie o MAC Address pois precisará para os próximos passos
Digite:
stole 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 også koble til, digitalisere eller koble til programvare for Bluetooth -digitalisering:
slutte
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 porta “Rfcomm0” er utviklet av listen.
Trinn 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 og Veículo
Baixe a aplicação “Screen” for enviar mensagens pela Porta Serial
sudo apt-get installeringsskjerm
En portalserie som kan brukes til å motta anbefalinger fra en DragonBoard 410c eller ELM327.
Para saber mais sobre Comandos AT, acesse:
ATENÇÃO:
Tome muito cuidado nesta parte! Du kan også informere oss om en disposisjon som kan brukes til å gjøre det enklere å tolke det og gjøre det mulig for oss å gjøre det mulig! Estude bastante os comandos antes de tentar inovar nos comandos. Anbefaler du å bruke instruksjonene for detaljerte detaljer.
Siga a sequência de comandos abaixo para dar início à comunicação:
-
Esta função fará abrir o terminal de comunicação serial.
skjerm /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 and visualização.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga o espaçamento entre palavras.
ATS1
-
Definer o protocolo de comunicaçã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 “Skjerm” og nødvendig apertar: Ctrl-A seguido de Ctrl-D
Trinn 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 módulos do Python
sudo apt-get install python-pip
-
SetupTools - installasjonsarbeid
sudo pip install -U pip setuptools
-
Hjul - formatador de arquivos para installaçã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 installer gps
-
Forespørsler - módulo de solicitações
sudo pip installasjonsforespørsler
Para saber se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:
sudo python
Neste øyeblikk eller markør for terminalen for å vise “>>>” indikasjon som et program for å starte Python. Podemos começar a digitar os comandos para serem interpretados conforme abaixo.
- Kommer importere og biblioteca
import obd
-
Para fazer a conexão com og porta seriell bruk eller kommando
tilkobling = 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 ()
Trinn 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.
Importerer en biblioteca OBD for dentro do Python fora conicõ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. Lagre en URL, bruker Query String, men kan også brukes til å bruke POST.
Ingen eksempler på abaixo pegamos som opplysninger:
- RPM
- Velocidade
- Odômetro *
Som funções para captura dos dados utilizam dois parâmetros. For eksempel bruker vi [1] [12] estamos buscando [módulo] [PID]. Esta listepode ser encontrada em:
Forresten, en ny URL -adresse for informasjon som inneholder informasjon om emnet og adicionadas em um arquivo, heter "obd_data.dat".
Informasjon 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") mens 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 () skrive 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.
Artikkel for arquivo OBD.py:
importforespørsler
importer tid mens True: prøv: time.sleep (0.2) url = '' med åpen ('obd_data.dat', 'r') som fin: data = fin.read (). splitlines (True) url = data [0] request.post (url) med åpen ('obd_data.dat', 'w') som feil: fout.writelines (data [1:]) unntatt: print 'exception'
Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:
Trinn 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Du kan også kjenne en tid for å orientere og garantere at DragonBoard tilbyr en rekke funksjoner som en del av løsningen, en kombinasjon av 3G, WiFi, Bluetooth, GPS og andre utgaver.
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'. For fazer a edição, bruk eller bruk følgende kommando:
sudo nano /etc/rc.local
Agora presisamos 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.
hvis [! -f/etc/ssh/ssh_host_rsa_key]
deretter systemctl stop ssh.socket || true dpkg-omkonfigurer 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.
Trinn 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 na ECU. Neste momento o câmbio automático não aceitava mais mudanças, ficou travado. Além disso, som luzes gjø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 minutes. 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 og DragonBoard
En Qualcomm Dragonboard 410c -antenne for GPS, internasjonalt, og for å motta en synlig, nøyaktig installasjon eller konfigurering av eksterne antenner. For fazer este procedimento, siga os passos propostos pela própria Qualcomm:
Trinn 12: Referanse
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Installasjon av Linaro og DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokumentasjon for GPS for 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
Installer på SSH uten Linux
ask.xmodulo.com/install-autossh-linux.html
Anbefalt:
Hvordan koble til og kontrollere en lampe gjennom ZigBee -modulen på Dragonboard: 5 trinn
Slik kobler du til og kontrollerer en lampe gjennom ZigBee -modulen på Dragonboard: Denne instruksjonen lærer brukeren hvordan du kobler til og installerer ZigBee -modulen riktig på Dragonboard og samhandler den med en ZigBee -kontrollert lampe (OSRAM), og lager et ZigBee IOT -nettverk. : Dragonboard 410c; CC2531 USB Dongle; T
OBD II -koder P0420/P0430 Fix: 5 trinn
OBD II -koder P0420/P0430 Fix: Har du dette irriterende lyset på dashbordet på din Mustang? Har du byttet eksosanlegg? Hvis du har installert et off-road h-rør eller x-rør (ingen katalysatorer) eller fjernet katalysatorene for sporbruk, vil oksygensensorene
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensorer: 7 trinn
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensorer: 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
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: 7 trinn
Oppdage nødssituasjoner - Qualcomm Dragonboard 410c: På utkikk etter sikkerhetssystemer som jobber med å overvåke nødssituasjoner, er det mulig å legge merke til at det er for vanskelig å behandle all informasjon som er registrert. Når vi tenkte på det, bestemte vi oss for å bruke vår kunnskap innen lyd-/bildebehandling, sensorer og
Endre OBD-II-kabelen for ikke å lade ut bilens batteri: 5 trinn
Endre din OBD-II-kabel for ikke å lade ut bilens batteri: Siden lenge har alle kjøretøyer blitt utstyrt med en innebygd diagnostikkport. Svært ofte er denne porten tilgjengelig som en OBD-II-kontakt. Det er flere enheter som kan kommunisere med denne kontakten, mange av dem er basert