Inhoudsopgave:

EAL - Industrie 4.0 GPS-gegevensverzameling op RC-auto - Ajarnpa
EAL - Industrie 4.0 GPS-gegevensverzameling op RC-auto - Ajarnpa

Video: EAL - Industrie 4.0 GPS-gegevensverzameling op RC-auto - Ajarnpa

Video: EAL - Industrie 4.0 GPS-gegevensverzameling op RC-auto - Ajarnpa
Video: What is Industry 4.0? | What are the key Industry 4.0 technologies| All explained in 10 minutes. 2024, Juni-
Anonim
EAL - Industrie 4.0 GPS-gegevensverzameling op Rc Car
EAL - Industrie 4.0 GPS-gegevensverzameling op Rc Car
EAL - Industrie 4.0 GPS-gegevensverzameling op Rc Car
EAL - Industrie 4.0 GPS-gegevensverzameling op Rc Car

In deze Instructable zullen we praten over hoe we een GPS-module op een RC-auto instellen en de verzamelde gegevens op een webpagina plaatsen voor eenvoudige monitoring. We hebben eerder een instructable gemaakt over hoe we onze RC-auto hebben gemaakt, die hier te vinden is. Dit gebruikt dezelfde build, hoewel we hebben besloten om de ultrasone sensoren te schrappen en in plaats daarvan de GPS-module toe te passen. In het project hebben we een database opgezet die de GPS-gegevens bevat, en een webpagina gebouwd waarop de gegevens te vinden zijn, en deze ook op een kaart hebben toegepast, zodat u kunt zien waar de auto is geweest. Bezoek Joerha.dk om de webpagina te bekijken.

Op het stroomschema bovenaan ziet u een overzicht van de technologieën die in dit project zijn gebruikt. Om het meeste uit deze Instructable te halen, moet u bekend zijn met sommige, zo niet alle gebruikte technologieën. Het is gekoppeld volgens gebruik. Het begrijpen van Github zal ook helpen, omdat we hebben gekoppeld aan onze github-repositories.

Lijst met hulpprogramma's:

  • Github
  • Raspberry PI/Raspbian

    Python

  • Node.js

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

    Bootstrap

Stap 1: Database instellen

Database instellen
Database instellen

In dit segment zullen we praten over hoe we het databasesysteem bouwen waaruit onze GPS-gegevens worden gehaald. De database is gebouwd in MySQL volgens de afbeelding hierboven, waar we twee tabellen hebben - "Gebruikers" en "GPSEntries". Bij gebruikers hebben we "Id" als onze primaire sleutel. Het wordt gebruikt als een unieke identificatie. "Naam" is de naam van de gebruiker die momenteel is ingelogd. "Apikey" is de unieke sleutel die aan de gebruiker wordt gegeven om toegang te krijgen tot de API. "Actief" is om te controleren of de gebruiker actief is, we kunnen de gebruiker deactiveren, zodat hij geen toegang heeft tot de database. "CreatedAt" en "UpdatedAt" zijn gemaakt door het proces dat we hebben gebruikt om de database te bouwen.

In de tabel "GPSEntries" hebben we alle attributen met gegevens uit de GPS-module. "Tijd" is de huidige tijd van de GPS-module, we gebruiken deze om de tijd van de plaatsing te tonen. Dan hebben we de positie in coördinaten, evenals "snelheid" en "richting". We hebben ook veel foutattributen, die laten zien of er een fout is in de gegevens van de GPS, fx in de coördinaten. We hebben ze toegevoegd aan de database, maar we tonen ze niet op de webpagina. "UserId" is een externe sleutel die de "id" uit de tabel Gebruikers bevat. Dat wordt gebruikt om te laten zien welke gebruiker de gegevens heeft gepost.

Stap 2: API

API
API

In dit segment zullen we het hebben over de API die de database bestuurt en de gegevens erin plakt. De web-API is gebouwd met Node.js, dat gebruikmaakt van Express.js en Sequalize.js.

Node.js wordt gebruikt om JavaScript serverside uit te voeren, terwijl het normaal gesproken voornamelijk wordt gebruikt voor client-side scripting op een webpagina.

Express.js is het framework dat we hebben gebruikt om de API te bouwen.

Sequalize.js wordt gebruikt om de koppelingen te maken tussen de GPS-gegevens en de database-attributen. Het gebruikt hiervoor een methode genaamd ORM (Object-Relational Mapping). Dit is ook waar "CreatedAt" en "UpdatedAt" worden gemaakt (weergegeven in stap 1).

De API kan worden gebruikt door api.joerha.dk te bezoeken. Voeg vervolgens /gps toe aan de url, die alle gegevens in de database in JSON-indeling toont. Om te bepalen hoeveel items je wilt, kun je /2 (De gebruiker) en /x (aantal items) aan de url toevoegen. Fx api.joerha.dk/gps/2/10 toont de 10 laatste inzendingen. Een outtake van de geformatteerde gegevens wordt getoond in de afbeelding hierboven.

Code is hier te vinden: Github

Stap 3: GPS/Python-toepassing

GPS/Python-toepassing
GPS/Python-toepassing
GPS/Python-toepassing
GPS/Python-toepassing
GPS/Python-toepassing
GPS/Python-toepassing

In dit segment zullen we het hebben over het script dat op de Raspberry draait en de GPS-gegevens verzamelt en naar de API stuurt.

Om de gegevens van de GPS te verzamelen, gebruiken we een daemon genaamd gpsd (Afbeelding 1). Dit is waar we de gegevens verzamelen die we in de database plaatsen, en de basis voor onze GPSEntries-tabel. Het script dat de gegevens uit gpsd haalt en naar de API plaatst, is geschreven in python.

De applicatie initialiseert een thread, zodat het zowel gpsd als ons programma tegelijkertijd kan draaien. De GPS-gegevens worden continu gestreamd terwijl de GPS actief is (Afbeelding 2).

Vervolgens maken we een while-lus die continu zijn payload post naar de API die de GPS-gegevens bevat. De gegevens zijn opgemaakt als JSON. De payload bestaat uit de attributen die in de GPSD te zien zijn. De.fix-tag fungeert als een momentopname van de huidige gegevens en stuurt die naar de API. Dit gebeurt via request.post, en maakt gebruik van de url en API-sleutel. Print (r.status_code) wordt uitgevoerd naar de gebruiker, om te weten of de gegevens goed zijn overgekomen. Time.sleep (0.5) is hoe vaak de gegevens worden gepost (Afbeelding 3)

Code is hier te vinden: Github

Stap 4: webpagina voor het project

Webpagina voor het project
Webpagina voor het project

In dit segment zullen we praten over hoe we onze webpagina hebben gemaakt die de gegevens en andere informatie over het project toont. De site is gebouwd met HTML, css en JS. Om te beginnen gebruikten we Bootstrap 4.0, een bibliotheek voor HTML, css en JS. Het wordt geleverd met veel functies die u helpen bij het bouwen van uw website. We hebben het gebruikt voor de navigatiebalk bovenaan, evenals de rij- en kolomconfiguratie waarmee de site is gebouwd. Dan hebben we nog een klein css-script dat de kleuren van de achtergrond en kopteksten regelt. Daarnaast hebben we gebruik gemaakt van een bibliotheek genaamd lightbox, zodat je op de foto's kunt klikken en ze verschijnen. De inhoud van de site bevat een Google-kaart, een gegevenstabel, een video van de auto in actie en een link naar deze pagina.

De google map is het meest interessant. De kaart wordt geladen via een Google API, waar een unieke API-sleutel wordt ingevoegd om te werken. De gegevens worden met een interval van 500 ms naar de kaart gestreamd. We hebben een functie gemaakt waarbij de laatste 100 datapunten in de database als markeringen worden weergegeven, zodat je kunt volgen waar de auto is geweest. Dit wordt gedaan door middel van een zogenaamde AJAX-aanroep.

De datasets in de GPS-datatabel worden op dezelfde manier opgevraagd. In de tabel ziet u de laatste 10 vermeldingen, in realtime bijgewerkt wanneer de GPS actief is. Met een interval van 500 ms halen we gegevens uit de database.

Code is hier te vinden: Github

Aanbevolen: