Inhoudsopgave:

Realtime GPS-tracking: 3 stappen
Realtime GPS-tracking: 3 stappen

Video: Realtime GPS-tracking: 3 stappen

Video: Realtime GPS-tracking: 3 stappen
Video: TicWatch PRO 3 ULTRA GPS: Things To Know // How Accurate Is It? 2024, Juli-
Anonim

Door elizabethnaVolg meer door de auteur:

Pumpkin Pi Trick-or-Treat-tracker
Pumpkin Pi Trick-or-Treat-tracker
Pumpkin Pi Trick-or-Treat-tracker
Pumpkin Pi Trick-or-Treat-tracker
Hoe een Raspberry Pi-temperatuurmonitor te bouwen
Hoe een Raspberry Pi-temperatuurmonitor te bouwen
Hoe een Raspberry Pi-temperatuurmonitor te bouwen
Hoe een Raspberry Pi-temperatuurmonitor te bouwen
Gegevens streamen van Google Spreadsheets naar een dashboard
Gegevens streamen van Google Spreadsheets naar een dashboard
Gegevens streamen van Google Spreadsheets naar een dashboard
Gegevens streamen van Google Spreadsheets naar een dashboard

In deze zelfstudie laten we u zien hoe u realtime locatietracking uitvoert met behulp van een BerryGPS-GSM, een Raspberry Pi Zero en Initial State. We sturen lengte-, breedte- en snelheid via 3G met de BerryGPS-GSM naar Initial State.

Benodigdheden

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Oorspronkelijke toestand

Stap 1: Oorspronkelijke staat

Oorspronkelijke toestand
Oorspronkelijke toestand

We willen al onze lengte-, breedtegraad- en snelheidsgegevens naar een cloudservice streamen en die service onze gegevens laten omzetten in een mooi dashboard waartoe we toegang hebben vanaf onze laptop of mobiele apparaat. We zullen de beginstatus gebruiken.

Stap 1: Registreer u voor een eerste staatsaccount

Ga naar https://iot.app.initialstate.com en maak een nieuw account aan. Je krijgt een gratis proefperiode van 14 dagen en iedereen met een edu-e-mailadres kan zich registreren voor een gratis studentenabonnement.

Stap 2: Installeer de ISStreamer

Installeer de Initial State Python-module op uw Raspberry Pi. Voer in de opdrachtprompt de volgende opdracht uit:

$ cd /home/pi/

$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Stap 3: Maak wat Automagic

Na stap 2 ziet u iets dat lijkt op de volgende uitvoer op het scherm:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Begin ISStreamer Python Eenvoudige installatie! Dit kan een paar minuten duren om te installeren, neem wat koffie:) Maar vergeet niet terug te komen, ik heb later vragen! Easy_install gevonden: setuptools 1.1.6 Gevonden pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoofdversie: 1 pip kleine versie: 5 ISStreamer gevonden, updaten… Vereiste al up-to-date: ISStreamer in Library/Python/2.7/site-packages Opruimen… Wil je automatisch een voorbeeldscript krijgen? [j/N] Waar wil je het voorbeeld opslaan? [default:./is_example.py] Selecteer a.u.b. welke Initial State-app u gebruikt: 1. app.initialstate.com 2. [NIEUW!] iot.app.initialstate.com Voer keuze 1 of 2 in: Voer iot.app in.initialstate.com gebruikersnaam: Voer het iot.app.initialstate.com wachtwoord in:

Wanneer u wordt gevraagd of u automatisch een voorbeeldscript wilt krijgen, plaatst u "y" voor ja en drukt u op enter om uw script op de standaardlocatie op te slaan. Voor de vraag welke app je gebruikt, selecteer 2 (tenzij je je voor november 2018 hebt aangemeld) en voer je gebruikersnaam en wachtwoord in.

Stap 4: Voer het voorbeeldscript uit

Voer het testscript uit om er zeker van te zijn dat we een gegevensstroom naar uw Initial State-account kunnen maken. Schrijf het volgende commando:

$ python is_voorbeeld.py

Stap 5: Voorbeeldgegevens

Ga terug naar uw Initial State-account in uw webbrowser. Een nieuwe data-bucket genaamd "Python Stream-voorbeeld" zou aan de linkerkant in uw logplank moeten verschijnen (mogelijk moet u de pagina vernieuwen). Klik op deze bucket om uw gegevens te bekijken.

