Sadržaj:
- Korak 1: Izvođenje DragonBoard 410c početnog postavljanja **
- Korak 2: Pronađite svoj DragonBoard 410c pomoću njegove GPS antene
- Korak 3: Instalirajte 3G/4G USB ključ
- Korak 4: Pretvorite DragonBoard 410c u Wifi pristupnu tačku / pristupnu tačku
- Korak 5: Bežični pristup DragonBoard 410c pomoću SSH -a putem povezivanja putem hotspota
- Korak 6: Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - dio 1/2
- Korak 7: Povezivanje DragonBoarda 410c s OBD -om u automobilu pomoću Bluetootha - Dio 2/2
- Korak 8: Povezivanje DragonBoarda 410c s OBD -om automobila pomoću PyOBD -a
- Korak 9: Čitanje podataka iz automobila pomoću Pythona
- Korak 10: Ponavljajuće se skripte i postupak skladištenja podataka za snimljene podatke
- Korak 11: Problemi na putu
- Korak 12: Reference
Video: DragonBoard i OBD2: 12 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Č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 profesionalcima koji podržavaju razvoj.
Tim su sačinili ovi momci:
- Marcel Ogando - Haker - [email protected]
- Leandro Alvernaz - Haker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Vrlo smo voljni pomoći vam u postizanju vašeg cilja i potruditi se da dovršite svoj projekt, pa nas obavijestite ako vam je potrebna dodatna pomoć osim donjih uputstava.
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
- Napon za pretvarač napona za automobil (110v)
Korak 1: Izvođenje DragonBoard 410c početnog postavljanja **
Koristeći Qualcomm DragonBoard 410c, započeli smo projekt instaliranjem distribucije Linuxa Linuro, omogućavajuć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 zasnovana 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 raspakiranog foldera)
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.000s (bez grešaka)
Instaliranje OPERATIVNOG SISTEMA
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 verzija koja je dostupna do sada (17. juni) pa bi se naziv mogao promijeniti u budućnosti. 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. juni), a naziv bi se u budućnosti mogao promijeniti. Potražite uzorak "linaro-VersionName-alip".
Raspakirajte datoteke iz. GZ
Pristupite direktoriju "root" u odnosu na otpakovane datoteke
primjer: "/Preuzimanja" na kojem se pohranjuju 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
Povežite miš, tastaturu i monitor/TV pomoću HDMI priključka
Imajte ovo pri ruci:
korisnik: linaro
lozinka: linaro
Otvorite aplikaciju Lxterminal i nastavite s preuzimanjem liste dostupnih ažuriranja u vezi instaliranih paketa:
sudo apt-get update
Obavezno instalirajte dostupne pakete sa popisa:
sudo apt-get nadogradnja
Savjet: Linaro je odabran zbog izuzetno brzog pokretanja i zajednice koja je vrlo angažirana i orijentirana na rješavanje problema, što štedi mnogo vremena.
Korak 2: Pronađite svoj DragonBoard 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 prijem 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 mnogo 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č
Postoji nekoliko načina za povezivanje DragonBoard 410c na 3G/4G/GSM mrežu:
- Korištenje Shield / BreakoutBoard -a sa GSM modemom koji također ima utor za SimCard karticu;
- Koristite USB 3G/4G ključ.
Za ovaj projekt odlučili smo koristiti Huaweijev E3272 USB ključ jer ga je bilo lako i brzo kupiti.
Za konfiguriranje modema možete koristiti terminal (pomoću aplikacije WVDial), ali najlakši način za to je korištenje Linarovog grafičkog korisničkog sučelja (GUI). Na to na sledeć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, pazeći da u izborniku odaberete odgovarajućeg mobilnog operatera, dopuštajući uređaju da se na odgovarajući način poveže.
Korak 4: Pretvorite DragonBoard 410c u Wifi pristupnu tačku / pristupnu tačku
Najlakši način da konfigurirate DragonBoard 410c kao wifi usmjerivač ili pristupnu točku (sada kada ste konfigurirali internetsku vezu) je korištenje sistemskog grafičkog sučelja. Da biste to učinili, slijedite donje korake:
- Desnim klikom na ikonu mreže u donjem desnom kutu
- Odaberite "Uredi veze, a zatim" Dodaj"
- Odaberite "WiFi"
- Kliknite na Kreiraj
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 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 povezati na samu ploču, koristeći wifi ili bluetooth. Drugi način je da mu pristupite 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", koristeći donji kod:
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 install
Sada ćemo generirati kriptografski ključ, koristeći RSA standard. Ovaj ključ će se koristiti za siguran pristup instanci krajnje tačke Linuxa, putem javne IP adrese 3G modema. Glavni cilj ovog koraka. Sljedeći kôd će kopirati taj ključ u spremište pouzdanih ključeva Linuxa, pazeći da postoji još veća sigurnost veze.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub korisnik na udaljenom serveru:.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 serveru
Prateći ove korake, upravo ste transformirali Qualcomm DragonBoard 410c u Cloud server! / o/
Korak 6: 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 ovom portu 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 sa čipsetom zasnovanim na ELM327.
Važno je napomenuti da dostupnost ELM327 ne znači da je to ORIGINALNA VERZIJA ELM327. Većina dostupnih skupova čipova zasnovana je na verziji 1.5, tada su informacije o čipu klonirane i procurile na tržište. Originalni ELM327 je sada 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 se OBD2 Bluetooth uređaj umetne u port za automobil, slijedite donje korake za pristup bluetooth povezivanju.
sudo bluetoothctl
poželjno na agentu na default-agent skeniranje uključenoU ovoj je fazi važno da kopirate MAC adresu jer će vam trebati za sljedeće korake
Upišite ove naredbe:
vjerujte MACADDRESS
par MACADDRESS
Od vas bi trebalo biti zatraženo da upišete PIN kôd 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 ekran "povezivanje uspješno". Da biste zatvorili Bluetooth aplikaciju, upotrijebite sljedeću naredbu:
daj otkaz
Sljedeći korak je POVEZIVANJE uređaja sa serijskim portom:
sudo rfcomm bind 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
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 ekran za instalaciju
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 pažnju na naredbe i proučite ih prije nego pokušate sa vlastitim kodom. Toplo preporučujemo da se pridržavate dole navedenih uputstava.
Slijedite donji slijed naredbi da započnete komunikaciju:
-
Ova funkcija započinje serijsku komunikaciju pomoću zaslona:
screen /dev /rfcomm0
Čim se terminal učita, upišite sljedeće naredbe u ovom nizu:
ATZ
ATL1 ATH1 ATS1 ATSP0
Završni komunikacijski test:
Upišite u konzolu:
ATI
Trebalo 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 “Screen”, potrebno je upisati Ctrl+A, a zatim Ctrl+D.
Korak 8: Povezivanje DragonBoarda 410c s OBD -om automobila pomoću PyOBD -a
PyOBD je Python biblioteka koja omogućava komunikaciju s OBD2 uređajima koji se mogu povezati s automobilima. Na taj način možemo izvući nekoliko podataka, uključujući brzinu vozila i električne greške.
U ovom koraku moramo osigurati da su sljedeće python biblioteke instalirane u Linaro vašeg DragonBoarda 410c:
- PIP - Python menadžer paketa
sudo apt-get install python-pip
- SetupTools - upravitelj instalacije datoteka
sudo pip install -U pip setupstools
- Točak - instalirajte format formattera
sudo apt-get install python-wheel
-
OBD - Python biblioteka za komunikaciju sa OBD uređajem
sudo apt-get install python-obd
- GPS - Python biblioteka za dobivanje podataka s GPS -a
sudo pip instalirajte gps
-
Zahtevi - 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 označava da je Python pokrenut. Sada možete početi upisivati naredbe ispod:
-
Počnite uvozom OBD biblioteke:
import obd
-
Za povezivanje sa serijskim portom koristite naredbu:
veza = stara. OBD (“dev/rfcomm0”)
- Normalno je prikazati poruku o greš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
Napravit ćemo datoteku pod nazivom: OBD.py, prema donjim uputama, nakon čega slijedi kod.
Počnite uvozom OBD biblioteke 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, omogućavajući njegovo slanje na server pomoću POST metode.
Na donjem primjeru uspjeli smo dobiti sljedeće podatke:
- RPM
- Brzina
Funkcije za snimanje podataka koriste dva parametra. Na primjer, koristeći [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 je ispod.
Nakon povezivanja i snimanja podataka, stvorit ćemo datoteku pod nazivom: envia_OBD.py
Ovaj dio koda postaje jednostavniji. Uvezite biblioteke povezane sa zahtjevom/pošaljite podatke, koristeći RESTFUL.
Kreirajte WHILE za korištenje POST -a i pošaljite URL prvog reda datoteke, prethodno popunjen OBD.py. Nakon toga, kako bi se izbjeglo ponovno slanje podataka, briše tu liniju iz datoteke.
Kôd za datoteku OBD.py nalazi se ispod.
Korak 10: Ponavljajuće se skripte i postupak skladištenja 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 koristite naredbu:
sudo nano /etc/rc.local
Sada moramo konfigurirati sve usluge i funkcije, kreirajući rutine koje se automatski pokreću pri pokretanju DragonBoarda. Koristimo 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 sistema da je akcija uspjela.
ako [! -f/etc/ssh/ssh_host_rsa_key]
zatim systemctl stop ssh.socket || true dpkg-ponovno konfiguriranje openssh-servera 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 kada uključite DragonBoard, povezivat će se na 3G i slati GPS i OBD podatke na odabrani poslužitelj.
Korak 11: Problemi na putu
U nastavku smo naveli neke probleme koje smo pronašli usput prije pisanja ovog uputstva, ali smo mislili da bi vam moglo pomoći ako vam se to dogodi.
-
PyOBD
Morate biti vrlo oprezni pri slanju podataka dok komunicirate 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č se zaglavio na parkiralištu, a neka svjetla na armaturnoj ploči su nasumično treptala. Pronađeno rješenje bilo je isključiti jedan od kabela akumulatora na oko 15 minuta. Ovo vraća ECU 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 internu GPS antenu, pa kako bismo poboljšali akviziciju GPS signala, moramo instalirati konektor za vanjsku antenu. Ovaj proces je bolje objašnjen na sljedećoj poveznici:
Korak 12: Reference
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Kako 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čuje se:
Tahometar/mjerač skeniranja pomoću Arduina, OBD2 i CAN sabirnice: 8 koraka
Tahometar/mjerač skeniranja pomoću Arduina, OBD2 i CAN sabirnice: Bilo koji vlasnik Toyote Prius (ili drugog hibridnog/specijalnog vozila) znat će da na njihovoj nadzornoj ploči nedostaje nekoliko brojčanika! Moj prius nema broj okretaja motora ili mjerač temperature. Ako ste momak s performansama, možda biste htjeli znati stvari poput unaprijed određenog vremena i
Desenvolvendo Aplikacije za daljinsko upravljanje za Dragonboard 410c Usando IDE Eclipse: 17 koraka
Desenvolvendo Aplikacije za daljinsko upravljanje za Dragonboard 410c Usando IDE Eclipse: O objektivi za dokumente é najčešće kao neophodne parametre za konfiguraciju ambijenta desenvolvimento, modo que o HostPC -u (računalo / prijenosno računalo), atrav é s do IDE Eclipse kompajlirajte os c ó digos i izvozite za Alvo (povucite
Kako spojiti i upravljati lampom putem ZigBee modula na Dragonboard -u: 5 koraka
Kako spojiti i kontrolirati svjetiljku putem ZigBee modula na Dragonboard -u: Ova instrukcija uči korisnika kako da se poveže i pravilno instalira ZigBee modul na Dragonboard i komunicira sa ZigBee lampom (OSRAM), čineći ZigBee IOT mrežu. : Dragonboard 410c; CC2531 USB ključ; T
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija Android: 6 koraka
Vision 4all - Sistem Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplikacija za Android: DESCRI Ç Ã OO intuitivno za projektovanje é 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
OBD2 Bluetooth čitač: 3 koraka
OBD2 Bluetooth čitač: Dobro došli, ovo je moj prvi instruktor i nadam se da ga je lako razumjeti i možete ga sami izraditi. Ako imate bilo kakvih pitanja, slobodno me kontaktirajte i možda vam mogu pomoći. Pokušat ću ovo učiniti izuzetno jednostavnim za praćenje s ovim