Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Avtor elizabethnaSledite še avtorja:
V tej vadnici vam bomo pokazali, kako v realnem času sledite lokaciji z uporabo BerryGPS-GSM, Raspberry Pi Zero in Initial State. Zemljepisno dolžino, zemljepisno širino in hitrost bomo poslali prek 3G z BerryGPS-GSM v začetno stanje.
Zaloge
- Raspberry Pi Zero
- BerryGPS-GSM
- Začetno stanje
1. korak: Začetno stanje
Vse svoje zemljepisne dolžine, zemljepisne širine in hitrosti želimo pretočiti v storitev v oblaku in ta storitev naše podatke spremeni v lepo nadzorno ploščo, do katere lahko dostopamo iz prenosnega računalnika ali mobilne naprave. Uporabili bomo začetno stanje.
1. korak: Registrirajte se za začetni državni račun
Pojdite na https://iot.app.initialstate.com in ustvarite nov račun. Dobite 14 -dnevno brezplačno preskusno različico in vsak, ki ima e -poštni naslov edu, se lahko registrira za brezplačen študentski paket.
2. korak: Namestite ISStreamer
Namestite začetni modul Python State na svoj Raspberry Pi. V ukaznem pozivu zaženite naslednji ukaz:
$ cd/home/pi/
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
3. korak: Naredite nekaj avtomatičnega
Po 2. koraku boste na zaslonu videli nekaj podobnega naslednjemu izhodu:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashGeslo: Začetek enostavne namestitve ISStreamer Python! To lahko traja nekaj minut za namestitev, popijte kavo:) Ampak ne pozabite se vrniti, pozneje bom imel vprašanja! Najdeno easy_install: setuptools 1.1.6 Najdeno pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) glavna različica pipa: 1 pip manjša različica: 5 Najden je bil ISStreamer, se posodablja … Zahteva je že posodobljena: ISStreamer v knjižnici/Python/2.7/paketi spletnih mest Čiščenje … Ali želite samodejno dobiti primer skripta? [y/N] Kam želite shraniti primer? [privzeto:./is_example.py] Izberite aplikacijo začetnega stanja, ki jo uporabljate: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Vnesite izbiro 1 ali 2: Vnesite iot.app Uporabniško ime.initialstate.com: Vnesite geslo iot.app.initialstate.com:
Ko vas vprašajo, ali želite samodejno dobiti primer skripta, postavite "y" za da in pritisnite enter, da shranite skript na privzeto mesto. Za vprašanje, katero aplikacijo uporabljate, izberite 2 (razen če ste se prijavili pred novembrom 2018) in vnesite svoje uporabniško ime in geslo.
4. korak: Zaženite primer skripta
Zaženite preskusni skript in se prepričajte, da lahko ustvarimo podatkovni tok v vašem računu začetnega stanja. Napišite naslednji ukaz:
$ python is_example.py
5. korak: Primer podatkov
V spletnem brskalniku se vrnite na račun začetnega stanja. Novo vedro podatkov, imenovano »Primer Python Stream«, bi se moralo prikazati na levi strani v dnevniku (morda boste morali osvežiti stran). Če si želite ogledati svoje podatke, kliknite to vedro.
Korak: BerryGPS-GSM in Raspberry Pi Zero
Če uporabljate BerryGPS-GSM, lahko sledite tem navodilom, da GPS deluje in da se vaš Pi poveže prek 3G prek PPP.
Povezani vodnik prikazuje tudi, kako naj se vaš Pi ob zagonu samodejno poveže z omrežjem operaterja. To boste potrebovali, če nameravate izvesti sledenje na daljavo.
Namestite knjižnice
Namestiti morate naslednje knjižnice:
$ sudo apt-get install python-pip
$ sudo pip install pynmea2 $ sudo pip install ISStreamer
Glavni skript Python
Tukaj bomo ustvarili glavni skript, ki bo podatke GPS prenašal v začetno stanje. Spodnja koda ustvari ločeno nit, ki se uporablja za spremljanje serijskih vrat. To je potrebno, ker imamo premor v glavni zanki. Premor je zato, da omejite, koliko podatkov naložimo prek 3G.
Če bi med premorom naredili vse v isti niti, bi se serijski vmesni pomnilnik napolnil (to je FIFO), in ko iz vmesnega pomnilnika dobimo naslednjo vrednost, bo stara za nekaj sekund. To se zgodi v vsaki zanki in sčasoma bodo podatki zaostali za nekaj minut ali ur.
Če želite ustvariti skript python in odpreti urejevalnik besedila, vnesite naslednji ukaz:
$ nano GPStracker.py
Kopirajte in prilepite naslednjo kodo v urejevalnik besedil. V vrstico 11, kjer piše "VNESI KLJUČ ZA DOSTOP", vnesite ključ za začetni dostop do države:
#! /usr/bin/pythoniz gps import * from time import * import threading import datetime from ISStreamer. Strommer import Streamer gpsd = Nobenega #Nastavitev globalne spremenljivke #Nastavitev začetnega toka stanja, vnesite ključ za dostop pod streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" VNESITE KLJUČ ZA DOSTOP ") razred GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID globalni gpsd #bring v obsegu gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True #Začni z izvajanjem te niti def run (self): globalni gpsd, medtem ko gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # ustvarite nit za zbiranje podatkov poskusite: gpsdThread.start () # zaženite, medtem ko je True: natisnite 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) in (gpsd.fix.longitude'nan '): streamer.log ("Lokacija", "{lat}, {lon}". format (lat = gpsd.fix.širokota, lon = gpsd.fix.longitu de)) streamer.log ("hitrost", gpsd.fix.speed) tiskanje 'lat', gpsd.fix.latitude, tiskanje 'lon', gpsd.fix.longitude, tiskanje 'speed', gpsd.fix.speed sleep (5) razen (KeyboardInterrupt, SystemExit): #ko pritisnete ctrl+c, natisnite "\ nKilling Thread …" gpsdThread.running = False gpsdThread.join () # počakajte, da nit dokonča tiskanje "Končano. / N Izhod."
Shranite in zapustite urejevalnik besedil moj pritisk CTRL + X, Y, enter.
Samodejno zaženite skript ob zagonu
Če izvajate nadzor na daljavo, bi želeli, da se skript zažene ob zagonu. Če želite to narediti, bomo ustvarili majhen skript, ki bo zagnal glavni program python. Vnesite naslednji ukaz:
$ nano GPStrackerStart.sh
Kopirajte vrstice v urejevalnik besedil:
#!/bin/bash
spanje 15 python /home/pi/GPStracker.py &
Zgornji premor je namenjen temu, da Pi omogoči zagon in povezavo prek PPP.
Naj bo skript izvedljiv:
$ chmod +x ~/GPStrackerStart.sh
Za zagon skripta bomo uporabili cron vsakič, ko se Pi zažene:
$ crontab -e
Spodnjo vrstico dodajte na dno:
@reboot /home/pi/GPStrackerStart.sh &
3. korak: Nadzorna plošča za lokacijo in hitrost
Zdaj, ko imate projekt v teku, bi morali podatke pošiljati v začetno stanje. Imeli boste podatke GPS in podatke o hitrosti. Za sledenje lokaciji lahko uporabite podatke GPS v ploščicah zemljevidov. Za ploščico zemljevida potrdite potrditveno polje Draw Path (Pot risanja), da bo sledenje vaši lokaciji preslikano kot zgornja nadzorna plošča. Podatke o hitrosti lahko vnesete v linijski graf, da si ogledate hitrost skozi čas.