Stap 2: BerryGPS-GSM & Raspberry Pi Zero

BerryGPS-GSM & Raspberry Pi Zero
BerryGPS-GSM & Raspberry Pi Zero

Als u een BerryGPS-GSM gebruikt, kunt u deze handleiding volgen om de GPS te laten werken en uw Pi verbinding te laten maken via 3G met behulp van PPP.

De gekoppelde gids laat ook zien hoe u uw Pi automatisch verbinding kunt laten maken met het netwerk van de koerier bij het opstarten. U hebt deze nodig als u van plan bent om op afstand te volgen.

Bibliotheken installeren

U moet de volgende bibliotheken installeren:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Hoofd Python-script

Hier zullen we het hoofdscript maken dat de GPS-gegevens naar de oorspronkelijke staat zal streamen. De onderstaande code creëert een aparte thread die wordt gebruikt om de seriële poort te bewaken. Dit is nodig omdat we een pauze hebben in de hoofdlus. De pauze is er om te beperken hoeveel gegevens we uploaden via 3G.

Als we tijdens de pauze alles in dezelfde thread zouden doen, zou de seriële buffer vol raken (het is FIFO) en wanneer we de volgende waarde van de buffer krijgen, zal deze een paar seconden oud zijn. Dit gebeurt elke lus en uiteindelijk lopen de gegevens minuten of uren achter.

Voer de volgende opdracht in om het python-script te maken en de teksteditor te openen:

$ nano GPStracker.py

Kopieer en plak de volgende code in de teksteditor. U moet uw Initial State Access Key invoeren op regel 11, waar staat "VOER UW TOEGANGSSLEUTEL IN":

#! /usr/bin/pythonfrom gps import * from time import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = Geen #Setup globale variabele #Setup de Initial State stream, voer hieronder uw toegangssleutel in streamer = Streamer(bucket_name="GPS_Tracker ", bucket_key="GPS_TRACKER", access_key="VOER UW TOEGANGSSLEUTEL IN") 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) #Start GPSD self.running = True #Start deze thread def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # maak een thread om gegevens te verzamelen probeer: gpsdThread.start() # start het op terwijl True: print 'GPS', gpsd.utc, ' CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) en (gpsd.fix.longitude'nan'): streamer.log("Locatie", "{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) behalve (KeyboardInterrupt, SystemExit): #wanneer je op ctrl+c drukt print "\nKilling Thread…" gpsdThread.running = False gpsdThread.join() # wacht tot de thread klaar is met wat hij doet print "Done.\nExiting."

Sla op en verlaat de teksteditor door op CTRL + X, Y, enter te drukken.

Start het script automatisch bij het opstarten

Als u bewaking op afstand uitvoert, wilt u dat het script bij het opstarten wordt uitgevoerd. Om dit te doen, zullen we een klein script maken dat het hoofdprogramma van Python zal starten. Voer de volgende opdracht in:

$ nano GPStrackerStart.sh

Kopieer de regels naar de teksteditor:

#!/bin/bash

slaap 15 python /home/pi/GPStracker.py &

De pauze hierboven is er om de Pi de tijd te geven om op te starten en verbinding te maken via PPP.

Maak het script uitvoerbaar:

$ chmod +x ~/GPStrackerStart.sh

We zullen cron gebruiken om het script te starten elke keer dat de Pi opstart:

$ crontab -e

Voeg de onderstaande regel toe aan de onderkant:

@reboot /home/pi/GPStrackerStart.sh &

Stap 3: Dashboard voor locatie en snelheid

Locatie- en snelheidsdashboard
Locatie- en snelheidsdashboard

Nu u uw project in gebruik heeft, zouden de gegevens naar de oorspronkelijke staat moeten worden verzonden. Je hebt GPS-gegevens en snelheidsgegevens. U kunt de GPS-gegevens in een kaarttegel gebruiken om de locatie te volgen. Zorg ervoor dat u voor de kaarttegel het selectievakje Pad tekenen aanvinkt, zodat uw locatietracking in kaart wordt gebracht zoals het dashboard hierboven. U kunt uw snelheidsgegevens in een lijngrafiek plaatsen om de snelheid in de loop van de tijd te zien.

Aanbevolen: