INHOUDSOPGAWE:

DragonBoard en OBD2: 12 stappe
DragonBoard en OBD2: 12 stappe

Video: DragonBoard en OBD2: 12 stappe

Video: DragonBoard en OBD2: 12 stappe
Video: EASY FIX - OBD II data port has no power 2024, Julie
Anonim
DragonBoard en OBD2
DragonBoard en OBD2

As u die data wat uit die OBD2 -poort in u motor kom, lees, is dit moontlik om ongelooflike inligting daaruit te versamel. Met die DragonBoard 410c het ons aan hierdie projek gewerk en dit hier gedetailleer, sodat u dit self kan doen.

Hierdie projek was slegs moontlik as gevolg van die vennootskap met #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora wat ons in staat gestel het om toegang tot die beste hardeware op die mark te kry, asook die kontak met die beste professionele persone om die ontwikkeling te ondersteun.

Die span is saamgestel deur hierdie ouens:

Ons wil u graag help om u doelwit te bereik, en om seker te maak dat u u projek voltooi, so laat weet ons as u hulp nodig het verder as die onderstaande instruksies.

Para seguir este projeto em Português, klik hier:

www.instructables.com/id/DragonBoard-Com-OBD

Vir hierdie projek het ons die volgende items gebruik:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 -koppelvlak
  • Dongle USB 3G/4G
  • Spanningsinverter motorlaaier (110v)

Stap 1: Uitvoer van die DragonBoard 410c aanvanklike opstelling **

Voer die DragonBoard 410c -aanvanklike opstelling uit **
Voer die DragonBoard 410c -aanvanklike opstelling uit **
Voer die DragonBoard 410c -aanvanklike opstelling uit **
Voer die DragonBoard 410c -aanvanklike opstelling uit **
Voer die DragonBoard 410c -aanvanklike opstelling uit **
Voer die DragonBoard 410c -aanvanklike opstelling uit **

Met behulp van Qualcomm DragonBoard 410c het ons die projek begin deur Linux se verspreiding genaamd Linaro te installeer, sodat ons alle benodigde toestelle kon instel.

Gebruik Ubunto op VirtualBox om 'n beeld van Linaro vir die DragonBoard te skep, sodat u FastBoot (dit is 'n Linux -gebaseerde app) kan gebruik. Wat u dus moet doen, is om die Terminal by die VM Ubuntu oop te maak en in te voer:

sudo apt-get android-tools-fastboot

Om Linaro te installeer, moet ons deur twee belangrike stappe gaan:

1) Installeer die BOOTLOADER

Lêernaam: dragonboard410c_bootloader_emmc_linux-79.zip

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

Pak die lêers uit en kies die gids:

cd /gidsnaam (pad na die uitgepakte vouer)

Voer die volgende kode in:

sudo fastboot -toestelle

Verwagte opbrengs:

(heksadesimaal) fastboot

Tik dan in:

sudo./flashall

Verwagte opbrengs:

klaar. totale tyd 1.000s (sonder foute)

Die installering van die BEDIENINGSSTELSEL

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

Laai hierdie 2 lêers af:

boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz

Dit is die nuutste weergawe wat tot dusver beskikbaar is (17 Junie), sodat die naam in die toekoms kan verander. Die patroon waarna u sou soek, is 'boot-linaro-VersionName'. Hierdie een word 'Stretch' genoem en die vorige was 'Jessie'.

linaro-stretch-alip-qcom-leeubek-arm64-20170607-246.img.gz

Dit is die nuutste weergawe (17 Junie) en die naam kan in die toekoms verander. Soek die patroon "linaro-VersionName-alip".

Pak die lêers uit die. GZ

Gaan na die "root" -vouer met betrekking tot die uitgepakte lêers

voorbeeld: "/Downloads", waar die lêers afgelaai word.

Begin nou met die volgende opdragte:

sudo fastboot -toestelle

sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img

Verwagte opbrengs (onthou dat die tyd kan wissel):

klaar. totale tyd: 100,00 s

Koppel 'n muis, sleutelbord en 'n monitor/TV met behulp van die HDMI -poort

Hou dit byderhand:

gebruiker: linaro

wagwoord: linaro

Maak die app Lxterminal oop en gaan voort met die aflaai van die beskikbare opdateringslys, met betrekking tot die geïnstalleerde pakkette:

sudo apt-get update

Maak seker dat u die beskikbare pakkette uit die lys installeer:

sudo apt-get upgrade

