Inhaltsverzeichnis:
- Schritt 1: Materialien beschaffen
- Schritt 2: Einrichten der Geräte
- Schritt 3: Codieren des Arduino zum Extrahieren von Daten
- Schritt 4: Verarbeitung zum Zuhören verwenden
- Schritt 5: Anzeigen von Daten in Tableau Public
- Schritt 6: Verfeinern der Viz
Video: Der Path Mapper - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
In diesem IoT-Projekt verdrahten wir ein NEO-6M (GPS-Modul), um Standortdaten über den Arduino an eine Excel-Tabelle zu liefern, die auf dem Computer gespeichert wird. Anschließend erstellen wir mit Tableau Public eine Datenvisualisierung dieser Daten, um den eingeschlagenen Weg abzubilden. Dies ist zwar eine Möglichkeit zum Sammeln und Präsentieren von Echtzeitdaten in einer hochkorrelierten Datenvisualisierung, dieser Prozess kann jedoch auch auf andere datengesteuerte Projekte angewendet werden.
Schritt 1: Materialien beschaffen
Für dieses Projekt benötigen Sie Folgendes:
- NEO-6M GPS-Modul
- Arduino Uno
- Männliche / männliche Überbrückungsdrähte (Sie benötigen 4 Drähte)
- USB 2.0 Kabel Typ A auf B
- Computer mit diesen Programmen: Tableau Public, Arduino IDE (mit TinyGPS++) und Processing
Schritt 2: Einrichten der Geräte
Wir müssen zuerst das GPS-Modul mit dem Arduino UNO einrichten, damit der Arduino uns eine Schnittstelle zur Anzeige der Daten zur Verfügung stellt. Jeder der vier an den NEO-6M angeschlossenen Drähte entspricht bestimmten Ports. Wenn Ihr NEO-6M nicht mit den Drähten geliefert wird, müssen Sie es direkt mit Überbrückungsdrähten verdrahten. Im obigen Diagramm entspricht Rot der Stromversorgung (VCC), Schwarz der Masse (GND), Gelb dem Senden von Daten (TxD) und Weiß dem Empfangen von Daten (RxD). Wir verbinden diese Drähte mit männlichen / männlichen Überbrückungsdrähten, damit wir sie mit dem Arduino verbinden können. Nach dem obigen Diagramm verbinden wir das Erdungskabel mit dem digitalen GND-Pin des Arduino, das TxD-Kabel mit 4, das RxD-Kabel mit ~ 3 und das VCC-Kabel mit 5 V für Spannung. In einem zukünftigen Schritt müssen wir TxD und RxD mit den richtigen Zahlen in der SoftwareSerial definieren.
Sobald die beiden Geräte miteinander verkabelt sind, müssen wir eine Stromquelle bereitstellen. Schließen Sie das USB 2.0-Kabel an Ihren Laptop an und das Licht am NEO-6M sollte aufleuchten.
Schritt 3: Codieren des Arduino zum Extrahieren von Daten
Nachdem wir nun die Geräte eingerichtet haben, um GPS-Daten von den Satelliten zu sammeln, schreiben wir Code, um die gewünschten GPS-Daten zu analysieren. Angenommen, Sie haben ein Signal empfangen (mein GPS-Modul würde blau blinken), druckt der NEO-6M standardmäßig Rohdaten in Form von NMEA-Nachrichten auf dem seriellen Monitor aus, die etwa wie $GP aussehen, gefolgt von weiteren Buchstaben und einer Reihe von Zahlen. Das obige Bild gibt eine allgemeine Vorstellung davon, was auf Ihrem seriellen Monitor angezeigt werden sollte, sobald der grundlegende Arduino-Code eingegeben wurde.
Um den Code zu erklären, den ich angehängt habe (oder wenn Sie versuchen möchten, ihn selbst zu codieren), müssen Sie zuerst sowohl die SoftwareSerial- als auch die TinyGPS++-Bibliothek einschließen (für letztere Sketch> Einschließen>. ZIP-Bibliothek hinzufügen). SoftwareSerial ermöglicht uns eine serielle Verbindung; TinyGPS++ bietet uns ein einfaches Werkzeug, um die gezielten Informationen in lesbarer Form auszudrucken. Stellen Sie sicher, dass Sie das SoftwareSerial-Objekt mit den entsprechenden Pins auf dem Arduino initialisieren. In der Setup-Funktion verwenden wir 9600 als Baudrate.
Zu diesem Zweck drucken wir nur sieben Arten von Daten in der Schleifenfunktion aus: Breite (Grad), Länge (Grad), Geschwindigkeit (km), Kurs (Grad), Höhe (km), Anzahl der Satelliten in verwenden und hdop. Sie können die Syntax zum Ausdrucken dieser Informationen in der Arduino-Bibliothek durchsuchen. Die allgemeine Form ist Serial.print(). Um beispielsweise den Längengrad auszudrucken, geben wir Serial.print(gps.location.lng(), 6) ein. Die 6 stellt dar, wie viele Stellen wir rechts vom Dezimalpunkt haben möchten.
Mein Code enthält zusätzliche Zeichen, um im nächsten Schritt eine einfach zu formatierende Regex zu erhalten. Wenn Sie bei diesem Schritt jedoch aufhören möchten, können Sie die Daten zur besseren Anzeige auf dem seriellen Monitor anders formatieren.
Schritt 4: Verarbeitung zum Zuhören verwenden
Während wir Code für die Arduino IDE eingerichtet haben, haben wir ein Problem beim Speichern dieser Daten. Derzeit können wir die Daten nur auf dem seriellen Monitor anzeigen, während wir sie sammeln. Es gibt viele Möglichkeiten, diese Daten zu protokollieren, aber ich habe mich hauptsächlich für Processing entschieden, weil seine Schnittstelle die Arduino-IDE nachahmt und Java verwendet, eine Sprache, mit der ich vertraut bin (beachten Sie, dass Sie das Arduino-Board auch mit Processing steuern können, wenn Sie Firmata herunterladen). Die Verarbeitung hört den mit dem Arduino verbundenen Port ab und hat die Möglichkeit, die auf dem seriellen Monitor gelesenen Daten zu manipulieren. Um den Namen dieses Ports zu finden, rufen Sie Ihre Arduino IDE-Datei auf und überprüfen Sie Tools > Port.
Ich habe den Verarbeitungscode bereitgestellt, aber hier ist eine kurze Übersicht über die Funktionsweise des Codes.
Stellen Sie vor der Einrichtungsfunktion sicher, dass Sie Variablen für den Port, die resultierende Tabelle, die Zeile, mit der wir arbeiten werden, und den Namen der Datei haben. Dann gibt es in der Setup-Funktion Parameter zum Einstellen der Größe Ihres Ausführungsfensters, aber diese Zahlen haben keinen Einfluss auf unsere Funktionalität (stellen Sie sie beispielsweise auf (500, 500) ein). Verwenden Sie beim Initialisieren des Ports den Namen des Ports im String-Format und eine Baudrate von 9600. Erstellen Sie abschließend die neun Spalten (für die sieben GPS-Kategorien, Uhrzeit und Datum), um die Tabelle zu initialisieren.
In der Draw-Funktion verwenden wir die eingebauten Datums- und Zeitfunktionen, um zu verfolgen, wann jeder Satz von GPS-Daten extrahiert wird. Um nun den Datenstrom vom Arduino zu lesen und unter die entsprechenden Header mit der richtigen Uhrzeit und dem richtigen Datum zu setzen, verwenden wir reguläre Ausdrücke.
Ich verwende Regex, um die genauen Daten mit der matchAll-Funktion zu analysieren, die nach einem Ausdruck zwischen dem Gleichheitszeichen und dem Semikolon (den Trennzeichen, die ich in meinen Arduino-Code eingefügt habe) sucht. Dies platziert anschließend alle übereinstimmenden Tags, die numerischen Daten, in einem zweidimensionalen Array. Wir können dann diese Array-Indizes aufrufen, um sie unter die Überschriften des Excel-Blatts zu stellen.
Um die neue.csv-Datei zu speichern, verwenden wir einen Tastendruck, um das Ausführen-Fenster zu schließen. Je länger Sie mit dem Drücken einer Taste warten, desto mehr Daten sammeln Sie. In Anlehnung an eine andere Anleitung habe ich mich auch entschieden, die Datei mit Datum und Uhrzeit als Dateinamen im Datenordner zu speichern.
Schritt 5: Anzeigen von Daten in Tableau Public
Der letzte Schritt beinhaltet eine Datenvisualisierung. Es gibt viele Programme zum Erstellen und Anzeigen von Datenvisualisierungen, z. B. Plotly, aber für dieses Projekt verwenden wir Tableau. Öffnen Sie Tableau Public und öffnen Sie die gespeicherte Excel-Datei als Textdatei. Um ein Arbeitsblatt zu erstellen, klicken Sie unten links auf Blatt 1.
Da wir mit GPS-Daten arbeiten, verwenden wir eine Karte, um unsere Informationen darzustellen. In der linken Spalte, in der Measures steht, ziehen wir Längengrad in Spalten und Breitengrad in Zeilen oben. Tableau verwendet für beide Kennzahlen standardmäßig AVG, klicken Sie also auf das Dropdown-Menü neben den Begriffen und ändern Sie beide in Dimension. Jetzt sollte auf der Karte ein Pfad mit den erfassten Breiten- und Längengradwerten angezeigt werden.
Um Ihre Daten auf Fehler zu bereinigen (was auch vor dem Öffnen von Tableau möglich ist), können Sie einige Ortskreise ausschließen, indem Sie darauf klicken und die Option auswählen. Mein GPS-Modul ist nicht 100% genau, da einige Teile meines Weges nicht geortet wurden, aber der allgemeine Weg wurde aufgezeichnet.
Schritt 6: Verfeinern der Viz
Der letzte Teil besteht darin, diese Daten lesbarer zu machen. Wenn Sie einen Straßenkontext wünschen, können Sie zu Karte > Kartenebene > Straßen und Autobahnen gehen. Fühlen Sie sich frei, mit anderen Marken zu experimentieren. Ich habe Geschwindigkeit über Farbe gezogen, um zu zeigen, wie die Intensität der Farbe mit zunehmender Geschwindigkeit zunimmt. Ich habe auch Detail anstelle von Label für Course verwendet, da Label die Zahlen auf der Karte anzeigt, während ich nur wollte, dass Informationen angezeigt werden, wenn Sie mit der Maus über die Standortpunkte fahren.
Nachdem Sie nun den gesamten Prozess des Sammelns von Daten und der Darstellung Ihrer Daten in einer Datenvisualisierung erlebt haben, können Sie dies auf andere Projekte anwenden!
von Pingdi Huang, Sommer 2018
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
ESP-01 Programmier-Hack - der Einfache :): 6 Schritte
ESP-01 Programmierer Hack - der Einfache :): Hallo ESPer, In diesem anweisbaren zeige ich Ihnen einen einfachen Hack, um einen Programmierer für ESP-01 / ESP8266-01 / ES-01-Modul zu machen. Die meisten von uns haben ein Arduino-Board oder FTDI USB-TTL-Geräte als Programmierer für dieses Modul verwendet. Beide Methoden funktionieren gut. Aber t
Der Sanity Check: 5 Schritte (mit Bildern)
Der Sanity Check: Bei diesem Projekt dreht sich alles um die Gesundheit oder darum, dass er regelmäßig überprüft wird. Der beste Weg, dies zu erreichen, besteht darin, eine Maske zu bauen, deren Augen zufällig rot leuchten. Oft genug, damit es auffällt, aber spärlich genug, um die Leute zweifeln zu lassen
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir