Përmbajtje:
- Furnizimet
- Hapi 1: Gjendja fillestare
- Hapi 2: BerryGPS-GSM & Raspberry Pi Zero
- Hapi 3: Pulti i Vendndodhjes dhe Shpejtësisë
Video: Gjurmimi GPS në kohë reale: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Ndiqni Më shumë nga autori:
Në këtë tutorial, ne do t'ju tregojmë se si të bëni përcjelljen e vendndodhjes në kohë reale duke përdorur një BerryGPS-GSM, një Raspberry Pi Zero dhe gjendjen fillestare. Ne do të dërgojmë gjatësinë, gjerësinë dhe shpejtësinë përmes 3G me BerryGPS-GSM në gjendjen fillestare.
Furnizimet
- Raspberry Pi Zero
- BerryGPS-GSM
- Gjendja fillestare
Hapi 1: Gjendja fillestare
Ne duam të transmetojmë të gjitha të dhënat tona për gjatësinë, gjerësinë dhe shpejtësinë në një shërbim cloud dhe ta bëjmë atë shërbim të kthejë të dhënat tona në një pult të bukur, të cilit mund t'i qasemi nga laptopi ose pajisja jonë celulare. Ne do të përdorim gjendjen fillestare.
Hapi 1: Regjistrohuni për Llogarinë Fillestare të Shtetit
Shkoni në https://iot.app.initialstate.com dhe krijoni një llogari të re. Ju merrni një provë 14 -ditore falas dhe kushdo me një adresë emaili edu mund të regjistrohet për një plan studentor falas.
Hapi 2: Instaloni ISStreamer
Instaloni modulin fillestar të Python State në Raspberry Pi tuaj. Në komandën e shpejtë, ekzekutoni komandën e mëposhtme:
$ cd/home/pi/
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Hapi 3: Bëni pak Automagic
Pas Hapit 2 do të shihni diçka të ngjashme me daljen e mëposhtme në ekran:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Fillimi i instalimit të lehtë të ISStreamer Python! Kjo mund të zgjasë disa minuta për të instaluar, pi pak kafe:) Por mos harroni të ktheheni, do të kem pyetje më vonë! Gjetur easy_install: setuptools 1.1.6 Gjetur pip: pip 1.5.6 nga /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versioni kryesor i pipit: 1 pip version i vogël: 5 ISStreamer u gjet, duke u përditësuar … Kërkesa tashmë e përditësuar: ISStreamer në Bibliotekë/Python/2.7/paketat e faqeve Pastrimi … Dëshironi të merrni automatikisht një skenar shembull? [y/N] Ku doni ta ruani shembullin? [parazgjedhja:./is_example.py] Ju lutemi zgjidhni cilin aplikacion të gjendjes fillestare po përdorni: 1. app.initialstate.com 2. [E RE!] iot.app.initialstate.com Shkruani zgjedhjen 1 ose 2: Futni iot.app.initialstate.com emri i përdoruesit: Shkruani fjalëkalimin iot.app.initialstate.com:
Kur pyeteni nëse doni të merrni automatikisht një skenar shembull vendosni "y" për po dhe shtypni enter për të ruajtur skriptin tuaj në vendndodhjen e paracaktuar. Për pyetjen se cilin aplikacion po përdorni, zgjidhni 2 (nëse nuk jeni regjistruar para nëntorit 2018) dhe shkruani emrin e përdoruesit dhe fjalëkalimin tuaj.
Hapi 4: Drejtoni Skriptin Shembull
Drejtoni skriptin e provës për t'u siguruar që mund të krijojmë një rrjedhë të të dhënave në llogarinë tuaj të gjendjes fillestare. Shkruani komandën e mëposhtme:
$ python is_example.py
Hapi 5: Shembull i të dhënave
Kthehuni te llogaria juaj e gjendjes fillestare në shfletuesin tuaj të internetit. Një kovë e re e të dhënave e quajtur "Shembulli i Python Stream" duhet të jetë shfaqur në të majtë në raftin tuaj të regjistrit (mund t'ju duhet të rifreskoni faqen). Klikoni në këtë kovë për të parë të dhënat tuaja.
Hapi 2: BerryGPS-GSM & Raspberry Pi Zero
Nëse jeni duke përdorur një BerryGPS-GSM, mund të ndiqni këtë udhëzues për të funksionuar GPS dhe për të lidhur Pi tuaj nëpërmjet 3G duke përdorur PPP.
Udhëzuesi i lidhur gjithashtu tregon se si ta bëni Pi -në tuaj të lidhet automatikisht me rrjetin e transportuesit kur fillon. Ju do të keni nevojë për këtë nëse planifikoni të kryeni gjurmimin në distancë.
Instaloni Bibliotekat
Ju do të duhet të instaloni bibliotekat e mëposhtme:
$ sudo apt-get instaloni python-pip
$ sudo pip instaloni pynmea2 $ sudo pip instaloni ISStreamer
Skenari kryesor Python
Këtu do të krijojmë skriptin kryesor i cili do të transmetojë të dhënat GPS në gjendjen fillestare. Kodi më poshtë krijon një fije të veçantë e cila përdoret për të monitoruar portin serik. Kjo është e nevojshme sepse kemi një pauzë në lakin kryesor. Pushimi është atje për të kufizuar sasinë e të dhënave që ngarkojmë mbi 3G.
Nëse do të bënim gjithçka në të njëjtën fije gjatë pauzës, tamponi serik do të mbushej (është FIFO) dhe kur marrim vlerën tjetër nga tamponi, do të jetë e vjetër për disa sekonda. Kjo ndodh në çdo lak dhe përfundimisht të dhënat do të jenë minuta ose orë prapa.
Për të krijuar shkrimin python dhe për të hapur redaktuesin e tekstit, futni komandën e mëposhtme:
$ nano GPStracker.py
Kopjoni dhe ngjisni kodin e mëposhtëm në redaktuesin e tekstit. Ju do të duhet të futni çelësin tuaj fillestar të hyrjes në gjendjen në rreshtin 11 ku thuhet "HYRJE ÇELEYSIN TUAJ T HYRJES":
#! /usr/bin/pythonnga gps import * nga importi i kohës * importo fillimin e datës së datës së importit nga ISStreamer. Streamer import Streamer gpsd = Asnjë #Setup ndryshore globale #Vendosni rrjedhën e gjendjes fillestare, futni çelësin tuaj të hyrjes poshtë streamer = Streamer (emri i kovës = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" HYNI ÇELEYSIN TUAJ T HYRJES ") klasë GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring është në kuadër gpsd = gps (modaliteti = WATCH_ENABLE) #Start GPSD self.running = E vërtetë #Fillo të fillosh këtë fije def run (self): global gpsd ndërsa gpsdThread.running: gpsd.next () nëse _name_ == '_main_': gpsdThread = GPSDcollector (1) # krijoni një fije për të mbledhur të dhëna provoni: gpsdThread.start () # filloni atë ndërsa e vërtetë: printoni 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), nëse (gpsd.fix.longitude0) dhe (gpsd.fix.longitude'nan '): streamer.log ("Vendndodhja", "{lat}, {lon}". format) (lat = gpsd.fix.gjatësia gjeografike, lon = gpsd.fix.longitu de)) streamer.log ("shpejtësia", gpsd.fix.speed) print 'lat', gpsd.fix.latitude, print 'lon', gpsd.fix.longitude, print 'speed', gpsd.fix.speed sleep (5) përveç (KeyboardInterrupt, SystemExit): # kur shtypni ctrl+c print "\ nKilling Thread …" gpsdThread.running = False gpsdThread.join () # prisni që fija të përfundojë atë që po bën printimi "Mbaroi. / NPërfundimi"
Ruani dhe dilni nga redaktuesi i tekstit duke shtypur CTRL + X, Y, enter.
Filloni skriptin automatikisht në nisje
Nëse jeni duke bërë monitorim në distancë, do të dëshironi që skripti të funksionojë në boot. Për ta bërë këtë, ne do të krijojmë një skript të vogël i cili do të fillojë programin kryesor të python. Futni komandën e mëposhtme:
$ nano GPStrackerStart.sh
Kopjoni rreshtat në redaktuesin e tekstit:
#!/bin/bash
fle 15 python /home/pi/GPStracker.py &
Pushimi i mësipërm është atje për t'i dhënë Pi kohës për të nisur dhe lidhur me PPP.
Bëni skriptin të ekzekutueshëm:
$ chmod +x ~/GPStrackerStart.sh
Ne do të përdorim cron për të filluar skriptin sa herë që Pi të çizmet:
$ crontab -e
Shtoni rreshtin e mëposhtëm në fund:
@reboot /home/pi/GPStrackerStart.sh &
Hapi 3: Pulti i Vendndodhjes dhe Shpejtësisë
Tani që e keni projektin tuaj në funksion, të dhënat duhet të dërgohen në gjendjen fillestare. Do të kesh të dhëna GPS dhe të dhëna të shpejtësisë. Ju mund të përdorni të dhënat GPS në një pllakë hartash për të gjetur vendndodhjen. Për Pllakën e hartës, sigurohuni që të kontrolloni kutinë e zgjedhjes së Shtegut të Vizatimit në mënyrë që gjurmimi i vendndodhjes tuaj të përcaktohet si pulti i mësipërm. Ju mund t'i vendosni të dhënat tuaja të shpejtësisë në një grafik për të parë shpejtësinë me kalimin e kohës.
Recommended:
Si të përdorni një modul të orës në kohë reale (DS3231): 5 hapa
Si të përdorni një modul të orës në kohë reale (DS3231): DS3231 është një orë me kosto të ulët, jashtëzakonisht e saktë I2C në kohë reale (RTC) me një oshilator kristal të kompensuar nga temperatura (TCXO) dhe kristal. Pajisja përfshin një hyrje të baterisë dhe mban matjen e saktë të kohës kur fuqia kryesore të
Zgjidhësi i Rubikut të Rubikut në kohë reale me sy të lidhur duke përdorur Raspberry Pi dhe OpenCV: 4 hapa
Zgjidhësi i Rubikut të Rubikut me Sy të Shikuar në kohë Reale duke përdorur Raspberry Pi dhe OpenCV: Ky është versioni i dytë i mjetit kubik të Rubikut i bërë për zgjidhjen me sy të mbyllur. Versioni i parë u zhvillua nga javascript, ju mund ta shihni projektin RubiksCubeBlindfolded1 Ndryshe nga versioni i mëparshëm, ky version përdor bibliotekën OpenCV për të zbuluar ngjyrat dhe
Një matës i nivelit të ujit të pusit në kohë reale: 6 hapa (me fotografi)
Një matës i nivelit të ujit të pusit në kohë reale: Këto udhëzime përshkruajnë se si të ndërtoni një ujëmatës me kosto të ulët, në kohë reale për përdorim në puse të gërmuara. Matësi i nivelit të ujit është krijuar për të varur brenda një pusi të gërmuar, për të matur nivelin e ujit një herë në ditë dhe për të dërguar të dhënat me anë të WiFi ose lidhjes celulare
Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)
Gjurmimi dhe gjurmimi për dyqanet e vogla: Ky është një sistem i krijuar për dyqane të vogla që supozohet të montohet në biçikleta elektronike ose e-skutera për dërgesa me rreze të shkurtër, për shembull një furrë buke që dëshiron të ofrojë ëmbëlsira. Çfarë do të thotë Gjurmë dhe Gjurmë? Gjurmimi dhe gjurmimi është një sistem i përdorur nga ca
Gjurmues GPS në shtëpi në kohë reale (SIM800L, Ublox NEO-6M, Arduino): 8 hapa
Gjurmues GPS i Shtëpisë në kohë Reale (SIM800L, Ublox NEO-6M, Arduino): Pra, ju keni një modul GSM të shtrirë përreth si unë? Gjithashtu një GPS-tracker? Ne mendojmë të njëjtën gjë! Në këtë udhëzues, unë do të përpiqem t'ju udhëzoj se si ta arrini qëllimin tuaj nga perspektiva e një të sapoardhuri. Duke qenë se nuk kisha njohuri të mëparshme të inxhinierisë elektrike (për