Wenk: Linaro is gekies as gevolg van 'n baie vinnige boot, en 'n baie betrokke gemeenskap en probleemoplossend, wat baie tyd bespaar.

Stap 2: Soek u DragonBoard 410c met behulp van sy GPS -antenne

Soek u DragonBoard 410c met behulp van sy GPS -antenne
Soek u DragonBoard 410c met behulp van sy GPS -antenne
Soek u DragonBoard 410c met behulp van sy GPS -antenne
Soek u DragonBoard 410c met behulp van sy GPS -antenne

Begin met die installering van die nodige programme wat die kliënte van die GPS -module sal wees. Die app se name is: GNSS-GPSD, GPSD en GPSD-KLIENTE. Om dit te doen, volg die opdragte:

sudo apt-get installeer gnss-gpsd gpsd gpsd-kliënte

Met hierdie programme geïnstalleer, benodig u meer opdragte om dit behoorlik te begin:

sudo systemctl begin qdsp-start.service

sudo systemctl begin gnss-gpsd.service sudo systemctl begin qmi-gps-proxy.service

Neem nou die DragonBoard 410c na 'n wyd oop gebied met 'n duidelike uitsig op die lug, sodat hy die sein van die satelliete kan ontvang. Tik nou in die terminale:

gpsmon –n

Uit ons toetse sou gemiddeld na 10 minute data op die skerm verskyn. Dit verander baie van plek tot plek, behalwe die posisie van die DragonBoard op die venster, of binnenshuis, behalwe baie ander hindernisse wat die GPS -seinontvangs kan inmeng.

Stap 3: Installeer die 3G/4G USB -dongle

Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle
Die installering van die 3G/4G USB -dongle

Daar is 'n paar maniere om die DragonBoard 410c aan die 3G/4G/GSM -netwerk te koppel:

  • Gebruik 'n Shield / BreakoutBoard met 'n GSM -modem wat ook 'n SimCard -gleuf het;
  • Gebruik 'n USB 3G/4G Dongle.

Vir hierdie projek het ons besluit om Huawei se E3272 USB Dongle te gebruik, want dit was maklik en vinnig om een te koop.

Om die modem te konfigureer, kan u die terminaal gebruik (met behulp van die WVDial -app), maar die maklikste manier om dit te doen, is deur Linaro's grafiese gebruikerskoppelvlak (GUI) te gebruik. Dit as volg:

  • As die USB-dongle aan die DragonBoard gekoppel is, klik met die rechtermuisknop op die ikoon "netwerke" in die regter onderste hoek van die skerm;
  • "Verander verbindings"> "Voeg by";
  • Kies 'Mobiele breëband' in die keuselys;
  • Klik op "Skep".

Volg die instruksies van die towenaar en maak seker dat u die regte draer in die spyskaart kies, sodat die toestel daarvolgens kan koppel.

Stap 4: Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt

Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt

Die maklikste manier om die DragonBoard 410c as 'n wifi -router of 'n hotspot op te stel (noudat u 'n internetverbinding gekonfigureer het) is deur die stelsel se GUI te gebruik. Om dit te doen, volg die onderstaande stappe:

  • Klik met die rechtermuisknop op die netwerkikoon in die regter onderste hoek
  • Kies "Verbindings wysig en dan" Voeg by"
  • Kies 'WiFi'
  • Klik op skep

Verander die naam van die netwerk wat u wil skep in die veld "SSID" en verander die veld "Mode" na "Hotspot".

Om seker te maak dat dit sal werk, verifieer die volgende:

  • Gaan na die oortjie "IPv4 -instellings"
  • Kontroleer of die 'metode'

Stap 5: Draadloos toegang tot die DragonBoard 410c met SSH, via hotspot -verbinding

Draadloos toegang tot die DragonBoard 410c met SSH, via hotspot -verbinding
Draadloos toegang tot die DragonBoard 410c met SSH, via hotspot -verbinding

Ons het daarin geslaag om 'n manier te kry om op afstand toegang tot die DragonBoard te maak, maak nie saak of u daar naby is of nie. Gewoonlik moet u met die bord self verbind via wifi of bluetooth. 'N Ander manier sou wees om toegang daartoe te verkry deur aan te sluit op dieselfde Wifi -netwerk (bv. Vanaf 'n router). Deur die volgende stappe uit te voer, skep ons 'n selfstandige toestel wat sy eie netwerk genereer en vir die internet oopmaak om toegang te verkry.

U kan begin met die installering van die 'Auto SSH' met die onderstaande kode:

sudo apt-get install gcc maak

wget https://www.harding.motd.ca/autossh/autossh-1.4e.tgz tar -xf autossh-1.4e.tgz cd autossh-1.4e./configure maak sudo maak installeer

Nou gaan ons 'n kriptografiese sleutel genereer, met behulp van RSA -standaard. Hierdie sleutel word gebruik om veilig toegang tot 'n Linux -eindpunt -instansie te verkry, via die openbare IP van die 3G -modem. Die hoofdoel van hierdie stap. Die volgende kode sal die sleutel na Linux se Trusted Keys Repository kopieer, om seker te maak dat die verbinding nog meer sekuriteit bied.

ssh -keygen -t rsa

scp ~/.ssh/id_rsa.pub gebruiker@remote_server:.ssh/authorised_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

Deur hierdie stappe te volg, het u pas die Qualcomm DragonBoard 410c omskep in 'n wolkbediener! / o/

Stap 6: Koppel die DragonBoard 410c aan die OBD van die motor met behulp van Bluetooth - Deel 1/2

Verbind die DragonBoard 410c met die motor se OBD met behulp van Bluetooth - Deel 1/2
Verbind die DragonBoard 410c met die motor se OBD met behulp van Bluetooth - Deel 1/2
Verbind die DragonBoard 410c met die motor se OBD met behulp van Bluetooth - Deel 1/2
Verbind die DragonBoard 410c met die motor se OBD met behulp van Bluetooth - Deel 1/2

Die motor se kommunikasie -koppelvlak word deur 'n OBD2 -poort gedoen. Die inligting wat in hierdie poort uitgeruil word, moet vertaal word, en daarvoor het ons 'n tolkapparaat nodig. Daar is twee hardeware -alternatiewe: ELM327 of STN1170.

Vir hierdie projek het ons 'n Bluetooth -toestel gebruik met 'n skyfiestel gebaseer op ELM327.

Dit is belangrik om daarop te let dat die beskikbaarheid van die ELM327 nie beteken dat dit die oorspronklike weergawe van ELM327 is nie. Die grootste deel van die beskikbare skyfiestelle is gebaseer op weergawe 1.5, dit was toe die inligting van die skyfie gekloon en op die mark gelek is. Die oorspronklike ELM327 is nou op weergawe 2.2. Die ontwikkeling van hierdie chipset bring meer inligting oor nuwer motors. Dit is belangrik om dit te weet, want afhangende van toetse het u moontlik toegang tot data van nuwer voertuie.

Vind die OBD2 -poort van u motor met die OBD2 Bluetooth -adapter. Dit is moontlik iewers onder die stuurwiel. Dit kan makliker wees om dit te soek met hierdie hulpmiddel:

Maak toegang tot die DragonBoard 410c met behulp van SSH vanaf u notaboek (onthou dat u nou in die motor is en nie 'n TV/monitor het om die bord in te sluit nie). Sodra die OBD2 Bluetooth -toestel in die motorpoort geplaas is, volg die onderstaande stappe om toegang tot die Bluetooth -verbinding te verkry.

sudo bluetoothctl

kan op agent gekoppel word met standaardagentskandering aanOp hierdie stadium is dit belangrik dat u die MAC -adres kopieer, want u benodig dit vir die volgende stappe

Tik hierdie opdragte in:

vertrou MACADDRESS

paar MACADDRESS

U moet 'n versoek kry om die PIN -kode in te tik om die Bluetooth OBD2 met die bord te koppel.

Die PIN -kode is gewoonlik 1234 of 0000 - hang af van u hardeware

Nou moet u die skerm "verbinding suksesvol" sien. Gebruik die volgende opdrag om die Bluetooth -toepassing te verlaat:

ophou

Die volgende stap is om die toestel met die seriële poort te bind:

sudo rfcomm bind 0 MACADDRESS 1

Om seker te maak dat die operasie geslaag het, tik:

ls /dev

Die poort “Rfcomm0” moet gelys word.

Stap 7: Koppel die DragonBoard 410c aan die OBD van die motor met behulp van Bluetooth - Deel 2/2

Verbind die DragonBoard 410c met die OBD van die motor met behulp van Bluetooth - Deel 2/2
Verbind die DragonBoard 410c met die OBD van die motor met behulp van Bluetooth - Deel 2/2
Verbind die DragonBoard 410c met die OBD van die motor met behulp van Bluetooth - Deel 2/2
Verbind die DragonBoard 410c met die OBD van die motor met behulp van Bluetooth - Deel 2/2

Die hoofdoel van hierdie stap is om te verseker dat die kommunikasie tussen die 3 toestelle werk:

ELM327, DragonBoard 410c en die motor

Laai die "Screen" -program af om reeksboodskappe deur die seriële poort te stuur

sudo apt-get installasie skerm

Die reekspoort sal gebruik word om AT -opdragte te stuur en die reaksies tussen die DragonBoard 410c en die ELM327 -toestel te ontvang.

Gaan na die volgende skakel vir meer inligting oor AT -opdragte:

elmelectronics.com/ELM327/AT_Commands.pdf

Waarskuwing:

Wees baie versigtig met hierdie stap! Alle inligting wat u na die toestel stuur, word geïnterpreteer en na die motor gestuur, as die verkeerde boodskap gestuur word, kan dit verkeerd geïnterpreteer word deur die motor en probleme veroorsaak. Gee aandag aan die opdragte en bestudeer dit voordat u u eie kode probeer. Ons beveel sterk aan dat u die instruksies hieronder volg.

Volg die onderstaande opdragvolgorde om die kommunikasie te begin:

  • Hierdie funksie begin die seriële kommunikasie met behulp van die skerm:

    skerm /dev /rfcomm0

Sodra die terminale laai, tik die volgende opdragte in hierdie volgorde:

ATZ

ATL1 ATH1 ATS1 ATSP0

Laaste kommunikasietoets:

Tik die konsole in:

ATI

Dit moet 'ELM327 v1.5' of die ELM -weergawe van u toestel teruggee

Dit is 'n bewys dat die kommunikasie van die ELM -toestel en die DragonBoard 410c werk

Vinnige wenk

Om 'Skerm' te verlaat, moet u Ctrl+A invoer, gevolg deur Ctrl+D.

Stap 8: Koppel die DragonBoard 410c aan die motor se OBD met behulp van PyOBD

Verbind die DragonBoard 410c met die motor se OBD met behulp van PyOBD
Verbind die DragonBoard 410c met die motor se OBD met behulp van PyOBD

PyOBD is 'n Python -biblioteek om kommunikasie met OBD2 -toestelle wat aan motors gekoppel kan word, moontlik te maak. Hiermee kan ons verskeie inligting, insluitend die spoed van die voertuig en elektriese foute, onttrek.

In hierdie stap moet ons verseker dat die volgende python -biblioteke in Linaro van u DragonBoard 410c geïnstalleer is:

  • PIP - Python se pakketbestuurder

    sudo apt-get install python-pip

  • SetupTools - lêerinstallasiebestuurder

    sudo pip install -U pip setupstools

  • Wiel - installeer pakketformateerder

    sudo apt-get install python-wiel

  • OBD - Python -biblioteek om met OBD -toestel te kommunikeer

    sudo apt-get install python-obd

  • GPS - Python -biblioteek om data van GPS af te haal

    sudo pip installeer gps

  • Versoeke - Python -pakket vir RESTful

    sudo pip -installeringsversoeke

Om te verifieer of die pakket van OBD korrek werk, volg die volgende stappe:

sudo python

Nou word die wyser van die terminale verander na ">>>" wat aandui dat Python loop. U kan nou die onderstaande opdragte begin tik:

  • Begin met die invoer van OBD -biblioteek:

    invoer obd

  • Gebruik die opdrag om aan die Serial Port te koppel:

    verbinding = oud. OBD (“dev/rfcomm0”)

  • Dit is normaal om 'n foutboodskap te wys en te sê dat kommunikasie misluk het, so as dit gebeur, probeer nog 'n keer.
  • Tik die volgende om uit te vind of Python inligting kry van die motor wat deur ELM327 deur Bluetooth gaan:

    connection.protocol_name ()

Stap 9: Lees data uit die motor deur Python te gebruik

Lees data uit die motor deur Python te gebruik
Lees data uit die motor deur Python te gebruik

Ons sal 'n lêer skep met die naam: OBD.py, soos hieronder aangedui, gevolg deur die kode.

Begin met die invoer van die OBD -biblioteek in Python om die verbindings te begin.

Om onbekende redes, met die gebruik van ons hardeware, misluk die eerste aansluitingspoging altyd. Tweede poging, werk altyd. Daarom sien u op die kode twee opdraglyne wat probeer om die verbinding te maak.

Nadat die verbinding suksesvol was, het ons 'n oneindige lus begin wat OBD -data soek en dit formateer volgens vooraf ingestelde parameters. Daarna skep dit 'n URL met behulp van Query String, sodat dit met behulp van die POST -metode na die bediener gestuur kan word.

Op die onderstaande voorbeeld kon ons die volgende inligting kry:

  • RPM
  • Spoed

Die funksies om data vas te lê, gebruik twee parameters. As u byvoorbeeld [1] [12] gebruik, soek u na [module] [PID]. Die lys funksies kan gevind word op:

Genereer uiteindelik die URL met alle inligting wat saamgevoeg is en by die lêer gevoeg word, genaamd "obd_data.dat".

Die kode vir OBD.py is hieronder.

Nadat ons die data verbind en vasgelê het, sal ons 'n lêer skep met die naam: envia_OBD.py

Hierdie deel van die kode word eenvoudiger. Voer die biblioteke in wat verband hou met die versoek/stuur data, met behulp van RESTFUL.

Skep 'n WHILE om POST te gebruik en stuur die URL van die eerste reël van die lêer, wat voorheen deur OBD.py. Om te voorkom dat data weer gestuur word, wis die reël uit die lêer.

Die kode vir die lêer OBD.py is hieronder.

Stap 10: Herhalende skrifte en prosedure vir die stoor van data vir die vasgelegde data

Herhalende skrifte en prosedure vir die stoor van data vir die vasgelegde data
Herhalende skrifte en prosedure vir die stoor van data vir die vasgelegde data

Alles wat ons tot dusver gedoen het, was daarop gemik om seker te maak dat die DragonBoard behoorlik met die komponente kommunikeer, soos 3G, Wifi, Bluetooth, GPS -data en meer.

Gebruik die onderstaande kode om die lêer "rc.local", wat reeds 'n paar funksies en vooraf gedefinieerde opdragte het, te wysig. Dit is geleë op '/etc'. Gebruik die opdrag om te redigeer:

sudo nano /etc/rc.local

Nou moet ons alle dienste en funksies instel en roetines skep wat outomaties geïnitialiseer word wanneer die DragonBoard begin. Kom ons gebruik BASH om dit te doen. BASH (Bourne-Again-SHell) is 'n Linux Command-tolkprogram.

Die volgende kode het BASH -opdragte, en u moet die Bluetooth/OBD MAC -adres invoeg. Wees ekstra versigtig om seker te maak dat u die kode eindig met 'exit 0', wat die stelsel reageer dat die aksie suksesvol was.

as [! -f/etc/ssh/ssh_host_rsa_key]

dan stop systemctl ssh.socket || ware dpkg-herkonfigureer openssh-bediener fi sudo systemctl begin 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

Van nou af sal elke keer as u die DragonBoard aanskakel, verbinding maak met 3G en GPS- en OBD -data na die gekose bediener stuur.

Stap 11: probleme onderweg

Probleme langs die pad
Probleme langs die pad

Ons het 'n paar van die probleme wat ons onderweg gevind het, gelys voordat ons hierdie instruksies geskryf het, maar ons het gedink dit kan u help as dit met u gebeur.

  • PyOBD

    U moet baie versigtig wees om data te stuur terwyl u met die motor kommunikeer. In een van ons eerste probeerslae, toe die kommunikasie nie stabiel was nie, stuur ons die verkeerde opdrag wat basies die ECU neergestort het. Die ratskakeling het in die parkeerterrein vasgesteek en sommige van die ligte van die paneelbord het ewekansig geknip. Die oplossing was om een van die batterykabels vir ongeveer 15 minute te ontkoppel. Dit stel die ECU terug in die standaard fabrieksstatus en kanselleer dus alle opdragte of veranderings wat ons moontlik gemaak het

  • Linaro

    Ons het 'n probleem gehad met ons DragonBoard, wat sporadies aanhou herlaai het. Die probleem is opgelos deur die span van Linaro wat 'n nuwer weergawe van die bedryfstelsel vrygestel het. Ons het hierdie handleiding met die opgedateerde weergawe geskryf

  • DragonBoard se GPS

    Qualcomm's DragonBoard 410c het nie 'n interne GPS -antenna nie, dus om die GPS -seinverwerwing te verbeter, moet ons 'n aansluiting vir 'n eksterne antenna installeer. Hierdie proses word beter verduidelik in die volgende skakel:

Stap 12: Verwysings

Verwysings
Verwysings

Bootloader

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

Linaro

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

As installasie van DragonBoard 410c

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

Dokumentasie van GPS vir DragonBoard

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

GPS -demo

gist.github.com/wolfg1969/4653340

Python OBD

github.com/brendan-w/python-OBD

Verbind RaspberryPi à um OBD Bluetooth

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

Aanbeveel: