LTE Arduino GPS Tracker + IoT-Dashboard (Teil 1) - Gunook

LTE Arduino GPS Tracker + IoT-Dashboard (Teil 1) - Gunook

Inhaltsverzeichnis:

Anonim

Einführung

Was ist los Jungs! Dieses Instructable ist eine Fortsetzung meines ersten Instructable zur Verwendung des Botletics LTE / NB-IoT-Shields für Arduino. Wenn Sie dies noch nicht getan haben, lesen Sie es bitte, um einen guten Überblick über die Verwendung des Shields und dessen Funktionsweise zu erhalten. In diesem Tutorial werde ich mich auf die IoT-Datenprotokollierung und insbesondere auf die GPS- und Temperaturverfolgung konzentrieren und Ihnen den gesamten Code und die Anleitung liefern, die Sie benötigen, um loszulegen und zu testen!

Dieses Instructable konzentriert sich hauptsächlich auf das LTE-Schutzschild, das ich persönlich entworfen und gebaut habe, aber alles hier (einschließlich der Github Arduino-Bibliothek) sollte auf SIMCom 2G- und 3G-Modulen wie dem SIM800 / 808/900/5320 funktionieren, da es nur ein Update ist Version der Adafruit FONA Bibliothek. Unabhängig von der Hardware ist das Konzept genau das gleiche und Sie können viele coole Sachen damit machen, einschließlich Sensordatenerfassung, Fernwetterüberwachung, Auto-Diebstahl-Karma-GPS-Tracking, etc … also lesen Sie weiter!

Zubehör:

Schritt 1: Teile sammeln

Die Liste ist die gleiche wie in meinem ersten Tutorial und ist wirklich einfach!

  • Arduino Uno, Mega oder Leonardo. Alternativ können Sie auch einen anderen 3,3-V- oder 5-V-Mikrocontroller verwenden, die Pins müssen jedoch extern verdrahtet werden.
  • Botletics SIM7000 Shield Kit (mit Abschirmung, doppelter LTE / GPS-uFL-Antenne und gestapelten Buchsenleisten). Stellen Sie sicher, dass Sie dieses Tutorial durchlaufen, um eine geeignete Version auszuwählen!
  • Hologramm-SIM-Karte. Die erste SIM-Karte ("Entwickler" -SIM-Karte) ist völlig kostenlos und enthält 1 MB Daten pro Monat! In den USA sind Sie höchstwahrscheinlich im Verizon-Netzwerk, wenn Sie die Hologramm-SIM-Karte verwenden. Sie können es auch neben dem Botletics-Schild aufheben, wenn dies noch praktischer ist.
  • 3,7 V LiPo-Akku (1000 mAh oder mehr empfohlen).
  • USB-Kabel, um Ihr Arduino zu programmieren oder es mit Strom zu versorgen.

Für den GPS-Tracking-Test!

  • Sie können einen Auto-USB-Adapter verwenden, um Ihren Arduino mit Strom zu versorgen, während Sie das Schild unterwegs testen.
  • Alternativ können Sie einen Akku (7-12 V) verwenden, um den Arduino über die VIN- und GND-Pins mit Strom zu versorgen.

Schritt 2: Physikalische Montage

Nachdem Sie nun alle Ihre Teile haben, folgt eine kurze Zusammenfassung dessen, was Sie tun müssen, um Ihre Hardware einzurichten:

  • Löten Sie die stapelbaren Buchsenleisten auf die Abschirmung. In diesem Tutorial erfahren Sie, wie das geht.
  • Stecken Sie den Schild in den Arduino und achten Sie darauf, dass alle Stifte in einer Linie liegen, damit Sie sie nicht beschädigen!
  • Legen Sie die SIM-Karte wie in der Abbildung gezeigt ein. Die Metallkontakte zeigen nach unten und notieren die Position der Kerbe in der Ecke.
  • Stecken Sie den LiPo-Akku in den JST-Anschluss an der Abschirmung
  • Stecken Sie Ihren Arduino mit einem USB-Kabel in Ihren Computer. Möglicherweise bemerken Sie, dass die grüne Power-LED des Schilds nicht aufleuchtet. Das ist völlig normal, da der PWRKEY-Pin des Shields zum Einschalten ein wenig auf LOW geschaltet werden muss. Die Beispiel-Arduino-Skizze im folgenden Abschnitt wird das für Sie erledigen!
  • Befestigen Sie die duale LTE / GPS-Antenne an den uFL-Anschlüssen am rechten Rand des Schilds. Beachten Sie, dass sich die Drähte kreuzen. Stecken Sie also nicht die falschen ein!
  • Sie sind bereit für die Software!

Schritt 3: Arduino-Setup und Gerätetests

Arduino IDE Setup

Wenn Sie dies noch nicht getan haben, lesen Sie bitte die Schritte "Arduino IDE Setup" und "Arduino Example" im Hauptprodukt Instructable, um sicherzustellen, dass Ihr Board ordnungsgemäß funktioniert. In diesen Anweisungen müssen Sie die Bibliothek auf der Github-Seite herunterladen und den Beispielcode "LTE_Demo" öffnen. Nachdem Sie diese Anweisungen befolgt haben, sollten Sie die Netzwerkverbindung, das GPS und die Posting-Daten auf dweet.io getestet haben.

IoT-Beispielskizze

Nachdem Sie die Kernfunktionen Ihres Schildes getestet haben, laden Sie die Skizze "IoT_Example" in Arduino IDE. Sie finden es auch hier auf Github. Laden Sie diesen Code auf Ihr Arduino und öffnen Sie den seriellen Monitor. Sie sollten sehen, dass das Arduino das SIM7000-Modul findet, eine Verbindung zum Mobilfunknetz herstellt, GPS aktiviert und weitere Versuche unternimmt, bis eine Standortbestimmung erfolgt ist, und die Daten auf dweet.io senden. Dies sollte alles ohne Änderung der Codezeile funktionieren, vorausgesetzt, Sie verwenden das LTE-Schutzschild und die Hologramm-SIM-Karte.

Standardmäßig wird in der folgenden Zeile die Abtastrate definiert (also die Verzögerung zwischen den Beiträgen).

#define samplingRate 30 // Die Zeit zwischen Beiträgen in Sekunden

Wenn diese Zeile unkommentiert bleibt, sendet der Arduino Daten, verzögert 30s, sendet Daten erneut, wiederholt usw. Während der 30s-Verzögerung können Sie Dinge wie den Arduino in den Energiesparmodus versetzen und solche Dinge mögen, aber beibehalten Dinge einfach Ich werde nur die delay () - Funktion verwenden, um den Vorgang anzuhalten. Wenn Sie diese Zeile kommentieren, sendet der Arduino Daten und wechselt dann auf unbestimmte Zeit direkt in den Energiesparmodus, bis Sie die Rücksetztaste auf Ihrem Arduino drücken. Dies ist nützlich, wenn Sie etwas testen und Ihre wertvollen freien Daten nicht brennen möchten (obwohl ehrlich gesagt jeder Beitrag praktisch nichts verwendet) oder wenn Sie externe Schaltkreise haben, um den Arduino zurückzusetzen (555-Timer - RTC-Interrupt - Beschleunigungsmesser-Interrupt - Temperatursensor) unterbrechen? Denken Sie über den Tellerrand!). Tatsächlich zeige ich im Tutorial zum Burgalert 7000, wie Sie mit einem PIR-Bewegungsmelder den Mikrocontroller aufwecken können.

In der nächsten Zeile wird festgelegt, ob der Schild nach dem Posten der Daten ausgeschaltet wird oder eingeschaltet bleibt. Sie können sich für die erstere Option entscheiden, indem Sie die Zeile auskommentieren, wenn Sie nur ab und zu abtasten. Wenn Sie jedoch eine relativ hohe Abtastrate haben, möchten Sie die Zeile kommentiert lassen, damit der Schirm eingeschaltet bleibt und nicht zum erneuten Initialisieren, erneuten Aktivieren von GPRS und GPS usw. Wenn das Schild nicht entfernt wird, kann es extrem schnell posten!

// # turnOffShield definieren // Schild nach dem Posten von Daten ausschalten

Beachten Sie auch, dass in diesem Beispiel die modulspezifische und global eindeutige IMEI-Nummer des SIM7000 automatisch abgerufen und als Geräte-ID (oder "Name", wenn Sie dies vorziehen) verwendet wird, um das Gerät zu identifizieren, wenn Daten an dweet.io gesendet werden. Du kannst das ändern, wenn du willst, also hätte ich gedacht, ich würde es dich nur wissen lassen:)

Um zu überprüfen, ob Ihre Daten tatsächlich an dweet.io gesendet werden, geben Sie einfach die entsprechenden Informationen ein und kopieren / fügen Sie die URL in einen beliebigen Browser ein:

dweet.io/get/latest/dweet/for/{deviceID}

