Obsah:
- Krok 1: Provedení úvodního nastavení DragonBoard 410c **
- Krok 2: Umístění DragonBoard 410c pomocí antény GPS
- Krok 3: Instalace 3G/4G USB dongle
- Krok 4: Transformace DragonBoard 410c na Wifi hotspot / přístupový bod
- Krok 5: Bezdrátový přístup k DragonBoard 410c pomocí SSH, prostřednictvím připojení Hotspot
- Krok 6: Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 1/2
- Krok 7: Připojení DragonBoard 410c k OBD automobilu pomocí Bluetooth - část 2/2
- Krok 8: Připojení DragonBoard 410c k OBD automobilu pomocí PyOBD
- Krok 9: Čtení dat z auta pomocí Pythonu
- Krok 10: Opakované skripty a postup ukládání dat pro zachycená data
- Krok 11: Potíže na cestě
- Krok 12: Reference
Video: DragonBoard a OBD2: 12 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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é:
- Marcel Ogando - Hacker - [email protected]
- Leandro Alvernaz - Hacker - [email protected]
- Thiago Paulino Rodrigues - Marketing - [email protected]
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 **
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
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
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
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
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
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
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
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
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
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ě
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
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:
Otáčkoměr/měřidlo skenování pomocí sběrnice Arduino, OBD2 a CAN: 8 kroků
Otáčkoměr/měřidlo skenování pomocí sběrnice Arduino, OBD2 a CAN: Každý majitel Toyoty Prius (nebo jiného hybridního/speciálního vozidla) bude vědět, že na jeho palubní desce může chybět několik číselníků! Můj prius nemá otáčky motoru ani teploměr. Pokud jste výkonnostní chlapík, možná budete chtít vědět věci jako načasování a
Zjišťování mimořádných situací - Qualcomm Dragonboard 410c: 7 kroků
Zjišťování mimořádných situací - Qualcomm Dragonboard 410c: Hledáte -li bezpečnostní systémy, které pracují na monitorování mimořádných situací, je možné si všimnout, že zpracovat všechny zaznamenané informace je příliš obtížné. Když jsme o tom přemýšleli, rozhodli jsme se využít své znalosti v oblasti zpracování zvuku/obrazu, senzorů a
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 kroků
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: Inteligentní nosná lišta, která se odděluje ç ã o autom á tica do lixo. Webová kamera Atrav &decute; s de uma, ela identifica o tipo de lixo e o Depositita no Compartimento adekvátado para posteriormente ser reciclado
Google Assistant na DragonBoard ™ 410c: 57 kroků
Google Assistant na DragonBoard ™ 410c: Tento Instructables vás naučí spustit Google Assistant v DragonBoard a nastavit u některých zařízení chytré prostředí. Požadováno: -DragonBoard ™ 410c (s novou instalací linaro-alip);-12V/ 1A 5,5mm jack napájecí zdroj; -CC2531 zigbee modu
Čtečka OBD2 Bluetooth: 3 kroky
Čtečka OBD2 Bluetooth: Vítejte, toto je můj první Instructable a doufejme, že je snadno pochopitelný a můžete si vytvořit vlastní. Pokud máte nějaké dotazy, neváhejte mě kontaktovat a možná vám mohu pomoci. Pokusím se, aby to bylo extrémně jednoduché sledovat s tímto