INHOUDSOPGAWE:
- Stap 1: Uitvoer van die DragonBoard 410c aanvanklike opstelling **
- Stap 2: Soek u DragonBoard 410c met behulp van sy GPS -antenne
- Stap 3: Installeer die 3G/4G USB -dongle
- Stap 4: Omskep die DragonBoard 410c na 'n WiFi -hotspot / toegangspunt
- Stap 5: Draadloos toegang tot die DragonBoard 410c met SSH, via hotspot -verbinding
- Stap 6: Koppel die DragonBoard 410c aan die OBD van die motor met behulp van Bluetooth - Deel 1/2
- Stap 7: Koppel die DragonBoard 410c aan die OBD van die motor met behulp van Bluetooth - Deel 2/2
- Stap 8: Koppel die DragonBoard 410c aan die motor se OBD met behulp van PyOBD
- Stap 9: Lees data uit die motor deur Python te gebruik
- Stap 10: Herhalende skrifte en prosedure vir die stoor van data vir die vasgelegde data
- Stap 11: probleme onderweg
- Stap 12: Verwysings
Video: DragonBoard en OBD2: 12 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
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:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Bemarking - [email protected]
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 **
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
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
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
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
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
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
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
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
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
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
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
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:
Toerenteller/skanometer met behulp van Arduino-, OBD2- en CAN -bus: 8 stappe
Toerenteller/skanometer met behulp van Arduino-, OBD2- en CAN -bus: Enige Toyota Prius (of ander hibried/spesiale voertuig) eienaars sal weet dat daar dalk 'n paar draaiknoppe op hul paneelborde ontbreek! My prius het geen enjin omw / min of temperatuurmeter nie. As u 'n prestasie -ou is, wil u dalk dinge weet soos tydsberekening en
Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: 17 Stappe
Desenvolvendo Aplicações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é meer as wat ons noodwendig nodig het om die desenvolvimento, die modo que of HostPC (Computador / Notebook) te versamel, kan IDE Eclipse saamstel om ons te versamel en te eksporteer (Drag
Hoe om 'n lamp aan te sluit en te beheer via die ZigBee -module op Dragonboard: 5 stappe
Hoe om 'n lamp aan te sluit en te beheer deur middel van ZigBee -module op Dragonboard: Hierdie instruksie leer die gebruiker hoe om die ZigBee -module op die Dragonboard aan te sluit en korrek te installeer en dit te kommunikeer met 'n ZigBee -beheerde lamp (OSRAM), wat 'n ZigBee IOT -netwerk maak. : Dragonboard 410c; CC2531 USB -Dongle; T
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo for Android: 6 Stappe
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: DESCRI Ç Ã OO intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes indoor como casas ou shopping centers e aeroportos.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
OBD2 Bluetooth -leser: 3 stappe
OBD2 Bluetooth -leser: Welkom, dit is my eerste instruksies en hopelik is dit maklik om te verstaan, en u kan dit self maak. As u enige vrae het, kontak my gerus en miskien kan ek u help. Ek sal probeer om dit uiters eenvoudig te maak om hiermee te volg