Obsah:

DragonBoard a OBD2: 12 krokov
DragonBoard a OBD2: 12 krokov

Video: DragonBoard a OBD2: 12 krokov

Video: DragonBoard a OBD2: 12 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
DragonBoard a OBD2
DragonBoard a OBD2

Čí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:

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 **

Vykonanie úvodného nastavenia DragonBoard 410c **
Vykonanie úvodného nastavenia DragonBoard 410c **
Vykonanie úvodného nastavenia DragonBoard 410c **
Vykonanie úvodného nastavenia DragonBoard 410c **
Vykonanie úvodného nastavenia DragonBoard 410c **
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

Umiestnenie DragonBoard 410c pomocou antény GPS
Umiestnenie DragonBoard 410c pomocou antény GPS
Umiestnenie DragonBoard 410c pomocou antény GPS
Umiestnenie 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

Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
Inštalácia 3G/4G USB kľúča
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

Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
Transformácia DragonBoard 410c na hotspot / prístupový bod Wifi
Transformácia DragonBoard 410c na Wifi hotspot / prístupový bod
Transformácia DragonBoard 410c na Wifi hotspot / prístupový bod

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

Bezdrôtový prístup k DragonBoard 410c pomocou SSH, prostredníctvom pripojenia Hotspot
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

Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 1/2
Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 1/2
Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 1/2
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

Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 2/2
Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 2/2
Pripojenie DragonBoard 410c k OBD automobilu pomocou Bluetooth - časť 2/2
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

Pripojenie DragonBoard 410c k OBD automobilu pomocou PyOBD
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

Čítanie údajov z auta pomocou Pythonu
Čí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

Opakujúce sa skripty a postup ukladania údajov pre zachytené údaje
Opakujúce sa 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

Problémy na ceste
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

Referencie
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: