Obsah:

EAL - Průmysl 4.0 Sběr dat GPS na RC autě: 4 kroky
EAL - Průmysl 4.0 Sběr dat GPS na RC autě: 4 kroky

Video: EAL - Průmysl 4.0 Sběr dat GPS na RC autě: 4 kroky

Video: EAL - Průmysl 4.0 Sběr dat GPS na RC autě: 4 kroky
Video: GSM/GPRS based GPS Tracker using Blynk with Calling & SMS features 2024, Listopad
Anonim
Sběr dat EAL - Industry 4.0 GPS na RC autě
Sběr dat EAL - Industry 4.0 GPS na RC autě
Sběr dat EAL - Industry 4.0 GPS na RC autě
Sběr dat EAL - Industry 4.0 GPS na RC autě

V tomto Instructable budeme hovořit o tom, jak jsme nastavili modul GPS na RC autě a poslali shromážděná data na webovou stránku pro snadné monitorování. Dříve jsme vytvořili návod, jak jsme vyrobili naše RC auto, který najdete zde. Toto používá stejnou verzi, i když jsme se rozhodli vyřadit ultrazvukové senzory a místo toho použít modul GPS. V projektu jsme nastavili databázi, která obsahuje data GPS, a vytvořili webovou stránku, na které lze data nalézt, a také ji aplikovat na mapu, abyste viděli, kde auto bylo. Webovou stránku zobrazíte na adrese Joerha.dk.

Na vývojovém diagramu v horní části můžete vidět přehled technologií, které byly v tomto projektu použity. Abyste z tohoto Instructable vytěžili maximum, musíte mít familaritu s některými, ne -li všemi použitými technologiemi. Je propojen podle použití. Pomůže také podcenění Githubu, protože jsme propojili naše úložiště github.

Seznam nástrojů:

  • Github
  • Raspberry PI/Raspbian

    Krajta

  • Node.js

    • Express.js
    • Sequelize.js
    • MySQL
  • HTML, CSS, JS

    Bootstrap

Krok 1: Nastavení databáze

Nastavení databáze
Nastavení databáze

V tomto segmentu budeme hovořit o tom, jak budujeme databázový systém, ze kterého jsou čerpána naše data GPS. Databáze je vytvořena v MySQL podle obrázku výše, kde máme dvě tabulky - „Uživatelé“a „GPSEntries“. U uživatelů máme jako primární klíč „Id“. Používá se jako jedinečný identifikátor. „Jméno“je jméno aktuálně přihlášeného uživatele. „Apikey“je jedinečný klíč daný uživateli pro přístup k API. „Aktivní“je zkontrolovat, zda je uživatel aktivní, můžeme ho deaktivovat, aby nemohl získat přístup k databázi. „CreatedAt“a „UpdatedAt“je vytvořen procesem, který jsme použili při vytváření databáze.

V tabulce „GPSEntries“máme všechny atributy obsahující data z modulu GPS. „Čas“je aktuální čas modulu GPS, který používáme k zobrazení času zveřejnění. Pak máme polohu v souřadnicích a také „rychlost“a „nadpis“. Máme také mnoho atributů chyb, které ukazují, zda došlo k chybě v datech z GPS, fx v souřadnicích. Přidali jsme je do databáze, ale na webové stránce je nezobrazujeme. „UserId“je cizí klíč, který obsahuje „id“z tabulky Users. To se používá k zobrazení, který uživatel zveřejnil data.

Krok 2: API

API
API

V tomto segmentu si povíme o API, které řídí databázi a vkládá do ní data. Web API je postaveno na Node.js, který využívá Express.js a Sequalize.js.

Node.js se používá ke spuštění serveru JavaScript na serveru, kde se obvykle používá především pro skriptování na straně klienta na webové stránce.

Express.js je rámec, který jsme použili k sestavení API.

Sequalize.js se používá k vytváření odkazů mezi daty GPS a atributy databáze. K tomu používá metodu nazvanou ORM (Object-Relational Mapping). Zde se také vytvářejí „CreatedAt“a „UpdatedAt“(zobrazeno v kroku 1).

API lze použít na adrese api.joerha.dk. Poté přidejte do adresy URL /gps, které zobrazí všechna data v databázi ve formátu JSON. Chcete -li ovládat, kolik záznamů chcete, můžete do URL přidat /2 (Uživatel) a /x (počet záznamů). Fx api.joerha.dk/gps/2/10 zobrazí 10 nejnovějších záznamů. Vyčerpání formátovaných dat je znázorněno na obrázku výše.

Kód najdete zde: Github

Krok 3: Aplikace GPS/Python

GPS/Python aplikace
GPS/Python aplikace
GPS/Python aplikace
GPS/Python aplikace
Aplikace GPS/Python
Aplikace GPS/Python

V tomto segmentu budeme hovořit o skriptu, který běží na malině a sbírá data GPS a odesílá je do API.

Ke shromažďování dat z GPS používáme démona s názvem gpsd (obrázek 1). Zde shromažďujeme data, která zveřejňujeme v databázi, a základ pro naši tabulku GPSEntries. Skript, který stáhne data z gpsd a zaúčtuje je do API, je napsán v pythonu.

Aplikace inicializuje vlákno, takže může běžet jak gpsd, tak náš program současně. Data GPS se nepřetržitě streamují, když je GPS aktivní (obrázek 2).

Poté vytvoříme smyčku while, která průběžně zveřejňuje své užitečné zatížení do API obsahujícího data GPS. Data jsou formátována jako JSON. Užitečné zatížení se skládá z atributů uvedených v GPSD. Značka.fix funguje jako snímek aktuálních dat a odesílá je do rozhraní API. To se provádí pomocí request.post a používá URL a API klíč. Vytiskne se tisk (r.status_code), aby uživatel věděl, zda se data dostala správně. Time.sleep (0,5) udává, jak často jsou data zveřejňována (obrázek 3)

Kód najdete zde: Github

Krok 4: Webová stránka projektu

Webová stránka projektu
Webová stránka projektu

V tomto segmentu budeme hovořit o tom, jak jsme vytvořili naši webovou stránku, která zobrazuje data a další informace o projektu. Web je vytvořen s HTML, CSS a JS. Pro začátek jsme použili Bootstrap 4.0, což je knihovna pro HTML, css a JS. Dodává se se spoustou funkcí, které vám pomohou vytvořit webové stránky. Použili jsme to pro navbar v horní části, stejně jako nastavení řádků a sloupců, pomocí kterých je web vytvořen. Pak tu máme další malý css skript ovládající barvy pozadí a záhlaví. Kromě toho jsme použili knihovnu s názvem lightbox, takže můžete kliknout na obrázky a vyskočí. Obsah stránek obsahuje mapu Google, tabulku dat, video vozu v akci a odkaz na tuto stránku.

Nejzajímavější je mapa Google. Mapa je načtena prostřednictvím rozhraní Google API, kde je vložen jedinečný klíč API, aby fungoval. Data jsou streamována na mapu v intervalu 500 ms. Vytvořili jsme funkci, kde je posledních 100 datových bodů v databázi zobrazeno jako značky, takže můžete sledovat, kde auto bylo. To se provádí prostřednictvím volání AJAX.

Soubory dat v tabulce dat GPS jsou požadovány stejným způsobem. V tabulce vidíte posledních 10 záznamů, aktualizovaných v reálném čase, když je aktivní GPS. Data získáváme z databáze v intervalu 500 ms.

Kód najdete zde: Github

Doporučuje: