Inhaltsverzeichnis:

GPS-Tracking in Echtzeit - Gunook
GPS-Tracking in Echtzeit - Gunook

Video: GPS-Tracking in Echtzeit - Gunook

Video: GPS-Tracking in Echtzeit - Gunook
Video: Magnetisches Mini-GPS in Echtzeit 2024, November
Anonim

Von elizabethnaFolgen Sie mehr vom Autor:

Kürbis Pi Trick-or-Treat-Tracker
Kürbis Pi Trick-or-Treat-Tracker
Kürbis Pi Trick-or-Treat-Tracker
Kürbis Pi Trick-or-Treat-Tracker
So bauen Sie einen Raspberry Pi-Temperaturmonitor
So bauen Sie einen Raspberry Pi-Temperaturmonitor
So bauen Sie einen Raspberry Pi-Temperaturmonitor
So bauen Sie einen Raspberry Pi-Temperaturmonitor
Streamen Sie Daten von Google Sheets an ein Dashboard
Streamen Sie Daten von Google Sheets an ein Dashboard
Streamen Sie Daten von Google Sheets an ein Dashboard
Streamen Sie Daten von Google Sheets an ein Dashboard

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

Ausgangszustand
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

BerryGPS-GSM & Raspberry Pi Zero
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

Standort- und Geschwindigkeits-Dashboard
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: