Inhaltsverzeichnis:
- Schritt 1: Dinge, die in diesem Projekt verwendet werden
- Schritt 2: Geschichte
- Schritt 3: Hardwareverbindung
- Schritt 4: Webkonfiguration
- Schritt 5: Softwareprogrammierung
- Schritt 6: Wie arbeite ich mit anderen Sensor Grove?
Video: Visualisierung von Verkehrsdaten mit Google Map - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Normalerweise wollen wir beim Radfahren verschiedene Daten aufzeichnen, diesmal haben wir neue Wio LTE verwendet, um sie zu verfolgen.
Schritt 1: Dinge, die in diesem Projekt verwendet werden
Hareware-Komponenten
- Wio LTE EU-Version v1.3- 4G, Cat.1, GNSS, Espruino-kompatibel
- Grove - Herzfrequenzsensor mit Ohrclip
- Grove - 16 x 2 LCD (Schwarz auf Gelb)
Software-Apps und Online-Dienste
- Arduino-IDE
- PubNub Publish/Subscribe-API
- Google Maps
Schritt 2: Geschichte
Schritt 3: Hardwareverbindung
Installieren Sie GPS- und LTE-Antennen in Wio LTE und schließen Sie Ihre SIM-Karte an. Schließen Sie den Ohrclip-Herzfrequenzsensor und das 16x2-LCD an den D20- und I2C-Port der Wio LTE an.
Sie können den Ohrclip-Herzfrequenzsensor durch andere Sensoren ersetzen, die Ihnen gefallen. Bitte beachten Sie das Ende dieses Artikels.
Schritt 4: Webkonfiguration
Teil 1: PubNub
Klicken Sie hier, um sich anzumelden oder ein PubNub-Konto zu registrieren. PubNub wird verwendet, um Echtzeitdaten an die Karte zu übertragen.
Öffnen Sie das Demo-Projekt im PubNub-Admin-Portal, Sie sehen einen Veröffentlichungsschlüssel und einen Abonnierschlüssel. Merken Sie sich diese für die Softwareprogrammierung.
Teil 2: Google-Karte
Bitte folgen Sie hier, um einen Google Map API-Schlüssel zu erhalten. Er wird auch in der Softwareprogrammierung verwendet.
Schritt 5: Softwareprogrammierung
Teil 1: Wio LTE
Da es keine PubNub-Bibliothek für Wio LTE gibt, können wir unsere Daten per HTTP-Anfrage senden, siehe PubNub-REST-API-Dokument.
Um eine HTTP-Verbindung über Ihre in Wio LTE eingesteckte SIM-Karte herzustellen, sollten Sie zuerst Ihren APN einstellen, wenn Sie das nicht wissen, wenden Sie sich bitte an Ihren Mobilfunkanbieter.
Legen Sie dann Ihren PubNub-Veröffentlichungsschlüssel, Ihren Abonnierungsschlüssel und Ihren Kanal fest. Der Kanal hier wird verwendet, um Herausgeber und Abonnenten zu unterscheiden. Zum Beispiel verwenden wir hier Channel bike, alle Abonnenten von Channel bike erhalten von uns veröffentlichte Nachrichten.
Die obigen Einstellungen haben wir nicht in die Klasse gepackt, damit Sie sie in bike.ino einfacher ändern können, können Sie diese Codes am Ende dieses Artikels herunterladen.
Teil 2: PubNub
Halten Sie die Boot0-Taste in Wio LTE gedrückt, verbinden Sie es über ein USB-Kabel mit Ihrem Computer, laden Sie das Programm in Arduino IDE hoch, drücken Sie die Reset-Taste in Wio LTE.
Wechseln Sie dann zu PubNub, klicken Sie im Demoprojekt auf Debug-Konsole, geben Sie den Namen Ihres Kanals in Standardkanal ein, klicken Sie auf Client hinzufügen.
Wenn in der Konsole [1, "Abonniert", "Fahrrad"] angezeigt wird, wurde der Abonnent erfolgreich hinzugefügt. Warten Sie eine Weile, dann werden Wio LTE-Daten in der Konsole angezeigt.
Teil 3: Google-Karte
ENO Maps sind Echtzeitkarten mit PubNub und MapBox, es kann auch für PubNub und Google Map verwendet werden, Sie können es von seinem GitHub herunterladen.
Sie können einfach ein Beispiel namens google-draw-line.html im Beispielordner verwenden, ändern Sie einfach den Publish Key, Subscribe Key, Channel und Google Key in den Zeilen 29, 30, 33 und 47.
HINWEIS: Bitte kommentieren Sie Zeile 42, sonst werden Simulationsdaten an Ihren PubNub gesendet.
Wenn Sie das Herzfrequenzdiagramm im unteren rechten Fenster anzeigen möchten, können Sie Chart.js verwenden, es kann von seiner Website heruntergeladen, in den Stammordner von ENO Maps gelegt und in den Kopf von google-draw-line.html eingefügt werden.
Und fügen Sie eine Leinwand in einem Div hinzu, um das Diagramm anzuzeigen:
Erstellen Sie dann zwei Arrays, um die Diagrammdaten zu behalten
// … var chartLabels = new Array(); var chartData = neues Array(); // …
Darunter werden chartLabels verwendet, um Standortdaten zu speichern, chartData wird verwendet, um Herzfrequenzdaten zu speichern. Wenn Nachrichten eingehen, senden Sie ihnen neue Daten und aktualisieren Sie das Diagramm.
// … var map = eon.map({ message: function(message, timetoken, channel) { // … chartLabels.push(obj2string(message[0].latlng)); chartData.push(message[0].data); var ctx = document.getElementById("chart").getContext('2d'); var chart = new Chart(ctx, { type: 'line', data: { labels: chartLabels, datasets: [{ label: " Herzfrequenz", Daten: chartData }] } }); // … } });
Alles erledigt. Versuchen Sie es beim nächsten Mal mit Ihrem Fahrrad zu nehmen.
Schritt 6: Wie arbeite ich mit anderen Sensor Grove?
Im Programm von Wio LTE können Sie eine oder mehrere benutzerdefinierte Daten verwenden, um sie in einem Diagramm anzuzeigen oder mehr zu tun. Der folgende Artikel zeigt, wie Sie das Programm ändern, um es zu erreichen.
Das erste, was Sie wissen müssen, ist, dass das JSON, das Sie in PubNub veröffentlichen möchten, URL-codiert sein sollte. Codiertes json ist in der BikeTracker-Klasse hartcodiert, es sieht so aus:
%%5b%%7b%%22latlng%%22%%3a%%5b%f%%2c%f%%5d%%2c%%22data%%22%%3a%d%%7d%%5d
Es ist also einfach, benutzerdefinierte Daten zu verwenden, oder Sie können URL-Codierungstools verwenden, um Ihren eigenen codierten Json zu erstellen, um mehr Daten aufzunehmen.
Dieses Mal versuchen wir I2C High Accracy Temp & Humi Grove zu verwenden, um Heart Rate Grove zu ersetzen. Da der LCD Grove auch I2C verwendet, verwenden wir einen I2C-Hub, um Temp & Humi Grove und LCD Grove mit Wio LTE zu verbinden.
Fügen Sie dann die Head-Datei in BickTracker.h ein und fügen Sie der BikeTracker-Klasse eine Variable und eine Methode hinzu, um die Temperatur zu speichern und zu messen.
/// BikeTracker.h
// … #include "Seeed_SHT35.h" Klasse application::BikeTracker: application::interface::IApplication { // … geschützt: // … SHT35 _sht35; float_temperatur; // … void MeasureTemperature(void); } /// BikeTracker.cpp // … // BikeTracker::BikeTracker(void) //: _ethernet(Ethernet()), _gnss(GNSS()) { } // 21 ist die SCL-Pinnummer BikeTracker::BikeTracker(void): _ethernet(Ethernet()), _gnss(GNSS()), _sht35(SHT35(21)) { } // … void BikeTracker::measureTemperature(void) { float temperature, feuchtigkeit; if (_sht35.read_meas_data_single_shot(HIGH_REP_WITH_STRCH, &temperature, &humidity) == NO_ERROR) {_temperature = temperature; } } // …
Wenn Sie möchten, können Sie die LCD-Anzeige in der Loop()-Methode ändern:
// sprintf(line2, "Herzfrequenz: %d", _heartRate);
Temperatur messen(); sprintf(line2, "Temp: %f", _temperature);
Aber wie kann man es in PubNub veröffentlichen? Sie müssen die Parameter der codierten json- und sprintf()-Funktion in der PublishToPubNub()-Methode ändern. Lassen Sie es so aussehen:
// sprintf(cmd, GET /publish/%s/%s/0/%s/0/%%5b%%7b%%22latlng%%22%%3a%%5b%f%%2c%f% %5d%%2c%%22data%%22%%3a%d%%7d%%5d?store=0
// _publishKey, _subscribeKey, _channel, _latitude, _longitude, _heartRate); sprintf(cmd, "GET /publish/%s/%s/0/%s/0/%%5b%%7b%%22latlng%%22%%3a%%5b%f%%2c%f%%5d %%2c%%22data%%22%%3a%f%%7d%%5d?store=0 HTTP/1.0\n\r\n\r", _publishKey, _subscribeKey, _channel, _latitude, _longitude, _temperature);
Dann können Sie die Temperatur in der PubNub-Debug-Konsole sehen.
Empfohlen:
Löten von oberflächenmontierbaren Komponenten - Lötgrundlagen: 9 Schritte (mit Bildern)
Löten von oberflächenmontierbaren Komponenten | Lötgrundlagen: Bisher habe ich in meiner Lötgrundlagen-Serie genug Grundlagen zum Löten besprochen, damit Sie mit dem Üben beginnen können. In diesem Instructable, was ich besprechen werde, ist etwas fortgeschrittener, aber es sind einige der Grundlagen zum Löten von Surface Mount Compo
Anhängen von Google Kalender an Google Sites: 5 Schritte
Anhängen von Google-Kalendern an Google Sites: Dies ist eine Anleitung, die Ihnen beibringt, wie Sie Google-Kalender erstellen, verwenden und bearbeiten und sie dann mithilfe der Freigabefunktionen an eine Google-Site anhängen. Dies kann für viele Menschen von Vorteil sein, da Google Sites verwendet werden kann, um i
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant - IOT - Blynk - IFTTT: 8 Schritte
Steuern von Haushaltsgeräten mit Node-MCU und Google Assistant | IOT | Blynk | IFTTT: Ein einfaches Projekt zur Steuerung von Geräten mit Google Assistant: Warnung: Der Umgang mit Netzstrom kann gefährlich sein. Mit äußerster Sorgfalt behandeln. Stellen Sie einen professionellen Elektriker ein, während Sie mit offenen Stromkreisen arbeiten. Ich übernehme keine Verantwortung für die da
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
So erstellen Sie eine MIDI-Map für den BCD3000 in Traktor Pro: 6 Schritte
So erstellen Sie eine MIDI-Map für den BCD3000 in Traktor Pro: Dies führt Sie Schritt für Schritt durch die Erstellung Ihrer eigenen benutzerdefinierten tsi-MIDI-Maps in Traktor Pro für Behringer's DEEJAY BCD3000