Inhaltsverzeichnis:

EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos - Gunook
EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos - Gunook

Video: EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos - Gunook

Video: EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos - Gunook
Video: Was ist eine Smart Factory? | Industrie 4.0 mit L-mobile 2024, November
Anonim
EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos
EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos
EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos
EAL - Industrie 4.0 GPS-Datenerfassung auf RC-Autos

In diesem Instructable werden wir darüber sprechen, wie wir ein GPS-Modul auf einem RC-Auto einrichten und die gesammelten Daten zur einfachen Überwachung auf einer Webseite veröffentlicht haben. Wir haben zuvor eine Anleitung dazu erstellt, wie wir unser RC-Auto hergestellt haben, das hier zu finden ist. Dies verwendet den gleichen Build, obwohl wir uns entschieden haben, die Ultraschallsensoren zu verschrotten und stattdessen das GPS-Modul zu verwenden. Im Projekt haben wir eine Datenbank eingerichtet, die die GPS-Daten enthält, und eine Webseite erstellt, auf der die Daten zu finden sind, sowie sie auf eine Karte angewendet, damit Sie sehen können, wo das Auto war. Besuchen Sie Joerha.dk, um die Webseite anzuzeigen.

Auf dem Flussdiagramm oben sehen Sie einen Überblick über die Technologien, die in diesem Projekt verwendet wurden. Um das Beste aus diesem Instructable herauszuholen, müssen Sie mit einigen, wenn nicht allen verwendeten Technologien vertraut sein. Es ist je nach Verwendung verlinkt. Es wird auch helfen, Github zu verstehen, da wir mit unseren Github-Repositorys verlinkt haben.

Liste der Dienstprogramme:

  • Github
  • Raspberry PI/Raspbian

    Python

  • Node.js

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

    Bootstrap

Schritt 1: Datenbankeinrichtung

Datenbankeinrichtung
Datenbankeinrichtung

In diesem Abschnitt werden wir darüber sprechen, wie wir das Datenbanksystem aufbauen, aus dem unsere GPS-Daten stammen. Die Datenbank ist gemäß dem obigen Bild in MySQL aufgebaut, wo wir zwei Tabellen haben - "Users" und "GPSEntries". In Benutzern haben wir "Id" als unseren Primärschlüssel. Es wird als eindeutige Kennung verwendet. „Name“ist der Name des aktuell angemeldeten Benutzers. „Apikey“ist der eindeutige Schlüssel, der dem Benutzer für den Zugriff auf die API gegeben wird. „Aktiv“soll prüfen, ob der Benutzer aktiv ist, wir können den Benutzer deaktivieren, damit er nicht auf die Datenbank zugreifen kann. „CreatedAt“und „UpdatedAt“werden durch den Prozess erstellt, mit dem wir die Datenbank erstellt haben.

In der Tabelle „GPSEntries“haben wir alle Attribute, die Daten vom GPS-Modul enthalten. „Zeit“ist die aktuelle Uhrzeit des GPS-Moduls, wir verwenden sie, um die Zeit der Buchung anzuzeigen. Dann haben wir die Position in Koordinaten, sowie „Geschwindigkeit“und „Kurs“. Wir haben auch viele Fehlerattribute, die anzeigen, ob die Daten vom GPS fehlerhaft sind, fx in den Koordinaten. Wir haben sie der Datenbank hinzugefügt, aber wir zeigen sie nicht auf der Webseite an. „UserId“ist ein Fremdschlüssel, der die „id“aus der Users-Tabelle enthält. Dies wird verwendet, um anzuzeigen, welcher Benutzer die Daten gepostet hat.

Schritt 2: API

API
API

In diesem Abschnitt werden wir über die API sprechen, die die Datenbank steuert und die Daten darin einfügt. Die Web-API wird mit Node.js erstellt, das Express.js und Sequalize.js verwendet.

Node.js wird verwendet, um JavaScript serverseitig auszuführen, während es normalerweise hauptsächlich für die clientseitige Skripterstellung auf einer Webseite verwendet wird.

Express.js ist das Framework, mit dem wir die API erstellt haben.

Sequalize.js wird verwendet, um die Verknüpfungen zwischen den GPS-Daten und den Datenbankattributen herzustellen. Dazu verwendet es eine Methode namens ORM (Object-Relational Mapping). Hier werden auch „CreatedAt“und „UpdatedAt“erstellt (in Schritt 1 gezeigt).

Die API kann unter api.joerha.dk verwendet werden. Fügen Sie dann /gps zur URL hinzu, die alle Daten in der Datenbank im JSON-Format anzeigt. Um zu steuern, wie viele Einträge Sie möchten, können Sie der URL /2 (Der Benutzer) und /x (Anzahl der Einträge) hinzufügen. Fx api.joerha.dk/gps/2/10 zeigt die 10 neuesten Einträge an. Ein Outtake der formatierten Daten ist im Bild oben zu sehen.

Code finden Sie hier: Github

Schritt 3: GPS/Python-Anwendung

GPS/Python-Anwendung
GPS/Python-Anwendung
GPS/Python-Anwendung
GPS/Python-Anwendung
GPS/Python-Anwendung
GPS/Python-Anwendung

In diesem Abschnitt werden wir über das Skript sprechen, das auf der Himbeere ausgeführt wird und die GPS-Daten sammelt und an die API sendet.

Um die Daten vom GPS zu sammeln, verwenden wir einen Daemon namens gpsd (Bild 1). Hier sammeln wir die Daten, die wir in die Datenbank einstellen, und bilden die Grundlage für unsere GPSEntries-Tabelle. Das Skript, das die Daten von gpsd abruft und an die API sendet, ist in Python geschrieben.

Die Anwendung initialisiert einen Thread, sodass sowohl gpsd als auch unser Programm gleichzeitig ausgeführt werden können. Die GPS-Daten werden kontinuierlich gestreamt, während das GPS aktiv ist (Bild 2).

Dann machen wir eine while-Schleife, die ihre Nutzlast kontinuierlich an die API mit den GPS-Daten sendet. Die Daten sind als JSON formatiert. Die Nutzlast besteht aus den Attributen, die in der GPSD zu sehen sind. Das.fix-Tag verhält sich wie eine Momentaufnahme der aktuellen Daten und sendet diese an die API. Dies erfolgt über request.post und verwendet die URL und den API-Schlüssel. Print (r.status_code) wird an den Benutzer ausgegeben, um zu wissen, ob die Daten richtig rübergekommen sind. Time.sleep (0.5) gibt an, wie oft die Daten gepostet werden (Bild 3)

Code finden Sie hier: Github

Schritt 4: Webseite für das Projekt

Webseite für das Projekt
Webseite für das Projekt

In diesem Abschnitt werden wir darüber sprechen, wie wir unsere Webseite erstellt haben, auf der die Daten und andere Informationen über das Projekt angezeigt werden. Die Site ist mit HTML, CSS und JS erstellt. Zu Beginn haben wir Bootstrap 4.0 verwendet, eine Bibliothek für HTML, CSS und JS. Es kommt mit vielen Funktionen, die Ihnen beim Aufbau Ihrer Website helfen. Wir haben es für die Navigationsleiste oben sowie für die Zeilen- und Spalteneinrichtung verwendet, mit der die Site erstellt wird. Dann haben wir ein weiteres kleines CSS-Skript, das die Farben des Hintergrunds und der Kopfzeilen steuert. Darüber hinaus haben wir eine Bibliothek namens Lightbox verwendet, sodass Sie auf die Bilder klicken können und sie erscheinen. Der Inhalt der Site enthält eine Google-Karte, eine Datentabelle, ein Video des Autos in Aktion und einen Link zu dieser Seite.

Am interessantesten ist die Google Map. Die Karte wird über eine Google-API geladen, in die ein eindeutiger API-Schlüssel eingefügt wird, damit sie funktioniert. Die Daten werden in einem Intervall von 500ms auf die Karte gestreamt. Wir haben eine Funktion erstellt, bei der die letzten 100 Datenpunkte in der Datenbank als Markierungen angezeigt werden, damit Sie verfolgen können, wo das Auto war. Dies geschieht über einen sogenannten AJAX-Aufruf.

Auf die gleiche Weise werden die Datensätze in der GPS-Datentabelle abgefragt. In der Tabelle sehen Sie die letzten 10 Einträge, die bei aktivem GPS in Echtzeit aktualisiert werden. Wir rufen Daten aus der Datenbank in einem Intervall von 500 ms ab.

Code finden Sie hier: Github

Empfohlen: