Obsah:

DragonBoard a OBD2: 12 kroků
DragonBoard a OBD2: 12 kroků

Video: DragonBoard a OBD2: 12 kroků

Video: DragonBoard a OBD2: 12 kroků
Video: DIAGNOSTICO DE CONECTOR OBD2, no enciende el Scanner 2024, Červenec
Anonim
DragonBoard a OBD2
DragonBoard a OBD2

Když čtete data, která vycházejí z portu OBD2 ve vašem autě, je možné z něj sbírat úžasné informace. Pomocí DragonBoard 410c jsme na tomto projektu pracovali a podrobně jej zde popsali, abyste to mohli udělat sami.

Tento projekt byl možný pouze díky partnerství s #Qualcomm #Embarcados #Linaro #Arrow #BaitaAceleradora, které nám umožnilo přístup k nejlepšímu hardwaru na trhu a také kontakt s nejlepšími profesionály na podporu vývoje.

Tým složili tito lidé:

Jsme velmi rádi, že vám můžeme pomoci dosáhnout vašeho cíle a ujistit se, že svůj projekt dokončíte, takže nám dejte vědět, pokud budete potřebovat další pomoc, než je uvedeno níže.

Většina z nich projednává portugalské kliky:

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

Pro tento projekt jsme použili následující položky:

  • Qualcomm DragonBoard 410c
  • Rozhraní ELM327 Bluetooth OBD2
  • Dongle USB 3G/4G
  • Napěťová invertorová nabíječka do auta (110v)

Krok 1: Provedení úvodního nastavení DragonBoard 410c **

Provedení úvodního nastavení DragonBoard 410c **
Provedení úvodního nastavení DragonBoard 410c **
Provedení úvodního nastavení DragonBoard 410c **
Provedení úvodního nastavení DragonBoard 410c **
Provedení úvodního nastavení DragonBoard 410c **
Provedení úvodního nastavení DragonBoard 410c **

Pomocí Qualcomm DragonBoard 410c jsme zahájili projekt instalací distribuce Linuxu s názvem Linaro, což nám umožňuje nastavit všechna potřebná zařízení.

Chcete -li vytvořit obrázek Linaro pro DragonBoard, použijte Ubunto na VirtualBoxu, takže můžete použít FastBoot (to je aplikace založená na Linuxu). V zásadě tedy musíte otevřít terminál na VM Ubuntu a zadat:

sudo apt-get android-tools-fastboot

K instalaci Linaro musíme provést 2 důležité kroky:

1) Instalace BOOTLOADERU

Název souboru: dragonboard410c_bootloader_emmc_linux-79.zip

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

Rozbalte soubory a vyberte složku:

cd /FolderName (cesta k rozbalené složce)

Zadejte následující kód:

zařízení pro rychlé spuštění sudo

Předpokládaný výnos:

(hexadecimální) rychlé spuštění

Poté zadejte:

sudo./flashall

Předpokládaný výnos:

hotovo. celkový čas 1 000 s (bez chyb)

Instalace OPERAČNÍHO SYSTÉMU

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

Stáhněte si tyto 2 soubory:

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

Toto je nejnovější dostupná verze (červen/17), takže název se může v budoucnu změnit. Hledaný vzor je „boot-linaro-VersionName“. Tenhle se jmenuje „Stretch“a předchozí byl „Jessie“.

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

Toto je nejnovější verze (červen/17) a název se může v budoucnu změnit. Vyhledejte vzor „linaro-VersionName-alip“.

Rozbalte soubory z. GZ

Vstupte do složky „root“ve vztahu k rozbaleným souborům

příklad: „/Stahování“, což je místo, kde jsou uloženy stažené soubory.

Nyní začněte s následujícími příkazy:

zařízení pro rychlé spuštění sudo

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

Očekávaný návrat (pamatování na čas se může lišit):

hotovo. celkový čas: 100,00 s

Připojte myš, klávesnici a monitor/TV pomocí portu HDMI

Mějte po ruce toto:

uživatel: linaro

heslo: linaro

Otevřete aplikaci Lxterminal a pokračujte ve stahování seznamu dostupných aktualizací týkajících se nainstalovaných balíčků:

sudo apt-get update

Nezapomeňte nainstalovat dostupné balíčky ze seznamu:

sudo apt-get upgrade

Tip: Linaro bylo vybráno kvůli extrémně rychlému spuštění a komunitě velmi angažované a orientované na řešení problémů, což šetří spoustu času.

Krok 2: Umístění DragonBoard 410c pomocí antény GPS

Umístění DragonBoard 410c pomocí GPS antény
Umístění DragonBoard 410c pomocí GPS antény
Umístění DragonBoard 410c pomocí GPS antény
Umístění DragonBoard 410c pomocí GPS antény

Začněte instalací potřebných aplikací, které budou klienty, do modulu GPS. Názvy aplikací jsou: GNSS-GPSD, GPSD a GPSD-CLIENTS. Postupujte podle následujících příkazů:

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

S nainstalovanými těmito aplikacemi budete ke správnému spuštění potřebovat více příkazů:

sudo systemctl start qdsp-start.service

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

Nyní vezměte DragonBoard 410c na široce otevřenou plochu s jasným výhledem na oblohu, která mu umožní přijímat signál ze satelitů. Nyní zadejte do terminálu:

gpsmon –n

Z našich testů se data začnou na obrazovce zobrazovat v průměru po 10 minutách. To se hodně mění z místa na místo, kromě polohy DragonBoard na okně nebo uvnitř, kromě mnoha dalších překážek, které mohou rušit příjem signálu GPS.

Krok 3: Instalace 3G/4G USB dongle

Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle
Instalace 3G/4G USB dongle

Existuje několik způsobů, jak připojit DragonBoard 410c k síti 3G/4G/GSM:

  • Používání štítu / BreakoutBoard s GSM modemem, který má také slot pro SimCard;
  • Použijte USB 3G/4G dongle.

Pro tento projekt jsme se rozhodli použít USB dongle Huawei E3272, protože jeho pořízení bylo snadné a rychlé.

Ke konfiguraci modemu můžete použít terminál (pomocí aplikace WVDial), ale nejjednodušší způsob, jak to udělat, je použít grafické uživatelské rozhraní (GUI) Linaro. K tomu následovně:

  • Když je USB dongle připojen k DragonBoard, klikněte pravým tlačítkem na ikonu „sítě“v pravém dolním rohu obrazovky;
  • „Upravit připojení“> „Přidat“;
  • Z rozevírací nabídky vyberte „Mobilní širokopásmové připojení“;
  • Klikněte na „Vytvořit“.

Postupujte podle pokynů průvodce a ujistěte se, že jste v nabídce vybrali správného operátora, aby se zařízení odpovídajícím způsobem připojilo.

Krok 4: Transformace DragonBoard 410c na Wifi hotspot / přístupový bod

Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
Transformace DragonBoard 410c na Wifi hotspot / přístupový bod

Nejjednodušší způsob, jak nakonfigurovat DragonBoard 410c jako wifi router nebo hotspot (nyní, když jste nakonfigurovali připojení k internetu), je použít GUI systému. Chcete -li to provést, postupujte takto:

  • Klikněte pravým tlačítkem na ikonu sítě v pravém dolním rohu
  • Vyberte „Upravit připojení a poté„ Přidat “
  • Vyberte „WiFi“
  • Klikněte na vytvořit

Změňte název sítě, kterou chcete vytvořit, v poli „SSID“a změňte pole „Režim“na „Hotspot“.

Abyste se ujistili, že to bude fungovat, ověřte následující:

  • Přejděte na kartu „Nastavení IPv4“
  • Ověřte, zda „Metoda“

Krok 5: Bezdrátový přístup k DragonBoard 410c pomocí SSH, prostřednictvím připojení Hotspot

Bezdrátový přístup k DragonBoard 410c pomocí SSH, prostřednictvím připojení Hotspot
Bezdrátový přístup k DragonBoard 410c pomocí SSH, prostřednictvím připojení Hotspot

Podařilo se nám vytvořit způsob vzdáleného přístupu k DragonBoard, bez ohledu na to, jestli jste v jeho blízkosti nebo ne. Obvykle byste se museli připojit k samotné desce pomocí wifi nebo bluetooth. Dalším způsobem by bylo přistupovat k němu připojením ke stejné síti Wi -Fi (např: ze směrovače). Provedením následujících kroků vytváříme samostatné zařízení, které generuje vlastní síť a otevírá se na webu, aby bylo k němu přístup.

Můžete začít instalací „Auto SSH“pomocí níže 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

Nyní vygenerujeme kryptografický klíč pomocí standardu RSA. Tento klíč bude použit k bezpečnému přístupu k instanci koncového bodu Linuxu prostřednictvím veřejné IP adresy modemu 3G. Hlavním cílem tohoto kroku. Následující kód zkopíruje tento klíč do úložiště důvěryhodných klíčů Linuxu a zajistí tak ještě větší zabezpečení připojení.

ssh -keygen -t rsa

uživatel scp ~/.ssh/id_rsa.pub@vzdálený_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 uživatel@vzdálený_server

Podle těchto kroků jste právě transformovali Qualcomm DragonBoard 410c na cloudový server! \Ó/

Krok 6: Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2

Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2

Komunikační rozhraní automobilu se provádí přes port OBD2. Informace, které se na tomto portu vyměňují, je třeba přeložit, a k tomu potřebujeme tlumočnické zařízení. Existují dvě alternativy hardwaru: ELM327 nebo STN1170.

Pro tento projekt jsme použili zařízení Bluetooth s čipovou sadou založenou na ELM327.

Je důležité poznamenat, že dostupnost ELM327 neznamená, že se jedná o ORIGINÁLNÍ VERZI ELM327. Většina dostupných čipových sad vychází z verze 1.5, kdy byly informace o čipu klonovány a pronikly na trh. Původní ELM327 je nyní ve verzi 2.2. Evoluce této čipové sady přináší více údajů o novějších automobilech. Je důležité to vědět, protože v závislosti na testech můžete nebo nemusíte mít přístup k datům z novějších vozidel.

S adaptérem Bluetooth OBD2 najděte port OBD2 vašeho auta. Může být někde pod volantem. Může být snazší jej vyhledat pomocí tohoto nástroje:

Přistupujte k DragonBoard 410c pomocí SSH ze svého notebooku (pamatujte, že teď jste v autě a nemáte TV/monitor pro připojení desky). Jakmile je zařízení Bluetooth OBD2 vloženo do portu automobilu, získáte přístup k připojení Bluetooth pomocí následujících kroků.

sudo bluetoothctl

pairable na agentovi při výchozím skenování agenta zapnutoV této fázi je důležité, abyste zkopírovali adresu MAC, protože ji budete potřebovat pro další kroky

Zadejte tyto příkazy:

důvěřujte MACADDRESS

spárujte MACADDRESS

Měli byste být vyzváni k zadání PIN kódu pro spárování Bluetooth OBD2 s deskou.

Obvykle je PIN kód 1234 nebo 0000 - závisí na vašem hardwaru

Nyní byste měli vidět obrazovku „připojení úspěšné“. Chcete -li ukončit aplikaci Bluetooth, použijte následující příkaz:

přestat

Dalším krokem je BIND zařízení se sériovým portem:

sudo rfcomm bind 0 MACADDRESS 1

Abyste se ujistili, že operace proběhla úspěšně, zadejte:

ls /dev

Měl by být uveden port „Rfcomm0“.

Krok 7: Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2

Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2
Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2

Hlavním cílem tohoto kroku je zajistit, aby komunikace mezi 3 zařízeními fungovala:

ELM327, DragonBoard 410c a auto

Stáhněte si aplikaci „Screen“pro odesílání sériových zpráv přes sériový port

obrazovka instalace sudo apt-get

Sériový port bude použit k odesílání AT příkazů a přijímání odpovědí mezi DragonBoard 410c a zařízením ELM327.

Další informace o AT příkazech najdete na následujícím odkazu:

elmelectronics.com/ELM327/AT_Commands.pdf

Varování:

S tímto krokem buďte velmi opatrní! Všechny informace, které odešlete do zařízení, budou interpretovány a odeslány do auta, pokud je odeslána špatná zpráva, může být nesprávně interpretováno autem a způsobit problémy. Věnujte pozornost příkazům a prostudujte si je, než se pokusíte o vlastní kód. Důrazně doporučujeme dodržovat níže uvedené pokyny.

Komunikaci zahájíte podle níže uvedené sekvence příkazů:

  • Tato funkce spustí sériovou komunikaci pomocí obrazovky:

    obrazovka /dev /rfcomm0

Jakmile se terminál načte, zadejte následující příkazy v tomto pořadí:

ATZ

ATL1 ATH1 ATS1 ATSP0

Závěrečný test komunikace:

Zadejte do konzoly:

ATI

Měl by vrátit „ELM327 v1.5“nebo verzi ELM vašeho zařízení

To je důkaz, že komunikace zařízení ELM a DragonBoard 410c funguje

Rychlý tip

Pro ukončení „Obrazovky“je nutné zadat Ctrl+A a následně Ctrl+D.

Krok 8: Připojení DragonBoard 410c k OBD automobilu pomocí PyOBD

Připojení DragonBoard 410c k OBD automobilu pomocí PyOBD
Připojení DragonBoard 410c k OBD automobilu pomocí PyOBD

PyOBD je knihovna Pythonu, která umožňuje komunikaci se zařízeními OBD2, která lze připojit k automobilům. Díky tomu můžeme extrahovat několik informací včetně rychlosti vozidla a elektrických chyb.

V tomto kroku musíme zajistit, aby byly do Linaro vaší DragonBoard 410c nainstalovány následující knihovny pythonu:

  • PIP - správce balíčků Pythonu

    sudo apt-get install python-pip

  • SetupTools - správce instalace souborů

    sudo pip install -U pip setupstools

  • Kolo - nainstalujte formátovač balíků

    sudo apt-get install python-wheel

  • OBD - knihovna Pythonu pro komunikaci se zařízením OBD

    sudo apt-get install python-obd

  • GPS - knihovna Pythonu pro získávání dat z GPS

    sudo pip install gps

  • Žádosti - balíček Pythonu pro RESTful

    sudo pip install requests

Chcete -li ověřit, zda balíček OBD funguje správně, postupujte takto:

sudo python

Nyní se kurzor terminálu změní na „>>>“, což znamená, že je spuštěn Python. Nyní můžete začít psát níže uvedené příkazy:

  • Začněte importem knihovny OBD:

    importovat obd

  • Pro připojení k sériovému portu použijte příkaz:

    connection = old. OBD (“dev/rfcomm0”)

  • Je normální zobrazit chybovou zprávu, že komunikace selhala, takže pokud k tomu dojde, zkuste to ještě jednou.
  • Chcete -li zjistit, zda Python získává informace z auta procházejícího přes ELM327 přes bluetooth, zadejte následující:

    connection.protocol_name ()

Krok 9: Čtení dat z auta pomocí Pythonu

Čtení dat z auta pomocí Pythonu
Čtení dat z auta pomocí Pythonu

Vytvoříme soubor s názvem: OBD.py, podle pokynů níže, následovaný kódem.

Začněte importem knihovny OBD do Pythonu a spusťte připojení.

Z neznámých důvodů první pokus o připojení pomocí našeho hardwaru vždy selže. Druhý pokus, vždy funguje. Proto si v kódu všimnete dvou řádků příkazů, které se snaží navázat spojení.

Po úspěšném připojení jsme spustili nekonečnou smyčku, která hledá OBD data a formátuje je podle přednastavených parametrů. Poté vytvoří adresu URL pomocí řetězce dotazů, což umožní odeslání na server pomocí metody POST.

Na níže uvedeném příkladu se nám podařilo získat následující informace:

  • Otáčky
  • Rychlost

Funkce pro sběr dat používají dva parametry. Například pomocí [1] [12] serčujete pro [modul] [PID]. Seznam funkcí najdete na:

Nakonec vygenerujte URL se všemi zřetězenými informacemi a přidanými do souboru s názvem „obd_data.dat“.

Kód pro OBD.py je níže.

Po připojení a zachycení dat vytvoříme soubor s názvem: envia_OBD.py

Tato část kódu se zjednoduší. Importujte knihovny související s daty žádosti/odeslání pomocí RESTFUL.

Vytvořte WHILE pro použití POST a odešlete URL prvního řádku souboru, který dříve vyplnil OBD.py. Poté, aby se zabránilo opětovnému odesílání dat, vymaže tento řádek ze souboru.

Níže je uveden kód pro soubor OBD.py.

Krok 10: Opakované skripty a postup ukládání dat pro zachycená data

Opakované skripty a postup ukládání dat pro zachycená data
Opakované skripty a postup ukládání dat pro zachycená data

Všechno, co jsme dosud udělali, bylo zaměřeno na to, aby DragonBoard správně komunikoval s komponentami, jako jsou 3G, Wifi, Bluetooth, GPS data a další.

Pomocí níže uvedeného kódu upravte soubor „rc.local“, který již má některé funkce a předdefinované příkazy. Nachází se na '/etc'. Chcete -li upravit, použijte příkaz:

sudo nano /etc/rc.local

Nyní musíme nakonfigurovat všechny služby a funkce a vytvářet rutiny, které se automaticky inicializují při spuštění DragonBoard. Použijme k tomu BASH. BASH (Bourne-Again-SHell) je aplikace pro interpretaci příkazů Linux.

Následující kód obsahuje příkazy BASH a budete muset zadat MAC adresu Bluetooth/OBD. Buďte velmi opatrní, abyste zajistili ukončení kódu „exit 0“, což je odpověď systému, že akce byla úspěšná.

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

pak 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

Od této chvíle se pokaždé, když DragonBoard zapnete, připojí se k síti 3G a odešle data GPS a OBD na zvolený server.

Krok 11: Potíže na cestě

Potíže na cestě
Potíže na cestě

Níže jsme uvedli některé z problémů, se kterými jsme se setkali, než jsme napsali tento Instructable, ale mysleli jsme si, že vám to může pomoci, pokud se to stane vám.

  • PyOBD

    Při komunikaci s autem musíte být velmi opatrní při odesílání dat. V jednom z našich prvních pokusů, kdy komunikace nebyla stabilní, jsme poslali špatný příkaz, který v podstatě havaroval ECU. Řazení bylo zablokované na parkovišti a některá světla na palubní desce stále náhodně blikala. Nalezeným řešením bylo odpojit jeden z kabelů baterie na přibližně 15 minut. Tím se ECU resetuje na výchozí tovární stav, a tím se zruší všechny příkazy nebo změny, které jsme mohli provést

  • Linaro

    Měli jsme problém s naší DragonBoard, která se sporadicky restartovala. Problém vyřešil tým Linaro, který vydal novější verzi operačního systému. Tento tutoriál jsme napsali s aktualizovanou verzí

  • GPS DragonBoard

    DragonBoard 410c od Qualcommu nemá interní anténu GPS, takže abychom vylepšili získávání signálu GPS, musíme nainstalovat konektor pro externí anténu. Tento proces je lépe vysvětlen v následujícím odkazu:

Krok 12: Reference

Reference
Reference

Zavaděč

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

Linaro

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

Stáhněte si Linaro na DragonBoard 410c

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

Dokumentace GPS pro DragonBoard

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

GPS ukázka

gist.github.com/wolfg1969/4653340

Python OBD

github.com/brendan-w/python-OBD

Conectando RaspberryPi nebo OBD Bluetooth

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

Doporučuje: