Sisukord:

DragonBoard ja OBD2: 12 sammu
DragonBoard ja OBD2: 12 sammu

Video: DragonBoard ja OBD2: 12 sammu

Video: DragonBoard ja OBD2: 12 sammu
Video: ELM 327 OBD 2 scanner for car. Detailed unbiased review and how to install OBD 2 Scanner ELM 327. 2024, Juuli
Anonim
DragonBoard ja OBD2
DragonBoard ja OBD2

Lugedes oma auto OBD2 pordist väljuvaid andmeid, on võimalik sealt hämmastavat teavet koguda. DragonBoard 410c abil töötasime selle projekti kallal ja kirjeldasime seda siin, et saaksite seda ise teha.

See projekt oli võimalik ainult tänu partnerlusele #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradoraga, mis võimaldas meil saada juurdepääsu turu parimale riistvarale ning kontakti arendamise toetamiseks parimate spetsialistidega.

Meeskonna moodustasid need poisid:

Aitame teid väga oma eesmärgi saavutamisel ja veenduge, et olete oma projekti lõpule viinud, seega andke meile teada, kui vajate abi, mis on allpool toodud juhiseid.

Paraguir este projeto em Português, klikid:

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

Selle projekti jaoks kasutasime järgmisi elemente:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 liides
  • Dongle USB 3G/4G
  • Pingeinverteri autolaadija (110v)

Samm 1: DragonBoard 410c esialgse seadistuse tegemine **

DragonBoard 410c algseadistuse tegemine **
DragonBoard 410c algseadistuse tegemine **
DragonBoard 410c algseadistuse tegemine **
DragonBoard 410c algseadistuse tegemine **
DragonBoard 410c algseadistuse tegemine **
DragonBoard 410c algseadistuse tegemine **

Qualcomm DragonBoard 410c abil alustasime projekti Linuxi distributsiooni Linaro installimisega, mis võimaldas meil seadistada kõik vajalikud seadmed.

Linaro kujutise loomiseks DragonBoardile kasutage VirtualBoxis Ubunot, et saaksite kasutada FastBoot'i (see on Linuxil põhinev rakendus). Põhimõtteliselt peate avama terminali VM Ubuntu ja sisestama:

sudo apt-get android-tools-fastboot

Linaro installimiseks peame läbima 2 olulist sammu:

1) BOOTLOADERi paigaldamine

Faili nimi: dragonboard410c_bootloader_emmc_linux-79.zip

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

Pakkige failid lahti ja valige kaust:

cd /FolderName (lahtipakitud kausta tee)

Sisestage järgmine kood:

sudo fastboot seadmed

Eeldatav tootlus:

(kuueteistkümnendarv) kiirlaadimine

Seejärel tippige:

sudo./flashall

Eeldatav tootlus:

valmis. koguaeg 1000s (ilma vigadeta)

KASUTUSSÜSTEEMI paigaldamine

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

Laadige need 2 faili alla:

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

See on uusim versioon, mis on siiani saadaval (17. juuni), nii et nimi võib tulevikus muutuda. Muster, mida otsiksite, on "boot-linaro-VersionName". Seda nimetatakse "Stretch" ja eelmine oli "Jessie".

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

See on seni uusim versioon (17. juuni) ja nimi võib tulevikus muutuda. Otsige mustrit "linaro-VersionName-alip".

Pakkige failid. GZ -st lahti

Juurdepääs kausta "root" seoses lahtipakitud failidega

näide: "/Allalaadimised", kuhu allalaaditud failid salvestatakse.

Nüüd alustage järgmiste käskudega:

sudo fastboot seadmed

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

Eeldatav tulu (aja meeldejätmine võib erineda):

valmis. koguaeg: 100.00

Ühendage hiir, klaviatuur ja monitor/teler HDMI -porti kasutades

Hoidke see käepärast:

kasutaja: linaro

parool: linaro

Avage rakendus Lxterminal ja laadige alla installitud pakettide jaoks saadaolevate värskenduste loend:

sudo apt-get update

Installige kindlasti saadaolevad paketid loendist:

sudo apt-get upgrade

Vihje: Linaro valiti ülikiire alglaadimise ja väga kaasatud ning probleemide lahendamisele orienteeritud kogukonna tõttu, mis säästab palju aega.

2. samm. DragonBoard 410c asukoha leidmine selle GPS -antenni abil

DragonBoard 410c asukoha leidmine selle GPS -antenni abil
DragonBoard 410c asukoha leidmine selle GPS -antenni abil
DragonBoard 410c asukoha leidmine selle GPS -antenni abil
DragonBoard 410c asukoha leidmine selle GPS -antenni abil

Alustuseks installige vajalikud rakendused, mis on GPS -mooduli kliendid. Rakenduste nimed on: GNSS-GPSD, GPSD ja GPSD-KLIENDID. Selleks järgige käske:

sudo apt-get install gnss-gpsd gpsd gpsd-kliendid

Kui need rakendused on installitud, vajate selle õigeks käivitamiseks rohkem käske:

sudo systemctl käivitage qdsp-start.service

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

Viige nüüd DragonBoard 410c laiale alale, kust avaneb selge vaade taevale, võimaldades sellel satelliitidelt signaali vastu võtta. Nüüd tippige terminali:

gpsmon –n

Meie testide põhjal hakkasid andmed ekraanile ilmuma keskmiselt 10 minuti pärast. See muudab palju erinevates kohtades, lisaks DragonBoardi asukohale aknal või siseruumides, lisaks paljudele muudele takistustele, mis võivad GPS -signaali vastuvõtmist häirida.

Samm: 3G/4G USB -dongle paigaldamine

3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine
3G/4G USB -dongle paigaldamine

DragonBoard 410c ühendamiseks 3G/4G/GSM -võrguga on mitu võimalust:

  • Shield / BreakoutBoardi kasutamine GSM -modemiga, millel on ka SimCardi pesa;
  • Kasutage USB 3G/4G -donglit.

Selle projekti jaoks otsustasime kasutada Huawei E3272 USB -donglit, kuna selle ostmine oli lihtne ja kiire.

Modemi seadistamiseks võite kasutada terminali (kasutades rakendust WVDial), kuid lihtsaim viis seda teha on Linaro graafilise kasutajaliidese (GUI) kasutamine. Sellele järgmiselt:

  • Kui USB-dongle on ühendatud DragonBoardiga, paremklõpsake ekraani paremas alanurgas ikooni "võrgud";
  • "Muuda ühendusi"> "Lisa";
  • Valige rippmenüüst „Mobiilne lairibaühendus”;
  • Klõpsake "Loo".

Järgige viisardi juhiseid, valides kindlasti menüüst sobiva kandja, mis võimaldab seadmel vastavalt ühenduda.

Samm: muutke DragonBoard 410c WiFi levialaks / pääsupunktiks

DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks
DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks
DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks
DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks
DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks
DragonBoard 410c muutmine Wifi levialaks / pääsupunktiks

Lihtsaim viis konfigureerida DragonBoard 410c WiFi -ruuteriks või levialaks (nüüd, kui olete Interneti -ühenduse seadistanud) on kasutada süsteemi GUI -d. Selleks toimige järgmiselt.

  • Paremklõpsake paremas alanurgas võrguikooni
  • Valige "Muuda ühendusi" ja seejärel "Lisa"
  • Valige "WiFi"
  • Klõpsake nuppu Loo

Muutke väljale „SSID” loodava võrgu nimi ja muutke väli „Režiim” väärtuseks „Hotspot”.

Töökindluse tagamiseks kontrollige järgmist.

  • Minge vahekaardile „IPv4 seaded”
  • Kontrollige, kas „meetod”

Samm 5: Juurdepääs DragonBoard 410c juhtmevabalt, kasutades SSH -d, leviala kaudu

Juurdepääs DragonBoard 410c juhtmevabalt, kasutades SSH -d, leviala kaudu
Juurdepääs DragonBoard 410c juhtmevabalt, kasutades SSH -d, leviala kaudu

Meil õnnestus luua viis DragonBoardile kaugjuurdepääsuks, olenemata sellest, kas olete selle lähedal või mitte. Tavaliselt peate ühenduse looma plaadiga, kasutades WiFi või Bluetoothi. Teine võimalus oleks sellele juurde pääseda, ühendades sama WiFi -võrguga (nt ruuteri kaudu). Järgmiste toimingute tegemisel loome iseseisva seadme, mis loob oma võrgu ja avab juurdepääsu veebile.

Alustuseks installige automaatne SSH, kasutades allolevat koodi:

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

Nüüd genereerime RSA standardi abil krüptovõtme. Seda võtit kasutatakse turvaliseks juurdepääsuks Linuxi lõpp -punkti eksemplarile 3G -modemi avaliku IP kaudu. Selle sammu peamine eesmärk. Järgmine kood kopeerib selle võtme Linuxi usaldusväärsete võtmete hoidlasse, tagades ühenduse veelgi suurema turvalisuse.

ssh -keygen -t rsa

scp ~/.ssh/id_rsa.pub kasutaja@remote_server:.ssh/Author_keys autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 kasutaja@remote_server

Neid samme järgides muutsite Qualcomm DragonBoard 410c just pilveserveriks! / o/

Samm 6: DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - osa 1/2

DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - osa 1/2
DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - osa 1/2
DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - osa 1/2
DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - osa 1/2

Auto suhtlusliides toimub OBD2 pordi kaudu. Selles sadamas vahetatav teave tuleb tõlkida ja selleks vajame tõlkeseadet. Riistvara alternatiive on kaks: ELM327 või STN1170.

Selle projekti jaoks kasutasime ELM327 -l põhineva kiibistikuga Bluetooth -seadet.

Oluline on märkida, et ELM327 kättesaadavus ei tähenda, et see on ELM327 ORIGINAALVERSIOON. Suurem osa saadaolevatest kiibistikest põhineb versioonil 1.5, mis oli siis, kui kiibi teave klooniti ja lekkis turule. Algne ELM327 on nüüd versioonis 2.2. Selle kiibistiku areng toob rohkem andmeid uuemate autode kohta. Oluline on teada, et sõltuvalt katsetest võib teil olla juurdepääs uuemate sõidukite andmetele või mitte.

OBD2 Bluetooth -adapteri abil leidke oma auto OBD2 -port. See võib asuda kuskil rooli all. Selle tööriista abil on võib -olla lihtsam seda otsida:

Juurdepääs DragonBoard 410c -le oma sülearvutist SSH -ga (pidage meeles, et nüüd olete autos ja teil pole plaati ühendamiseks telerit/monitori). Niipea kui OBD2 Bluetooth -seade on autosadamasse sisestatud, järgige Bluetooth -ühenduse loomiseks alltoodud samme.

sudo bluetoothctl

vaikimisi agendi skannimisel saab siduda agendigaSelles etapis on oluline kopeerida MAC -aadress, kuna vajate seda järgmiste sammude jaoks

Sisestage need käsud:

usalda MACADDRESSi

paar MACADDRESS

Teil palutakse sisestada PIN -kood, et Bluetooth OBD2 tahvelarvutiga siduda.

Tavaliselt on PIN -kood 1234 või 0000 - sõltub teie riistvarast

Nüüd peaksite nägema ekraani "ühendus õnnestus". Bluetooth -rakendusest väljumiseks kasutage järgmist käsku:

lõpetage

Järgmine samm on seadme sidumine jadapordiga:

sudo rfcomm bind 0 MACADDRESS 1

Toimingu õnnestumise tagamiseks sisestage:

ls /dev

Pord “Rfcomm0” tuleks loetleda.

Samm 7: DragonBoard 410c ühendamine Bluetoothi abil auto OBD -ga - Osa 2/2

DragonBoard 410c ühendamine auto OBD -seadmega Bluetoothi abil - Osa 2/2
DragonBoard 410c ühendamine auto OBD -seadmega Bluetoothi abil - Osa 2/2
DragonBoard 410c ühendamine auto OBD -seadmega Bluetoothi abil - Osa 2/2
DragonBoard 410c ühendamine auto OBD -seadmega Bluetoothi abil - Osa 2/2

Selle sammu peamine eesmärk on tagada, et kolme seadme vaheline side toimib:

ELM327, DragonBoard 410c ja auto

Jadasõnumite saatmiseks jadapordi kaudu laadige alla rakendus „Ekraan”

sudo apt-get installiekraan

Jadaporti kasutatakse AT -käskude saatmiseks ja vastuste vastuvõtmiseks DragonBoard 410c ja seadme ELM327 vahel.

AT -käskude kohta lisateabe saamiseks külastage järgmist linki:

elmelectronics.com/ELM327/AT_Commands.pdf

Hoiatus:

Olge selle sammuga väga ettevaatlik! Kogu seadmesse saadetav teave tõlgendatakse ja saadetakse autole. Kui saadetakse vale teade, võib auto seda valesti tõlgendada ja tekitada probleeme. Pöörake tähelepanu käskudele ja uurige neid enne oma koodi proovimist. Soovitame tungivalt järgida alltoodud juhiseid.

Suhtluse alustamiseks järgige alltoodud käsujärjestust:

  • See funktsioon käivitab jadaühenduse ekraani abil:

    screen /dev /rfcomm0

Niipea kui terminal laaditakse, tippige selles järjestuses järgmised käsud:

ATZ

ATL1 ATH1 ATS1 ATSP0

Lõplik suhtlustest:

Sisestage konsooli:

ATI

See peaks tagastama „ELM327 v1.5” või teie seadme ELM -versiooni

See on tõend sellest, et ELM -seadme ja DragonBoard 410c side toimib

Kiire näpunäide

Ekraanist väljumiseks peate sisestama Ctrl+A ja seejärel Ctrl+D.

Samm: ühendage DragonBoard 410c auto OBD -ga PyOBD abil

DragonBoard 410c ühendamine auto OBD -ga PyOBD abil
DragonBoard 410c ühendamine auto OBD -ga PyOBD abil

PyOBD on Pythoni teek, mis võimaldab sidet autodega ühendatavate OBD2 -seadmetega. Selle abil saame välja võtta mitmeid andmeid, sealhulgas sõiduki kiirust ja elektrihäireid.

Selles etapis peame tagama, et teie DragonBoard 410c Linaro on installitud järgmised pythoni teegid:

  • PIP - Pythoni paketihaldur

    sudo apt-get install python-pip

  • SetupTools - faili installimise haldur

    sudo pip install -U pip seadistustööriistad

  • Ratas - installige paketi vormindaja

    sudo apt-get install python-wheel

  • OBD - Pythoni teek OBD -seadmega suhtlemiseks

    sudo apt-get install python-obd

  • GPS - Pythoni teek GPS -i andmete hankimiseks

    sudo pip install gps

  • Taotlused - Python pakett RESTful jaoks

    sudo pip installipäringud

Et kontrollida, kas OBD pakett töötab õigesti, toimige järgmiselt.

sudo python

Nüüd muudetakse terminali kursor ">>>", mis näitab, et Python töötab. Nüüd saate hakata kirjutama järgmisi käske:

  • Alustage OBD kogu importimisega:

    import obd

  • Sarjapordiga ühenduse loomiseks kasutage käsku:

    ühendus = vana. OBD ("dev/rfcomm0")

  • On normaalne kuvada veateade, öeldes, et side ebaõnnestus, nii et kui see juhtub, proovige veel üks kord.
  • Et teada saada, kas Python saab Bluetoothi kaudu ELM327 läbivast autost teavet, tippige järgmine:

    connection.protocol_name ()

9. samm: andmete lugemine autost, kasutades Pythoni

Andmete lugemine autost, kasutades Pythoni
Andmete lugemine autost, kasutades Pythoni

Loome alltoodud juhiste järgi faili nimega: OBD.py, millele järgneb kood.

Ühenduste alustamiseks alustage OBD kogu importimisega Pythoni.

Teadmata põhjustel, meie riistvara kasutades, ebaõnnestub esimene ühenduse loomise katse alati. Teine katse, töötab alati. Sellepärast märkate koodil kahte käsurida, mis üritavad ühendust luua.

Pärast ühenduse loomist käivitasime lõpmatu tsükli, mis otsib OBD andmeid ja vormindab need vastavalt eelseadistatud parameetritele. Pärast seda loob see päringustringi abil URL -i, mis võimaldab selle serverile saata POST -meetodi abil.

Allolevas näites õnnestus meil saada järgmine teave:

  • RPM
  • Kiirus

Andmete kogumise funktsioonid kasutavad kahte parameetrit. Näiteks kasutades [1] [12] otsite [moodul] [PID]. Funktsioonide loendi leiate aadressilt

Lõpuks genereerige URL, kus kogu teave on ühendatud ja failile lisatud, nimega "obd_data.dat".

OBD.py kood on allpool.

Pärast andmete ühendamist ja jäädvustamist loome faili nimega: envia_OBD.py

See koodi osa muutub lihtsamaks. Importige päringuga seotud teegid/saatke andmed, kasutades RESTFUL.

Looge POST -i kasutamiseks WHILE ja saatke faili esimese rea URL, mille on varem täitnud OBD.py. Pärast seda, et vältida andmete uuesti saatmist, kustutab see selle rea failist.

Faili OBD.py kood on allpool.

10. samm: korduvad skriptid ja salvestatud andmete salvestamise kord

Korduvad skriptid ja salvestatud andmete salvestamise kord
Korduvad skriptid ja salvestatud andmete salvestamise kord

Kõik, mida oleme seni teinud, oli suunatud sellele, et DragonBoard suhtleks korralikult selliste komponentidega nagu 3G, Wifi, Bluetooth, GPS -andmed ja palju muud.

Kasutage allolevat koodi, et redigeerida faili "rc.local", millel on juba mõned funktsioonid ja eelmääratud käsud. See asub aadressil "/etc". Muutmiseks kasutage käsku:

sudo nano /etc/rc.local

Nüüd peame konfigureerima kõik teenused ja funktsioonid, luues rutiinid, mis lähtestatakse automaatselt DragonBoardi käivitamisel. Kasutame selleks BASH -i. BASH (Bourne-Again-SHell) on Linuxi käsutõlgi rakendus.

Järgmisel koodil on BASH -käsud ja peate sisestama Bluetooth/OBD MAC -aadressi. Olge eriti ettevaatlik ja veenduge, et koodi lõpus on "exit 0", mis on süsteemi vastus, et toiming õnnestus.

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

siis 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

Nüüdsest ühendab see iga kord, kui DragonBoardi sisse lülitate, 3G -ga ja saadab valitud serverisse GPS- ja OBD -andmed.

Samm 11: Mured teel

Mured teel
Mured teel

Allpool loetlesime mõned probleemid, mille leidsime enne selle juhendi kirjutamist, kuid arvasime, et see võib teid aidata, kui see teiega juhtub.

  • PyOBD

    Autoga suheldes peate andmete saatmiseks olema väga ettevaatlik. Ühel meie esimesel katsel, kui side ei olnud stabiilne, saatsime vale käsu, mis põhimõtteliselt katkestas ECU. Käiguvahetus jäi parkimisse kinni ja mõned armatuurlaua tuled vilkusid suvaliselt. Leitud lahendus oli üks akukaabel umbes 15 minutiks lahti ühendada. See lähtestab ECU tehaseseadetele, tühistades seetõttu kõik meie tehtud käsud või muudatused

  • Linaro

    Meil oli probleem meie DragonBoardiga, mis taaskäivitas aeg -ajalt. Probleemi lahendas Linaro meeskond, kes avaldas OS -i uuema versiooni. Kirjutasime selle õpetuse uuendatud versiooniga

  • DragonBoardi GPS

    Qualcommi DragonBoard 410c -l pole sisemist GPS -antenni, nii et GPS -signaali hankimise täiustamiseks peame paigaldama välise antenni pistiku. Seda protsessi selgitab paremini järgmine link:

12. samm: viited

Viited
Viited

Bootloader

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

Linaro

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

Ühendatud või Linaro ja DragonBoard 410c

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

GPS -i dokument DragonBoardile

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

GPS demo

gist.github.com/wolfg1969/4653340

Pythoni OBD

github.com/brendan-w/python-OBD

Conectando RaspberryPi või OBD Bluetooth

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

Soovitan: