Indholdsfortegnelse:

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

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

Video: EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 trin
Video: Tesla Cybertruck Crash Test - BeamNG.Drive #shorts 2024, Juni
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 denne Instructable vil vi tale om, hvordan vi opsætter et GPS -modul på en RC -bil og lagde de indsamlede data til en webside for let monitering. Vi har tidligere lavet en instruktion om, hvordan vi lavede vores RC -bil, som kan findes her. Dette bruger den samme build, selvom vi har besluttet at skrotte ultralydssensorerne og anvende GPS -modulet i stedet. I projektet har vi opsat en database, der indeholder GPS -data, og opbygger en webside, som dataene kan findes på, samt anvendt dem på et kort, så du kan se, hvor bilen har været. Besøg Joerha.dk for at se websiden.

På rutediagrammet øverst kan du se en oversigt over de teknologier, der er blevet brugt i dette projekt. For at få mest muligt ud af denne instruktive skal du have familiæritet med nogle, hvis ikke alle de anvendte teknologier. Det er knyttet efter brug. At have understationering af Github vil også hjælpe, da vi har linket til vores github -lagre.

Liste over hjælpeprogrammer:

  • Github
  • Hindbær PI/Raspbian

    Python

  • Node.js

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

    Bootstrap

Trin 1: Opsætning af database

Opsætning af database
Opsætning af database

I dette segment vil vi tale om, hvordan vi bygger det databasesystem, som vores GPS -data trækkes fra. Databasen er bygget i MySQL i henhold til billedet ovenfor, hvor vi har to tabeller - "Brugere" og "GPSEntries". I brugere har vi "Id" som vores primære nøgle. Det bruges som en unik identifikator. "Navn" er navnet på den bruger, der aktuelt er logget ind. "Apikey" er den unikke nøgle, som brugeren får for at få adgang til API'en. "Aktiv" er at kontrollere, om brugeren er aktiv, vi kan deaktivere brugeren, så han ikke kan få adgang til databasen. “CreatedAt” og “UpdatedAt” er lavet af den proces, vi brugte til at bygge databasen.

I tabellen "GPSEntries" har vi alle attributter, der indeholder data fra GPS -modulet. "Tid" er den aktuelle tid for GPS -modulet, vi bruger det til at vise tidspunktet for udstationering. Derefter har vi positionen i koordinater, såvel som “hastighed” og “kurs”. Vi har også mange fejlattributter, der viser, om der er en fejl i dataene fra GPS'en, fx i koordinaterne. Vi har tilføjet dem til databasen, men vi viser dem ikke på websiden. "UserId" er en fremmed nøgle, der indeholder "id" fra tabellen Brugere. Det bruges til at vise, hvilken bruger der har indsendt dataene.

Trin 2: API

API
API

I dette segment vil vi tale om API'en, der styrer databasen og indsætter dataene til den. Web -API'en er bygget med Node.js, som bruger Express.js og Sequalize.js.

Node.js bruges til at køre JavaScript-serverside, hvor det normalt normalt primært bruges til scripts på klientsiden på en webside.

Express.js er den ramme, vi brugte til at bygge API'en.

Sequalize.js bruges til at oprette forbindelserne mellem Gps -dataene og databaseattributterne. Det bruger en metode kaldet ORM (Object-Relational Mapping) til at gøre dette. Det er også her, “CreatedAt” og “UpdatedAt” oprettes (vist i trin 1).

API'en kan bruges ved at besøge api.joerha.dk. Tilføj derefter /gps til url'en, der viser alle dataene i databasen i JSON -format. For at styre, hvor mange poster du vil have, kan du tilføje /2 (brugeren) og /x (antal poster) til webadressen. Fx api.joerha.dk/gps/2/10 viser de 10 seneste poster. Et udtag af de formaterede data er vist på billedet ovenfor.

Koden findes her: Github

Trin 3: GPS/Python -applikation

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

I dette segment vil vi tale om scriptet, der kører på hindbær og indsamler GPS -data og sender det til API.

For at indsamle data fra GPS'en bruger vi en dæmon kaldet gpsd (billede 1). Det er her, vi indsamler de data, vi sender til databasen, og grundlaget for vores GPSEntries -tabel. Scriptet, der trækker dataene fra gpsd og sender det til API'en, er skrevet i python.

Applikationen initialiserer en tråd, så den kan køre både gpsd og vores program på samme tid. Gpsd -dataene streames kontinuerligt, mens GPS'en er aktiv (billede 2).

Derefter laver vi et stykke loop, der løbende sender sin nyttelast til API'en, der indeholder GPS -data. Dataene er formateret som JSON. Nyttelasten består af de attributter, der ses i GPSD.. Fix -tagget fungerer som et øjebliksbillede af de aktuelle data og sender det til API'en. Dette gøres af request.post og bruger url og API -nøgle. Udskriv (r.status_code) udskrives til brugeren for at vide, om dataene blev fundet korrekt. Time.sleep (0,5) er, hvor ofte dataene bogføres (billede 3)

Koden findes her: Github

Trin 4: Webside til projektet

Webside til projektet
Webside til projektet

I dette segment vil vi tale om, hvordan vi lavede vores webside, der viser dataene og andre oplysninger om projektet. Webstedet er bygget med HTML, css og JS. Til at starte med brugte vi Bootstrap 4.0, som er et bibliotek til HTML, css og JS. Det leveres med mange funktioner, der hjælper dig med at opbygge dit websted. Vi har brugt det til navigationslinjen øverst, såvel som række- og kolonneopsætningen, som webstedet er bygget med. Så har vi endnu et lille css -script, der styrer farverne på baggrunden og overskrifterne. Udover det har vi gjort brug af et bibliotek kaldet lightbox, så du kan klikke på billederne, og de dukker op. Indholdet på webstedet indeholder et google -kort, en datatabel, en video af bilen i aktion og et link til netop denne side.

Google map er det mest interessante. Kortet indlæses via en google API, hvor en unik API -nøgle indsættes for at det kan fungere. Dataene streames til kortet i et interval på 500 ms. Vi har lavet en funktion, hvor de sidste 100 datapunkter i databasen vises som markører, så du kan følge, hvor bilen har været. Dette gøres gennem det, der kaldes et AJAX -opkald.

Datasættene i GPS -datatabellen efterspørges på samme måde. I tabellen kan du se de sidste 10 poster, opdateret i realtid, når GPS'en er aktiv. Vi henter data fra databasen i et interval på 500 ms.

Koden findes her: Github

Anbefalede: