Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Av elizabethna Følg mer av forfatteren:
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
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
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
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.