Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Ausgangszustand
- Schritt 2: BerryGPS-GSM & Raspberry Pi Zero
- Schritt 3: Standort- und Geschwindigkeits-Dashboard
Video: GPS-Tracking in Echtzeit - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Von elizabethnaFolgen Sie mehr vom Autor:
In diesem Tutorial zeigen wir Ihnen, wie Sie eine Echtzeit-Standortverfolgung mit einem BerryGPS-GSM, einem Raspberry Pi Zero und Initial State durchführen. Wir senden Längengrad, Breitengrad und Geschwindigkeit über 3G mit dem BerryGPS-GSM an den Initial State.
Lieferungen
- Raspberry Pi Null
- BeereGPS-GSM
- Ausgangszustand
Schritt 1: Ausgangszustand
Wir möchten alle unsere Längen-, Breiten- und Geschwindigkeitsdaten an einen Cloud-Dienst streamen und diesen Dienst unsere Daten in ein schönes Dashboard verwandeln, auf das wir von unserem Laptop oder Mobilgerät aus zugreifen können. Wir werden Initial State verwenden.
Schritt 1: Registrieren Sie sich für das anfängliche Statuskonto
Gehen Sie zu https://iot.app.initialstate.com und erstellen Sie ein neues Konto. Sie erhalten eine 14-tägige kostenlose Testversion und jeder mit einer edu-E-Mail-Adresse kann sich für einen kostenlosen Studententarif registrieren.
Schritt 2: Installieren Sie den ISStreamer
Installieren Sie das Initial State Python-Modul auf Ihrem Raspberry Pi. Führen Sie in der Eingabeaufforderung den folgenden Befehl aus:
$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Schritt 3: Machen Sie etwas Automagic
Nach Schritt 2 sehen Sie etwas Ähnliches wie die folgende Ausgabe auf dem Bildschirm:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Beginnen Sie mit ISStreamer Python Einfache Installation! Die Installation kann ein paar Minuten dauern, trinken Sie einen Kaffee:) Aber vergessen Sie nicht, wiederzukommen, ich werde später Fragen haben! Gefunden easy_install: setuptools 1.1.6 Gefunden pip: pip 1.5.6 aus /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip Hauptversion: 1 pip Nebenversion: 5 ISStreamer gefunden, aktualisiert… Anforderung bereits aktuell: ISStreamer in Library/Python/2.7/site-packages Aufräumen… Möchten Sie automatisch ein Beispielskript erhalten? [y/N] Wo möchten Sie das Beispiel speichern? [default:./is_example.py] Bitte wählen Sie aus, welche Initial State App Sie verwenden: 1. app.initialstate.com 2. [NEU!] iot.app.initialstate.com Geben Sie Auswahl 1 oder 2 ein: Geben Sie iot.app ein.initialstate.com-Benutzername: Geben Sie das iot.app.initialstate.com-Passwort ein:
Wenn Sie gefragt werden, ob Sie automatisch ein Beispielskript erhalten möchten, geben Sie "y" für "Ja" ein und drücken Sie die Eingabetaste, um Ihr Skript am Standardspeicherort zu speichern. Wählen Sie bei der Frage, welche App Sie verwenden, 2 aus (sofern Sie sich nicht vor November 2018 angemeldet haben) und geben Sie Ihren Benutzernamen und Ihr Passwort ein.
Schritt 4: Führen Sie das Beispielskript aus
Führen Sie das Testskript aus, um sicherzustellen, dass wir einen Datenstrom zu Ihrem Initial State-Konto erstellen können. Schreiben Sie den folgenden Befehl:
$ python is_example.py
Schritt 5: Beispieldaten
Gehen Sie in Ihrem Webbrowser zu Ihrem Initial State-Konto zurück. Ein neuer Daten-Bucket namens „Python Stream Example“sollte links in Ihrem Log-Regal angezeigt werden (möglicherweise müssen Sie die Seite aktualisieren). Klicken Sie auf diesen Bucket, um Ihre Daten anzuzeigen.
Schritt 2: BerryGPS-GSM & Raspberry Pi Zero
Wenn Sie ein BerryGPS-GSM verwenden, können Sie dieser Anleitung folgen, um das GPS zum Laufen zu bringen und Ihren Pi über 3G mit PPP zu verbinden.
Die verlinkte Anleitung zeigt auch, wie Sie Ihren Pi beim Booten automatisch mit dem Trägernetzwerk verbinden. Sie benötigen dies, wenn Sie die Fernverfolgung durchführen möchten.
Bibliotheken installieren
Sie müssen die folgenden Bibliotheken installieren:
$ sudo apt-get install python-pip
$ sudo pip install pynmea2 $ sudo pip install ISStreamer
Haupt-Python-Skript
Hier erstellen wir das Hauptskript, das die GPS-Daten zum Initial State streamt. Der folgende Code erstellt einen separaten Thread, der zur Überwachung des seriellen Ports verwendet wird. Dies ist erforderlich, da wir eine Pause in der Hauptschleife haben. Die Pause dient dazu, zu begrenzen, wie viele Daten wir über 3G hochladen.
Wenn wir während der Pause alles im selben Thread gemacht hätten, würde sich der serielle Puffer füllen (es ist FIFO) und wenn wir den nächsten Wert aus dem Puffer bekommen, ist er um ein paar Sekunden alt. Dies geschieht in jeder Schleife und schließlich werden die Daten Minuten oder Stunden zurückliegen.
Um das Python-Skript zu erstellen und den Texteditor zu öffnen, geben Sie den folgenden Befehl ein:
$ nano GPStracker.py
Kopieren Sie den folgenden Code und fügen Sie ihn in den Texteditor ein. Sie müssen Ihren Initial State Access Key in Zeile 11 eingeben, wo steht "ENTER YOUR ACCESS KEY":
#! /usr/bin/pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None #Globale Variable einrichten #Setup des Initial State Streams, geben Sie unten Ihren Zugriffsschlüssel ein streamer = Streamer(bucket_name="GPS_Tracker ", Bucket_key="GPS_TRACKER", access_key="ENTER YOUR ACCESS KEY") class GPSDcollector(threading. Thread): def _init_(self, threadID): threading. Thread._init_(self) self.threadID = threadID global gpsd #bring it in scope gpsd = gps(mode=WATCH_ENABLE) #Starte GPSD self.running = True #Starte die Ausführung dieses Threads def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # erstelle einen Thread zum Sammeln von Daten try: gpsdThread.start() # starte ihn während True: print 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) und (gpsd.fix.longitude'nan'): streamer.log("Ort", "{lat}, {lon}".format(lat=gpsd.fix.latitude, lon=gpsd.fix.longitu de)) streamer.log("speed", gpsd.fix.speed) print 'lat', gpsd.fix.latitude, print 'lon', gpsd.fix.longitude, print 'speed', gpsd.fix.speed sleep (5) außer (KeyboardInterrupt, SystemExit): #Wenn Sie Strg+C drücken, drucken Sie "\nThread beenden…" gpsdThread.running = False gpsdThread.join() # warten Sie, bis der Thread seine Arbeit beendet hat, drucken Sie "Fertig.\nBeenden."
Speichern und beenden Sie den Texteditor, indem Sie STRG + X, Y, Eingabe drücken.
Skript beim Booten automatisch starten
Wenn Sie eine Fernüberwachung durchführen, möchten Sie, dass das Skript beim Booten ausgeführt wird. Dazu erstellen wir ein kleines Skript, das das Haupt-Python-Programm startet. Geben Sie den folgenden Befehl ein:
$ nano GPStrackerStart.sh
Kopieren Sie die Zeilen in den Texteditor:
#!/bin/bash
Schlaf 15 Python /home/pi/GPStracker.py &
Die obige Pause ist dazu da, dem Pi Zeit zum Booten und Verbinden über PPP zu geben.
Machen Sie das Skript ausführbar:
$ chmod +x ~/GPStrackerStart.sh
Wir werden cron verwenden, um das Skript jedes Mal zu starten, wenn der Pi bootet:
$ crontab -e
Füge unten die Zeile unten hinzu:
@reboot /home/pi/GPStrackerStart.sh &
Schritt 3: Standort- und Geschwindigkeits-Dashboard
Jetzt, da Sie Ihr Projekt in Betrieb genommen haben, sollten die Daten an den Anfangszustand gesendet werden. Sie haben GPS-Daten und Geschwindigkeitsdaten. Sie können die GPS-Daten in einer Kartenkachel verwenden, um den Standort zu verfolgen. Aktivieren Sie für die Kartenkachel das Kontrollkästchen „Pfad zeichnen“, damit Ihre Standortverfolgung wie im obigen Dashboard abgebildet wird. Sie können Ihre Geschwindigkeitsdaten in ein Liniendiagramm einfügen, um die Geschwindigkeit im Zeitverlauf anzuzeigen.
Empfohlen:
So schalten Sie das GPS auf ein anderes Gerät um – wikiHow
So schalten Sie das GPS auf verschiedene Geräte um: Der Vorgang besteht darin, das GPS von der Kabine des Mähdreschers zu nehmen, es auf die Traktorkabine zu setzen, das Display vom Mähdrescher auszuhängen und in den Traktor einzubauen. Es werden keine Werkzeuge benötigt, um diesen Vorgang abzuschließen, und seien Sie vorsichtig beim Herumklettern auf Geräten
Verbinden eines GPS-Moduls mit dem Raspberry Pi: Dashcam Teil 2: 3 Schritte
Anbindung eines GPS-Moduls an den Raspberry Pi: Dashcam Teil 2: Dies ist Teil 2 des Dashcam-Projekts und in diesem Beitrag erfahren Sie, wie Sie ein GPS-Modul an den Raspberry Pi anschließen. Wir verwenden dann die GPS-Daten und fügen sie dem Video als Textüberlagerung hinzu. Bitte lesen Sie Teil 1 über den untenstehenden Link, bevor Sie
MicroPython-Programm: Aktualisieren Sie die Daten der Coronavirus-Krankheit (COVID-19) in Echtzeit – wikiHow
MicroPython-Programm: Daten zur Coronavirus-Krankheit (COVID-19) in Echtzeit aktualisieren: In den letzten Wochen hat die Zahl der bestätigten Fälle der Coronavirus-Krankheit (COVID 19) weltweit 100.000 überschritten, und die Weltgesundheitsorganisation (WHO) hat die Der neue Ausbruch einer Coronavirus-Pneumonie soll eine globale Pandemie sein. Ich war sehr
Gesichtserkennung in Echtzeit: ein End-to-End-Projekt – wikiHow
Echtzeit-Gesichtserkennung: ein End-to-End-Projekt: In meinem letzten Tutorial zur Erkundung von OpenCV haben wir AUTOMATIC VISION OBJECT TRACKING gelernt. Jetzt werden wir unsere PiCam verwenden, um Gesichter in Echtzeit zu erkennen, wie Sie unten sehen können: Dieses Projekt wurde mit dieser fantastischen "Open Source Computer Vision Library&qu