Obsah:
- Krok 1: Vykonanie úvodného nastavenia DragonBoard 410c **
- Krok 2: Umiestnenie zariadenia DragonBoard 410c pomocou antény GPS
- Krok 3: Inštalácia 3G/4G USB kľúča
- Krok 4: Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
- Krok 5: Bezdrôtový prístup k DragonBoard 410c pomocou SSH, prostredníctvom pripojenia Hotspot
- Krok 6: Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 1/2
- Krok 7: Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 2/2
- Krok 8: Pripojenie DragonBoard 410c k OBD automobilu pomocou PyOBD
- Krok 9: Čítanie údajov z auta pomocou Pythonu
- Krok 10: Opakované skripty a postup ukladania údajov pre zachytené údaje
- Krok 11: Problémy na ceste
- Krok 12: Referencie
Video: DragonBoard a OBD2: 12 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Čítaním údajov, ktoré vychádzajú z portu OBD2 vo vašom aute, je možné z neho zbierať úžasné informácie. Pomocou DragonBoard 410c sme na tomto projekte pracovali a podrobne ho popísali tu, aby ste to mohli urobiť sami.
Tento projekt bol možný iba vďaka partnerstvu s #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, ktoré nám umožnilo prístup k najlepšiemu hardvéru na trhu, ako aj kontakt s najlepšími odborníkmi na podporu vývoja.
Tím zložili títo chlapci:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
Sme veľmi radi, že vám môžeme pomôcť dosiahnuť váš cieľ a dokončiť váš projekt, takže nám dajte vedieť, ak budete potrebovať ďalšiu pomoc okrem nižšie uvedených pokynov.
Väčšina z nich prejde portugalsky, kliknete na tlačidlo:
www.instructables.com/id/DragonBoard-Com-OBD
Na tento projekt sme použili nasledujúce položky:
- Qualcomm DragonBoard 410c
- Rozhranie ELM327 Bluetooth OBD2
- Dongle USB 3G/4G
- Nabíjačka do auta s invertorom napätia (110 V)
Krok 1: Vykonanie úvodného nastavenia DragonBoard 410c **
Pomocou Qualcomm DragonBoard 410c sme projekt začali inštaláciou Linuxovej distribúcie s názvom Linaro, ktorá nám umožňuje nastaviť všetky potrebné zariadenia.
Na vytvorenie obrazu Linaro pre DragonBoard použite Ubunto na VirtualBoxe, aby ste mohli použiť FastBoot (to je aplikácia založená na Linuxe). V zásade teda musíte otvoriť terminál na VM Ubuntu a zadať:
sudo apt-get android-tools-fastboot
Na inštaláciu Linaro musíme vykonať 2 dôležité kroky:
1) Inštalácia BOOTLOADERU
Názov súboru: dragonboard410c_bootloader_emmc_linux-79.zip
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Rozbaľte súbory a vyberte priečinok:
cd /FolderName (cesta k rozbalenému priečinku)
Zadajte nasledujúci kód:
zariadenia na rýchle spustenie sudo
Očakávaný návrat:
(hexadecimálne) rýchle spustenie
Potom napíšte:
sudo./flashall
Očakávaný návrat:
hotový. celkový čas 1 000 s (bez chýb)
Inštalácia OPERAČNÉHO SYSTÉMU
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Stiahnite si tieto 2 súbory:
boot-linaro-stret-qcom-snapdragon-arm64-20170607-246.img.gz
Toto je najnovšia dostupná verzia (jún/17), takže názov sa môže v budúcnosti zmeniť. Vzor, ktorý by ste hľadali, je „boot-linaro-VersionName“. Tento sa volá „Stretch“a predchádzajúci bol „Jessie“.
linaro-stret-alip-qcom-snapdragon-arm64-20170607-246.img.gz
Toto je najnovšia verzia (jún/17) a názov sa môže v budúcnosti zmeniť. Vyhľadajte vzor „linaro-VersionName-alip“.
Rozbaľte súbory zo súboru. GZ
Vstúpte do priečinka „root“vo vzťahu k rozbaleným súborom
príklad: „/Downloads“, čo je miesto, kde sú uložené stiahnuté súbory.
Teraz začnite s nasledujúcimi príkazmi:
zariadenia na rýchle spustenie sudo
sudo fastboot flash boot boot-linaro-NomeDaVersão-qcom-snapdragon-arm64-DATA.img
Očakávaný návrat (zapamätanie si času sa môže líšiť):
hotový. celkový čas: 100,00 s
Pripojte myš, klávesnicu a monitor/televízor pomocou portu HDMI
Majte po ruke toto:
užívateľ: linaro
heslo: linaro
Otvorte aplikáciu Lxterminal a pokračujte v sťahovaní zoznamu dostupných aktualizácií týkajúcich sa nainštalovaných balíkov:
sudo apt-get aktualizácia
Nezabudnite nainštalovať dostupné balíky zo zoznamu:
sudo apt-get upgrade
Tip: Linaro bol vybraný kvôli extrémne rýchlemu spusteniu a komunite, ktorá je veľmi angažovaná a orientovaná na riešenie problémov, čo šetrí veľa času.
Krok 2: Umiestnenie zariadenia DragonBoard 410c pomocou antény GPS
Začnite inštaláciou potrebných aplikácií, ktorými budú klienti, do modulu GPS. Názvy aplikácií sú: GNSS-GPSD, GPSD a GPSD-CLIENTS. Ak to chcete urobiť, postupujte podľa príkazov:
sudo apt-get install gnss-gpsd gpsd gpsd-clients
Po nainštalovaní týchto aplikácií budete na správne spustenie potrebovať viac príkazov:
sudo systemctl start qdsp-start.service
sudo systemctl start gnss-gpsd.service sudo systemctl start qmi-gps-proxy.service
Teraz vyvezte DragonBoard 410c na otvorené priestranstvo s jasným výhľadom na oblohu, ktoré mu umožní prijímať signál zo satelitov. Teraz zadajte do terminálu:
gpsmon –n
Z našich testov sa údaje na obrazovke začnú zobrazovať v priemere po 10 minútach. To sa veľa mení z miesta na miesto, okrem polohy DragonBoard na okne alebo v interiéri, okrem mnohých ďalších bariér, ktoré môžu interferovať s príjmom signálu GPS.
Krok 3: Inštalácia 3G/4G USB kľúča
Existuje niekoľko spôsobov, ako pripojiť DragonBoard 410c k sieti 3G/4G/GSM:
- Použitie karty Shield / BreakoutBoard s GSM modemom, ktorý má tiež slot na kartu SimCard;
- Použite USB 3G/4G dongle.
Pre tento projekt sme sa rozhodli použiť USB dongle Huawei E3272, pretože jeho kúpa bola jednoduchá a rýchla.
Na konfiguráciu modemu môžete použiť terminál (pomocou aplikácie WVDial), ale najľahšie to urobíte pomocou grafického používateľského rozhrania Linaro (GUI). K tomu nasledovne:
- Keď je USB dongle pripojený k DragonBoard, kliknite pravým tlačidlom myši na ikonu „siete“v pravom dolnom rohu obrazovky;
- „Upraviť pripojenia“> „Pridať“;
- V rozbaľovacej ponuke vyberte položku „Mobilné širokopásmové pripojenie“;
- Kliknite na „Vytvoriť“.
Postupujte podľa pokynov sprievodcu a v ponuke vyberte správneho operátora, aby sa zariadenie mohlo zodpovedajúcim spôsobom pripojiť.
Krok 4: Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
Najjednoduchší spôsob, ako nakonfigurovať DragonBoard 410c ako smerovač Wi -Fi alebo hotspot (teraz, keď máte nakonfigurované internetové pripojenie), je použiť grafické používateľské rozhranie systému. Ak to chcete urobiť, postupujte podľa nasledujúcich krokov:
- Kliknite pravým tlačidlom myši na ikonu siete v pravom dolnom rohu
- Vyberte položku „Upraviť pripojenia“a potom „Pridať“
- Vyberte „WiFi“
- Kliknite na vytvoriť
Zmeňte názov siete, ktorú chcete vytvoriť, v poli „SSID“a zmeňte pole „Režim“na „Hotspot“.
Aby ste sa uistili, že bude fungovať, overte nasledujúce:
- Prejdite na kartu „Nastavenia IPv4“
- Skontrolujte, či je „metóda“
Krok 5: Bezdrôtový prístup k DragonBoard 410c pomocou SSH, prostredníctvom pripojenia Hotspot
Podarilo sa nám vytvoriť spôsob vzdialeného prístupu k DragonBoardu bez ohľadu na to, či ste v jeho blízkosti alebo nie. Obvykle by ste sa museli pripojiť k samotnej doske pomocou wifi alebo bluetooth. Ďalším spôsobom by bolo získať prístup k nemu pripojením k rovnakej sieti Wi -Fi (napr. Zo smerovača). Vykonaním ďalších krokov vytvárame samostatné zariadenie, ktoré generuje vlastnú sieť a otvára sa na webe, aby bolo k nemu prístup.
Môžete začať inštaláciou „Auto SSH“pomocou nižšie uvedeného kódu:
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
Teraz vygenerujeme kryptografický kľúč pomocou štandardu RSA. Tento kľúč sa použije na bezpečný prístup k inštancii koncového bodu Linux prostredníctvom verejnej IP modemu 3G. Hlavným cieľom tohto kroku. Nasledujúci kód skopíruje tento kľúč do úložiska dôveryhodných kľúčov systému Linux a zaistí ešte väčšiu bezpečnosť pripojenia.
ssh -keygen -t rsa
scp ~/.ssh/id_rsa.pub užívateľ@remote_server:.ssh/authorized_keys autossh -M 0 -q -f -N -i /home/pi/.ssh/id_rsa -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 2222: localhost: 22 používateľov@server Remote_server
Podľa týchto krokov ste práve transformovali Qualcomm DragonBoard 410c na cloudový server! / o/
Krok 6: Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 1/2
Komunikačné rozhranie automobilu sa vykonáva prostredníctvom portu OBD2. Informácie, ktoré sa na tomto porte vymieňajú, je potrebné preložiť a na to potrebujeme tlmočnícke zariadenie. Existujú dve alternatívy hardvéru: ELM327 alebo STN1170.
Na tento projekt sme použili zariadenie Bluetooth s čipovou sadou založenou na ELM327.
Je dôležité si uvedomiť, že dostupnosť ELM327 neznamená, že je to ORIGINÁLNA VERZIA ELM327. Väčšina časti dostupných čipových súprav je založená na verzii 1.5, vtedy boli informácie o čipe klonované a unikli na trh. Pôvodný ELM327 je teraz vo verzii 2.2. Evolúcia tohto čipsetu prináša viac údajov o novších automobiloch. Je dôležité to vedieť, pretože v závislosti od testov môžete alebo nemusíte mať prístup k údajom z novších vozidiel.
S adaptérom Bluetooth OBD2 nájdite port OBD2 vášho auta. Môže byť niekde pod volantom. Môže byť jednoduchšie ho nájsť pomocou tohto nástroja:
Získajte prístup k DragonBoard 410c pomocou SSH z prenosného počítača (pamätajte, že teraz ste v aute a nemáte televízor/monitor na pripojenie dosky). Hneď ako je zariadenie Bluetooth OBD2 vložené do portu automobilu, získate prístup k pripojeniu bluetooth podľa nižšie uvedených pokynov.
sudo bluetoothctl
spustiteľné na agentovi pri predvolenom skenovaní agenta zapnutéV tejto fáze je dôležité, aby ste skopírovali adresu MAC, pretože ju budete potrebovať pre ďalšie kroky
Zadajte tieto príkazy:
dôverujte MACADDRESS
pár MACADDRESS
Mali by ste byť vyzvaní, aby ste zadali PIN kód na spárovanie Bluetooth OBD2 s doskou.
PIN kód je zvyčajne 1234 alebo 0000 - závisí od vášho hardvéru
Teraz by ste mali vidieť obrazovku „pripojenie úspešné“. Ak chcete ukončiť aplikáciu Bluetooth, použite nasledujúci príkaz:
skončiť
Ďalším krokom je VIAZANIE zariadenia so sériovým portom:
sudo rfcomm bind 0 MACADDRESS 1
Aby ste sa uistili, že operácia bola úspešná, zadajte:
ls /dev
Mal by byť uvedený port „Rfcomm0“.
Krok 7: Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 2/2
Hlavným cieľom tohto kroku je zabezpečiť, aby komunikácia medzi týmito 3 zariadeniami fungovala:
ELM327, DragonBoard 410c a auto
Stiahnite si aplikáciu „Screen“na odosielanie sériových správ cez sériový port
obrazovka inštalácie sudo apt-get
Sériový port bude slúžiť na odosielanie AT príkazov a prijímanie odpovedí medzi DragonBoard 410c a zariadením ELM327.
Bližšie informácie o príkazoch AT získate po kliknutí na nasledujúci odkaz:
elmelectronics.com/ELM327/AT_Commands.pdf
Pozor:
Buďte pri tomto kroku veľmi opatrní! Všetky informácie, ktoré pošlete do zariadenia, budú interpretované a odoslané do auta, ak je odoslaná nesprávna správa, môže si ich auto nesprávne vyložiť a spôsobiť problémy. Dávajte pozor na príkazy a preštudujte si ich skôr, ako sa pokúsite o vlastný kód. Dôrazne odporúčame riadiť sa nižšie uvedenými pokynmi.
Na zahájenie komunikácie postupujte podľa nižšie uvedeného príkazu:
-
Táto funkcia spustí sériovú komunikáciu pomocou obrazovky:
obrazovka /dev /rfcomm0
Hneď ako sa terminál načíta, zadajte nasledujúce príkazy v tomto poradí:
ATZ
ATL1 ATH1 ATS1 ATSP0
Záverečný test komunikácie:
Napíšte do konzoly:
ATI
Mal by vrátiť „ELM327 v1.5“alebo verziu ELM vášho zariadenia
Je to dôkaz, že komunikácia zariadenia ELM a DragonBoard 410c funguje
Rýchly tip
Na ukončenie „obrazovky“je potrebné napísať Ctrl+A a potom Ctrl+D.
Krok 8: Pripojenie DragonBoard 410c k OBD automobilu pomocou PyOBD
PyOBD je knižnica Pythonu, ktorá umožňuje komunikáciu so zariadeniami OBD2, ktoré je možné pripojiť k automobilom. Vďaka tomu môžeme extrahovať niekoľko informácií vrátane rýchlosti vozidla a elektrických chýb.
V tomto kroku musíme zaistiť, aby boli v Linare vášho DragonBoard 410c nainštalované nasledujúce knižnice pythonu:
-
PIP - správca balíkov v Pythone
sudo apt-get install python-pip
-
SetupTools - správca inštalácie súborov
sudo pip install -U pip setupstools
-
Koleso - nainštalujte formátovač balíkov
sudo apt-get install python-wheel
-
OBD - Knižnica Pythonu na komunikáciu so zariadením OBD
sudo apt-get install python-obd
-
GPS - knižnica Pythonu na získavanie údajov z GPS
sudo pip install gps
-
Žiadosti - balík Python pre RESTful
sudo pip inštalovať požiadavky
Ak chcete overiť, či balík OBD funguje správne, postupujte takto:
sudo python
Teraz sa kurzor terminálu zmení na „>>>“, čo znamená, že je spustený Python. Teraz môžete začať písať nižšie uvedené príkazy:
-
Začnite importom knižnice OBD:
dovoz obd
-
Na pripojenie k sériovému portu použite príkaz:
connection = old. OBD („dev/rfcomm0“)
- Je normálne, že sa zobrazí chybové hlásenie, že komunikácia zlyhala, takže ak sa to stane, skúste to ešte raz.
-
Ak chcete zistiť, či Python získava informácie z auta prechádzajúceho cez ELM327 cez bluetooth, zadajte nasledujúci príkaz:
connection.protocol_name ()
Krok 9: Čítanie údajov z auta pomocou Pythonu
Vytvoríme súbor s názvom: OBD.py, ako je uvedené nižšie, za ktorým bude nasledovať kód.
Začnite importovaním knižnice OBD do Pythonu na spustenie pripojení.
Z neznámych dôvodov použitím nášho hardvéru prvý pokus o pripojenie vždy zlyhá. Druhý pokus, vždy funguje. Preto si v kóde všimnete dva riadky príkazu, ktoré sa pokúšajú nadviazať spojenie.
Keď je pripojenie úspešné, spustili sme nekonečnú slučku, ktorá hľadá údaje OBD a formátuje ich podľa prednastavených parametrov. Potom vytvorí adresu URL pomocou reťazca dopytov, ktorý umožní jej odoslanie na server metódou POST.
Na nižšie uvedenom príklade sa nám podarilo získať nasledujúce informácie:
- Ot./min
- Rýchlosť
Funkcie na zber údajov používajú dva parametre. Napríklad pomocou [1] [12] hľadáte [modul] [PID]. Zoznam funkcií nájdete na:
Nakoniec vygenerujte adresu URL so zreťazenými všetkými informáciami a pridajte ju do súboru s názvom „obd_data.dat“.
Kód pre OBD.py je uvedený nižšie.
Po pripojení a zachytení údajov vytvoríme súbor s názvom: envia_OBD.py
Táto časť kódu je jednoduchšia. Importujte knižnice súvisiace s údajmi o požiadavke/odoslaní pomocou RESTFUL.
Vytvorte WHILE na používanie POST a odošlite URL prvého riadka súboru, ktorý predtým vyplnil OBD.py. Potom, aby sa zabránilo opätovnému odoslaniu údajov, vymaže tento riadok zo súboru.
Kód pre súbor OBD.py je uvedený nižšie.
Krok 10: Opakované skripty a postup ukladania údajov pre zachytené údaje
Všetko, čo sme doteraz urobili, bolo zamerané na to, aby DragonBoard správne komunikoval s komponentmi, ako sú údaje 3G, Wifi, Bluetooth, GPS a ďalšie.
Pomocou nižšie uvedeného kódu upravte súbor "rc.local", ktorý už má niektoré funkcie a preddefinované príkazy. Nachádza sa na '/etc'. Na úpravu použite príkaz:
sudo nano /etc/rc.local
Teraz musíme nakonfigurovať všetky služby a funkcie a vytvárať rutiny, ktoré sa automaticky inicializujú pri štarte DragonBoard. Na to použijeme BASH. BASH (Bourne-Again-SHell) je aplikácia na tlmočenie príkazov Linux.
Nasledujúci kód obsahuje príkazy BASH a budete musieť zadať MAC/Bluetooth/OBD adresu. Buďte obzvlášť opatrní, aby ste kód ukončili „ukončením 0“, čo je odpoveď systému na to, že akcia bola úspešná.
keby [! -f/etc/ssh/ssh_host_rsa_key]
potom 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
Odteraz sa zakaždým, keď sa DragonBoard zapne, pripojí DragonBoard k 3G a odošle údaje GPS a OBD na zvolený server.
Krok 11: Problémy na ceste
Nižšie sme uviedli niektoré z problémov, ktoré sme našli na ceste pred napísaním tohto Pokynu, ale mysleli sme si, že vám to môže pomôcť, ak sa to stane vám.
-
PyOBD
Pri komunikácii s autom musíte byť veľmi opatrní pri odosielaní údajov. V jednom z našich prvých pokusov, keď komunikácia nebola stabilná, sme poslali nesprávny príkaz, ktorý v zásade spôsobil poruchu ECU. Radenie prevodových stupňov uviazlo na parkovisku a niektoré svetlá na prístrojovej doske stále náhodne blikali. Nájdeným riešením bolo odpojenie jedného z káblov batérie na približne 15 minút. Tým sa ECU vráti do predvoleného stavu od výroby, čím sa zrušia všetky príkazy alebo zmeny, ktoré sme mohli vykonať
-
Linaro
Mali sme problém s DragonBoard, ktorý sa sporadicky reštartoval. Tento problém vyriešil tím Linaro, ktorý vydal novšiu verziu operačného systému. Tento návod sme napísali s aktualizovanou verziou
-
GPS DragonBoard
DragonBoard 410c od spoločnosti Qualcomm nemá vnútornú anténu GPS, takže na zlepšenie získavania signálu GPS musíme nainštalovať konektor pre externú anténu. Tento proces je lepšie vysvetlený v nasledujúcom odkaze:
Krok 12: Referencie
Bootloader
builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
Linaro
builds.96boards.org/releases/dragonboard410c/linaro/debian/latest/
Vykonajte inštaláciu Linaro na DragonBoard 410c
www.embarcados.com.br/linux-linaro-alip-na-qualcomm-dragonboard-410c/
Dokument GPS pre DragonBoard
discuss.96boards.org/t/gps-software/170/16
GPS ukážka
gist.github.com/wolfg1969/4653340
Python OBD
github.com/brendan-w/python-OBD
Pripojenie Raspberry Pi alebo OBD Bluetooth
gersic.com/connecting-your-raspberry-pi-to-a-bluetooth-obd-ii-adapter/
Odporúča:
Otáčkomer/merač skenovania pomocou zbernice Arduino, OBD2 a CAN: 8 krokov
Otáčkomer/merač skenovania pomocou zbernice Arduino, OBD2 a CAN: Každý majiteľ Toyoty Prius (alebo iného hybridného/špeciálneho vozidla) bude vedieť, že na jeho palubných doskách môže chýbať niekoľko ciferníkov! Môj prius nemá otáčky motora ani teplomer. Ak ste výkonnostný chlapík, možno budete chcieť vedieť veci ako načasovanie a
Detekcia mimoriadnych situácií - Qualcomm Dragonboard 410c: 7 krokov
Detekcia mimoriadnych situácií - Qualcomm Dragonboard 410c: Hľadáte bezpečnostné systémy, ktoré pracujú na monitorovaní mimoriadnych situácií, je možné si všimnúť, že je príliš ťažké spracovať všetky zaznamenané informácie. Keď sme o tom premýšľali, rozhodli sme sa využiť svoje znalosti v oblasti spracovania zvuku/obrazu, senzorov a
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 krokov
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: Inteligentná nosná jednotka, ktorá sa skladá z oddelených a automatických automobilov. Atrav & s de uma webkamera, elastická identifikácia tipov pre lixo a uloženie bez kompromisov pre zodpovedajúce pozadie a recirkuláciu
Stiahnuť Analógové aplikácie Para Dragonboard 410c Com Linker Sprite Mezanín: 6 krokov
Voľný výber aplikácií Analogové hry Dragonboard 410c Com Linker Sprite Mezanín: Essa publica ç ã o tem como objetivo väčšina hesiel need á rios para desenvolver aplica ç õ es anal ó gicas usando Dragonboard
Čítačka Bluetooth OBD2: 3 kroky
Čítačka Bluetooth OBD2: Vitajte, toto je môj prvý návod a dúfajme, že je ľahko zrozumiteľný a môžete si vytvoriť svoj vlastný. Ak máte akékoľvek otázky, neváhajte ma kontaktovať a možno vám môžem pomôcť. Pokúsim sa to veľmi jednoducho dodržať pomocou tohto