Turinys:

GPS sekimas realiuoju laiku: 3 žingsniai
GPS sekimas realiuoju laiku: 3 žingsniai

Video: GPS sekimas realiuoju laiku: 3 žingsniai

Video: GPS sekimas realiuoju laiku: 3 žingsniai
Video: LW11 AGPTEK Smartwatch IP68: что нужно знать // Лучшие бюджетные часы на АлиЭкспресс 2024, Lapkritis
Anonim

Sekite daugiau autoriaus:

„Moliūgų Pi“gudrybių stebuklas
„Moliūgų Pi“gudrybių stebuklas
„Moliūgų Pi“gudrybių stebuklas
„Moliūgų Pi“gudrybių stebuklas
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Kaip sukurti „Raspberry Pi“temperatūros monitorių
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę
Duomenų srautas iš „Google“skaičiuoklių į informacijos suvestinę

Šioje pamokoje parodysime, kaip sekti vietos stebėjimą realiuoju laiku naudojant „BerryGPS-GSM“, „Raspberry Pi Zero“ir pradinę būseną. Mes išsiunčiame ilgumą, platumą ir greitį per 3G su „BerryGPS-GSM“į pradinę būseną.

Prekės

  • Raspberry Pi Zero
  • „BerryGPS-GSM“
  • Pradinė būsena

1 žingsnis: pradinė būsena

Pradinė būsena
Pradinė būsena

Mes norime perduoti visus savo ilgumos, platumos ir greičio duomenis į debesies paslaugą ir kad ši paslauga paverstų mūsų duomenis gražiu prietaisų skydeliu, kurį galime pasiekti iš savo nešiojamojo kompiuterio ar mobiliojo įrenginio. Mes naudosime pradinę būseną.

1 veiksmas: prisiregistruokite gauti pradinę valstybės sąskaitą

Eikite į https://iot.app.initialstate.com ir sukurkite naują paskyrą. Gaunate 14 dienų nemokamą bandomąją versiją ir kiekvienas, turintis edu el. Pašto adresą, gali užsiregistruoti gauti nemokamą studento planą.

2 veiksmas: įdiekite „ISStreamer“

Įdiekite pradinės būsenos „Python“modulį į „Raspberry Pi“. Komandų eilutėje paleiskite šią komandą:

$ cd/home/pi/

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

3 žingsnis: padarykite „Automagic“

Po 2 veiksmo ekrane pamatysite kažką panašaus į šį išvestį:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| Sudo bashPasword: Pradedant ISStreamer Python Lengvas diegimas! Tai gali užtrukti kelias minutes, kol bus įdiegta, išgerkite kavos:) Bet nepamirškite sugrįžti, vėliau turėsiu klausimų! Rasta easy_install: setuptools 1.1.6 Rasta pip: pip 1.5.6 iš /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pagrindinė versija: 1 pip minor versija: 5 ISStreamer rastas, atnaujinamas … Reikalavimas jau atnaujintas: ISStreamer bibliotekoje/Python/2.7/site-paketai Valymas … Ar norite automatiškai gauti scenarijaus pavyzdį? [y/N] Kur norite išsaugoti pavyzdį? [numatytasis:./is_example.py] Pasirinkite, kurią pradinės būsenos programą naudojate: 1. app.initialstate.com 2. [NAUJIENA!].initialstate.com vartotojo vardas: įveskite iot.app.initialstate.com slaptažodį:

Kai jūsų paklaus, ar norite automatiškai gauti scenarijaus pavyzdį, pažymėkite „y“taip ir paspauskite „Enter“, kad išsaugotumėte scenarijų numatytoje vietoje. Jei norite sužinoti, kokią programą naudojate, pasirinkite 2 (nebent prisiregistravote iki 2018 m. Lapkričio mėn.) Ir įveskite savo vartotojo vardą ir slaptažodį.

4 veiksmas: paleiskite scenarijaus pavyzdį

Paleiskite bandomąjį scenarijų, kad įsitikintumėte, jog galime sukurti duomenų srautą į jūsų pradinės būsenos paskyrą. Parašykite šią komandą:

$ python is_example.py

5 veiksmas: duomenų pavyzdžiai

Grįžkite į pradinės būsenos paskyrą žiniatinklio naršyklėje. Kairėje žurnalo lentynoje turėtų būti rodomas naujas duomenų rinkinys, pavadintas „Python Stream Example“(gali tekti atnaujinti puslapį). Spustelėkite šį segmentą, kad peržiūrėtumėte savo duomenis.

2 žingsnis: „BerryGPS-GSM“ir „Raspberry Pi Zero“

„BerryGPS-GSM“ir „Raspberry Pi Zero“
„BerryGPS-GSM“ir „Raspberry Pi Zero“

Jei naudojate „BerryGPS-GSM“, vadovaukitės šiuo vadovu, kad GPS veiktų ir „Pi“prisijungtų per 3G naudojant PPP.

Susietame vadove taip pat parodyta, kaip paleisti „Pi“prisijungti prie operatoriaus tinklo automatiškai. To jums prireiks, jei planuojate atlikti nuotolinį stebėjimą.

Įdiekite bibliotekas

Turėsite įdiegti šias bibliotekas:

$ sudo apt-get install python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Pagrindinis „Python“scenarijus

Čia sukursime pagrindinį scenarijų, kuris perduos GPS duomenis į pradinę būseną. Žemiau pateiktas kodas sukuria atskirą giją, kuri naudojama nuosekliajam prievadui stebėti. To reikia, nes pagrindinėje kilpoje turime pauzę. Pauzė skirta apriboti duomenų, kuriuos įkeliame per 3G, kiekį.

Jei pertraukos metu viską darytume toje pačioje gijoje, serijinis buferis užsipildytų (tai FIFO) ir kai iš buferio gausime kitą reikšmę, jis pasens kelias sekundes. Tai atsitinka kiekvieną ciklą ir galiausiai duomenys atsiliks minutėmis ar valandomis.

Norėdami sukurti „python“scenarijų ir atidaryti teksto rengyklę, įveskite šią komandą:

$ nano GPStracker.py

Nukopijuokite ir įklijuokite šį kodą į teksto rengyklę. 11 eilutėje turėsite įvesti pradinės būsenos prieigos raktą, kuriame sakoma: „Įveskite savo prieigos raktą“:

#! /usr/bin/pythonfrom gps importuoti * iš laiko importo * importuoti sriegių importavimo datą iš ISStreamer. Streamer import Streamer gpsd = Nėra #Setup global kintamasis #Setup the Initial State stream, įveskite savo prieigos raktą žemiau streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" ENTER YOUR ACCESS KEY ") klasės GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring it apimtyje gpsd = gps (mode = WATCH_ENABLE) #Pradėti GPSD self.running = Tiesa #Pradėti vykdyti šią temą def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # sukurkite temą duomenims rinkti pabandykite: gpsdThread.start () # paleiskite, kol tiesa: spausdinkite „GPS“, gpsd.utc, „CPU time->“, datetime.datetime.now ().time (), if (gpsd.fix.longitude0) ir (gpsd.fix.longitude'nan '): streamer.log ("Vieta", "{lat}, {lon}". formatas (lat = gpsd.fix. platuma, lon = gpsd.fix.longitu de)) streamer.log („greitis“, gpsd.fix.speed) spausdinti „lat“, gpsd.fix.latitude, spausdinti „lon“, gpsd.fix.longitude, spausdinti „speed“, gpsd.fix.speed sleep (5) išskyrus (KeyboardInterrupt, SystemExit): # kai paspaudžiate „Ctrl“+c spausdinti „\ nKilling Thread…“gpsdThread.running = False gpsdThread.join () # palaukite, kol gija užbaigs tai, ką daro spausdinimas "Atlikta. / NExiting."

Išsaugokite ir išeikite iš teksto redaktoriaus, paspausdami CTRL + X, Y, įveskite.

Paleisdami scenarijų paleiskite automatiškai

Jei atliekate nuotolinį stebėjimą, norėtumėte, kad scenarijus būtų paleistas paleidžiant. Norėdami tai padaryti, sukursime nedidelį scenarijų, kuris paleis pagrindinę „python“programą. Įveskite šią komandą:

$ nano GPStrackerStart.sh

Nukopijuokite eilutes į teksto rengyklę:

#!/bin/bash

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

Aukščiau pateikta pauzė yra skirta „Pi“paleisti ir prisijungti per PPP.

Padarykite scenarijų vykdomąjį:

$ chmod +x ~/GPStrackerStart.sh

Mes naudosime „cron“, kad paleistume scenarijų kiekvieną kartą, kai „Pi“įkels:

$ crontab -e

Apačioje pridėkite žemiau esančią eilutę:

@reboot /home/pi/GPStrackerStart.sh &

3 veiksmas: vietos ir greičio prietaisų skydelis

Vietos ir greičio prietaisų skydelis
Vietos ir greičio prietaisų skydelis

Dabar, kai jūsų projektas yra parengtas ir vykdomas, duomenys turėtų būti siunčiami į pradinę būseną. Turėsite GPS ir greičio duomenis. Norėdami sekti vietą, galite naudoti GPS duomenis žemėlapio plytelėje. Jei naudojate žemėlapio plytelę, būtinai pažymėkite žymės langelį Nubrėžti kelią, kad jūsų vietos stebėjimas būtų suplanuotas kaip aukščiau esantis prietaisų skydelis. Greičio duomenis galite sudėti į linijinę diagramą, kad pamatytumėte greitį laikui bėgant.

Rekomenduojamas: