Innholdsfortegnelse:

DragonBoard Com OBD: 12 trinn
DragonBoard Com OBD: 12 trinn

Video: DragonBoard Com OBD: 12 trinn

Video: DragonBoard Com OBD: 12 trinn
Video: Skyrim: The Dragonborn Comes | EPIC VERSION (feat. @Colm_R_McGuinness​) 2024, November
Anonim
DragonBoard Com OBD
DragonBoard Com OBD

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:

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

Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
Fazendo O Setup Inicial Da DragonBoard 410c
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

Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
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

Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
Instalando O Dongle USB 3G/4G
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

Transformer en DragonBoard 410c Em Hotspot / Access Point WiFi
Transformer en DragonBoard 410c Em Hotspot / Access Point WiFi
Transformer en DragonBoard 410c Em Hotspot / Access Point WiFi
Transformer en DragonBoard 410c Em Hotspot / Access Point WiFi
Transformer en DragonBoard 410c Em Hotspot / Access Point WiFi
Transformer 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

Acessando a DragonBoard 410c Av SSH Sem Fio, Utilizando O Hotspot
Acessando a DragonBoard 410c Av 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

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
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

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 2/2
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

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
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

Extraindo Informações Do Carro Usando Python
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

Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
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

Dificuldades Encontradas
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

Referências
Referências

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: