Turinys:
- Prekės
- 1 žingsnis: pradinė būsena
- 2 žingsnis: „BerryGPS-GSM“ir „Raspberry Pi Zero“
- 3 veiksmas: vietos ir greičio prietaisų skydelis
Video: GPS sekimas realiuoju laiku: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Sekite daugiau autoriaus:
Š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
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“
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
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:
Pašto marškinėliai: nešiojamos laikysenos aptikimas realiuoju laiku: 9 žingsniai
Pašto marškinėliai: nešiojamos laikysenos aptikimas realiuoju laiku: „Postshirt“yra realiuoju laiku veikianti belaidė laikysenos aptikimo sistema, perduodanti ir klasifikuojanti akselerometro duomenis iš „Adafruit Feather“į „Android“programą per „Bluetooth“. Visa sistema gali aptikti realiu laiku, jei vartotojas turi blogą laikyseną ir
Įrenginio atpažinimas realiuoju laiku naudojant EM pėdsakus: 6 žingsniai
Įrenginio atpažinimas realiuoju laiku naudojant EM pėdsakus: Šis prietaisas skirtas klasifikuoti įvairius elektroninius prietaisus pagal jų EM signalus. Skirtingiems įrenginiams jie skleidžia skirtingus EM signalus. Mes sukūrėme IoT sprendimą elektroniniams prietaisams identifikuoti naudojant daleles
Mažų parduotuvių sekimas ir sekimas: 9 žingsniai (su paveikslėliais)
Stebėti ir sekti mažose parduotuvėse: tai sistema, skirta mažoms parduotuvėms, kuri turėtų būti montuojama ant el. Ką reiškia „Track and Trace“? Stebėjimas ir sekimas yra sistema, kurią naudoja ca
Laikrodis realiuoju laiku su „Arduino“: 3 žingsniai
Laikrodis realiuoju laiku su „Arduino“: Šiame projekte mes pagaminsime laikrodį naudodami „Arduino“ir RTC modulius. Kaip žinome, „Arduino“negali rodyti tikrojo laiko, todėl mes naudosime RTC modulį, kad LCD ekrane būtų rodomas tinkamas laikas. Atidžiai perskaitykite visus žingsnius, tai padės
Minitelis laikrodis realiuoju laiku: 5 žingsniai
„Minitel Real Time Clock“: 1978 m. Sukurtas „France Telecom“, „Minitel“buvo informacijos paieškos ir tekstinių pranešimų siuntimo paslauga. Buvo laikomas sėkmingiausiu tinklu prieš pasaulinį tinklą. Po 30 metų 2008 m. Tinklas pagaliau uždarytas. (Yra daug informacijos apie tai