Sadržaj:

DragonBoard i OBD2: 12 koraka
DragonBoard i OBD2: 12 koraka

Video: DragonBoard i OBD2: 12 koraka

Video: DragonBoard i OBD2: 12 koraka
Video: ELM327, Viecar или iCar2? Как они устроены и что такое OBDII? 2024, Srpanj
Anonim
DragonBoard i OBD2
DragonBoard i OBD2

Čitajući podatke koji izlaze iz OBD2 priključka u vašem automobilu, iz njega je moguće prikupiti nevjerojatne podatke. Koristeći DragonBoard 410c, radili smo na ovom projektu i ovdje ga detaljno opisali tako da to možete učiniti sami.

Ovaj projekt bio je moguć samo zahvaljujući partnerstvu s #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora koje nam je omogućilo pristup najboljem hardveru na tržištu, kao i kontaktu s najboljim stručnjacima koji su podržali razvoj.

Tim su sačinili ovi momci:

Želimo vam pomoći u postizanju vašeg cilja i pobrinuti se da dovršite svoj projekt, pa nas obavijestite ako vam je potrebna dodatna pomoć osim donjih uputa.

Para seguir este projeto em Português, clique aqui:

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

Za ovaj projekt koristili smo sljedeće stavke:

  • Qualcomm DragonBoard 410c
  • ELM327 Bluetooth OBD2 sučelje
  • USB ključ 3G/4G
  • Punjač za automobil s tenzionim pretvaračem (110v)

Korak 1: Izvođenje DragonBoard 410c početnog postavljanja **

Izvođenje DragonBoard 410c početnog postavljanja **
Izvođenje DragonBoard 410c početnog postavljanja **
Izvođenje DragonBoard 410c početnog postavljanja **
Izvođenje DragonBoard 410c početnog postavljanja **
Izvođenje DragonBoard 410c početnog postavljanja **
Izvođenje DragonBoard 410c početnog postavljanja **

Koristeći Qualcomm DragonBoard 410c, započeli smo projekt instaliranjem distribucije Linuxa Linuro, dopuštajući nam postavljanje svih potrebnih uređaja.

Da biste stvorili sliku Linara za DragonBoard, upotrijebite Ubunto na VirtualBoxu, tako da možete koristiti FastBoot (to je aplikacija temeljena na Linuxu). Dakle, u osnovi morate otvoriti Terminal na VM Ubuntu i unijeti:

sudo apt-get android-tools-fastboot

Da bismo instalirali Linaro, moramo proći kroz 2 važna koraka:

1) Instaliranje BOOTLOADER -a

Naziv datoteke: dragonboard410c_bootloader_emmc_linux-79.zip

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

Raspakirajte datoteke i odaberite mapu:

cd /FolderName (put do raspakirane mape)

Unesite sljedeći kôd:

sudo uređaji za brzo pokretanje

Očekivani povrat:

(heksadecimalno) fastboot

Zatim upišite:

sudo./flashall

Očekivani povrat:

završeno. ukupno vrijeme 1.000 s (bez grešaka)

Instaliranje OPERATIVNOG SUSTAVA

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

Preuzmite ove 2 datoteke:

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

Ovo je najnovija dostupna verzija (17. lipnja/lipnja) pa bi se naziv u budućnosti mogao promijeniti. Uzorak koji biste tražili je "boot-linaro-VersionName". Ovaj se zove "Stretch", a prethodni je bio "Jessie".

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

Ovo je najnovija verzija do sada (17. lipnja/lipnja), a naziv bi se u budućnosti mogao promijeniti. Potražite uzorak "linaro-VersionName-alip".

Raspakirajte datoteke iz. GZ

Pristupite mapi "root" u odnosu na otpakirane datoteke

primjer: "/Preuzimanja" gdje se spremaju preuzete datoteke.

Sada počnite sa sljedećim naredbama:

sudo uređaji za brzo pokretanje

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

Očekivani povrat (pamćenje vremena može varirati):

završeno. ukupno vrijeme: 100,00s

Spojite miša, tipkovnicu i monitor/TV pomoću HDMI priključka

Imajte ovo pri ruci:

korisnik: linaro

lozinka: linaro

Otvorite aplikaciju Lxterminal i nastavite s preuzimanjem popisa dostupnih ažuriranja u vezi instaliranih paketa:

sudo apt-get ažuriranje

Obavezno instalirajte dostupne pakete s popisa:

sudo apt-get nadogradnja

Savjet: Linaro je odabran zbog iznimno brzog pokretanja i zajednice vrlo angažirane i usmjerene na rješavanje problema, što štedi mnogo vremena.

Korak 2: Pronađite svoj DragonBoard 410c pomoću njegove GPS antene

Položaj vašeg DragonBoarda 410c pomoću njegove GPS antene
Položaj vašeg DragonBoarda 410c pomoću njegove GPS antene
Položaj vašeg DragonBoarda 410c pomoću njegove GPS antene
Položaj vašeg DragonBoarda 410c pomoću njegove GPS antene

Počnite instaliranjem potrebnih aplikacija koje će biti klijenti GPS modula. Nazivi aplikacija su: GNSS-GPSD, GPSD i GPSD-KLIJENTI. Da biste to učinili, slijedite naredbe:

sudo apt-get install gnss-gpsd gpsd gpsd-clients

S instaliranim ovim aplikacijama trebat će vam više naredbi za pravilno pokretanje:

sudo systemctl start qdsp-start.service

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

Sada odnesite DragonBoard 410c na široko otvoreno područje s jasnim pogledom na nebo, omogućavajući mu primanje signala sa satelita. Sada upišite u terminal:

gpsmon –n

Prema našim testovima, podaci bi se u prosjeku počeli prikazivati na ekranu nakon 10 minuta. To se jako mijenja od mjesta do mjesta, osim položaja DragonBoarda na prozoru ili u zatvorenom prostoru, pored mnogih drugih prepreka koje mogu ometati prijem GPS signala.

Korak 3: Instalirajte 3G/4G USB ključ

Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa
Instaliranje 3G/4G USB ključa

Postoji nekoliko načina za povezivanje DragonBoard 410c s 3G/4G/GSM mrežom:

  • Korištenje Shield / BreakoutBoard -a s GSM modemom koji također ima utor za SimCard karticu;
  • Koristite USB 3G/4G ključ.

Za ovaj projekt odlučili smo se koristiti Huaweijevim USB ključem E3272 jer ga je bilo jednostavno i brzo kupiti.

Za konfiguriranje modema možete koristiti terminal (pomoću aplikacije WVDial), ali najjednostavniji način za to je korištenje Linarovog grafičkog korisničkog sučelja (GUI). Na njega na sljedeći način:

  • S USB ključem spojenim na DragonBoard, desnom tipkom miša kliknite ikonu "mreže" u donjem desnom kutu zaslona;
  • "Uredi veze"> "Dodaj";
  • Odaberite "Mobilni širokopojasni pristup" s padajućeg izbornika;
  • Pritisnite "Kreiraj".

Slijedite upute čarobnjaka, pazite da s izbornika odaberete odgovarajućeg operatera, dopuštajući uređaju da se na odgovarajući način poveže.

Korak 4: Pretvorite DragonBoard 410c u Wifi žarišnu točku / pristupnu točku

Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku
Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku
Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku
Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku
Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku
Pretvaranje DragonBoard 410c u Wifi pristupnu točku / pristupnu točku

Najjednostavniji način za konfiguriranje DragonBoard 410c kao wifi usmjerivača ili žarišne točke (sada kada ste konfigurirali internetsku vezu) je korištenje grafičkog sučelja sustava. Da biste to učinili, slijedite korake u nastavku:

  • Desnom tipkom miša kliknite ikonu mreže u donjem desnom kutu
  • Odaberite "Uredi veze, a zatim" Dodaj"
  • Odaberite "WiFi"
  • Pritisnite stvoriti

Promijenite naziv mreže koju želite stvoriti u polju "SSID", a polje "Način" promijenite u "Hotspot".

Da biste bili sigurni da će raditi, provjerite sljedeće:

  • Idite na karticu "Postavke IPv4"
  • Provjerite je li "metoda"

Korak 5: Bežični pristup DragonBoardu 410c pomoću SSH -a putem povezivanja putem hotspota

Bežični pristup DragonBoard 410c pomoću SSH -a putem povezivanja putem hotspota
Bežični pristup DragonBoard 410c pomoću SSH -a putem povezivanja putem hotspota