Dabei sollte {deviceID} durch die IMEI-Nummer ersetzt werden, die am Anfang auf dem seriellen Monitor ausgegeben wird, unmittelbar nachdem der Arduino sie gefunden hat. Nach Eingabe dieser URL in Ihrem Browser sollte eine JSON-Antwort wie die folgende angezeigt werden:

{"this": "succeeded", "by": "getting", "the": "dweets", "with": {"thing": "112233445566778", "created": "2017-12-28T23: 32: 39.803Z, Inhalt: {Lat: 11.223344, Long: - 55.667788, Geschwindigkeit: 10, Kopf: 75, Alt: 330.7, Temp: 21.2, Batt ": 3630}}}

Wenn Sie den "Inhalt" betrachten, sollten Sie den Breitengrad, den Längengrad Ihres Standorts, Ihre Geschwindigkeit (in Kilometern pro Stunde), den Richtungskurs (Grad, wobei 0 Grad Nord ist), die Höhe (Meter), die Temperatur (* C, aber das Gefühl sehen frei in den Code umwandeln), und die Versorgungsspannung in Millivolt (das ist VBAT, die Spannung der Batterie). Weitere Informationen zum NMEA-Datenstring finden Sie im SIM7000 AT-Befehlshandbuch auf Seite 149.

Sobald Sie sicher sind, dass Ihr Setup erfolgreich Daten an dweet sendet, richten wir das Dashboard so ein, dass alle unsere Daten auf einer netten Oberfläche angezeigt werden.

Schritt 4: Freeboard.io Setup

Für dieses Tutorial verwenden wir freeboard.io, ein wirklich cooles IoT-Dashboard, das sich mit zahlreichen Cloud-Plattformen wie PubNub und dweet sowie anderen Funktionen wie JSON und MQTT verbinden lässt. Wie Sie wahrscheinlich vermutet haben, werden wir auch dweet.io verwenden, das im Beispielcode aus dem vorherigen Abschnitt verwendet wird. Wichtig ist, dass das Ziehen von Fenstern in freeboard.io in Chrome nicht funktioniert. Verwenden Sie stattdessen Firebox oder Microsoft Edge. Wenn Sie dies nicht tun, kann es ein echter "Bereich" sein, um die Elemente auf Ihrem Bildschirm neu anzuordnen!

Konto- und Geräte-Setup

  • Als Erstes müssen Sie ein Konto erstellen, indem Sie auf der freeboard.io-Startseite auf die rote Schaltfläche "START NOW" klicken, Anmeldeinformationen eingeben und auf "Mein Konto erstellen" klicken. Sie erhalten dann eine E-Mail-Benachrichtigung, in der Ihr neues Konto bestätigt wird.
  • Klicken Sie nun oben rechts auf der Startseite auf "Anmelden". Nach der Anmeldung sollten Sie Ihre "Freeboards" sehen, die nur Dashboards sind, die Sie für Ihre Projekte eingerichtet haben. Wenn das Konto neu ist, wird hier natürlich nichts angezeigt. Geben Sie einfach einen neuen Projektnamen ein und klicken Sie oben rechts auf "Neu erstellen". Dadurch gelangen Sie zu einem leeren Dashboard, in dem Sie die Benutzeroberfläche nach Ihren Wünschen einrichten können. In freeboard können Sie verschiedene "Fenster" einrichten, und jedes Fenster kann ein einzelnes oder mehrere "Widgets" enthalten, bei denen es sich um Diagramme, Karten, Messgeräte usw. handelt, die Ihre Daten auf irgendeine Weise anzeigen.
  • Das erste, was wir jetzt tun müssen, ist das Einrichten der eigentlichen Datenquelle, die Ihr Arduino + LTE-Schild ist. Klicken Sie dazu oben rechts unter "Datenquellen" auf "HINZUFÜGEN". Wählen Sie dann "Dweet.io" und geben Sie einen beliebigen Namen in das Feld "Name" ein. Stellen Sie jedoch sicher, dass Sie in das Feld "Thing Name" die IMEI-Nummer des Schildes anstelle eines beliebigen Namens eingeben, da Freeboard diese verwendet, um Daten von Dweet abzurufen.
  • Nachdem Sie auf "Speichern" geklickt haben, sollte Ihr Gerät unter "Datenquellen" sowie beim letzten Senden von Daten an den Tweet angezeigt werden. Sie können auch auf die Schaltfläche "Aktualisieren" klicken, um nach den neuesten Werten zu suchen. Das Freeboard wird jedoch automatisch aktualisiert, sodass Sie diese Schaltfläche normalerweise nicht verwenden müssen.

Dashboard-Setup

Lassen Sie uns nun einen Blick darauf werfen, wie Sie die eigentlichen Schnickschnack einrichten, die Sie auf Ihrem Bildschirm sehen möchten!

  • Um einen Bereich hinzuzufügen, klicken Sie oben links auf die Schaltfläche "PANE HINZUFÜGEN". Daraufhin wird ein kleines Fenster auf Ihrem Bildschirm angezeigt. Es gibt hier jedoch noch nichts, da wir keine Widgets hinzugefügt haben!
  • Um ein Widget hinzuzufügen, klicken Sie auf das kleine "+" im Fenster. Dadurch wird ein Dropdown-Menü mit verschiedenen Widget-Optionen angezeigt. Da wir GPS-Tracking durchführen, wählen wir das Widget "Google Map" aus. Sie sollten dann zwei Felder sehen, den Breitengrad und den Längengrad. Um diese richtig ausfüllen zu können, muss Ihr Gerät bereits auf dweet gepostet haben. Vorausgesetzt, Sie können auf "+ Datenquelle" klicken, auf die Datenquelle (den "SIM7000 GPS Tracker") klicken und dann auf "lat" klicken. Dies ist der Variablenname, den das Schild beim Posten auf Tweet verwendet. Wiederholen Sie den Vorgang für das Längengradfeld und klicken Sie auf den Schieberegler unten, wenn die Karte Linien zwischen Datenpunkten zeichnen soll, um Ihre Position zu markieren.
  • Jetzt sollten Sie eine kleine Karte Ihres ungefähren Standorts sehen! Um zu testen, ob die Karte funktioniert, ändern Sie Ihr aktuelles GPS-Lat / Long-Format in ein etwas anderes, indem Sie beispielsweise die erste Stelle nach dem Dezimalpunkt der Lat / Long-Werte in der Dweet-URL ändern, die auf dem seriellen Monitor in gedruckt wurde Arduino IDE, wenn der Schild Daten veröffentlicht. Kopieren Sie die URL, fügen Sie sie ein und führen Sie sie in Ihrem Browser aus.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

  • Wechseln Sie nun zurück zu Freeboard und Sie sollten sehen, dass es Ihre optimierte Position grafisch darstellt und eine orange Linie zwischen den Punkten zeichnet! Coole Sachen, was? Ich glaube, Sie bekommen das Bild, dass unser GPS-Tracker Standortdaten an Dweet sendet, damit Sie diese in Echtzeit oder nach dem Ende Ihres Abenteuers auf dem Freibord sehen können

Extras

Da unser kleiner GPS-Tracker nicht nur Lat / Long-Daten, sondern auch Höhe, Geschwindigkeit, Kurs und Temperatur sendet, sollten wir ein paar weitere Widgets hinzufügen, um unser Dashboard bunter zu gestalten!

  • Beginnen wir mit dem Hinzufügen eines neuen Bereichs, und klicken Sie zum Hinzufügen eines Messgeräts im neuen Bereich auf die Schaltfläche "+" im Bereich und wählen Sie "Messgerät" aus. Verwenden Sie wie zuvor die Datenquelle und wählen Sie "Geschwindigkeit" als Daten, die für dieses Messgerät abgerufen werden sollen. Sie sollten dann eine schöne Anzeige auf Ihrem Armaturenbrett sehen!
  • Wiederholen Sie dies für die Höhen- und Temperaturwerte.
  • Fügen Sie für die Überschrift stattdessen einen "Zeiger" hinzu. Dies ist im Wesentlichen ein Kompass, da er bei 0 Grad nach oben (Norden) zeigt und sich bei positiven Kursänderungen im Uhrzeigersinn dreht. Perfecto!
  • Um die Größe des Fensters zu ändern, bewegen Sie den Mauszeiger über das Fenster, in dem sich die Karte befindet. Oben rechts sollte ein kleines Schraubenschlüsselsymbol angezeigt werden. Klicken Sie darauf und geben Sie einen Titel für das Fenster ein und geben Sie "2" unter "Spalten" ein, um die Breite des Fensters zu vergrößern.
  • Um die Position der Fenster zu ändern, ziehen Sie sie einfach herum! Sie können auch experimentieren, indem Sie eine "Sparkline" hinzufügen, die im Grunde genommen nur ein Liniendiagramm ist, sodass Sie nicht nur die neuesten Daten, sondern auch historische Daten sehen können.

Viel Spaß und stelle alles so ein, wie es dir gefällt, denn wir sind bereit für eine Exkursion!

Schritt 5: Testen

Um Ihr Setup zu testen, würde ich empfehlen, die Abtastzeit auf einen niedrigeren Wert wie 10-20s einzustellen, damit Sie Ihre Reise mit höherer Auflösung erfassen können. Ich würde auch die Variable "turnOffShield" auskommentieren, damit der Schild nicht in den Ruhezustand wechselt. Dies ermöglicht es ihm, Daten schnell hintereinander zu posten.

Nachdem Sie den Code auf Ihren Arduino hochgeladen haben, erhalten Sie entweder einen Akku (7-12 V), um den Arduino mit Strom zu versorgen, oder schließen Sie den Arduino einfach mit einem Auto-USB-Adapter an. Sie benötigen außerdem einen 3,7-V-LiPo-Akku, der wie bereits erwähnt in die Abschirmung eingesteckt ist. Das im obigen Bild gezeigte Schild ist eine alte Version und hatte keine LiPo-Batterieunterstützung, wird aber jetzt für alle neueren Versionen benötigt.

Öffnen Sie als nächstes irgendwo das Freibord, damit Sie bei der Rückkehr die Ergebnisse sehen können! Sobald Sie den Arduino angeschlossen haben, können Sie loslegen! Fahren Sie los, holen Sie sich Kaffee, kehren Sie nach Hause zurück, und Sie sollten die Daten auf dem Freibord sehen. Wenn Sie wirklich wollen (ich empfehle dies nicht während der Fahrt …), können Sie die Freiborddaten auf Ihrem Telefon in Echtzeit anzeigen, während Ihr Freund das Fahrzeug fährt. Lustige Sachen!

Schritt 6: Ergebnisse

Für diesen Test gingen mein Vater und ich zu Trader Joe's (omnomnomnom …), um ein paar Hühnertrommeln zu holen, und wir sammelten einige ziemlich genaue Daten. Ich hatte das Gerät alle 10s Daten senden lassen und die maximale Geschwindigkeit von der Fahrt war ungefähr 92 km / h (57 Meilen pro Stunde), was ziemlich genau ist, weil wir den Tachometer die ganze Zeit im Auge behalten haben. Das LTE-Shield macht seine Arbeit auf jeden Fall ganz gut und sendet Daten sehr schnell in die Cloud. So weit, ist es gut!

Die weniger gute Nachricht ist jedoch, dass das Karten-Widget auf dem Freibord nicht so gut ist, wie ich ursprünglich gedacht hatte. Sie können die Position Ihrer Maus nicht verschieben und sie bleibt auf der letzten Position zentriert. Dies ist ideal für Dinge wie einen Auto-GPS-Tracker, aber nicht, wenn Sie eine abgeschlossene Reise mit allen Datenpunkten analysieren möchten, insbesondere wenn dies der Fall ist war eine lange Reise.

In diesem Tutorial haben wir gelernt, wie man das LTE-Schild als GPS-Tracker und Datenlogger verwendet und wie man die Daten schnell auf freeboard.io anzeigt. Verwenden Sie jetzt Ihre Fantasie und wenden Sie sie in Ihrem eigenen Projekt an. Sie können sogar weitere Schilde anbringen und dieses Ding in einen Solardatenlogger mit geringem Stromverbrauch verwandeln! (Vielleicht plane ich in Zukunft ein Tutorial dazu!). Aufgrund der Einschränkungen der Freeboard-Karte plane ich auch ein brandneues Tutorial zum Erstellen einer eigenen Android-App, die die Daten von Dweet abruft und es Ihnen ermöglicht, die Position des Trackers auf Google Maps mit start grafisch darzustellen. pausieren Sie und stoppen Sie Funktionen für Ihre Reise! Bleib dran!

  • Wenn Ihnen dieses Projekt gefallen hat, geben Sie ihm bitte ein Herz!
  • Wenn Sie Fragen, Kommentare oder Vorschläge zu einem neuen Tutorial haben oder dieses Projekt selbst ausprobiert haben, kommentieren Sie dies bitte unten!
  • Folge mir hier auf Instructables, abonniere meinen YouTube-Kanal oder folge mir auf Twitter, um über meine neuesten Arduino-Projekte auf dem Laufenden zu bleiben! Ich bin ein junger Ingenieur mit einer Leidenschaft für das Teilen des Gelernten, daher wird es bestimmt bald weitere Tutorials geben!
  • Wenn Sie meine Arbeit bei der Weitergabe von Open Source-Hardware und deren sorgfältiger Dokumentation zu Bildungszwecken unterstützen möchten, sollten Sie erwägen, auf Amazon.com einen eigenen Schutzschild zu erwerben, mit dem Sie spielen können!