Spisu treści:
- Krok 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Krok 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Krok 3: Instalando O Dongle USB 3G/4G
- Krok 4: Przekształć DragonBoard 410c Em Hotspot / Access Point WiFi
- Krok 5: Acessando DragonBoard 410c Por SSH Sem Fio, Utilizando O Hotspot
- Krok 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro przez Bluetooth – Passo 1/2
- Krok 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro przez Bluetooth – Passo 2/2
- Krok 8: Ligando DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Krok 9: Extraindo Informações Do Carro Usando Python
- Krok 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Krok 11: Dificuldades Encontradas
- Krok 12: Referencias
Wideo: DragonBoard Com OBD: 12 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Através da leitura do protocolo OBD2 do carro, é possível receber informações do veículo. Użyj 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 allowiram que tivéssemos ascesso asos melhores hardwares, ale też contato com os melhores profissionais para desenbuir com
Participaram deste projeto:
- Marcel Ogando - Haker - [email protected]
- Leandro Alvernaz - Haker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Temos całkowita interesse em ajudar você a concluir o seu projeto, então não deixe de entrar em contato conosco!
Aby śledzić ten projekt w języku angielskim, kliknij tutaj:
www.instructables.com/id/DragonBoard-i-OBD2/
A estrutura deste projeto inclui os seguintes componentes, conforme apresentados na imagem acima:
- Qualcomm DragonBoard 410c
- ELM327 Interfejs Bluetooth OBD2
- Klucz USB 3G/4G
- Carregador Veicular de Inversão de Tensão (110v)
Krok 1: Fazendo O Setup Inicial Da DragonBoard 410c
Użyj Qualcomm DragonBoard 410c, początków lub projektu z instalacją dystrybucji Linaro do Linux, nie możesz pozwolić na pełną konfigurację urządzenia.
Aby uzyskać obraz do Linaro dla DragonBoard, używać Ubuntu, VirtualBox, używać FastBoot, jest to aplikacja oparta na Linuksie. enecessário estar em ambiente Linux do poderowania instalacji.
Para installar o Fastboot, acesse o Terminal da sua Máquina Virtual Ubuntu, e digite:
sudo apt-get android-tools-fastboot
-
Para instalar o Linaro, precisamos passar por 2 passos muito Importantes:
- Instalando o BOOTLOADER
-
Nome do arquivo: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Wycofaj się os arquivos de dentro do ZIP
-
Makaron wstępny:
cd /NomeDaPasta (caminho da pasta descompactada)
-
Fazer o komando:
urządzenia sudo fastboot
-
Reposta esperada:
(szesnastkowy) fastboot
-
Cyfra Então:
sudo./flashall
-
Reposta esperada:
skończone. całkowity czas 1.000s (sem erros)
(sem błędy)
-
Instalando o Sistema Operacional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Baixar dois arquivos:
-
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. Baza do nome que você deve buscar é „boot-linaro-NomeDaVersão”. Nesta versão o nome é „Stretch” i przednie 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. Procure por »linaro-NomeDaVersão-alip«
- Retirar os arquivos de dentro do. GZ
-
Entrar na makaron „raiz” em relação aos arquivos compactados
przykład: „/Downloads” que é o local onde os arquivos baixados estão
-
Wejdź z komandosami:
urządzenia sudo fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (lembrando que o tempo pode variar):
skończone. całkowity czas: 100,00s
- Conecte um Mouse, Teclado e um monitor/telewizor z portem HDMI
-
Spożytkować:
- Usuário: linaro
- Senha: linaro
-
Abra a interface Lxterminal e faça o download da listę de atualações disponíveis dos pacotes instalados:
aktualizacja sudo apt-get
-
Zrealizuj a 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.
Krok 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Comece com a instalação dos aplicativos que servirão de cliente para o GPS, sendo eles o GNSS-GPSD, o GPSD e o GPSD-KLIENCI. Faça isso usando o comando:
sudo apt-get install gnss-gpsd gpsd gpsd-klienci
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 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. Zmieniaj lokalizację na DragonBoard, ilość predios i ich redor, alem de outras barreiras naturais que possam attrapalhar a 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 website:
Krok 3: Instalando O Dongle USB 3G/4G
Existem algumas formas de fazer a DragonBoard 410c acessar i rede 3G/4G:
- Instalacja Shield / BreakoutBoard z modemem GSM i gniazdem na kartę SIM;
- Użyj klucza USB 3G/4G;
Aby wykonać optymalny projekt klucza USB 3G/4G z modelu Huawei E3272, można łatwo uzyskać dostęp do urządzenia.
Para configurar o modem, você poderá utilizar o terminal (com a aplicação WVDial), porém o jeito mais fácil é utilizar a própria Interfejs Gráfica do Usuário (GUI) do Linaro. Faça da seguinte forma:
- Com o Dongle USB conectado, clicar com botão direito no ícone de „redes” nie canto inferior direito da tela.
- „Edytuj połączenia” > „Dodaj”
- Escolha a opção: „Mobile Broadband”
- Kliknij „Utwórz”
Siga a tela de instalação do sistema operacional, configure imagens acima, configurando a operadora de telefonia conforme karty sim comprado. Para criação deste projeto, utilizamos um Sim Card da Tim (e um modem inicialmente vendido pela Vivo).
Krok 4: Przekształć DragonBoard 410c Em Hotspot / Access Point WiFi
Aby korzystać z DragonBoard 410c como um roteador wifi (agora que você já configurou a conectividade com a internet), maneira mais simples é utilizar a própria interface do sistema. Siga os passos abaixo:
- Clique no botão direito no ícone de „redes” no canto inferior direito.
- „Edytuj połączenia” > „Dodaj”
- Escolha a opção „WiFi”
- Kliknij „Utwórz”
Coloque o nome da rede que você quer criar no campo „SSID” e depois altere o „Mode” para „Hotspot”.
Para garantir o funcionamento:
- Vá na aba „Ustawienia IPv4”
- Veja se o „Method” está marcado como „Udostępnione innym komputerom”
Krok 5: Acessando 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, lub ao wifi em que ela esteja conectada. Jest to metoda łączenia serwerów Linux z Amazon.
Começamos instalando o Auto SSH, utilizando o 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. Esta chave służyć para que a pessoa que a tenha, tenha autorização para cessar a instância do endpoint exclusivo bez Linuxa, através do IP público do modemu 3G, główny główny cel. Na sequencia, o código faza kopia da chave lub repozytoria chaves confáveis do Linux, garantindo ainda mais confiança para conexão.
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub user@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 użytkownik@zdalny_serwer
Proszę teraz, przekształć DragonBoard 410c w chmurę serwera! \o/
Krok 6: Ligando a DragonBoard 410c Ao OBD Do Seu Carro przez Bluetooth – Passo 1/2
A interface 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. Há duas opções para este hardware: ELM327 lub STN1170.
Dla projektu, użyj urządzenia Bluetooth z chipem opartym na ELM327.
Importante destacar que disponibilidade deste hardware não necessariamente reprezentuje versão ORYGINAŁ zrobić 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 oryginalny chipset está na versão 2.2. A evolução deste versionamento traz ao chip mais informações sobre os carros mais novos. É Importante 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, brak centralnej konsoli lub perto da caixa de fusíveis. O lokalna varia bastante entre as montadoras e modelos. Uma opção para localizar é usar esta ferramenta:
Acesse DragonBoard 410c com SSH, utilizando seu Notebook (lembrando que agora você está no carro, e não possui mais uma tela para conectar a placa).
Assim que o dispositivo OBD2 Bluetooth for inserido no conector do carro, siga os passos abaixo para ter controle da conectividade bluetooth:
sudo bluetoothctl
można sparować na agencie na domyślnym skanowaniu agenta naNeste momento é Importante que você copie o Adres MAC pois precisará para os próximos passos
Cyfra:
zaufaj MACADDRESS
sparuj MACADDRESS
Neste momento deve aparecer uma solicitação para digitar lub PIN de pareamento do Bluetooth OBD2.
O PIN geralmente é 1234 lub 0000
Após a tela de sucesso de conexão, digitando este comando, você sai do programa controlador do Bluetooth digitando:
zrezygnować
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
Porta „Rfcomm0” deve estar na liście.
Krok 7: Ligando a DragonBoard 410c Ao OBD Do Seu Carro przez Bluetooth – Passo 2/2
Objetivo deste passo é garantir o funcionamento da comunicação entre os dispositivos:
ELM327, DragonBoard 410c i Veículo
Baixe a aplicação „ Screen” para enviar mensagens pela Porta Serial
ekran instalacyjny sudo apt-get
Porta Serial será usada envio i recebimento de Comandos AT entre DragonBoard 410c e lub ELM327.
Para saber 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. Recomendamos que siga jako instruções abaixo detalhadamente.
Siga a sequência de comandos abaixo para dar início à comunicação:
-
Esta função fara abrir lub terminal de comunicação seryjny.
ekran /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. Jak vezes você precisará fazer isso.
ATZ
-
Liga a funcionalidade de quebra de linha nos comandos, facilitando a visualização.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga o espaçamento entre palavras.
ATS1
-
Define o protocolo de comunicação do carro para „Automático”.
ATSP0
Teste de comunicação ostateczna:
-
Cyfra bez konsoli:
ATI
- Ele deve retornar „ELM327 v1.5” lub 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 “Screen” é necessário apertar: Ctrl-A seguido de Ctrl-D
Krok 8: Ligando DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD é uma biblioteca de Python específica para comunicação com lub 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 zainstaluj python-pip
-
SetupTools – gestor de arquivos de instalação
sudo pip install -U pip setuptools
-
Koło – formatador de arquivos para instalação
sudo apt-get zainstaluj python-wheel
-
OBD – biblioteca para interpretação de dados OBD
sudo apt-get python-obd
-
GPS – biblioteca com dados do gps
sudo pip zainstaluj gps
-
Prośby – módulo de solicitações
prośby o instalację sudo pip
Para saber se a biblioteca de Python está funcionando corretamente, precisamos rodar os comandos:
sudo pyton
Neste momento o kursor do terminala vai mudar para este ícone „>>>” indicando que o programa está rodando Python. Podemos começar a digitar os comandos para serem interpretados conforme abaixo.
-
Przyjdź do biblioteczki
importuj obd
-
Para fazer a conexão com porta serial use o comando
połączenie = 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:
połączenie.nazwa_protokołu()
Krok 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.
Importuj biblioteczkę OBD dla zębów do Pythona dla początkujących jako conexões.
Por 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 loop infinito que busca os dados do OBD, formata de acordo com os parametros estabelecidos. Depois cria URL, użyj Query String, aby móc korzystać z serwera lub metody POST.
Brak exemplo abaixo pegamos jako seguintes informações:
- RPM
- Velocidade
- Odômetro *
Jako funções para captura dos dados utilizam dois parametros. Por exemplo, usando [1][12] estamos buscando [módulo] [PID]. Esta lista znajduje się na stronie:
Por último, nucić URL com todas jako informações são concatenadas e adicionadas em um arquivo, chamado " obd_data.dat ".
Kody dla OBD.py:
import obdimport timeodoInicial = -1 paramOdo = 0 #Połącz OBDprint "Primeira conexao" con = obd. OBD("/dev/rfcomm0") print "Segunda conexao" con = obd. OBD("/dev/rfcomm0"), podczas gdy True: respRPM = con.query(obd.polecenia[1][12]) drukuj respRPM respVelo = con.query(obd.polecenia[1][13]) drukuj respVelo respOdo = con.query(obd.polecenia[1][49]) print respOdo paramRPM = int(float(str(respRPM).replace(" obroty_na_minutę", ""))) paramVelo = int(float(str(respVelo).replace("kph", ""))) paramOdo = int(float(str(respOdo).replace("kilometr", ""))) 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() wydrukuj adres 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 adres URL, aby uzyskać dostęp do wcześniejszej populacji 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:
żądania importu
importuj czas, gdy True: try: time.sleep(0.2) url = '' with open('obd_data.dat', 'r') as fin: data = fin.read().splitlines(True) url = data[0] requests.post(url) with open('obd_data.dat', 'w') as fout: fout.writelines(data[1:]) z wyjątkiem: print 'exception'
Caso tenha algum problema copiando estes códigos, baixe os arquivos abaixo:
Krok 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Tudo o que foi feito até agora era orientado garantir que a DragonBoard fizesse komunikacja z różnymi komponentami rozwiązania, como a komunikacja 3G, WiFi, Bluetooth, Dados do GPS, entre outros.
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, użyj 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. Vamos utilizar lub 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 '.
Jeśli [! -f /etc/ssh/ssh_host_rsa_key]
następnie 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 i sudo python /home/linaro /Documents/FadaDoCarro/OBD.py i sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py i wyjdź 0
A partir de agora, semper que a placa for iniciada, ela já vai se conectar através do 3G i enviar os dados de GPS e OBD para o servidor escolhido.
Krok 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. Alem disso, jak luzes zrobić 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 minutos. Desta forma, forçamos o reset completo 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 na DragonBoard
Qualcomm Dragonboard 410c bez wewnętrznych anten GPS, e para melhor recepção de sinal, é precyzyjnie instalowany o conector i adquirir uma antena externa. Para fazer este procedimento, siga os passos propostos pela própria Qualcomm:
Krok 12: Referencias
Program rozruchowy
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Instalacja Como na Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokumentacja GPS dla DragonBoard
discuss.96boards.org/t/gps-software/170/16
Demo GPS
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Podłącz RaspberryPi do 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
Instalacja lub SSH bez Linuksa
ask.xmodulo.com/install-autossh-linux.html
Zalecana:
Desenvolvendo Aplicações Remotamente dla Dragonboard 410c Usando IDE Eclipse: 17 kroków
Desenvolvendo Aplikacje zdalne dla Dragonboard 410c Użyj IDE Eclipse: O objetivo deste documento é mostrar as etapas necess'rias para configurar o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), através do IDE Eclipse compile os códigos e exporte para o Alvo (Drag
Jak podłączyć i kontrolować lampę przez moduł ZigBee na Dragonboard: 5 kroków
Jak podłączyć i sterować lampą przez moduł ZigBee na Dragonboard: Ta instrukcja uczy użytkownika, jak podłączyć i poprawnie zainstalować moduł ZigBee na Dragonboard oraz współdziałać z lampą sterowaną ZigBee (OSRAM), tworząc sieć ZigBee IOT.Wymagania : Dragonboard 410c; CC2531 klucz USB; T
Kody OBD II P0420/P0430 Poprawka: 5 kroków
Kody OBD II P0420/P0430 Poprawka: Czy masz to irytujące światło na desce rozdzielczej swojego Mustanga? Zmieniłeś swój układ wydechowy? Jeśli zainstalowałeś terenową rurę h-pipe lub x-pipe (bez katalizatorów) lub usunąłeś katalizatory do użytku na torze, Twoje czujniki tlenu
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 kroków
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRIÇÃOO intuito do projektu é dar autonomia para deficientes visuais se locomoverem em ambientes indoor como casas ou centra handlowe e aeroportos. Locomoç'o em ambientes j'aacute; mapeados pode ou nã o s
Zmodyfikuj kabel OBD-II, aby nie rozładowywał akumulatora samochodu: 5 kroków
Zmodyfikuj kabel OBD-II, aby nie rozładowywać akumulatora samochodu: od dłuższego czasu wszystkie pojazdy są wyposażone w port diagnostyki pokładowej. Bardzo często port ten jest dostępny jako złącze OBD-II. Istnieje wiele urządzeń, które mogą komunikować się za pomocą tego złącza, wiele z nich opiera się na