Uspjeli smo stvoriti način za daljinski pristup DragonBoardu, bez obzira na to jeste li u blizini ili niste. Obično biste se morali spojiti na samu ploču, koristeći wifi ili bluetooth. Drugi način bio bi pristupanje povezivanjem na istu Wifi mrežu (npr. S usmjerivača). Izvođenjem sljedećih koraka stvaramo samostalni uređaj koji stvara vlastitu mrežu i otvara se webu kako bi mu se moglo pristupiti.

Možete započeti instaliranjem "Auto SSH" pomoću donjeg koda:

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./ konfigurirati make sudo make install install

Sada ćemo generirati kriptografski ključ, koristeći RSA standard. Ovaj će se ključ koristiti za siguran pristup instanci krajnje točke Linuxa, putem javnog IP -a 3G modema. Glavni cilj ovog koraka. Sljedeći kôd kopirat će taj ključ u spremište pouzdanih ključeva Linuxa, pazeći na to da je veza još veća.

ssh -keygen -t rsa

scp ~/.ssh/id_rsa.pub korisnik@udaljeni_služitelj:.ssh/ovlašteni_ključevi autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 korisnik na udaljenom poslužitelju

Slijedeći ove korake, upravo ste pretvorili Qualcomm DragonBoard 410c u Cloud poslužitelj! / o/

Korak 6: Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2

Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2

Komunikacijsko sučelje automobila vrši se putem OBD2 priključka. Informacije koje se razmjenjuju u ovoj luci potrebno je prevesti, a za to nam je potreban uređaj za tumač. Postoje dvije hardverske alternative: ELM327 ili STN1170.

Za ovaj projekt koristili smo Bluetooth uređaj s čipsetom temeljenim na ELM327.

Važno je napomenuti da dostupnost ELM327 ne znači da je to ORIGINALNA VERZIJA ELM327. Većina dostupnih skupova čipova temelji se na verziji 1.5, tada su informacije o čipu klonirane i procurile na tržište. Izvorni ELM327 sada je na verziji 2.2. Evolucija ovog čipseta donosi više podataka o novijim automobilima. Važno je to znati jer, ovisno o testovima, možete, ali i ne morate pristupiti podacima iz novijih vozila.

Pomoću OBD2 Bluetooth adaptera pronađite OBD2 port vašeg automobila. Možda se nalazi negdje ispod upravljača. Možda će biti lakše potražiti ga pomoću ovog alata:

Pristupite DragonBoard 410c pomoću SSH -a sa svoje bilježnice (zapamtite da ste sada u automobilu i da nemate televizor/monitor za priključivanje ploče). Čim je OBD2 Bluetooth uređaj umetnut u priključak za automobil, slijedite dolje navedene korake za pristup bluetooth povezivanju.

sudo bluetoothctl

pakable on agent on default-agent scan onU ovoj je fazi važno da kopirate MAC adresu jer će vam trebati za sljedeće korake

Upišite ove naredbe:

vjerujte MACADDRESS -u

par MACADDRESS

Trebali biste biti upitani sa zahtjevom za upis PIN koda za uparivanje Bluetooth OBD2 s pločom.

Obično je PIN kôd 1234 ili 0000 - ovisi o vašem hardveru

Sada biste trebali vidjeti zaslon "uspješna veza". Da biste zatvorili Bluetooth aplikaciju, upotrijebite sljedeću naredbu:

prestati

Sljedeći korak je POVEZIVANJE uređaja sa serijskim portom:

sudo rfcomm vezanje 0 MACADDRESS 1

Da biste bili sigurni da je operacija uspjela, upišite:

ls /dev

Treba navesti port “Rfcomm0”.

Korak 7: Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 2/2

Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 2/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 2/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 2/2
Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 2/2

Glavni cilj ovog koraka je jamčiti da komunikacija između tri uređaja funkcionira:

ELM327, DragonBoard 410c i automobil

Preuzmite aplikaciju “Screen” za slanje serijskih poruka putem serijskog porta

sudo apt-get instalacijski zaslon

Serijski port će se koristiti za slanje AT naredbi i primanje odgovora između DragonBoard 410c i ELM327 uređaja.

Za više informacija o AT naredbama pristupite sljedećoj vezi:

elmelectronics.com/ELM327/AT_Commands.pdf

Upozorenje:

