Kazalo:
- 1. korak: Izvajanje začetne nastavitve DragonBoard 410c **
- 2. korak: Poiščite DragonBoard 410c z uporabo njegove antene GPS
- 3. korak: Namestitev 3G/4G USB ključa
- 4. korak: Pretvorite DragonBoard 410c v vročo točko / dostopno točko Wifi
- 5. korak: Brezžični dostop do DragonBoard 410c z uporabo SSH prek povezave Hotspot
- Korak 6: Povezovanje DragonBoard 410c z OBD v avtomobilu z uporabo Bluetooth - 1. del
- Korak 7: Povezovanje DragonBoard 410c z OBD v avtomobilu z uporabo Bluetootha - 2. del
- 8. korak: Povežite DragonBoard 410c z OBD avtomobila z uporabo PyOBD
- 9. korak: Branje podatkov iz avtomobila z uporabo Pythona
- 10. korak: ponavljajoči se skripti in postopek shranjevanja podatkov za zajete podatke
- 11. korak: Težave na poti
- 12. korak: Reference
Video: DragonBoard in OBD2: 12 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Če preberete podatke, ki prihajajo iz vrat OBD2 v vašem avtomobilu, je mogoče zbrati neverjetne podatke. Z DragonBoard 410c smo delali na tem projektu in ga podrobno opisali tukaj, tako da lahko to storite sami.
Ta projekt je bil možen le zaradi partnerstva z #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, ki nam je omogočil dostop do najboljše strojne opreme na trgu, pa tudi zaradi stika z najboljšimi strokovnjaki za podporo razvoju.
Ekipo so sestavljali ti fantje:
- Marcel Ogando - Heker - [email protected]
- Leandro Alvernaz - Heker - [email protected]
- Thiago Paulino Rodrigues - Trženje - [email protected]
Zelo vam želimo pomagati pri doseganju vašega cilja in poskrbeti, da dokončate svoj projekt, zato nam sporočite, če potrebujete dodatno pomoč od spodnjih navodil.
Para seguir este projeto em Português, clique aqui:
www.instructables.com/id/DragonBoard-Com-OBD
Za ta projekt smo uporabili naslednje postavke:
- Qualcomm DragonBoard 410c
- ELM327 Bluetooth OBD2 vmesnik
- Ključ USB 3G/4G
- Napetostni inverterski avtomobilski polnilnik (110v)
1. korak: Izvajanje začetne nastavitve DragonBoard 410c **
Z uporabo Qualcomm DragonBoard 410c smo projekt začeli z namestitvijo distribucije Linuro Linaro, ki nam je omogočila nastavitev vseh potrebnih naprav.
Če želite ustvariti podobo Linara za DragonBoard, uporabite Ubunto na VirtualBoxu, tako da lahko uporabite FastBoot (to je aplikacija, ki temelji na Linuxu). V bistvu morate odpreti terminal v VM Ubuntu in vnesti:
sudo apt-get android-tools-fastboot
Za namestitev Linara moramo opraviti dva pomembna koraka:
1) Namestitev BOOTLOADER -ja
Ime datoteke: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Razpakirajte datoteke in izberite mapo:
cd /FolderName (pot do nezapakirane mape)
Vnesite naslednjo kodo:
sudo fastboot naprave
Pričakovan donos:
(šestnajstiški) hitri zagon
Nato vnesite:
sudo./flashall
Pričakovan donos:
Dokončano. skupni čas 1.000 s (brez napak)
Namestitev OPERATIVNEGA SISTEMA
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Prenesite te 2 datoteki:
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
To je najnovejša različica, ki je na voljo do danes (junij/17), zato se bo ime lahko v prihodnosti spremenilo. Vzorec, ki bi ga iskali, je "boot-linaro-VersionName". Ta se imenuje "Stretch", prejšnja pa "Jessie".
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
To je najnovejša različica do danes (junij/17.), ime pa se lahko v prihodnosti spremeni. Poiščite vzorec "linaro-VersionName-alip".
Razpakirajte datoteke iz. GZ
Dostop do mape "root" v zvezi z razpakiranimi datotekami
primer: "/Prenosi", kjer se shranjujejo naložene datoteke.
Zdaj začnite z naslednjimi ukazi:
sudo fastboot naprave
sudo fastboot flash zagon boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Pričakovana donosnost (čas se lahko razlikuje):
Dokončano. skupni čas: 100,00s
Miško, tipkovnico in monitor/televizor povežite z vrati HDMI
Pri roki imejte to:
uporabnik: linaro
geslo: linaro
Odprite aplikacijo Lxterminal in nadaljujte s prenosom seznama razpoložljivih posodobitev glede nameščenih paketov:
sudo apt-get posodobitev
Namestite razpoložljive pakete s seznama:
sudo apt-get nadgradnja
Namig: Linaro je bil izbran zaradi izjemno hitrega zagona in skupnosti, ki je zelo angažirana in usmerjena v reševanje težav, kar prihrani veliko časa.
2. korak: Poiščite DragonBoard 410c z uporabo njegove antene GPS
Začnite z namestitvijo potrebnih aplikacij, ki bodo odjemalci modula GPS. Imena aplikacij so: GNSS-GPSD, GPSD in GPSD-CLIENTS. Če želite to narediti, sledite ukazom:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Če so te aplikacije nameščene, boste za pravilen zagon potrebovali več ukazov:
sudo systemctl start qdsp-start.service
sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service
Zdaj vzemite DragonBoard 410c na široko odprto območje z jasnim pogledom na nebo, ki mu omogoča sprejem signala s satelitov. Zdaj vtipkajte v terminal:
gpsmon –n
Po naših testih bi se podatki v povprečju začeli prikazovati na zaslonu po 10 minutah. To se zelo spreminja od kraja do kraja, poleg položaja DragonBoard -a na oknu ali v zaprtih prostorih, poleg številnih drugih ovir, ki lahko motijo sprejem signala GPS.
3. korak: Namestitev 3G/4G USB ključa
DragonBoard 410c lahko povežete z omrežjem 3G/4G/GSM na nekaj načinov:
- Uporaba Shield / BreakoutBoard -a z modemom GSM, ki ima tudi režo za SimCard;
- Uporabite USB ključ 3G/4G.
Za ta projekt smo se odločili uporabiti Huaweijev ključ E3272 USB, saj ga je bilo enostavno in hitro kupiti.
Za konfiguracijo modema lahko uporabite terminal (z uporabo aplikacije WVDial), vendar je to najlažje storiti z grafičnim uporabniškim vmesnikom Linaro (GUI). K temu na naslednji način:
- Ko je ključ USB priključen na DragonBoard, z desno tipko miške kliknite ikono »omrežja« v spodnjem desnem kotu zaslona;
- »Uredi povezave«> »Dodaj«;
- V spustnem meniju izberite »Mobilna širokopasovna povezava«;
- Kliknite "Ustvari".
Sledite navodilom čarovnika, pri tem pa v meniju izberite ustreznega operaterja, ki omogoča ustrezno povezavo naprave.
4. korak: Pretvorite DragonBoard 410c v vročo točko / dostopno točko Wifi
Najlažji način, da DragonBoard 410c konfigurirate kot usmerjevalnik Wi -Fi ali dostopno točko (zdaj, ko ste konfigurirali internetno povezavo), je uporaba sistemskega grafičnega vmesnika. Če želite to narediti, sledite spodnjim korakom:
- Z desno miškino tipko kliknite ikono omrežja v spodnjem desnem kotu
- Izberite »Uredi povezave in nato» Dodaj «
- Izberite »WiFi«
- Kliknite na Ustvari
V polju »SSID« spremenite ime omrežja, ki ga želite ustvariti, in polje »Način« spremenite v »Hotspot«.
Če želite zagotoviti, da bo delovalo, preverite naslednje:
- Pojdite na zavihek »Nastavitve IPv4«
- Preverite, ali je »Metoda«
5. korak: Brezžični dostop do DragonBoard 410c z uporabo SSH prek povezave Hotspot
Uspelo nam je ustvariti način za oddaljeni dostop do DragonBoarda, ne glede na to, ali ste blizu njega ali ne. Običajno bi se morali povezati s samo ploščo z uporabo wifi ali bluetooth. Drug način bi bil dostop do njega s povezavo v isto omrežje Wifi (npr.: iz usmerjevalnika). Z izvajanjem naslednjih korakov ustvarjamo samostojno napravo, ki ustvari lastno omrežje in se odpre v spletu, do katerega lahko dostopamo.
Začnete lahko z namestitvijo »Auto SSH« s spodnjo kodo:
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
Zdaj bomo ustvarili kriptografski ključ s standardom RSA. Ta ključ bo uporabljen za varen dostop do primerka končne točke Linuxa prek javnega IP -ja modema 3G. Glavni cilj tega koraka. Naslednja koda bo ta ključ kopirala v skladišče zaupanja vrednih ključev Linuxa in tako zagotovila še večjo varnost povezave.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub uporabnik@oddaljeni strežnik:.ssh/pooblaščeni_ključi autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 uporabnik na oddaljenem strežniku
S temi koraki ste pravkar preoblikovali Qualcomm DragonBoard 410c v strežnik v oblaku! / o/
Korak 6: Povezovanje DragonBoard 410c z OBD v avtomobilu z uporabo Bluetooth - 1. del
Avtomobilski komunikacijski vmesnik poteka prek vrat OBD2. Podatke, ki se izmenjujejo v tem pristanišču, je treba prevesti, za to pa potrebujemo tolmaško napravo. Obstajata dve možnosti strojne opreme: ELM327 ali STN1170.
Za ta projekt smo uporabili napravo Bluetooth s čipom, ki temelji na ELM327.
Pomembno je omeniti, da razpoložljivost ELM327 ne pomeni, da gre za ORIGINALNO RAZLIČICO ELM327. Večina razpoložljivih naborov čipov temelji na različici 1.5, takrat so bile informacije o čipu klonirane in pricurljale na trg. Prvotni ELM327 je zdaj na različici 2.2. Razvoj tega nabora čipov prinaša več podatkov o novejših avtomobilih. To je pomembno vedeti, saj lahko glede na teste dostopate do podatkov iz novejših vozil ali pa tudi ne.
Z adapterjem Bluetooth OBD2 poiščite vrata OBD2 v svojem avtomobilu. Morda se nahaja nekje pod volanom. Morda bi ga bilo lažje iskati s tem orodjem:
Dostop do DragonBoard 410c s pomočjo prenosnega računalnika SSH (ne pozabite, da ste zdaj v avtu in nimate televizorja/monitorja za priključitev plošče). Takoj, ko je naprava OBD2 Bluetooth vstavljena v avtomobilska vrata, sledite spodnjim korakom za dostop do povezave bluetooth.
sudo bluetoothctl
možno pri agentu pri privzetem skeniranju posrednikaNa tej stopnji je pomembno, da kopirate naslov MAC, ker ga boste potrebovali za naslednje korake
Vnesite te ukaze:
zaupajte MACADDRESS
par MACADDRESS
Pozvani boste, da vnesete kodo PIN, da povežete Bluetooth OBD2 s ploščo.
Običajno je PIN koda 1234 ali 0000 - odvisno od vaše strojne opreme
Zdaj bi morali videti zaslon "uspešna povezava". Če želite zapreti aplikacijo Bluetooth, uporabite naslednji ukaz:
prenehati
Naslednji korak je, da napravo povežete s serijskimi vrati:
sudo rfcomm bind 0 MACADDRESS 1
Če želite zagotoviti, da je operacija uspela, vnesite:
ls /dev
Navesti je treba vrata »Rfcomm0«.
Korak 7: Povezovanje DragonBoard 410c z OBD v avtomobilu z uporabo Bluetootha - 2. del
Glavni cilj tega koraka je zagotoviti, da komunikacija med tremi napravami deluje:
ELM327, DragonBoard 410c in avto
Prenesite aplikacijo »Zaslon« za pošiljanje serijskih sporočil skozi serijska vrata
sudo apt-get namestitveni zaslon
Serijska vrata bodo uporabljena za pošiljanje ukazov AT in sprejemanje odgovorov med DragonBoard 410c in napravo ELM327.
Za več informacij o ukazih AT pojdite na naslednjo povezavo:
elmelectronics.com/ELM327/AT_Commands.pdf
Opozorilo:
Pri tem koraku bodite zelo previdni! Vse informacije, ki jih pošljete v napravo, bodo interpretirane in poslane v avto. Če je poslano napačno sporočilo, ga lahko avto napačno razlaga in povzroči težave. Bodite pozorni na ukaze in jih preučite, preden poskusite z lastno kodo. Močno priporočamo, da sledite spodnjim navodilom do črke.
Za začetek komunikacije sledite spodnjemu zaporedju ukazov:
-
Ta funkcija zažene serijsko komunikacijo z uporabo zaslona:
screen /dev /rfcomm0
Takoj, ko se terminal naloži, vnesite naslednje ukaze v tem zaporedju:
ATZ
ATL1 ATH1 ATS1 ATSP0
Končni test komunikacije:
V konzolo vnesite:
ATI
Vrniti mora »ELM327 v1.5« ali različico vaše naprave ELM
To je dokaz, da komunikacija naprave ELM in DragonBoard 410c deluje
Hiter nasvet
Če želite zapreti »Screen«, morate vnesti Ctrl+A in nato Ctrl+D.
8. korak: Povežite DragonBoard 410c z OBD avtomobila z uporabo PyOBD
PyOBD je knjižnica Python, ki omogoča komunikacijo z napravami OBD2, ki jih je mogoče povezati z avtomobili. Tako lahko izvlečemo več informacij, vključno s hitrostjo vozila in električnimi napakami.
V tem koraku moramo zagotoviti, da so v Linaro vašega DragonBoarda 410c nameščene naslednje knjižnice python:
-
PIP - Pythonov upravitelj paketov
sudo apt-get install python-pip
-
SetupTools - upravitelj namestitve datotek
sudo pip install -U pip setupstools
-
Kolo - namestite oblikovalnik paketov
sudo apt-get install python-wheel
-
OBD - knjižnica Python za komunikacijo z napravo OBD
sudo apt-get install python-obd
-
GPS - knjižnica Python za pridobivanje podatkov iz GPS
sudo pip namestite gps
-
Zahteve - paket Python za RESTful
zahteve za namestitev sudo pip
Če želite preveriti, ali paket OBD deluje pravilno, sledite tem korakom:
sudo python
Zdaj se bo kazalec terminala spremenil v »>>>«, kar kaže, da se Python izvaja. Zdaj lahko začnete vnašati spodnje ukaze:
-
Začnite z uvozom knjižnice OBD:
uvoz obd
-
Za povezavo s serijskimi vrati uporabite ukaz:
connection = old. OBD (“dev/rfcomm0”)
- Normalno je, da se prikaže sporočilo o napaki, ki pravi, da komunikacija ni uspela, zato, če se to zgodi, poskusite še enkrat.
-
Če želite izvedeti, ali Python dobiva informacije iz avtomobila, ki gre prek ELM327 prek bluetootha, vnesite naslednje:
connection.protocol_name ()
9. korak: Branje podatkov iz avtomobila z uporabo Pythona
Ustvarili bomo datoteko z imenom: OBD.py, kot sledi spodaj, sledi koda.
Začnite tako, da uvozite knjižnico OBD v Python, da zaženete povezave.
Iz neznanih razlogov prvi poskus povezave z uporabo naše strojne opreme vedno ne uspe. Drugi poskus, vedno deluje. Zato boste na kodi opazili dve ukazni vrstici, ki poskušata vzpostaviti povezavo.
Ko je povezava uspešna, smo zagnali neskončno zanko, ki išče podatke OBD, jih oblikuje v skladu s prednastavljenimi parametri. Po tem ustvari URL z uporabo poizvedbenega niza, ki omogoča pošiljanje na strežnik z uporabo metode POST.
Na spodnjem primeru smo uspeli dobiti naslednje podatke:
- RPM
- Hitrost
Funkcije zajema podatkov uporabljajo dva parametra. Na primer, z uporabo [1] [12] iščete za [modul] [PID]. Seznam funkcij najdete na:
Končno ustvarite URL z vsemi informacijami, ki so združene in dodane v datoteko, imenovano "obd_data.dat".
Koda za OBD.py je spodaj.
Ko povežemo in zajamemo podatke, bomo ustvarili datoteko z imenom: envia_OBD.py
Ta del kode je poenostavljen. Uvozite knjižnice, povezane z zahtevo/pošljite podatke, z uporabo RESTFUL.
Ustvarite WHILE za uporabo POST in pošljite URL prve vrstice datoteke, ki je bila prej poseljena z OBD.py. Potem, da se izogne ponovnemu pošiljanju podatkov, izbriše to vrstico iz datoteke.
Koda za datoteko OBD.py je spodaj.
10. korak: ponavljajoči se skripti in postopek shranjevanja podatkov za zajete podatke
Vse, kar smo do sedaj naredili, je bilo usmerjeno v to, da je DragonBoard pravilno komuniciral s komponentami, kot so 3G, Wifi, Bluetooth, podatki GPS in drugo.
S spodnjo kodo uredite datoteko "rc.local", ki že ima nekatere funkcije in vnaprej določene ukaze. Nahaja se na naslovu '/etc'. Za urejanje uporabite ukaz:
sudo nano /etc/rc.local
Zdaj moramo konfigurirati vse storitve in funkcije ter ustvariti rutine, ki se samodejno inicializirajo ob zagonu programa DragonBoard. Za to uporabimo BASH. BASH (Bourne-Again-SHell) je aplikacija za tolmačenje ukazov Linuxa.
Naslednja koda ima ukaze BASH, zato morate vstaviti naslov Bluetooth/OBD MAC. Bodite še posebej previdni in se prepričajte, da kodo končate z "exit 0", ki je odgovor sistema, da je bilo dejanje uspešno.
če [! -f/etc/ssh/ssh_host_rsa_key]
nato systemctl stop ssh.socket || true dpkg-ponovno konfigurirajte 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
Od zdaj naprej se bo vsakič, ko vklopite DragonBoard, povezal s 3G in poslal podatke GPS in OBD na izbrani strežnik.
11. korak: Težave na poti
Spodaj smo našteli nekatera vprašanja, ki smo jih odkrili na poti pred pisanjem tega navodila, vendar smo mislili, da bi vam lahko pomagalo, če se vam to zgodi.
-
PyOBD
Pri komunikaciji z avtomobilom morate biti zelo previdni pri pošiljanju podatkov. V enem od naših prvih poskusov, ko komunikacija ni bila stabilna, smo poslali napačen ukaz, ki je v bistvu zrušil ECU. Menjalnik je bil obtičal na parkirišču, nekatere luči armaturne plošče pa so naključno utripale. Najdena rešitev je bila, da za približno 15 minut odklopite enega od baterijskih kablov. To ponastavi ECU na tovarniško privzeto stanje, zato prekliče vse ukaze ali spremembe, ki smo jih morda naredili
-
Linaro
Imeli smo težave z DragonBoardom, ki se je občasno znova zagnal. Težavo je rešila Linarova ekipa, ki je izdala novejšo različico operacijskega sistema. To vadnico smo napisali s posodobljeno različico
-
DragonBoardov GPS
Qualcommov DragonBoard 410c nima notranje antene GPS, zato moramo za izboljšanje pridobivanja signala GPS namestiti priključek za zunanjo anteno. Ta postopek je bolje razložiti na naslednji povezavi:
12. korak: Reference
Nalagalnik
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Namestite Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokumentacija o GPS za DragonBoard
discuss.96boards.org/t/gps-software/170/16
Predstavitev GPS
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Conectando RaspberryPi kot OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Priporočena:
Tahometer/Scan Gauge z uporabo Arduino, OBD2 in CAN Bus: 8 korakov
Merilnik vrtljajev/merilnik merilnika z uporabo vodila Arduino, OBD2 in CAN: Vsak lastnik Toyote Prius (ali drugega hibridnega/posebnega vozila) bo vedel, da na njihovih armaturnih ploščah morda manjka nekaj številčnic! Moj prius nima vrtljajev motorja ali merilnika temperature. Če ste uspešnik, boste morda želeli vedeti stvari, kot so časovni razpored in
Desenvolvendo Aplikacija za oddaljeno uporabo za Dragonboard 410c Usando IDE Eclipse: 17 korakov
Desenvolvendo Aplikações Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é mostrar kot etapas potrebno á rias para konfigurator o ambiente de desenvolvimento, de modo que o HostPC (Computador / Notebook), atrav é s do IDE Eclipse compile os c ó digos e izvoz za alvo (povlecite
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 korakov
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: DESCRI Ç Ã OO intuito do projeto é dar autonomia para defeentes visuais se locomoverem em ambientes indoor como casas ou shopping centres e aeroportos.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Senzorji: 7 korakov
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensors: O objetivo desse tutorial é mostrar kot etapas need á rias para configurar o ambiente de desenvolvimento, de modo que seja poss í vel comunicar com a Dragonboard 410c atrav é s de um computador / notebook usando comunica & ccedi
OBD2 Bluetooth bralnik: 3 koraki
OBD2 Bluetooth Reader: Dobrodošli, to je moj prvi Instructable in upam, da ga je enostavno razumeti in si ga lahko naredite sami. Če imate kakršna koli vprašanja, me prosim kontaktirajte in morda vam lahko pomagam. S tem bom poskušal narediti zelo preprosto sledenje