Inhoudsopgave:

DragonBoard Com OBD - Ajarnpa
DragonBoard Com OBD - Ajarnpa

Video: DragonBoard Com OBD - Ajarnpa

Video: DragonBoard Com OBD - Ajarnpa
Video: SC9S12XS256J1CAER FREESCALE IC HCS12 Microcontrollers - [email protected] 2024, Juli-
Anonim
DragonBoard Com OBD
DragonBoard Com OBD

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:

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

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

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

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

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

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

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

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

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

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

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

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

Extraindo Informatie Do Carro Usando Python
Extraindo Informatie 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

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

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

Referenties
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: