Cuprins:
- Pasul 1: Fazendo O Setup Inicial Da DragonBoard 410c
- Pasul 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
- Pasul 3: Instalarea O Dongle USB 3G / 4G
- Pasul 4: Transformarea unui hotspot / punct de acces WiFi DragonBoard 410c Em
- Pasul 5: Accesați un DragonBoard 410c Por SSH Sem Fio, Utilizând O Hotspot
- Pasul 6: Ligând un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
- Pasul 7: Ligând un DragonBoard 410c Ao OBD Do Seu Carro prin Bluetooth - Passo 2/2
- Pasul 8: Ligând un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
- Pasul 9: Informații suplimentare cu Carro Usando Python
- Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
- Pasul 11: Dificuldades Encontradas
- Pasul 12: Referințe
Video: DragonBoard Com OBD: 12 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Através da leitura do protocolo OBD2 do carro, is possível receber informações do veículo. Utilizând un DragonBoard 410c venim să lucrăm în acest proiect, și să avem acțiune sau caminho detaliat pentru a reproduce acest lucru.
Acest proiect a fost făcut cu parceria com a #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora care permitiram că tivéssemos acesso aos melhores hardwares, alem do contato com os melhores profissionais for contribuir com o development.
Participă la acest proiect:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Temos total interesse em help você a concluir o seu projecteto, então não deixe de entrar em contato conosco!
Pentru a urmări acest proiect în engleză, faceți clic aici:
www.instructables.com/id/DragonBoard-and-OBD2/
A estrutura acestui proiect include următoarele componente, conforme prezentate în imaginea acima:
- Qualcomm DragonBoard 410c
- Interfață Bluetooth OBD2 ELM327
- Dongle USB 3G / 4G
- Carregador Veicular de Inversão de Tensão (110v)
Pasul 1: Fazendo O Setup Inicial Da DragonBoard 410c
Utilizând un Qualcomm DragonBoard 410c, inițiază o proiecție cu o instalație de distribuție Linaro pe Linux, care ne permite configurarea completă a dispozitivului.
Pentru a crea imaginea lui Linaro pentru un DragonBoard, utilizați Ubuntu, păr VirtualBox, folosiți FastBoot, care este aplicativ bazat pe Linux. Este necesar să fiu în mediu Linux pentru putere instala-lo.
Pentru instalarea Fastboot, accesarea Terminalului său Virtual Machine Ubuntu, și digite:
sudo apt-get android-tools-fastboot
-
Pentru instalarea lui Linaro, trebuie să trecem prin 2 treceri importante:
- Instalând o BOOTLOADER
-
Nome do arquivo: dragonboard410c_bootloader_emmc_linux-79.zip
- https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
- Retire os arquivos de dentro do ZIP
-
Pasta intra:
cd / NomeDaPasta (caminho da paste descompactada)
-
Fazer sau comandă:
dispozitive sudo fastboot
-
Resposta esperada:
(hexazecimal) fastboot
-
Então digite:
sudo./flashall
-
Resposta esperada:
terminat. timpul total 1.000s (sem erori)
(sem erori)
-
Instalând o Sistem Operațional
- https://builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
- Baixar dois arquivos:
-
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Este arquivo este a ultima versiune (Junho / 17) și o nume viitor poate fi modificat. A base do name that você deve buscar is “boot-linaro-NomeDaVersão”. Nesta versão o name este „Stretch” și a fost anterior „Jessie”
-
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Este arquivo este a ultima versiune (Junho / 17) și o nume viitor poate fi modificat. Procurați prin „linaro-NomeDaVersão-alip”
- Retirar os arquivos de dentro do. GZ
-
Intră na pasta „raiz” în relația cu arhivii compactați
exemplu: „/ Downloads” care este o locală unde arhivii sunt descărcați
-
Între com comenzi:
dispozitive sudo fastboot
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
-
Resposta esperada (lembrando que o tempo pode variar):
terminat. timp total: 100.00s
- Conectați mouse-ul, tastatura și monitorul / televizorul pe portul HDMI
-
Folosi:
- Usuário: linaro
- Senha: linaro
-
Abra a interface Lxterminal e faça o download from list de atualizações dispuníveis dos pacotes instalados:
sudo apt-get update
-
Realizați o instalație de două pacote disponibile folosind codul:
sudo apt-get upgrade
Dicas: O Linaro tem um boot extrem de rapid, și o comunitate destul de engajată pentru soluție de probleme.
Pasul 2: Fazendo O GPS Da DragonBoard 410c Localizar Seu Dispositivo
Comece com a installationation dos applicatives that serveão de client for o GPS, sendo they o GNSS-GPSD, o GPSD e o GPSD-CLIENTS. Faça isso using or command:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Cu ele instalate, vocea precisă va rămâne câteva comenzi pentru a începe sau a aplica, são ele:
sudo systemctl start qdsp-start.servicesudo systemctl start gnss-gpsd.servicesudo systemctl start qmi-gps-proxy.service
Leve sua DragonBoard 410c pentru um local aberto, com visada pentru 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, este de căutare de 10 minute. Isso varia muito da localização da DragonBoard, quantitate de prédios ao seu redor, além de alte barreiras naturais that possam atrapalhar a reception do sinal do GPS.
Pentru a obține capturarea informațiilor și a mandatului pentru un număr, utilizați codul abaixo, modificând sau însoțind site-ul dvs.:
Pasul 3: Instalarea O Dongle USB 3G / 4G
Există câteva forme de fază pe DragonBoard 410c accesând un 3G / 4G:
- Instalarea unui Shield / BreakoutBoard cu Modem GSM și slot pentru SimCard;
- Utilizați un Dongle USB 3G / 4G;
Pentru acest proiect optam pelo Dongle USB 3G / 4G de la Huawei model E3272, facilitatea de a obține acest dispozitiv.
Pentru configurarea modemului, puterea de utilizare a terminalului (cu aplicația WVDial), porem sau mai ușor, este ușor de utilizat cu o interfață grafică interfață grafică (GUI) de Linaro. Faça da următoarea formă:
- Cu o conexiune USB Dongle, faceți clic pe butonul de așteptare nu ícone de „redesenare” nici un cant inferior de țesut.
- „Editați conexiunile”> „Adăugați”
- Scrieți o opțiune: „Mobile Broadband”
- Faceți clic pe „Creați”
Siga a tela de instalație a sistemului operațional, conforme imagini acima, configurând o operatoare de telefonie conformă sim card comprado. Pentru criza acestui proiect, folosim un Sim Card da Tim (și un modem inițial vândut pe Vivo).
Pasul 4: Transformarea unui hotspot / punct de acces WiFi DragonBoard 410c Em
Pentru a utiliza un DragonBoard 410c ca un roteador wifi (acum că v-ați configurat o conectivitate cu internet), o modalitate mai simplă este să utilizați o interfață de sistem de tip própria. Siga os passos abaixo:
- Clique no botão direito no ícone de “redes” no canto inferior direito.
- „Editați conexiunile”> „Adăugați”
- Scrieți opțiunea „WiFi”
- Faceți clic pe „Creați”
Coloque o name da rede that você quer criar no field "SSID" e depois altere o “Mode” for “Hotspot”.
Pentru a garanta funcționarea:
- A se vedea „Setări IPv4”
- A se vedea „Metoda” este marcat ca „Partajat pe alte computere”
Pasul 5: Accesați un DragonBoard 410c Por SSH Sem Fio, Utilizând O Hotspot
Criamos um jeito de acessar a placa remotamente, independent da forma that ela esteja conectada, não dependendo de estar próxim a Dragonboard pentru conectar direct la ela, ou ao wifi em that ela esteja conectada. Este o metodă de conexiune a serviciilor Linux de la Amazon.
Vino instalând Auto SSH, folosind codul 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 serve for that a pessoa that a tenha, tenha autorização for access to the instância do endpoint exclusivo no Linux, através do IP public do modem 3G, obiectiv principal this passo. Na sequência, o cod fază la o copie da chave pentru o repozitie de chaves confiáveis do Linux, garantând chiar mai multă confidențialitate pentru conexiune.
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 user @ remote_server
Așadar, am terminat de transformat un DragonBoard 410c cu un server cloud! / o /
Pasul 6: Ligând un DragonBoard 410c Ao OBD Do Seu Carro Via Bluetooth - Passo 1/2
A interface of comunicação com os carros é feita através from porta OBD2. A informação that transita nesta porta precise ser traduzida, e pentru isso precisamos de um interpretador that trate os dados. Aveți două opțiuni pentru acest hardware: ELM327 sau STN1170.
Pentru acest proiect, utilizați un dispozitiv Bluetooth cu cip bazat pe ELM327.
Important de remarcat faptul că disponibilitatea acestui hardware nu reprezintă în mod necesar versiunea ORIGINAL a ELM327. A maior parte disponível está na versão 1.5, care a fost când chip original a fost clonat și plasat la vânzare pe piață. Chipset original este versiunea 2.2. O evoluție a acestui versiune trece la chip mai multe informații despre os caros mai noi. E important saber disso, pois dependendo dos testes realizados, poderá ou não conseguir get determinated information de veicles mais novos.
De posse do your device OBD2 Bluetooth, encontre a porta OBD2 do seu carro. Ela you can be localized logo abaixo do volante, no console central ou perto da caixa de fusíveis. O local varia destul de între ca montatoare și modele. Opțiunea pentru localizare este să folosiți această unealtă:
Acess a DragonBoard 410c com SSH, using seu Notebook (lembrando that agora você está no carro, e não possui mais uma tela para conectar a placa).
Asigurați-vă că dispozitivul OBD2 Bluetooth pentru inserare nu conector do carro, este pasul abaixo pentru ter controlul conectivității bluetooth:
sudo bluetoothctl
împerecheabil la agent la scanarea implicită a agentului activatÎn acest moment este important să se copieze o adresă MAC precisă pentru următorii pași
Digit:
ai încredere în MACADDRESS
pereche MACADDRESS
În acest moment trebuie să apară o solicitare pentru cifră sau PIN de pareamento do Bluetooth OBD2.
O PIN este în general 1234 sau 0000
Apasă la o țesătură de succes de conexiune, digitizând acest comandă, vocea sai a programului de control pe Bluetooth digitând:
părăsi
Acum este precizat să faceți un dispozitiv "BIND" cu un serial:
sudo rfcomm bind 0 MACADDRESS 1
Pentru validarea sau succesul operațiunii digitale:
ls / dev
A porta “Rfcomm0 deve estar na lista.
Pasul 7: Ligând un DragonBoard 410c Ao OBD Do Seu Carro prin Bluetooth - Passo 2/2
Obiectivul acestui pas asigură funcționarea comunicației între dispozitive:
ELM327, DragonBoard 410c și Veículo
Se aplică aplicația „Screen” pentru trimiterea mesajelor pe Porta Serial
sudo apt-get ecran de instalare
A Porta Serial va fi folosit pentru trimitere și primire de comenzi AT între un DragonBoard 410c și o ELM327.
Pentru mai multe informații despre Comandos AT, acces:
ATENÇÃO:
Tome muito cuidado nesta parte! Todas as informações enviadas para o dispositivo conectado ao carro, putereão ser interpretadas e enviadas ao carro de mod erradat și ocazionat o mal-funcționare do seu carro! Estude bastante os comandos antes de tentar inovar nos comandos. Recomendamos que siga as instruções abaixo detalhadamente.
Siga a sequência de comandos abaixo para dar início à comunicação:
-
Această funcție se deschide terminalul de comunicație serial.
ecran / dev / rfcomm0
Assim que o terminal carregar, digite os commandos abaixo nesta sequência (e entenda o que cada um them faz):
-
Reinicia o dispozitiv. As vezes você precisará fazer isso.
ATZ
-
Liga a funcționalității de lucru a liniei noastre de comandă, facilitând o vizualizare.
ATL1
-
Liga os cabeçalhos dos comandos.
ATH1
-
Liga o spațiu între palavras.
ATS1
-
Definiți un protocol de comunicație pentru carro pentru „Automático”.
ATSP0
Teste de comunicație Final:
-
Digite fără consolă:
ATI
- El trebuie să returnați „ELM327 v1.5” sau o versiune a ELM a dispozitivului dvs.
- Isso prova that o ELM327 este comunicând cu o placă sem probleme, și putem prosecui.
Dica
Pentru a aplica aplicația „Screen” este necesar să deschideți: Ctrl-A urmat de Ctrl-D
Pasul 8: Ligând un DragonBoard 410c Ao OBD Do Seu Carro Usando PyOBD
PyOBD este o bibliotecă de Python specifică pentru comunicație cu comanda OBD2 dos veicles. Com ela, we can extrair diverse informações da rede de comunicação do carro, incluindo dados como velocidade e até mesmo erros da parte elétrica.
Pentru această etapă, precis garantăm că următoarele biblioteci sunt instalate în 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
-
Wheel - formatator de arquivos pentru instalație
sudo apt-get install python-wheel
-
OBD - biblioteca pentru interpretare de date OBD
sudo apt-get python-obd
-
GPS - biblioteca com dados do gps
sudo pip instalează gps
-
Cereri - módulo de solicitações
solicitări de instalare sudo pip
Pentru a se știi o bibliotecă de Python funcționează corect, precis rămânem la comenzi:
sudo python
În acest moment, cursorul do terminal va muta pentru acest ícone „>>>” indicând că programul este rodând Python. Podemos começar a digitar os commandos for serem interpretados conforme abaixo.
- Comece importando a biblioteca
import obd
-
Pentru a face conexiunea cu o utilizare serială a comenzii
conexiune = obd. OBD („/ dev / rfcomm0”)
-
Pentru a descoperi se Python se obține informații suplimentare despre carro, trecând pelo Bluetooth, ELM327 até ajunge no carro, digite:
connection.protocol_name ()
Pasul 9: Informații suplimentare cu Carro Usando Python
Vamos criar um arquivo chamado: OBD.py, conforme instruções abaixo e code na sequência.
Importăm o bibliotecă OBD pentru Python pentru a începe ca conexiuni.
Por motivos desconhecidos, a prima conexiune cu noi hardware, falha sempre. Na segunda tentativa, funcționează întotdeauna. Por isso, no code verá that há duas linhas de conexão (con).
Seguindo o funcționare do code, com a conexão feita, iniciamos um loop infinito que busca os dados do OBD, formata de acord cu parametrii stabiliți. Depuneți o adresă URL, utilizând Query String, pentru a putea trimite către serverul folosind metoda POST.
Nici un exemplu de abaixo pegamos ca informații următoare:
- RPM
- Velocidade
- Odometru *
As funções para captura dos dados utilizam dois parâmetros. De exemplu, folosind [1] [12] estamos buscando [módulo] [PID]. Această listă poate fi găsită în:
Por último, a humm a URL com all as informationções são concatenadas e adicionadas em um arquivo, chamado "obd_data.dat".
Cod pentru 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") while 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 ("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 () tipăriți adresa URL
Depois da conexão e captura dos dados, vamos criar o arquivo chamado: envia_OBD.py
Esta parte do code fica mais simples. Começamos importando bibliotecas related to solicitações / envio de dados, using RESTFUL.
Criamos um while for enviar através de POST a URL da prima linie do arquivo that populado anteriormente OBDpy.p. Depois disso, para evitar care o dat seja enviat mai de uma vez, ea apaga aceasta linha do arquivo.
Cod pentru arhiv OBD.py:
solicitări de import
timp de import în timp ce este adevărat: încercați: time.sleep (0.2) url = "" cu open ('obd_data.dat', 'r') ca fin: data = fin.read (). splitlines (True) url = data [0] requests.post (url) cu open ('obd_data.dat', 'w') ca fout: fout.writelines (date [1:]) cu excepția: print 'exception'
Caso tenha algum problem copiando these codes, baixe os arquivos abaixo:
Step 10: Repetição De Scripts E Armazenamento De Dados Capturados Do Carro
Tudo o that was done até agora era orientado to garantir that a DragonBoard fizesse comunicação with os different components from solução, as a comunicação 3G, WiFi, Bluetooth, Dados do GPS, entre outros.
Vamos usar o código abaixo para editar o arquivo 'rc.local', care já tem algumas funções e comandos pré-definidos, e fica no diretório '/ etc'. Pentru a face ediția, utilizați comanda:
sudo nano /etc/rc.local
Acum precizăm configurarea inițializării tuturor proceselor, serviciilor și funcțiilor, criando rotinele pentru care funcționează automat până la inițierea unui Dragonboard. Folosim BASH pentru fazer isso. O BASH (Bourne-Again-SHell) este un aplicativ pentru interpretarea comenzilor Unix.
No next code, that the commands BASH, você precise will inserter or MacAddress by your device OBD / Bluetooth, and toom precise ter quite care to keep that o code seja colocado semper before to command "exit 0" that is a response of sucesso do system.
dacă [! -f / etc / ssh / ssh_host_rsa_key]
apoi 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
A partir de agora, sempre que a placa for iniciada, ela já vai se conectar através do 3G e send os dados de GPS e OBD for o server escolhido.
Pasul 11: Dificuldades Encontradas
Listamos abaixo algumas barreira that encontramos ao longo do development do project, that resolvemos before of criar este Instructable, mas that is important alertá-lo, case esteja tendo dificuldades toom.
-
PyOBD
É preciso ter muito cuidado na hora de transmitir os dados e comunicar com o carro. Întâi tentative, când a comunicație nu este așa cum este cu dispozitivul, trimitând câteva comenzi pentru o carro, și terminând cauzând o problemă na ECU. În acest moment o câmbiu automat não aceitava mais mudanças, ficou travado. Além disso, as luzes do painel começaram a piscar aleatoriamente. A solutionation for this event that occasionamos foi or desligamento dos cabos da bateria, mantendo assim by 15 minutes. Desta forma, forçamos o reset complet das ECUs do carro, returnando ele ao estágio original de fábrica, portanto cancelando qualquer command that tenhamos enviado erroneamente pela porta OBD
-
Linaro
Tivemos um problem de boot no Linaro, când aleatoriamente o OS reiniciava. Această problemă a fost rezolvată pe tot parcursul dezvoltării proiectului, pela echipa do Linaro, care soltou uma atualização, e já construímos este tutorial folosind o informație mai atualizată
-
GPS na DragonBoard
A Qualcomm Dragonboard 410c nu are antene GPS interne, și pentru o recepție mai bună de semnal, este necesar să instalați conectorul și să obțineți o antena exterioară. Pentru a face acest lucru, vă recomandăm să promovați o calitate Qualcomm:
Pasul 12: Referințe
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Cum se instalează o Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Documentație GPS pentru DragonBoard
discuss.96boards.org/t/gps-software/170/16
Demo GPS
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Conectând RaspberryPi à un 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
Instalând SSH fără Linux
ask.xmodulo.com/install-autossh-linux.html
Recomandat:
Cum să conectați și să controlați o lampă prin modulul ZigBee de pe Dragonboard: 5 pași
Cum să conectați și să controlați o lampă prin intermediul modulului ZigBee de pe Dragonboard: Această instrucțiune îl învață pe utilizator cum să se conecteze și să instaleze corect modulul ZigBee pe Dragonboard și să îl interacționeze cu o lampă controlată ZigBee (OSRAM), realizând o rețea IOT ZigBee. : Dragonboard 410c; CC2531 USB Dongle; T
Coduri OBD II P0420 / P0430 Fix: 5 pași
Coduri OBD II P0420 / P0430 Remediere: Aveți această lumină enervantă pe bordul Mustang-ului dvs.? Ți-ai schimbat sistemul de evacuare? Dacă ați instalat o țeavă off-road sau o conductă x (fără convertoare catalitice) sau ați îndepărtat catalizatorii pentru utilizare pe cale, senzorii de oxigen vă vor
Detectarea situațiilor de urgență - Qualcomm Dragonboard 410c: 7 pași
Detectarea situațiilor de urgență - Qualcomm Dragonboard 410c: Căutând sisteme de securitate care lucrează la monitorizarea situațiilor de urgență, este posibil să observați că este prea greu să procesați toate informațiile înregistrate. Gândindu-ne la asta, am decis să ne folosim cunoștințele în procesarea audio / imagine, senzori și
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 pași
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: A nossa lixeira inteligente consiste na separa ç ã o autom á tica do lixo. Atrav é s de uma webcam, ela identifica o tip de lixo e o depune nu compartiment adecvat pentru posterior ser reciclat
Modificați cablul OBD-II pentru a nu descărca bateria mașinii: 5 pași
Modificați cablul OBD-II pentru a nu descărca bateria mașinii: De mult timp, toate vehiculele sunt echipate cu un port de diagnosticare la bord. Foarte des acest port este disponibil ca conector OBD-II. Există mai multe dispozitive capabile să comunice folosind acest conector, multe dintre ele având la bază