Съдържание:

DragonBoard Com OBD: 12 стъпки
DragonBoard Com OBD: 12 стъпки

Видео: DragonBoard Com OBD: 12 стъпки

Видео: DragonBoard Com OBD: 12 стъпки
Видео: Мужчину арестовали прямо в студии! — Один за всех 26.03.2017 2024, Ноември
Anonim
DragonBoard Com OBD
DragonBoard Com OBD

Através da leitura do protocolo OBD2 do carro, e possível Receber informações do veículo. Използвайте DragonBoard 410c começamos a trabalhar neste projeto, e 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 doprinosi com o desenvolvimento.

Participaram deste projeto:

Temos total interesse em ajudar você a заключение o seu projeto, então não deixe de entrar em contato conosco!

За да следвате този проект на английски, щракнете тук:

www.instructables.com/id/DragonBoard-and-OBD2/

A estrutura deste projeto inclui os seguintes componentsntes, conforme apresentados na imagem acima:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 интерфейс
  • USB ключ 3G/4G
  • Carregador Veicular de Inversão de Tensão (110v)

Стъпка 1: Настройка на Fazendo O Inicial Da DragonBoard 410c

Настройка на Fazendo O Inicial Da DragonBoard 410c
Настройка на Fazendo O Inicial Da DragonBoard 410c
Настройка на Fazendo O Inicial Da DragonBoard 410c
Настройка на Fazendo O Inicial Da DragonBoard 410c
Настройка на Fazendo O Inicial Da DragonBoard 410c
Настройка на Fazendo O Inicial Da DragonBoard 410c

Използвайте Qualcomm DragonBoard 410c, стартирайте или проектирайте да инсталирате, за да разпространявате Linaro до Linux, нямате пълна конфигурация за разрешаване.

За да използвате Linaro за DragonBoard, използвайте Ubuntu, VirtualBox или други, използвайте FastBoot, използвайте базата за Linux. Това е необходимо за амбиентен Linux за инсталиране на подер.

За инсталиране на Fastboot, за достъп до терминал, за да използвате Máquina Virtual Ubuntu, електронно:

sudo apt-get android-tools-fastboot

  • Para instalar o Linaro, precisamos passar por 2 passos muito importantes:

    • Instalando или BOOTLOADER
    • Номе за arquivo: dragonboard410c_bootloader_emmc_linux-79.zip

      • https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
      • Оттеглете се от arquivos de dentro do ZIP
      • Вход за паста:

        cd /NomeDaPasta (caminho da pasta descompactada)

      • Fazer o comando:

        sudo устройства за бързо зареждане

      • Отговор на есперада:

        (шестнадесетично) бързо стартиране

      • Então digite:

        sudo./flashall

      • Отговор на есперада:

        завършен. общо време 1.000s (полу грешки)

        (полу грешки)

    • Instalando o Sistema Operacional

      • https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
      • Допълнителна информация:
      • 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. База за nome que você deve buscar é „boot-linaro-NomeDaVersão“. Nesta versão o nome é „Stretch“e an 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. Поръчайте „linaro-NomeDaVersão-alip“

      • Retirar os arquivos de dentro do. GZ
      • Въведете паста „raiz“em relação aos arquivos compactados

        например: „/Изтегляния“que é o local onde os arquivos baixados estão

      • Entre com os comandos:

        sudo устройства за бързо зареждане

        sudo fastboot флаш зареждане boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img

      • Resposta esperada (lembrando que o tempo pode variar):

        завършен. общо време: 100.00s

  • Мишка с мишка, Teclado и монитор/телевизор с порта HDMI
  • Използвайте:

    • Обикновено: линаро
    • Сенха: Линаро
  • Абра интерфейс Lxterminal e faça или изтеглете, за да декларирате списъка с актуализации, които са спонсовирани до пакоти инсталирани:

    sudo apt-get update

  • Реализирайте инсталационен пакет с информация за спонсодис кодиго:

    sudo apt-get надстройка

Dicas: O Linaro tem um boot extremamente rápido, e uma comunidade bastante angajada para solução de problemas.

Стъпка 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

Заповядайте да инсталирате приложения за обслужване на клиенти за GPS, изпращане на GNSS-GPSD, o GPSD или GPSD-КЛИЕНТИ. Faça isso usando o comando:

sudo apt-get инсталирате gnss-gpsd gpsd gpsd-клиенти

Com ele instalado, você precisará rodar alguns comandos para iniciar o aplicativo, são eles:

sudo systemctl старт qdsp-start.servicesсудо systemctl старт gnss-gpsd.servicesсудо systemctl старт qmi-gps-proxy.service

Leve sua DragonBoard 410c за локален аберто, com visada para o céu, e digite no terminal:

gpsmon –n

Pelos testes реализира, или темпо медио ате като информация commescare aparecer на тела, é de cerca от 10 минути. 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 e mandar para a núvem, use o código abaixo, alterando o endereço do seu уебсайт:

Стъпка 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

Existem algumas formas de fazer a DragonBoard 410c acessar a rede 3G/4G:

  • Instalando um Shield / BreakoutBoard com Модем GSM и слот за SimCard;
  • Използвайте Dongle USB 3G/4G;

Като опция за проектиране на Dongle USB 3G/4G до модела на Huawei E3272, който е подходящ за обезпечаване на разположение.

За конфигуриране на модем, използване на терминал за използване на терминал (като приложение за WVDial), за използване или използване на интерфейс за графичен интерфейс (GUI) до Linaro. Faça da seguinte forma:

  • Com o Dongle USB свързване, кликване com botão direito no ícone de „redes“no canto inferior direito da tela.
  • „Редактиране на връзки“> „Добавяне“
  • Escolha a opção: „Мобилен широколентов достъп“
  • Кликнете върху „Създаване“

Siga a tela de instalação to operational system, conforme imagens acima, configurando a operadora de telefonia conforme sim card comprado. Para criação deste projeto, използвайте Sim Card да Тим (e um modem inicialmente vendido pela Vivo).

Стъпка 4: Преобразувайте DragonBoard 410c Em Hotspot / WiFi точка за достъп

Преобразувайте DragonBoard 410c Em Hotspot / WiFi точка за достъп
Преобразувайте DragonBoard 410c Em Hotspot / WiFi точка за достъп
Преобразувайте Wi -Fi точка за достъп / точка за достъп на DragonBoard 410c Em
Преобразувайте Wi -Fi точка за достъп / точка за достъп на DragonBoard 410c Em
Преобразувайте DragonBoard 410c Em Hotspot / WiFi точка за достъп
Преобразувайте DragonBoard 410c Em Hotspot / WiFi точка за достъп

За да използвате DragonBoard 410c, като използвате ротационен wifi (преди това можете да конфигурирате връзка с интернет), можете да използвате прости и удобни интерфейси за системата. Siga os passos abaixo:

  • Clique no botão direito no ícone de „redes“no canto inferior direito.
  • „Редактиране на връзки“> „Добавяне“
  • Escolha и опция „WiFi“
  • Кликнете върху „Създаване“

Coloque o nome da rede que você quer criar no campo "SSID" e depois altere o "Mode" para "Hotspot".

Пара гаранция или функционалност:

  • Вижте „Настройки за IPv4“
  • Това е „Методът“или „Споделено с други компютри“

Стъпка 5: Acessando a DragonBoard 410c Por SSH Sem Fio, Utilizando O Hotspot

Достъп до DragonBoard 410c Por SSH Sem Fio, Използвайте O гореща точка
Достъп до DragonBoard 410c Por SSH Sem Fio, Използвайте O гореща точка

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 до Amazon.

Começamos instalando или Auto SSH, използване или codigo 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 install

Agora vamos gerar uma chave criptografada com padrão de segurança RSA. Esta chave обслужва за всички потребители, които имат достъп до крайната точка, изключващи без Linux, за да получат IP достъп до модем 3G, обективни главни дестинации. В секвенция, или código faz a copia da chave para или repositório de chaves confiáveis за Linux, garantindo ainda mais confiança за conexão.

ssh -keygen -t rsa

scp ~/.ssh/id_rsa.pub потребител@отдалечен сървър:.ssh/оторизирани_ключове autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 потребител@отдалечен_сървър

Com isso, acabamos de transformer a DragonBoard 410c em um servidor cloud! / o/

Стъпка 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 1/2

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 1/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 1/2

Интерфейс за комуникация com os carros é feita através да порта OBD2. A informação que transita nesta porta precisa ser traduzida, e para isso precisamos de um interpretador que trate os dados. Другите опции за хардуер: ELM327 или STN1170.

Като проектор, използвайте и разположете Bluetooth com чип с ELM327.

Важен дестакар, който е разположен на разположение на хардуера, който не е необходим за представяне на версия ORIGINAL до ELM327. A maior parte disponível está на версия 1.5, que foi quando или chip original foi clonado e colocado a venda no mercado. Оригинален чипсет с версия 2.2. A evolução deste versionamento traz ao chip mais informações sobre os carros mais novos. É Importante sabre disco, pois dependendo dos testes realizados, poderá ou não conseguir obter determinadas informações de veículos mais novos.

Можете да използвате серия OBD2 Bluetooth, която включва порта OBD2, която ви позволява да използвате USB. Ela pode estar localizada logo abaixo do volante, без централна конзола или perto da caixa de fusíveis. O местни варианти bastante entre като montadoras e modelos. Uma opção para localizar é usar esta ferramenta:

Acesse a DragonBoard 410c com SSH, използване на se Notebook (lembrando que agora você está no carro, e não possui mais uma tela para conectar a placa).

Асимирайте que o dispositivo OBD2 Bluetooth за вмъкване без свързване до carro, siga os passos abaixo para ter controle da conectividade bluetooth:

sudo bluetoothctl

може да се постави на агент при сканиране на агент по подразбиранеNeste momento é importante que você copie o MAC Address pois precisará para os próximos passos

Дигитален:

доверете се на МАКАДРЕС

чифт МАКАДРЕС

Новият момент, който трябва да се използва, е да въведете PIN код или PIN за Bluetooth OBD2.

O PIN е общо 1234 или 0000

Após a tela de sucesso de conexão, digitando este comando, você sai to program controlador to Bluetooth digitando:

напусна

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

Порта „Rfcomm0“, който се намира на списък.

Стъпка 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 2/2

Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 2/2
Ligando a DragonBoard 410c Ao OBD Do Seu Carro Чрез Bluetooth - Passo 2/2

Objetivo deste passo é garantir o funcionamento da comunicação entre os dispositivos:

ELM327, DragonBoard 410c e Veículo

Направете приложение за „екран“, за да изпратите съобщения за Porta Serial

sudo apt-get екран за инсталиране

Портален сериен сървър, използван за получаване на Comandos AT, въвежда DragonBoard 410c или ELM327.

Para sabre mais sobre Comandos AT, acesse:

ATENÇÃO:

Tome muito cuidado nesta parte! Todas as informações enviadas para o dispositivo conectado ao carro, poderão ser interpretadas 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. Препоръчваме ви да се запознаете с инструкциите за подробности и подробности.

Siga a sequência de comandos abaixo para dar início à comunicação:

  • Esta função fará abrir или terminal de comunicação serial.

    screen /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. Както vezes você precisará fazer isso.

    ATZ

  • Liga a funcionalidade de quebra de linha nos comandos, улесняваща визуализацията.

    ATL1

  • Лига os cabeçalhos dos comandos.

    ATH1

  • Liga o espaçamento entre palavras.

    ATS1

  • Определете protocolo de comunicação do carro para „Automático“.

    ATSP0

Тест на комуникацията финал:

  • Digite без конзола:

    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.

Дика

За да приложите „Екран“и необходим апертар: Ctrl-A seguido de Ctrl-D

Стъпка 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 е ума библиотека на 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, включителноindodoos como velocidade e até mesmo erros da parte elétrica.

Para estata, 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 - gestor de arquivos de instalação

    sudo pip install -U pip setuptools

  • Колело - formatador de arquivos para instalação

    sudo apt-get инсталирайте python-wheel

  • OBD - библиотека за тълкуване на OBD

    sudo apt-get python-obd

  • GPS - biblioteca com dados do gps

    sudo pip инсталирате gps

  • Заявки - módulo de solicitações

    искания за инсталиране на sudo pip

Para sabre se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:

sudo python

Следващият момент на курсора към терминала, който е подходящ за иконата „>>>”, показва каква програма е свързана с Python. Podemos começar a digitar os comandos para serem interpretados conforme abaixo.

  • Comece importando a biblioteca

    внос obd

  • Para fazer a conexão com a porta серийна употреба или comando

    връзка = obd. OBD (“/dev/rfcomm0”)

  • Para descobrir се отнася до Python, който осигурява допълнителна информация за carro, passando pelo Bluetooth, ELM327 и chegar no carro, цифри:

    connection.protocol_name ()

Стъпка 9: Допълнителна информация за Carro Usando Python

Допълнителна информация за Carro Usando Python
Допълнителна информация за Carro Usando Python

Vamos criar um arquivo chamado: OBD.py, conforme instruções abaixo e código na sequência.

Importamos a biblioteca OBD para dentro do Python para iniciar as conexões.

Por motivos desconhecidos, 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. Depois cria a URL, use Query String, para que possa enviar ao servidor using or método POST.

No exemplo abaixo pegamos as seguintes informações:

  • RPM
  • Velocidade
  • Odômetro *

As funções para captura dos dados utilizam dois parâmetros. Por exemplo, usando [1] [12] estamos buscando [módulo] [PID]. Esta lista pode ser encontrada em:

В крайна сметка, един хум URL адрес, който е информационен като concatenadas и adicionadas em um arquivo, като „obd_data.dat“.

Código за OBD.py:

import obdimport timeodoInicial = -1 paramOdo = 0 #Conect OBDprint "Primeira conexao" con = obd. OBD ("/dev/rfcomm0") печат "Segunda conexao" con = obd. OBD ("/dev/rfcomm0"), докато е True: respRPM = con.query (obd.commands [1] [12]) печат respRPM respVelo = con.query (obd.commands [1] [13]) печат respVelo respOdo = con.query (obd.commands [1] [49]) отпечатайте respOdo paramRPM = int (float (str (respRPM).replace ("revolutions_per_minute", ""))) paramVelo = int (float (str (respVelo).replace ("kph", ""))) paramOdo = int (float (str (respOdo).replace ("километър", ""))) url = "https://www.website.com/OBD?vel="+str(paramVelo)+"&rpm="+str (paramRPM)+"& odo ="+str (paramOdo)+"\ n" time.sleep (0.2) print url файл = open ("obd_data.dat", "a+") file.write (url) file.close () отпечатайте url

Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py

Esta parte do código fica mais прости. 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.

Código para o arquivo OBD.py:

заявки за импортиране

импортиране на време, докато True: опитайте: time.sleep (0.2) url = '' с отворен ('obd_data.dat', 'r') като fin: data = fin.read (). splitlines (True) url = data [0] requests.post (url) с отворен ('obd_data.dat', 'w') като fout: fout.writelines (data [1:]) с изключение на: print 'exception'

Caso tenha algum problem copiando estes códigos, baixe os arquivos abaixo:

Стъпка 10: Повторете скриптове 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

Тук можете да се възползвате от ерата на агората, като се ориентирате и гарантирате, че DragonBoard изчислява комуникацията на различни компоненти за разрешаване, като комуникационен 3G, WiFi, Bluetooth, Дадос за GPS, въвеждане на изходи.

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, използвайте o comando:

sudo nano /etc/rc.local

Agora precisamos configurar a inicialização de todos os processos, serviços e funções, criando rotinas para que funcionem automaticamente ao iniciar a Dragonboard. Можете да използвате o BASH para fazer isso. O BASH (Bourne-Again-SHell) е приложение за тълкуване на командите Unix.

No próximo código, que tem comandos BASH, você precisará inserir или 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 éo.

ако [! -f/etc/ssh/ssh_host_rsa_key]

след това 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/linaro /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0

Partr de agora, semper que a place for iniciada, ela já vai se conectar através do 3G e enviar os dados de GPS e OBD para or servidor escolhido.

Стъпка 11: Dificuldades Encontradas

Dificuldades Encontradas
Dificuldades Encontradas

Списъкът abaixo algumas barreira que encontramos ao longo do desenvolvimento do projeto, que resolutionmos 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 problem на ECU. Neste momento o câmbio automático não aceitava mais mudanças, ficou travado. Além disos, както luzes do painel começaram a piscar aleatoriamente. Решение за събитие, което се случва, за да се делигаментираме до cabos da bateria, mantendo assim за 15 минути. Desta forma, forçamos или reset за завършване на ECUs до carro, retornando ele ao estágio original de fábrica, portanto Cancelando qualquer comando que tenhamos enviado erroneamente pela porta OBD

  • Линаро

    Tivemos um problem de boot no Linaro, quando aleatoriamente или OS reiniciava. Това е проблем за разрешаването на 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 и DragonBoard

    Qualcomm Dragonboard 410c не е оборудван с GPS антени, които са подходящи за приемане на синал, прецизно инсталиране или свързване и допълнително приложение за външна антена. За да прегледате процедурата, можете да използвате Pualprio Qualcomm:

Стъпка 12: Препратки

Референции
Референции

Буутлоудър

builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/

Линаро

builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/

Като инсталатор за Linaro на DragonBoard 410c

www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/

Документация за GPS за DragonBoard

discuss.96boards.org/t/gps-software/170/16

GPS демонстрация

gist.github.com/wolfg1969/4653340

OBD на Python

github.com/brendan-w/python-OBD

Conectando RaspberryPi като OBD Bluetooth

gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/

Инструкции за работа с SSH

gist.github.com/kr0no/63e34c77b02843b46a8d89d8f7b5e4b6

Instalando или SSH без Linux

ask.xmodulo.com/install-autossh-linux.html

Препоръчано: