Inhoudsopgave:
- Stap 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Stap 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Stap 3: Instalando O Dongle USB 3G/4G
- Stap 4: Transformando een DragonBoard 410c Em Hotspot / Access Point WiFi
- Stap 5: Acessando een DragonBoard 410c door SSH Sem Fio, Utilizando O Hotspot
- Stap 6: Ligando een DragonBoard 410c Ao OBD Do Seu Carro via Bluetooth – Passo 1/2
- Stap 7: Ligando een DragonBoard 410c Ao OBD Do Seu Carro via Bluetooth - Passo 2/2
- Stap 8: Ligando een DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Stap 9: Extraindo Informações Do Carro Usando Python
- Stap 10: Herhaal de Scripts E Armazenamento De Dados Capturados Do Carro
- Stap 11: Moeilijkheden Encontradas
- Stap 12: Referenties
Video: DragonBoard Com OBD - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
U kunt beschikken over protocollen voor OBD2 voor auto's, en voor meer informatie over voertuigen. Gebruik een DragonBoard 410c om een trabalhar neste projeto, en trazemos aqui o caminho detalhado para você reproduzir isso.
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 volmento des.
Deelnemen aan het project:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Temos totale interesse in het ajudar você a concluir of seu projeto, então não deixe de entrar em contato conosco!
Om dit project in het Engels te volgen, klik hier:
www.instructables.com/id/DragonBoard-and-OBD2/
Een voorbeeld van een projeto inclusief seguintes componentes, conforme apresentados a imagem acima:
- Qualcomm DragonBoard 410c
- ELM327 Bluetooth OBD2-interface
- Dongle USB 3G/4G
- Carregador Veicular de Inversão de Tensão (110v)
Stap 1: Fazendo O Setup Inicial Da DragonBoard 410c
Gebruik een Qualcomm DragonBoard 410c, een installatie voor het distribueren van Linaro voor Linux en een volledige configuratie van de dispositivo.
Voor het gebruik van afbeeldingen voor DragonBoard, gebruik Ubuntu, virtuele VirtualBox, gebruik FastBoot en gebruik Linux. Het is noodzakelijk om de omgeving van Linux te installeren voor de installatie.
Voor installatie van Fastboot, toegang tot Terminal van Máquina Virtual Ubuntu, en cijfers:
sudo apt-get android-tools-fastboot
-
Para instalar o Linaro, precisamos passar por 2 passos muito importantes:
- Installatie of BOOTLOADER
-
Zoekopdracht: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Retire os arquivos dentro do ZIP
-
Entra na pasta:
cd /NomeDaPasta (caminho da pasta descompactada)
-
Fazer of commando:
sudo fastboot-apparaten
-
Reacties esperada:
(hexadecimaal) fastboot
-
Então digite:
sudo./flashall
-
Spaanse reactie:
afgewerkt. totale tijd 1.000s (sem fouten)
(op fouten)
-
Instalando of Sistema Operacional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Baixar dois arquivos:
-
boot-linaro-stretch-qcom-leeuwenbek-arm64-20170607-246.img.gz
Este arquivo é a última versão (Junho/17) e o nome futuro pode ser alterado. Een basis do nome que você deve buscar é "boot-linaro-NomeDaVersão". Nesta versão o nome é “Stretch” en anterior foi “Jessie”
-
linaro-stretch-alip-qcom-leeuwenbek-arm64-20170607-246.img.gz
Este arquivo é a última versão (Junho/17) e o nome futuro pode ser alterado. Aanschaf door “linaro-NomeDaVersão-alip”
- Retirar os arquivos dentro do. GZ
-
Entrar na pasta "raiz" em relação aos arquivos compactados
voorbeeld: “/Downloads” que é o local onde os arquivos baixados estão
-
Entre com os comandos:
sudo fastboot-apparaten
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (lembrando que o tempo pode variar):
afgewerkt. totale tijd: 100.00s
- Sluit een muis, Teclado en een monitor/tv aan op porta HDMI
-
Gebruik:
- Gebruik: linaro
- Senha: linaro
-
Abra a interface Lxterminal en faça o download de lijst van atualizações disponíveis dos pacots installados:
sudo apt-get update
-
Realiseer een instalação dos pacotes disponíveis usando o código:
sudo apt-get upgrade
Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante engajada para solução de problemas.
Stap 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Comece com a installação dos aplicativos que servirão de cliente para o GPS, sendo eles o GNSS-GPSD, o GPSD en o GPSD-CLIENTS. Gevel 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
Lees 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. Er zijn verschillende lokale mogelijkheden van DragonBoard, veelvoorkomende factoren en een goede werking van de natuurlijke mogelijkheden van GPS.
Als u een van de volgende informatie nodig heeft, kunt u de volgende website gebruiken:
Stap 3: Instalando O Dongle USB 3G/4G
Bestaande algumas vormen de fazer een DragonBoard 410c toegang tot een rode 3G/4G:
- Instalando um Shield / BreakoutBoard com Modem GSM en slot voor SimCard;
- Gebruik van dongle USB 3G/4G;
U kunt kiezen voor een dongle USB 3G/4G van het Huawei-model E3272, een gemakkelijke manier om deze te bevestigen.
Voor configuratie van modem, gebruik van terminal (met gebruik van WVDial), porém o jeito mais fácil é utilizar a propria Interface Graphic do Usuário (GUI) do Linaro. Gevel van seguinte forma:
- Com o Dongle USB-aansluiting, klik hier om rechtstreeks geen pictogram van "redes" geen canto inferieur direito da tela.
- "Verbindingen bewerken" > "Toevoegen"
- Een antwoord op: "Mobiele breedband"
- Clique em "Creëren"
Siga en telefonia te installeren operacional, conforme imagens acima, configurando en operadora de telefonia conforme simkaart comprado. Voor het gebruik van het projeto, gebruik van Sim Card da Tim (e um modem inicialmente vendido pela Vivo).
Stap 4: Transformando een DragonBoard 410c Em Hotspot / Access Point WiFi
Gebruik een DragonBoard 410c met behulp van wifi (agora que você já configurou a conectividade com a internet), een maneira mais simples é utilizar a própria interface do sistema. Siga os passos abaixo:
- Clique geen botão direito geen pictogram van "redes" geen canto inferieure direito.
- "Verbindingen bewerken" > "Toevoegen"
- Een optie voor "WiFi"
- Clique em "Creëren"
Coloque o nome da rede que quer criar no campo "SSID" en depois altere o "Mode" para "Hotspot".
Voor gegarandeerde werking:
- Zie ook "IPv4-instellingen"
- Veja se o "Methode" está marcado como "Gedeeld met andere computers"
Stap 5: Acessando een DragonBoard 410c door SSH Sem Fio, Utilizando O Hotspot
Het is mogelijk om toegang te krijgen tot een externe, onafhankelijke, onafhankelijke, niet-afhankelijke, estar-verbinding met Dragonboard voor een directe verbinding met wifi. Este é o método de conexão dos servidores Linux da Amazon.
Começamos instalando of Auto SSH, utilizando en 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. Het is mogelijk om te dienen voor een pessoa que a tienha, een autorização voor toegang tot een exclusief endpoint zonder Linux, através voor IP-toegang tot modem 3G, objetivo principal deste passo. Na sequência, of código faz a copia da chave para of 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 gebruiker@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 gebruiker@remote_server
Com isso, transformeer een DragonBoard 410c in een servercloud! \O/
Stap 6: Ligando een DragonBoard 410c Ao OBD Do Seu Carro via Bluetooth – Passo 1/2
Een interface voor het communiceren van auto's en feiten die verbonden zijn met OBD2. Een informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Meer informatie over hardware: ELM327 of STN1170.
U kunt gebruikmaken van een Bluetooth-chipbasis die is gebaseerd op ELM327.
Belangrijk om te kunnen leveren aan hardware die niet nodig is, is origineel en origineel van ELM327. Een eerste deel van de versie is beschikbaar op 1.5, met een originele chip van een clonado en colocado en geen mercado. O chipset origineel está na versão 2.2. Een evolução deste versionamento traz ao chip meer informaçes sobre os carros mais novos. Een belangrijk saber disso, pois dependendo dos testes realizados, poderá ou não conseguir obter determinadas informações de veículos mais novos.
De beschikking over OBD2 Bluetooth, en een porta OBD2 naar de auto. Ela pode estar localizada logo abaixo do volante, no console central of perto da caixa de fusíveis. O lokale varia bastante entre as montadoras e modelos. Uma opção para localizar é usar esta ferramenta:
Toegang tot een DragonBoard 410c com SSH, gebruik van notebooks
Assim que o dispositivo OBD2 Bluetooth voor inserido no conector do carro, siga os passos abaixo para ter controle da conectividade bluetooth:
sudo bluetoothctl
koppelbaar op agent op standaard-agent scan aanNeste momento é importante que você copie o MAC Address pois precisará para os proximos passos
cijfer:
vertrouw MACADDRESS
paar MACADRES
Neste momento deve aparecer uma sollicitação para digitar o PIN de pareamento doen Bluetooth OBD2.
O PIN geralmente é 1234 of 0000
Geef een antwoord op de resultaten van de verbinding, digitando este comando, você sai do programa controlador do Bluetooth digitando:
ontslag nemen
Agora é preciso fazer um "BIND" do dispositivo com a porta serial:
sudo rfcomm bind 0 MACADRES 1
Para validar of sucesso da operação digite:
ls /dev
Een porta "Rfcomm0" deve estar na lijst.
Stap 7: Ligando een DragonBoard 410c Ao OBD Do Seu Carro via Bluetooth - Passo 2/2
Objetivo deste passo é garantir o funcionamento da comunicação andtre os dispositivos:
ELM327, DragonBoard 410c en Veículo
Baixe a aplicação “Screen” para enviar mensagens pela Porta Serial
sudo apt-get installatiescherm
Een Porta Serial será usada para envio e recebimento de Comandos AT entre a DragonBoard 410c e o ELM327.
Voor meer informatie over Comandos AT, toegang:
ATENÇÃO:
Tome muito cuidado nesta parte! Todas as informações enviadas para o dispositivo conectado oa carro, poderão ser interpretatieadas en enviadas oa carro de maneira errada en ocasionar o mal-funcionamento do seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Recomendamos que siga as instruções abaixo detalhadamente.
Volg de volgende stappen om de volgende stap in de communicatie te zetten:
-
Esta função fará abrir o terminal de comunicação serial.
scherm /dev/rfcomm0
Assim que o terminal carregar, digite os comandos abaixo nesta sequência (e entenda o que cada um deles faz):
-
Reinicia of dispositivo. As vezes você precisará fazer isso.
ATZ
-
Liga en funcionalidade de quebra de linha nos comandos, facilitando a visualização.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga of espaçamento entre palavras.
ATS1
-
Definieer een communicatieprotocol voor "Automático".
ATSP0
Teste de comunicação Finale:
-
Digite zonder console:
ATI
- Ele deve retornar "ELM327 v1.5" of een andere versie van ELM en andere dispositivo.
- Isso prova que o ELM327 está comunicando com a placa sem problemas, e podemos prosseguir.
Dica
Voor de toepassing van "Screen" heeft u een apertar nodig: Ctrl-A seguido de Ctrl-D
Stap 8: Ligando een DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD en een speciale biblioteca van Python voor communicatie met 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.
Voor etapa, nauwkeurige garantie zoals seguintes bibliotecas estejam installadas no Linaro da sua DragonBoard 410c:
-
PIP – Gerenciador de módulos do Python
sudo apt-get install python-pip
-
SetupTools – gestor de arquivos de installação
sudo pip install -U pip setuptools
-
Wheel – formatador de arquivos para installaçã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 gps installeren
-
Verzoeken – módulo de solicitações
sudo pip installatieverzoeken
Zie een biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:
sudo python
Neste momento of cursor do terminal vai mudar este ícone ">>>" indicando que o programa está rodando Python. Podemos começar a digitar os comandos para serem interpretados conforme abaixo.
- Comece is belangrijk voor een biblioteca
import obd
-
Para fazer a conexão com a porta serial use o comando
verbinding = obd. OBD ("/dev/rfcomm0")
-
Para descobrir se o Python is beschikbaar voor extra informatie over carro, passando pelo Bluetooth, ELM327 até chegar no carro, digite:
verbinding.protocolnaam()
Stap 9: Extraindo Informações Do Carro Usando Python
Meer informatie over de volgende stap: OBD.py, conforme instructies voor het volgen van de instructies.
Importeer een biblioteca OBD para dentro do Python para iniciar as conexes.
Door motivos 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 lus infinito que busca os dados do OBD, formata de acordo com os parâmetros estabelecidos. Depois cria een URL, utilizando Query String, para que possa enviar oa servidor utilizando of método POST.
Geen voorbeeld abaixo pegamos als seguintes informações:
- RPM
- Velocidade
- Odômetro *
As funções para captura dos dados utilizam dois parâmetros. Door voorbeeld, usando [1][12] estamos buscando [módulo] [PID]. U kunt een lijst maken met de volgende gegevens:
Door último, a humm a URL com todas as informações são concatenadas and adicionadas em um arquivo, chamado " obd_data.dat ".
Code voor 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") terwijl 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(" omwentelingen_per_minuut", ""))) 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() print url
Depois da conexão e captura dos dados, vamos criar of 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.
U kunt vragen of u een URL van de eerste plaats kunt vinden die voorafgaat aan OBD.py. Depois disso, para evitar que o dado seja enviado mais de uma vez, ela apaga esta linha do arquivo.
Code voor arquivo OBD.py:
importverzoeken
import time while True: try: time.sleep(0.2) url = '' met open('obd_data.dat', 'r') als fin: data = fin.read().splitlines(True) url = data[0] requests.post(url) met open('obd_data.dat', 'w') als fout: fout.writelines(data[1:]) behalve: print 'exception'
Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:
Stap 10: Herhaal de Scripts E Armazenamento De Dados Capturados Do Carro
Dit is een feit dat is gebaseerd op een agora-tijdperk dat garant staat voor een DragonBoard-communicatie met verschillende componenten van oplossing, voor communicatie met 3G, WiFi, Bluetooth, Dados do GPS, entre outros.
U kunt gebruik maken van de code voor de bewerking van 'rc.local', die u kunt gebruiken voor algums en comandos pré-definidos, en voor een officiële '/etc'. Para fazer a edição, gebruik o commando:
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 iniciar a Dragonboard. Vamos utilizar of BASH para fazer isso. O BASH (Bourne-Again-SHell) voor de interpretatie van Unix-commando's.
Geen proximo codigo, que tom comandos BASH, você precisará inserir o MacAddress do seu dispositivo OBD/Bluetooth, en também precisa ter bastante cuidado para garantie que o código seja colocado semper antes do comando "antes do comando".
indien [! -f /etc/ssh/ssh_host_rsa_key]
dan 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/linarothon /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0
Een partir de agora, semper que a placa for iniciada, el a vai se conectar através do 3G en begeer os dados de GPS en OBD voor o servidor escolhido.
Stap 11: Moeilijkheden Encontradas
Lijst met algumas barreira que encontramos ao longo do desenvolvimento do projeto, que resolvemos antes de criar este Instructable, mas que é importante alertá-lo, caso esteja tenddo dificuldades também.
-
PyOBD
É preciso ter muito cuidado na hora de transmitter os dados e comunicar com o carro. Nas primeira tentativas, quando a comunicação ainda no era estável com o dispositivo, enviamos alguns comandos para o carro, en acabamos causando algum problema op ECU. Neste momento of cambio automático não aceitava mais mudanças, ficou travado. Além disso, as luzes doen painel começaram a piscar aleatoriamente. Een solução para este eventto que ocasionamos foi o desligamento dos cabos da bateria, mantendo assim por 15 minutos. Definieer forma, forçamos of reset volledige ECUs doen carro, retornando ele en originele originelen de fábrica, portanto cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD
-
Linaro
Er zijn problemen met opstarten zonder Linaro, quando leatoriamente of OS reiniciava. Er zijn problemen met oplossingen voor het uitvoeren van projecten, het uitrusten van Linaro, voor het oplossen van problemen, en voor het maken van een handleiding voor het gebruik van informatie en meer informatie
-
GPS en DragonBoard
Een Qualcomm Dragonboard 410c heeft geen antennes voor GPS-interne, en kan worden aangesloten op een externe antenne. Para fazer este procedure, siga os passos propostos pela própria Qualcomm:
Stap 12: Referenties
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Como geïnstalleerd of Linaro op DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Documentatie van GPS voor DragonBoard
discuss.96boards.org/t/gps-software/170/16
GPS-demo
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Aansluiten RaspberryPi met 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
Instalando of SSH geen Linux
ask.xmodulo.com/install-autossh-linux.html
Aanbevolen:
Een lamp aansluiten en bedienen via de ZigBee-module op Dragonboard: 5 stappen
Een lamp aansluiten en bedienen via een ZigBee-module op Dragonboard: deze instructable leert de gebruiker hoe hij de ZigBee-module op het Dragonboard kan aansluiten en correct kan installeren en deze kan laten werken met een ZigBee-gestuurde lamp (OSRAM), waardoor een ZigBee IOT-netwerk ontstaat. : Dragonboard 410c; CC2531 USB-dongle; T
OBD II-codes P0420/P0430 Fix: 5 stappen
OBD II-codes P0420/P0430 Fix: Heeft u dit vervelende lampje op het dashboard van uw Mustang? Heb je je uitlaatsysteem veranderd? Als je een off-road h-pijp of x-pijp (geen katalysatoren) hebt geïnstalleerd of je katalysatoren hebt verwijderd voor gebruik op het circuit, dan zijn je zuurstofsensoren met
Google Assistent op DragonBoard™ 410c: 57 stappen
Google Assistant op DragonBoard™ 410c: deze Instructables leert u Google Assistant te gebruiken in het DragonBoard en een smarthome-omgeving in te stellen met sommige apparaten. Vereist:-DragonBoard™ 410c (met een nieuwe installatie van linaro-alip);-12V/ 1A 5,5 mm jack-voeding;-CC2531 zigbee mod
DragonBoard en OBD2: 12 stappen
DragonBoard en OBD2: door de gegevens te lezen die uit de OBD2-poort in uw auto komen, is het mogelijk om er verbazingwekkende informatie uit te verzamelen. Met behulp van de DragonBoard 410c hebben we aan dit project gewerkt en het hier gedetailleerd, zodat u het zelf kunt doen. Dit project was alleen mogelijk
Objectdetectie met Dragonboard 410c of 820c met OpenCV en Tensorflow: 4 stappen
Objectdetectie met Dragonboard 410c of 820c met behulp van OpenCV en Tensorflow.: Deze instructie beschrijft hoe OpenCV, Tensorflow en machine learning-frameworks voor Python 3.5 moeten worden geïnstalleerd om de toepassing Objectdetectie uit te voeren