Budite vrlo oprezni s ovim korakom! Sve informacije koje pošaljete na uređaj bit će protumačene i poslane u automobil, ako se pošalje pogrešna poruka, automobil ih može krivo protumačiti i uzrokovati probleme. Obratite pozornost na naredbe i proučite ih prije nego pokušate s vlastitim kodom. Toplo vam preporučujemo da slijedite donje upute.

Slijedite donji slijed naredbi za početak komunikacije:

  • Ova funkcija započinje serijsku komunikaciju pomoću zaslona:

    screen /dev /rfcomm0

Čim se terminal učita, upišite sljedeće naredbe u ovom slijedu:

ATZ

ATL1 ATH1 ATS1 ATSP0

Završni komunikacijski test:

Upišite u konzolu:

ATI

Trebao bi vratiti "ELM327 v1.5" ili ELM verziju vašeg uređaja

Ovo je dokaz da komunikacija ELM uređaja i DragonBoard 410c funkcionira

Brzi savjet

Da biste napustili "Zaslon", potrebno je upisati Ctrl+A, a zatim Ctrl+D.

Korak 8: Povezivanje DragonBoarda 410c s OBD -om automobila pomoću PyOBD -a

Povezivanje DragonBoarda 410c s OBD -om automobila pomoću PyOBD -a
Povezivanje DragonBoarda 410c s OBD -om automobila pomoću PyOBD -a

PyOBD je knjižnica Python koja omogućuje komunikaciju s OBD2 uređajima koji se mogu povezati s automobilima. Time možemo izvući nekoliko podataka, uključujući brzinu vozila i električne pogreške.

U ovom koraku moramo osigurati da su sljedeće Python knjižnice instalirane u Linaro vašeg DragonBoarda 410c:

  • PIP - Pythonov upravitelj paketa

    sudo apt-get install python-pip

  • SetupTools - upravitelj instalacije datoteka

    sudo pip install -U pip setupstools

  • Kotačić - instalirajte format formatter

    sudo apt-get install python-wheel

  • OBD - Python knjižnica za komunikaciju s OBD uređajem

    sudo apt-get install python-obd

  • GPS - Python knjižnica za dobivanje podataka s GPS -a

    sudo pip instaliraj gps

  • Zahtjevi - Python paket za RESTful

    sudo pip zahtjevi za instalaciju

Da biste provjerili radi li OBD -ov paket ispravno, slijedite ove korake:

sudo python

Sada će se kursor terminala promijeniti u ">>>" što znači da je Python pokrenut. Sada možete početi upisivati naredbe u nastavku:

  • Počnite uvozom OBD biblioteke:

    uvoz obd

  • Za povezivanje sa serijskim portom koristite naredbu:

    veza = stara. OBD (“dev/rfcomm0”)

  • Normalno je prikazati poruku o pogrešci koja kaže da komunikacija nije uspjela, pa ako se to dogodi, pokušajte još jednom.
  • Da biste saznali dobiva li Python informacije iz automobila koji prolazi kroz ELM327 preko bluetootha, upišite sljedeće:

    connection.protocol_name ()

Korak 9: Čitanje podataka iz automobila pomoću Pythona

Čitanje podataka iz automobila pomoću Pythona
Čitanje podataka iz automobila pomoću Pythona

Napravit ćemo datoteku pod nazivom: OBD.py, prema donjim uputama, a zatim kôd.

Počnite uvozom OBD knjižnice u Python da biste započeli veze.

Iz nepoznatih razloga, koristeći naš hardver, prvi pokušaj povezivanja uvijek ne uspije. Drugi pokušaj, uvijek uspije. Zato ćete na kodu primijetiti dvije naredbene linije koje pokušavaju uspostaviti vezu.

Nakon što je povezivanje uspješno, pokrenuli smo beskonačnu petlju koja traži OBD podatke i formatira ih prema unaprijed postavljenim parametrima. Nakon toga, stvara URL, koristeći niz upita, dopuštajući njegovo slanje na poslužitelj pomoću POST metode.

Na donjem primjeru uspjeli smo dobiti sljedeće podatke:

  • O / min
  • Ubrzati

Funkcije za hvatanje podataka koriste dva parametra. Na primjer, pomoću [1] [12] pretražujete za [modul] [PID]. Popis funkcija možete pronaći na:

Konačno, generirajte URL sa svim informacijama spojenim i dodanim u datoteku, pod nazivom "obd_data.dat".

Kôd za OBD.py nalazi se u nastavku.

Nakon povezivanja i snimanja podataka, stvorit ćemo datoteku pod nazivom: envia_OBD.py

Ovaj dio koda postaje jednostavniji. Uvezite knjižnice povezane sa zahtjevom/pošaljite podatke, koristeći RESTFUL.

Izradite dok koristite POST i pošaljite URL prvog retka datoteke, prethodno popunjen OBD.py. Nakon toga, kako bi se izbjeglo ponovno slanje podataka, briše taj redak iz datoteke.

Kôd datoteke OBD.py nalazi se u nastavku.

Korak 10: Ponavljajuće se skripte i postupak pohrane podataka za snimljene podatke

Ponavljajuće se skripte i postupak pohrane podataka za snimljene podatke
Ponavljajuće se skripte i postupak pohrane podataka za snimljene podatke

Sve što smo do sada učinili bilo je usmjereno na to da osiguramo da DragonBoard pravilno komunicira sa komponentama, poput 3G, Wifi, Bluetooth, GPS podataka i još mnogo toga.

Upotrijebite donji kod za uređivanje datoteke "rc.local" koja već ima neke funkcije i unaprijed definirane naredbe. Nalazi se na '/etc'. Za uređivanje upotrijebite naredbu:

sudo nano /etc/rc.local

Sada moramo konfigurirati sve usluge i funkcije, stvoriti rutine koje se automatski pokreću pri pokretanju DragonBoarda. Upotrijebimo BASH za to. BASH (Bourne-Again-SHell) je aplikacija za tumačenje naredbi Linuxa.

Sljedeći kôd ima naredbe BASH, pa ćete morati umetnuti Bluetooth/OBD MAC adresu. Budite posebno oprezni da kôd završite s "exit 0", što je odgovor sustava da je akcija uspjela.

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

tada systemctl stop ssh.socket || true dpkg-ponovno konfigurirajte openssh-poslužitelj fi sudo systemctl start qdsp-start.service rfcomm vezanje 0 MACADDRESS 1 sudo python /home/linaro/Documents/FadaDoCarro/conectaGPS.py & sudo python/home/lina /Documents/FadaDoCarro/OBD.py & sudo python /home/linaro/Documents/FadaDoCarro/envia_OBD.py & exit 0

Od sada, svaki put kad uključite DragonBoard, on će se spojiti na 3G i slati GPS i OBD podatke na odabrani poslužitelj.

Korak 11: Nevolje na putu

Nevolje na putu
Nevolje na putu

U nastavku smo naveli neke probleme koje smo usput pronašli prije nego što smo napisali ovaj Instructable, ali smo mislili da bi vam moglo pomoći ako vam se to dogodi.

  • PyOBD

    Morate biti vrlo oprezni pri slanju podataka tijekom komunikacije s automobilom. U jednom od naših prvih pokušaja, kada komunikacija nije bila stabilna, poslali smo pogrešnu naredbu koja je u osnovi srušila ECU. Mjenjač je zaglavio na parkiralištu, a neka od svjetla na armaturnoj ploči nasumično su treptala. Rješenje koje je pronađeno bilo je isključiti jedan od kabela akumulatora na oko 15 minuta. Time se ECU vraća na tvornički zadano stanje, stoga se poništavaju sve naredbe ili promjene koje smo možda izvršili

  • Linaro

    Imali smo problem s našom DragonBoard -om, koja se povremeno ponavljala. Problem je riješio Linarov tim koji je izdao noviju verziju OS -a. Napisali smo ovaj vodič s ažuriranom verzijom

  • DragonBoardov GPS

    Qualcommov DragonBoard 410c nema unutarnju GPS antenu, pa kako bismo poboljšali akviziciju GPS signala, moramo instalirati priključak za vanjsku antenu. Ovaj proces je bolje objašnjen na sljedećoj poveznici:

Korak 12: Reference

Reference
Reference

Bootloader

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

Linaro

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

Možete instalirati Linaro na DragonBoard 410c

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

Dokumentacija o GPS -u za DragonBoard

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

GPS demo

gist.github.com/wolfg1969/4653340

Python OBD

github.com/brendan-w/python-OBD

Conectando RaspberryPi kao OBD Bluetooth

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

Preporučeni: