Indholdsfortegnelse:
- Trin 1: Udførelse af DragonBoard 410c Indledende opsætning **
- Trin 2: Find din DragonBoard 410c ved hjælp af sin GPS -antenne
- Trin 3: Installation af 3G/4G USB -donglen
- Trin 4: Transformering af DragonBoard 410c til et wifi -hotspot / adgangspunkt
- Trin 5: Adgang til DragonBoard 410c trådløst ved hjælp af SSH, via hotspot -forbindelse
- Trin 6: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af Bluetooth - Del 1/2
- Trin 7: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af Bluetooth - Del 2/2
- Trin 8: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af PyOBD
- Trin 9: Læsning af data fra bilen ved hjælp af Python
- Trin 10: Tilbagevendende scripts og datalagringsprocedure for de fangede data
- Trin 11: Problemer undervejs
- Trin 12: Referencer
Video: DragonBoard og OBD2: 12 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Når du læser de data, der kommer ud af OBD2 -porten i din bil, er det muligt at indsamle fantastiske oplysninger fra den. Ved hjælp af DragonBoard 410c arbejdede vi på dette projekt og detaljerede det her, så du kan gøre det selv.
Dette projekt var kun muligt på grund af partnerskabet med #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, der tillod os at få adgang til den bedste hardware på markedet, samt kontakt til de bedste fagfolk for at støtte udviklingen.
Holdet blev sammensat af disse fyre:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Vi er meget ivrige efter at hjælpe dig med at nå dit mål og sørge for at fuldføre dit projekt, så lad os vide, hvis du har brug for hjælp længere end instruktionerne herunder.
Para seguir este projeto em Português, klik:
www.instructables.com/id/DragonBoard-Com-OBD
Til dette projekt brugte vi følgende elementer:
- Qualcomm DragonBoard 410c
- ELM327 Bluetooth OBD2 -grænseflade
- Dongle USB 3G/4G
- Spændingsinverter billader (110v)
Trin 1: Udførelse af DragonBoard 410c Indledende opsætning **
Ved hjælp af Qualcomm DragonBoard 410c startede vi projektet med at installere Linux's distribution kaldet Linaro, så vi kunne konfigurere alle nødvendige enheder.
For at oprette et billede af Linaro til DragonBoard skal du bruge Ubunto på VirtualBox, så du kan bruge FastBoot (det er en Linux -baseret app). Så grundlæggende skal du åbne terminalen på VM Ubuntu og indtaste:
sudo apt-get android-tools-fastboot
For at installere Linaro skal vi igennem 2 vigtige trin:
1) Installation af BOOTLOADER
Filnavn: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Pak filerne ud, og vælg mappen:
cd /mappenavn (sti til den udpakkede mappe)
Indtast følgende kode:
sudo fastboot -enheder
Forventet afkast:
(hexadecimal) fastboot
Indtast derefter:
sudo./flashall
Forventet afkast:
færdig. samlet tid 1.000s (uden fejl)
Installation af BETJENINGSSYSTEMET
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Download disse 2 filer:
boot-linaro-stretch-qcom-snapdragon-arm64-20170607-246.img.gz
Dette er den seneste version, der er tilgængelig til dato (juni/17. juni), så navnet kan ændre sig i fremtiden. Det mønster, du leder efter, er "boot-linaro-VersionName". Denne kaldes "Stretch" og den forrige var "Jessie".
linaro-stretch-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Dette er den seneste version til dato (juni/17. juni), og navnet kan ændre sig i fremtiden. Se efter mønsteret "linaro-VersionName-alip".
Pak filerne ud af. GZ
Få adgang til "root" -mappen i forhold til de udpakkede filer
eksempel: "/Downloads", som er det sted, hvor downloadede filer gemmes.
Start nu med følgende kommandoer:
sudo fastboot -enheder
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Forventet afkast (husk at tiden kan variere):
færdig. samlet tid: 100,00s
Tilslut en mus, et tastatur og en skærm/tv ved hjælp af HDMI -porten
Har dette ved hånden:
bruger: linaro
adgangskode: linaro
Åbn appen Lxterminal og fortsæt med at downloade listen over tilgængelige opdateringer vedrørende de installerede pakker:
sudo apt-get opdatering
Sørg for at installere de tilgængelige pakker fra listen:
sudo apt-get opgradering
Tip: Linaro blev valgt på grund af en ekstremt hurtig støvle og et fællesskab meget engageret og problemløsende orienteret, hvilket sparer meget tid.
Trin 2: Find din DragonBoard 410c ved hjælp af sin GPS -antenne
Start med at installere de nødvendige apps, der vil være klienter til GPS -modulet. Appens navne er: GNSS-GPSD, GPSD og GPSD-KLIENTER. Følg kommandoerne for at gøre det:
sudo apt-get install gnss-gpsd gpsd gpsd-klienter
Når disse apps er installeret, skal du bruge flere kommandoer for at starte det korrekt:
sudo systemctl start qdsp-start.service
sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service
Tag nu DragonBoard 410c til et vidt åbent område med klart udsyn til himlen, så den kan modtage signalet fra satellitterne. Indtast nu i terminalen:
gpsmon –n
Fra vores test, ville data begynde at vise sig på skærmen efter 10 minutter i gennemsnit. Det ændrer meget fra sted til sted, udover DragonBoards position på vinduet eller indendørs, udover mange andre barrierer, der kan forstyrre GPS -signalmodtagelsen.
Trin 3: Installation af 3G/4G USB -donglen
Der er et par måder at forbinde DragonBoard 410c til 3G/4G/GSM -netværket:
- Brug af et Shield / BreakoutBoard med et GSM -modem, der også har et SimCard -slot;
- Brug en USB 3G/4G Dongle.
Til dette projekt besluttede vi at bruge Huaweis E3272 USB Dongle, fordi det var let og hurtigt at købe en.
For at konfigurere modemet kan du bruge terminalen (ved hjælp af WVDial -appen), men den nemmeste måde at gøre det på er ved at bruge Linaros grafiske brugergrænseflade (GUI). Til det som følger:
- Med USB-donglen tilsluttet DragonBoard, skal du højreklikke på ikonet "netværk" i nederste højre hjørne af skærmen;
- "Rediger forbindelser"> "Tilføj";
- Vælg "Mobilt bredbånd" i rullemenuen;
- Klik på "Opret".
Følg instruktionerne fra guiden, og sørg for at vælge den korrekte transportør fra menuen, så enheden kan oprette forbindelse i overensstemmelse hermed.
Trin 4: Transformering af DragonBoard 410c til et wifi -hotspot / adgangspunkt
Den nemmeste måde at konfigurere DragonBoard 410c som en wifi -router eller et hotspot (nu hvor du har konfigureret internetforbindelse) er at bruge systemets GUI. Følg nedenstående trin for at gøre det:
- Højreklik på netværksikonet i nederste højre hjørne
- Vælg "Rediger forbindelser og derefter" Tilføj"
- Vælg "WiFi"
- Klik på Opret
Skift navnet på det netværk, du vil oprette i feltet "SSID", og skift feltet "Tilstand" til "Hotspot".
For at sikre, at det fungerer, skal du kontrollere følgende:
- Gå til fanen "IPv4 -indstillinger"
- Kontroller, om "Metoden"
Trin 5: Adgang til DragonBoard 410c trådløst ved hjælp af SSH, via hotspot -forbindelse
Det lykkedes os at skabe en måde at få adgang til DragonBoard eksternt på, uanset om du er i nærheden eller ej. Normalt skal du oprette forbindelse til selve kortet ved hjælp af wifi eller bluetooth. En anden måde ville være at få adgang til det ved at oprette forbindelse til det samme Wifi -netværk (f.eks. Fra en router). Ved at udføre de næste trin opretter vi en selvstændig enhed, der genererer sit eget netværk og åbner sig for internettet for at få adgang.
Du kan starte med at installere "Auto SSH" ved hjælp af koden herunder:
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
Nu skal vi generere en kryptografisk nøgle ved hjælp af RSA -standard. Denne nøgle bruges til sikker adgang til en Linux -endepunktsforekomst via 3G -modemets offentlige IP. Hovedmålet med dette trin. Følgende kode kopierer nøglen til Linux Trusted Keys Repository og sikrer, at der er endnu mere sikkerhed for forbindelsen.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub bruger@remote_server:.ssh/autoriserede taster autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 bruger@remote_server
Ved at følge disse trin har du netop omdannet Qualcomm DragonBoard 410c til en Cloud Server! / o/
Trin 6: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af Bluetooth - Del 1/2
Bilens kommunikationsinterface udføres via en OBD2 -port. De oplysninger, der udveksles i denne port, skal oversættes, og til det har vi brug for en tolkeapparat. Der er to hardware alternativer: ELM327 eller STN1170.
Til dette projekt brugte vi en Bluetooth -enhed med et chipsæt baseret på ELM327.
Det er vigtigt at bemærke tilgængeligheden af ELM327 betyder ikke, at det er den ORIGINALE VERSION af ELM327. Størstedelen af de tilgængelige chipsæt er baseret på version 1.5, det var da chipens oplysninger blev klonet og lækket ud på markedet. Den originale ELM327 er nu på version 2.2. Udviklingen af dette chipsæt bringer flere data om nyere biler. Det er vigtigt at vide det, for afhængigt af test kan du muligvis få adgang til data fra nyere køretøjer.
Find din bils OBD2 -port med OBD2 Bluetooth -adapteren. Det kan være placeret et sted under rattet. Det kan være lettere at søge efter det ved hjælp af dette værktøj:
Få adgang til DragonBoard 410c ved hjælp af SSH, fra din notebook (husk, at nu er du i bilen, og har ikke et tv/skærm til at tilslutte kortet). Så snart OBD2 Bluetooth -enheden er indsat i bilporten, skal du følge trinene herunder for at få adgang til Bluetooth -forbindelsen.
sudo bluetoothctl
kan parres på agent ved standardagentscanning tilPå dette tidspunkt er det vigtigt, at du kopierer MAC -adressen, fordi du får brug for den til de næste trin
Indtast disse kommandoer:
stole på MACADDRESS
par MACADDRESS
Du skal blive bedt om en anmodning om at indtaste PIN -koden for at parre Bluetooth OBD2 med kortet.
Normalt er PIN -koden, om 1234 eller 0000 - afhænger af din hardware
Nu skal du se skærmen "forbindelse vellykket". For at afslutte Bluetooth -applikationen skal du bruge følgende kommando:
Afslut
Næste trin er at BINDE enheden med den serielle port:
sudo rfcomm bind 0 MACADDRESS 1
For at sikre, at operationen lykkedes, skal du skrive:
ls /dev
Porten "Rfcomm0" skal være angivet.
Trin 7: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af Bluetooth - Del 2/2
Hovedformålet med dette trin er at garantere, at kommunikationen mellem de 3 enheder fungerer:
ELM327, DragonBoard 410c og bilen
Download "Screen" -appen for at sende serielle meddelelser via den serielle port
sudo apt-get installeringsskærm
Den serielle port bruges til at sende AT -kommandoer og modtage svarene mellem DragonBoard 410c og ELM327 -enheden.
Få adgang til følgende link for at få flere oplysninger om AT -kommandoer:
elmelectronics.com/ELM327/AT_Commands.pdf
Advarsel:
Vær meget forsigtig med dette trin! Alle oplysninger, du sender til enheden, bliver fortolket og sendt til bilen. Hvis der sendes en forkert besked, kan den blive misfortolket af bilen og forårsage problemer. Vær opmærksom på kommandoerne, og studer dem, før du prøver din egen kode. Vi anbefaler kraftigt at følge instruktionerne nedenfor.
Følg kommandosekvensen herunder for at starte kommunikationen:
-
Denne funktion starter den serielle kommunikation ved hjælp af skærmen:
skærm /dev /rfcomm0
Så snart terminalen indlæses, skal du skrive følgende kommandoer i denne sekvens:
ATZ
ATL1 ATH1 ATS1 ATSP0
Afsluttende kommunikationstest:
Indtast konsollen:
ATI
Det skal returnere "ELM327 v1.5" eller ELM -versionen af din enhed
Dette er et bevis på, at kommunikationen mellem ELM -enheden og DragonBoard 410c fungerer
Hurtigt tip
For at afslutte "Skærm" er det nødvendigt at skrive Ctrl+A efterfulgt af Ctrl+D.
Trin 8: Tilslutning af DragonBoard 410c til bilens OBD ved hjælp af PyOBD
PyOBD er et Python -bibliotek, der muliggør kommunikation med OBD2 -enheder, der kan forbindes til biler. Med det kan vi udtrække flere oplysninger, herunder køretøjets hastighed og elektriske fejl.
I dette trin skal vi sikre, at følgende python -biblioteker er installeret i Linaro på din DragonBoard 410c:
-
PIP - Pythons pakkeleder
sudo apt-get install python-pip
-
SetupTools - filinstallationshåndtering
sudo pip install -U pip setupstools
-
Hjul - installer pakkeformatering
sudo apt-get install python-hjul
-
OBD - Python -bibliotek til at kommunikere med OBD -enhed
sudo apt-get install python-obd
-
GPS - Python -bibliotek til at hente data fra GPS
sudo pip installer gps
-
Anmodninger - Python -pakke til RESTful
sudo pip installationsanmodninger
Følg disse trin for at kontrollere, om OBD’s pakke fungerer korrekt:
sudo python
Nu vil terminalens markør blive ændret til ">>>", hvilket angiver, at Python kører. Du kan nu begynde at skrive kommandoerne herunder:
-
Start med at importere OBD -bibliotek:
import obd
-
For at oprette forbindelse til den serielle port skal du bruge kommandoen:
forbindelse = gammel. OBD (“dev/rfcomm0”)
- Det er normalt at vise en fejlmeddelelse, der siger, at kommunikationen mislykkedes, så hvis det sker, prøv en gang til.
-
For at finde ud af, om Python får oplysninger fra bilen, der passerer ELM327 via bluetooth, skal du skrive følgende:
connection.protocol_name ()
Trin 9: Læsning af data fra bilen ved hjælp af Python
Vi opretter en fil kaldet: OBD.py, som instruktionerne nedenfor, efterfulgt af koden.
Start med at importere OBD -biblioteket til Python for at starte forbindelserne.
Af ukendte årsager mislykkes det første forbindelsesforsøg altid ved hjælp af vores hardware. Andet forsøg, virker altid. Derfor vil du på koden bemærke to kommandolinjer, der forsøger at oprette forbindelsen.
Efter at forbindelsen er lykkedes, startede vi en uendelig loop, der søger efter OBD -data, formaterer den i henhold til forudindstillede parametre. Derefter opretter den en URL ved hjælp af forespørgselsstreng, så den kan sendes til serveren ved hjælp af POST -metoden.
I eksemplet herunder lykkedes det os at få følgende oplysninger:
- RPM
- Hastighed
Funktionerne til registrering af data bruger to parametre. For eksempel ved at bruge [1] [12] serker du efter [modul] [PID]. Listen over funkioner kan findes på:
Til sidst skal du generere webadressen med alle oplysninger sammenkoblet og tilføjet til filen, kaldet "obd_data.dat".
Koden til OBD.py er nedenfor.
Efter tilslutning og registrering af dataene opretter vi en fil kaldet: envia_OBD.py
Denne del af koden bliver enklere. Importer de biblioteker, der er relateret til anmodningen/send data, ved hjælp af RESTFUL.
Opret en WHILE til at bruge POST og send URL'en til den første linje i filen, der tidligere var udfyldt af OBD.py. Derefter sletter den linje fra filen for at undgå, at data skal sendes igen.
Koden til filen OBD.py er nedenfor.
Trin 10: Tilbagevendende scripts og datalagringsprocedure for de fangede data
Alt, hvad vi har gjort hidtil, var orienteret om at sikre, at DragonBoard kommunikerede korrekt med komponenterne, som 3G, Wifi, Bluetooth, GPS -data og mere.
Brug koden herunder til at redigere filen "rc.local", der allerede har nogle funktioner og foruddefinerede kommandoer. Det er placeret på '/etc'. For at redigere skal du bruge kommandoen:
sudo nano /etc/rc.local
Nu skal vi konfigurere alle tjenester og funktioner og oprette rutiner, der initialiseres automatisk, når DragonBoard starter. Lad os bruge BASH til at gøre dette. BASH (Bourne-Again-SHell) er en Linux Command tolk-app.
Følgende kode har BASH -kommandoer, og du skal indsætte Bluetooth/OBD MAC -adressen. Vær ekstra forsigtig med at afslutte koden med "exit 0", som er systemets svar på, at handlingen var vellykket.
hvis [! -f/etc/ssh/ssh_host_rsa_key]
derefter systemctl stop ssh.socket || true dpkg-rekonfigurer 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
Fra nu af vil hver gang du tænder DragonBoard, oprette forbindelse til 3G og sende GPS- og OBD -data til den valgte server.
Trin 11: Problemer undervejs
Vi listede nedenfor nogle af de problemer, vi fandt undervejs, før vi skrev denne instruktionsbog, men vi troede, at det kunne hjælpe dig, hvis det sker for dig.
-
PyOBD
Du skal være meget forsigtig med at sende data, mens du kommunikerer med bilen. I et af vores første forsøg, da kommunikationen ikke var stabil, sendte vi den forkerte kommando, som stort set styrtede ECU'en. Gearskiftet sad fast på parkeringspladsen, og nogle af lysene på instrumentbrættet blev ved med at blinke tilfældigt. Løsningen fundet var at afbryde et af batterikablerne i cirka 15 minutter. Dette nulstiller ECU'en til fabriksstandardtilstand og annullerer derfor alle kommandoer eller ændringer, vi måtte have foretaget
-
Linaro
Vi havde et problem med vores DragonBoard, som blev ved med at genstarte sporadisk. Problemet blev løst af Linaros team, der udgav en nyere version af operativsystemet. Vi skrev denne vejledning med den opdaterede version
-
DragonBoard's GPS
Qualcomms DragonBoard 410c har ikke en intern GPS -antenne, så for at forbedre GPS -signaloptagelsen skal vi installere et stik til en ekstern antenne. Denne proces forklares bedre i følgende link:
Trin 12: Referencer
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Installation af Linaro og DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokumentation af GPS til 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 à um OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Anbefalede:
Omdrejningstæller/scanningsmåler ved hjælp af Arduino, OBD2 og CAN Bus: 8 trin
Omdrejningstæller/scanningsmåler ved hjælp af Arduino, OBD2 og CAN Bus: Alle Toyota Prius (eller andre hybrid-/specialkøretøjer) ejere ved, at deres instrumentbræt muligvis mangler et par urskiver! Min prius har ingen motoromdrejninger eller temperaturmåler. Hvis du er en performance -fyr, vil du måske gerne vide ting som timing forhånd og
Sådan tilsluttes og styres en lampe gennem ZigBee -modulet på Dragonboard: 5 trin
Sådan tilsluttes og styres en lampe gennem ZigBee -modulet på Dragonboard: Denne instruktion lærer brugeren, hvordan man tilslutter og korrekt installerer ZigBee -modulet på Dragonboard og interagerer det med en ZigBee -styret lampe (OSRAM), hvilket skaber et ZigBee IOT -netværk. : Dragonboard 410c; CC2531 USB Dongle; T
Comunicação Serial Com a Dragonboard 410c Usando Mezzanine 96boards Sensorer: 7 trin
Comunicação Serial Com til Dragonboard 410c Usando Mezzanine 96boards Sensorer: O objetivo desse tutorial é Mostrar as etapas needs á 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
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
OBD2 Bluetooth -læser: 3 trin
OBD2 Bluetooth -læser: Velkommen, dette er min første instruerbare og forhåbentlig er den let at forstå, og du kan lave din egen. Hvis du har spørgsmål, er du velkommen til at kontakte mig, og måske kan jeg hjælpe dig. Jeg vil prøve at gøre dette ekstremt enkelt at følge med dette