Innholdsfortegnelse:

GPS-sporing i sanntid: 3 trinn
GPS-sporing i sanntid: 3 trinn

Video: GPS-sporing i sanntid: 3 trinn

Video: GPS-sporing i sanntid: 3 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim

Av elizabethna Følg mer av forfatteren:

Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Hvordan bygge en Raspberry Pi temperaturmonitor
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt
Stream data fra Google Regneark til et oversikt

I denne opplæringen vil vi vise deg hvordan du gjør lokaliseringssporing i sanntid ved hjelp av en BerryGPS-GSM, en Raspberry Pi Zero og Initial State. Vi sender lengdegrad, breddegrad og hastighet via 3G med BerryGPS-GSM til Initial State.

Rekvisita

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Opprinnelige tilstand

Trinn 1: Opprinnelig tilstand

Opprinnelige tilstand
Opprinnelige tilstand

Vi ønsker å streame alle våre lengde-, bredde- og hastighetsdata til en skytjeneste og få den til å gjøre dataene våre til et fint dashbord som vi kan få tilgang til fra den bærbare eller mobile enheten. Vi vil bruke Initial State.

Trinn 1: Registrer deg for den første statskontoen

Gå til https://iot.app.initialstate.com og opprett en ny konto. Du får en 14 dagers gratis prøveperiode, og alle med en edu -e -postadresse kan registrere seg for en gratis studentplan.

Trinn 2: Installer ISStreamer

Installer Initial State Python -modulen på Raspberry Pi. Kjør følgende kommando i ledeteksten:

$ cd/home/pi/

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

Trinn 3: Lag litt Automagic

Etter trinn 2 vil du se noe som ligner på følgende utgang til skjermen:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Start ISStreamer Python Enkel installasjon! Dette kan ta et par minutter å installere, ta en kaffe:) Men ikke glem å komme tilbake, jeg har spørsmål senere! Funnet easy_install: setuptools 1.1.6 Funnet pip: pip 1.5.6 fra /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hovedversjon: 1 pip mindre versjon: 5 ISStreamer funnet, oppdaterer … Krav allerede oppdatert: ISStreamer i bibliotek/Python/2.7/nettstedspakker Rydder opp … Vil du automatisk få et eksempelskript? [y/N] Hvor vil du lagre eksemplet? [standard:./is_example.py] Velg hvilken Initial State -app du bruker: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Angi valg 1 eller 2: Skriv inn iot.app.initialstate.com brukernavn: Skriv inn iot.app.initialstate.com passord:

Når du blir spurt om du vil få et eksempelskript automatisk å sette "y" for ja, og trykk enter for å lagre skriptet på standardplasseringen. For spørsmålet om hvilken app du bruker, velg 2 (med mindre du registrerte deg før november 2018) og skriv inn brukernavn og passord.

Trinn 4: Kjør eksempelskriptet

Kjør testskriptet for å sikre at vi kan opprette en datastrøm til din opprinnelige statskonto. Skriv følgende kommando:

$ python er_eksempel.py

Trinn 5: Eksempeldata

Gå tilbake til din opprinnelige statskonto i nettleseren din. En ny databøtte kalt "Python Stream -eksempel" burde ha dukket opp til venstre i logghyllen din (du må kanskje oppdatere siden). Klikk på denne bøtta for å se dataene dine.

Trinn 2: BerryGPS-GSM og Raspberry Pi Zero

BerryGPS-GSM og Raspberry Pi Zero
BerryGPS-GSM og Raspberry Pi Zero

Hvis du bruker en BerryGPS-GSM, kan du følge denne veiledningen for å få GPSen til å fungere og få din Pi til å koble til via 3G ved hjelp av PPP.

Den koblede guiden viser også hvordan du får din Pi til å koble til transportørnettverket automatisk når den startes. Du trenger dette hvis du planlegger å utføre ekstern sporing.

Installer biblioteker

Du må installere følgende biblioteker:

$ sudo apt-get install python-pip

$ sudo pip installer pynmea2 $ sudo pip installer ISStreamer

Main Python Script

Her vil vi lage hovedskriptet som vil streame GPS -dataene til opprinnelig tilstand. Koden nedenfor lager en egen tråd som brukes til å overvåke den serielle porten. Dette er nødvendig fordi vi har en pause i hovedsløyfen. Pausen er der for å begrense hvor mye data vi laster opp over 3G.

Hvis vi gjorde alt i samme tråd under pausen, ville den serielle bufferen fylles opp (det er FIFO), og når vi får den neste verdien fra bufferen, blir den gammel med noen sekunder. Dette skjer hver sløyfe, og til slutt vil dataene være minutter eller timer bak.

For å lage python -skriptet og åpne tekstredigereren, skriv inn følgende kommando:

$ nano GPStracker.py

Kopier og lim inn følgende kode i tekstredigereren. Du må skrive inn din opprinnelige tilgangsnøkkel på linje 11, der det står "ENTER YOUR ACCESS NØKKEL":

#! /usr/bin/pythonfra gps import * fra tid import * import threading import datetime from ISStreamer. Streamer import Streamer gpsd = None #Setup global variable #Setup the Initial State stream, enter your access key below streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ENTER YOUR ACCESS KEY ") klasse GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring det i omfang gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True #Start running this thread def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # lag en tråd for å samle inn data, prøv: gpsdThread.start () # start den mens True: skriv ut 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) og (gpsd.fix.longitude'nan '): streamer.log ("Location", "{lat}, {lon}". format (lat = gpsd.fix. breddegrad, 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) unntatt (KeyboardInterrupt, SystemExit): # når du trykker ctrl+c print "\ nKilling Thread …" gpsdThread.running = False gpsdThread.join () # vent på at tråden er ferdig med å skrive ut "Ferdig. / NEksitasjon."

Lagre og avslutt tekstredigereren ved å trykke CTRL + X, Y, enter.

Start skriptet automatisk ved oppstart

Hvis du gjør fjernovervåking, vil du at skriptet skal kjøres på oppstart. For å gjøre dette vil vi lage et lite skript som starter hovedpython -programmet. Skriv inn følgende kommando:

$ nano GPStrackerStart.sh

Kopier linjene til tekstredigereren:

#!/bin/bash

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

Pausen ovenfor er der for å gi Pi tid til å starte opp og koble til via PPP.

Gjør skriptet kjørbart:

$ chmod +x ~/GPStrackerStart.sh

Vi bruker cron til å starte skriptet hver gang Pi starter:

$ crontab -e

Legg til linjen nedenfor til bunnen:

@reboot /home/pi/GPStrackerStart.sh &

Trinn 3: Plassering og hastighetsoversikt

Plassering og hastighetsoversikt
Plassering og hastighetsoversikt

Nå som du har prosjektet ditt i gang, skal data sendes til opprinnelig tilstand. Du har GPS -data og hastighetsdata. Du kan bruke GPS -dataene i en kartflis for å spore posisjon. For kartflisen må du merke av i avmerkingsboksen Tegn sti slik at posisjonssporing blir kartlagt som dashbordet ovenfor. Du kan sette hastighetsdataene dine i en linjediagram for å se hastigheten over tid.

Anbefalt: