Innehållsförteckning:

EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 Steps
EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 Steps

Video: EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 Steps

Video: EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 Steps
Video: Let's Look Behind a Real Human Liver 2024, November
Anonim
EAL - Industry 4.0 GPS Data Collection på Rc Car
EAL - Industry 4.0 GPS Data Collection på Rc Car
EAL - Industry 4.0 GPS Data Collection på Rc Car
EAL - Industry 4.0 GPS Data Collection på Rc Car

I den här instruktionsboken kommer vi att prata om hur vi installerar en GPS -modul på en RC -bil och postade de insamlade data till en webbsida för enkel övervakning. Vi har tidigare gjort en instruktion om hur vi gjorde vår RC -bil, som du hittar här. Detta använder samma konstruktion, även om vi har beslutat att skrota ultraljudssensorerna och istället applicerat GPS -modulen. I projektet har vi installerat en databas som innehåller GPS -data och bygger en webbsida som data kan hittas på, samt applicerat den på en karta, så att du kan se var bilen har varit. Besök Joerha.dk för att se webbsidan.

På flödesschemat högst upp kan du se en översikt över de tekniker som har använts i detta projekt. För att få ut mesta möjliga av denna instruerbara, måste du ha familj med vissa, om inte alla tekniker som används. Den är länkad efter användning. Att ha understadering av Github kommer också att hjälpa, eftersom vi har länkat till våra github -arkiv.

Lista över verktyg:

  • Github
  • Hallon PI/Raspbian

    Pytonorm

  • Node.js

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

    Bootstrap

Steg 1: Databasinställning

Databasinställning
Databasinställning

I detta segment kommer vi att prata om hur vi bygger det databassystem som våra GPS -data hämtas från. Databasen är byggd i MySQL enligt bilden ovan, där vi har två tabeller - "Användare" och "GPSEntries". Hos användare har vi "Id" som vår primära nyckel. Den används som en unik identifierare. "Namn" är namnet på användaren som för närvarande är inloggad. "Apikey" är den unika nyckeln som ges till användaren för att komma åt API: et. "Aktiv" är att kontrollera om användaren är aktiv, vi kan inaktivera användaren så att han inte kan komma åt databasen. “CreatedAt” och “UpdatedAt” skapas av processen vi använde för att bygga databasen.

I tabellen "GPSEntries" har vi alla attribut som innehåller data från GPS -modulen. “Tid” är den aktuella tiden för GPS -modulen, vi använder den för att visa tidpunkten för inlägget. Sedan har vi positionen i koordinater, liksom "hastighet" och "kurs". Vi har också många felattribut, som visar om det finns ett fel i data från GPS: en, fx i koordinaterna. Vi har lagt till dem i databasen, men vi visar dem inte på webbsidan. "UserId" är en främmande nyckel som innehåller "id" från tabellen Användare. Det används för att visa vilken användare som lade upp data.

Steg 2: API

API
API

I detta segment kommer vi att prata om API: t som styr databasen och klistrar in data till den. Webb -API: et är byggt med Node.js, som använder Express.js och Sequalize.js.

Node.js används för att köra JavaScript-serversida, där den normalt används främst för skript på klientsidan på en webbsida.

Express.js är den ram vi använde för att bygga API: et.

Sequalize.js används för att göra länkarna mellan GPS -data och databasattributen. Den använder en metod som kallas ORM (Object-Relational Mapping) för att göra detta. Det är också där "CreatedAt" och "UpdatedAt" skapas (visas i steg 1).

API: t kan användas genom att besöka api.joerha.dk. Lägg sedan till /gps till webbadressen, som visar all data i databasen i JSON -format. För att styra hur många poster du vill kan du lägga till /2 (användaren) och /x (antal poster) i webbadressen. Fx api.joerha.dk/gps/2/10 visar de 10 senaste posterna. Ett uttag av de formaterade data visas i bilden ovan.

Koden finns här: Github

Steg 3: GPS/Python -applikation

GPS/Python -applikation
GPS/Python -applikation
GPS/Python -applikation
GPS/Python -applikation
GPS/Python -applikation
GPS/Python -applikation

I detta segment kommer vi att prata om skriptet som körs på hallon och samlar in GPS -data och skickar det till API: et.

För att samla in data från GPS använder vi en demon som kallas gpsd (bild 1). Det är här vi samlar in data som vi lägger ut i databasen och grunden för vår GPSEntries -tabell. Skriptet som hämtar data från gpsd och skickar det till API: et, är skrivet i python.

Programmet initierar en tråd, så att den kan köra både gpsd och vårt program samtidigt. Gpsd -data strömmas kontinuerligt medan GPS: en är aktiv (bild 2).

Sedan gör vi en stundslinga som kontinuerligt postar sin nyttolast till API: et som innehåller GPS -data. Data är formaterade som JSON. Nyttolasten består av de attribut som syns i GPSD.. Fix -taggen fungerar som en ögonblicksbild av den aktuella data och skickar den till API: et. Detta görs med request.post och använder url- och API -nyckeln. Skriv ut (r.status_code) matas ut till användaren för att veta om data har kommit över korrekt. Time.sleep (0,5) är hur ofta data läggs ut (bild 3)

Koden finns här: Github

Steg 4: Webbsida för projektet

Webbsida för projektet
Webbsida för projektet

I detta segment kommer vi att prata om hur vi skapade vår webbsida som visar data och annan information om projektet. Sajten är byggd med HTML, css och JS. Till att börja med använde vi Bootstrap 4.0, som är ett bibliotek för HTML, css och JS. Den har många funktioner som hjälper dig att bygga din webbplats. Vi har använt det för navstången högst upp, liksom rad- och kolumninställningarna som webbplatsen är byggd med. Sedan har vi ett annat litet css -skript som styr färgerna på bakgrunden och rubrikerna. Utöver det har vi använt ett bibliotek som heter lightbox, så att du kan klicka på bilderna och de dyker upp. Innehållet på webbplatsen innehåller en google -karta, en tabell med data, en video av bilen i aktion och en länk till just denna sida.

Google -kartan är den mest intressanta. Kartan laddas via ett Google API, där en unik API -nyckel sätts in för att den ska fungera. Data strömmas till kartan i ett intervall på 500 ms. Vi har gjort en funktion där de senaste 100 datapunkterna i databasen visas som markörer, så att du kan följa var bilen har varit. Detta görs genom det som kallas ett AJAX -samtal.

Datauppsättningarna i GPS -datatabellen efterfrågas på samma sätt. I tabellen kan du se de senaste 10 posterna, uppdaterade i realtid när GPS: en är aktiv. Vi hämtar data från databasen i ett intervall på 500 ms.

Koden finns här: Github

Rekommenderad: