Innehållsförteckning:
- Steg 1: Databasinställning
- Steg 2: API
- Steg 3: GPS/Python -applikation
- Steg 4: Webbsida för projektet
Video: EAL - Industry 4.0 GPS Data Collection on Rc Car: 4 Steps
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
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
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
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
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
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:
Gör vackra diagram med levande Arduino -data (och spara data i Excel): 3 steg
Gör vackra plott med levande Arduino -data (och spara data i Excel): Vi gillar alla att spela med vår P … lotterfunktion i Arduino IDE. Men det kan vara användbart för grundläggande applikationer, men data raderas som mer poäng läggs till och det är inte särskilt trevligt för ögonen. Arduino IDE -plotteren
GPS Cap Data Logger: 7 steg (med bilder)
GPS Cap Data Logger: Här är ett bra helgprojekt, om du är på vandring eller tar långa cykelturer, och behöver en GPS -datalogger för att hålla reda på alla dina vandringar/åk du har tagit … När du har slutfört bygget och laddat ner data från GPS -modulen på tr
Belöningsmaskin för Toy Collection: 6 steg
Toy Collection Reward Machine: Introduktion av maskinen: Detta är en leksaksamling belöningsmaskin. Om du lägger leksaken i leksakslådan. Belöningsmaskinen kommer att känna att något läggs i lådan och sedan ge belysning och ljudåterkoppling för belöning. Barnen skulle inspireras av
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] MULTIPLE SENSOR DATA !: 3 Steps
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] MULTIPLE SENSOR DATA !: Hej, jag såg att det saknas information om hur man lägger in flera sensordata till thingspeak av Arduino Uno med SIM900 -modul. Så jag gjorde kort instruktioner om anslutning och konfiguration Arduino UNO med SIM900 och DHT22 sensor. Data från DHT22 (temperament
Escape Robot: RC Car for an Escape Game: 7 Steps (med bilder)
Escape Robot: RC Car for a Escape Game: Huvudsyftet med detta projekt var att bygga en robot som skulle skilja sig från redan befintliga robotar, och som skulle kunna användas i ett verkligt och innovativt område. Baserat på personlig erfarenhet beslutades det att bygga en bilformad robot som