Innholdsfortegnelse:

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: How is LiDAR remote sensing used for Autonomous vehicles? 2024, Juni
Anonim
EAL - Industry 4.0 GPS Data Collection on Rc Car
EAL - Industry 4.0 GPS Data Collection on Rc Car
EAL - Industry 4.0 GPS Data Collection on Rc Car
EAL - Industry 4.0 GPS Data Collection on Rc Car

I denne instruksjonsboken vil vi snakke om hvordan vi konfigurerer en GPS -modul på en RC -bil og la de innsamlede dataene til en webside for enkel overvåking. Vi har tidligere laget en instruks om hvordan vi lagde RC -bilen vår, som du finner her. Dette bruker den samme konstruksjonen, selv om vi har bestemt oss for å skrape ultralydsensorene og bruke GPS -modulen i stedet. I prosjektet har vi konfigurert en database som inneholder GPS -data, og bygger en webside som dataene kan bli funnet på, så vel som brukt den på et kart, slik at du kan se hvor bilen har vært. Besøk Joerha.dk for å se nettsiden.

På flytskjemaet øverst kan du se en oversikt over teknologiene som har blitt brukt i dette prosjektet. For å få mest mulig ut av denne Instructable, må du ha kjennskap til noen, om ikke alle teknologiene som brukes. Det er koblet i henhold til bruk. Å ha undergradering av Github vil også hjelpe, ettersom vi har knyttet til våre github -lagre.

Liste over verktøy:

  • Github
  • Bringebær PI/Raspbian

    Python

  • Node.js

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

    Støvelhempe

Trinn 1: Databaseoppsett

Oppsett av database
Oppsett av database

I dette segmentet vil vi snakke om hvordan vi bygger databasesystemet som våre GPS -data hentes fra. Databasen er bygd i MySQL i henhold til bildet ovenfor, hvor vi har to tabeller - "Brukere" og "GPSEntries". Hos brukere har vi "Id" som hovednøkkel. Den brukes som en unik identifikator. “Navn” er navnet på brukeren som er logget inn nå. “Apikey” er den unike nøkkelen som er gitt brukeren for å få tilgang til API. "Aktiv" er å sjekke om brukeren er aktiv, vi kan deaktivere brukeren, slik at han ikke får tilgang til databasen. “CreatedAt” og “UpdatedAt” er laget av prosessen vi brukte for å bygge databasen.

I tabellen "GPSEntries" har vi alle attributtene som inneholder data fra GPS -modulen. "Tid" er gjeldende tid for GPS -modulen, vi bruker den til å vise tidspunktet for innlegget. Deretter har vi posisjonen i koordinater, så vel som "hastighet" og "kurs". Vi har også mange feilattributter, som viser om det er en feil i dataene fra GPS -en, fx i koordinatene. Vi har lagt dem til i databasen, men vi viser dem ikke på nettsiden. "UserId" er en fremmed nøkkel som inneholder "id" fra tabellen Brukere. Det brukes til å vise hvilken bruker som postet dataene.

Trinn 2: API

API
API

I dette segmentet vil vi snakke om API som styrer databasen og limer dataene inn i den. Web -API er bygget med Node.js, som bruker Express.js og Sequalize.js.

Node.js brukes til å kjøre JavaScript-serverside, der den vanligvis først og fremst brukes til skripting på klientsiden på en webside.

Express.js er rammen vi brukte for å bygge API.

Sequalize.js brukes til å lage koblingene mellom GPS -dataene og databaseattributtene. Den bruker en metode som kalles ORM (Object-Relational Mapping) for å gjøre dette. Det er også her “CreatedAt” og “UpdatedAt” er opprettet (vist i trinn 1).

API kan brukes ved å besøke api.joerha.dk. Legg deretter til /gps i url, som viser alle dataene i databasen i JSON -format. For å kontrollere hvor mange oppføringer du vil ha, kan du legge til /2 (brukeren) og /x (antall oppføringer) i nettadressen. Fx api.joerha.dk/gps/2/10 vil vise de 10 siste oppføringene. Et uttak av de formaterte dataene er vist på bildet ovenfor.

Koden finner du her: Github

Trinn 3: GPS/Python -applikasjon

GPS/Python -applikasjon
GPS/Python -applikasjon
GPS/Python -applikasjon
GPS/Python -applikasjon
GPS/Python -applikasjon
GPS/Python -applikasjon

I dette segmentet vil vi snakke om skriptet som kjører på bringebæret og samler GPS -data og sender det til API.

For å samle inn data fra GPS bruker vi en demon som kalles gpsd (Bilde 1). Det er her vi samler inn dataene vi legger ut i databasen, og grunnlaget for vår GPSEntries -tabell. Skriptet som henter dataene fra gpsd og legger det til API, er skrevet i python.

Programmet initialiserer en tråd, slik at den kan kjøre både gpsd og programmet vårt samtidig. Gpsd -dataene streames kontinuerlig mens GPS -en er aktiv (Bilde 2).

Deretter lager vi en stund -sløyfe som kontinuerlig legger inn nyttelasten til API -en som inneholder GPS -dataene. Dataene er formatert som JSON. Nyttelasten består av attributtene som er sett i GPSD.. Fix -taggen fungerer som et øyeblikksbilde av gjeldende data, og sender det til API -et. Dette gjøres av request.post, og bruker url- og API -nøkkelen. Skriv ut (r.status_code) sendes ut til brukeren for å vite om dataene kom riktig frem. Time.sleep (0,5) er hvor ofte dataene blir lagt ut (Bilde 3)

Koden finner du her: Github

Trinn 4: Nettside for prosjektet

Nettside for prosjektet
Nettside for prosjektet

I dette segmentet vil vi snakke om hvordan vi laget vår webside som viser dataene og annen informasjon om prosjektet. Nettstedet er bygget med HTML, css og JS. Til å begynne med brukte vi Bootstrap 4.0, som er et bibliotek for HTML, css og JS. Den kommer med mange funksjoner som hjelper deg med å bygge nettstedet ditt. Vi har brukt den til navigasjonslinjen øverst, så vel som rad- og kolonneoppsettet som nettstedet er bygget med. Så har vi et annet lite css -skript som styrer fargene på bakgrunnen og overskriftene. Utover det har vi brukt et bibliotek som heter lightbox, slik at du kan klikke på bildene og de dukker opp. Innholdet på nettstedet inneholder et Google -kart, en tabell med data, en video av bilen i bruk og en lenke til nettopp denne siden.

Google -kartet er det mest interessante. Kartet lastes inn via et Google API, der det settes inn en unik API -nøkkel for at det skal fungere. Dataene streames til kartet i et intervall på 500 ms. Vi har laget en funksjon der de siste 100 datapunktene i databasen vises som markører, slik at du kan følge hvor bilen har vært. Dette gjøres gjennom det som kalles et AJAX -anrop.

Datasettene i GPS -datatabellen blir forespurt på samme måte. I tabellen kan du se de siste 10 oppføringene, oppdatert i sanntid når GPS -en er aktiv. Vi henter data fra databasen i et intervall på 500 ms.

Koden finner du her: Github

Anbefalt: