Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
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
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
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
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
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:
GPS Cap Data Logger: 7 trinn (med bilder)
GPS Cap Data Logger: Her er et flott helgprosjekt, hvis du er i trekking eller tar lange sykkelturer, og trenger en GPS -datalogger for å holde oversikt over alle turene/rittene du har tatt … Når du har fullført byggingen og lastet ned dataene fra GPS -modulen til tr
DIY Smart Robot Tracking Car Kit Sporing Car Fotosensitiv: 7 trinn
DIY Smart Robot Tracking Car Kits Tracking Car Fotosensitiv: Design av SINONING ROBOT Du kan kjøpe fra tracking robot carTheoryLM393 chip sammenligne de to fotoresistoren, når det er en fotoresistor LED på den ene siden på HVIT stopper siden av motoren umiddelbart, den andre siden av motoren snurre opp, slik at
Toy Collection belønningsmaskin: 6 trinn
Toy Collection Reward Machine: Introduksjon av maskinen: Dette er en belønningsmaskin for leketøysamling. Hvis du putter leken i lekekassen. Belønningsmaskinen vil føle at noe er lagt i esken og deretter gi belysning og lydfeedback for belønning. Barna ville bli inspirert av
EAL - Embedded Programming: Candy Mixer 1000: 9 Steps
EAL - Embedded Programming: Candy Mixer 1000: For prosjektet vårt i Arduino har vi besluttet å lage en mikser til godteri. Tanken er at brukeren kan trykke på en knapp, og deretter begynner motorene å kaste ut godteriet i en bolle, og når programmet har kjørt, stopper det. Det første utkastet
EAL-Industri4.0-RFID Dataopsamling Til Database: 10 Steps (with Pictures)
EAL-Industri4.0-RFID Dataopsamling Til Database: Dette prosjektet omhandler opsamling av v æ gtdata, registrering av identiteter vha. RFID, lagring av data i en MySQL database vha. node-RED, samt fremvisning og behandling av de opsamlede dataene i og C# -programmet i en Windows Form Application