Բովանդակություն:

Իրական ժամանակում GPS հետևում ՝ 3 քայլ
Իրական ժամանակում GPS հետևում ՝ 3 քայլ

Video: Իրական ժամանակում GPS հետևում ՝ 3 քայլ

Video: Իրական ժամանակում GPS հետևում ՝ 3 քայլ
Video: Hyundai Santa Fe GPS նավիգացիոն համակարգի ակնարկ, ինչպես օգտագործել: (սուբտիտրեր) 2024, Նոյեմբեր
Anonim

Հետևեք հեղինակի ավելին ՝

Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Pumpkin Pi Trick-or-Treat Tracker
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր
Ինչպես կառուցել ազնվամորի Պի ջերմաստիճանի մոնիտոր
Տեղափոխեք տվյալները Google Աղյուսակներից դեպի վահանակ
Տեղափոխեք տվյալները Google Աղյուսակներից դեպի վահանակ
Տեղափոխեք տվյալները Google Աղյուսակներից դեպի վահանակ
Տեղափոխեք տվյալները Google Աղյուսակներից դեպի վահանակ

Այս ձեռնարկում մենք ձեզ ցույց կտանք, թե ինչպես անել իրական ժամանակում տեղադրության հետևում ՝ օգտագործելով BerryGPS-GSM, Raspberry Pi Zero և Initial State: Մենք երկարություն, լայնություն և արագություն 3G- ի միջոցով BerryGPS-GSM- ով կուղարկենք Նախնական վիճակ:

Պարագաներ

  • Ազնվամորի Պի eroրո
  • BerryGPS-GSM
  • Նախնական վիճակ

Քայլ 1: Նախնական վիճակ

Նախնական վիճակ
Նախնական վիճակ

Մենք ցանկանում ենք մեր ամբողջ երկայնության, լայնության և արագության տվյալները հոսել ամպային ծառայության վրա և այդ ծառայությունը դարձնել մեր տվյալները գեղեցիկ վահանակի, որին կարող ենք մուտք գործել մեր նոութբուքից կամ շարժական սարքից: Մենք կօգտագործենք Initial State- ը:

Քայլ 1. Գրանցվեք սկզբնական պետական հաշվի համար

Գնացեք https://iot.app.initialstate.com և ստեղծեք նոր հաշիվ: Դուք ստանում եք 14 օր անվճար փորձաշրջան, և edu էլփոստի հասցե ունեցող ցանկացած անձ կարող է գրանցվել անվճար ուսանողական ծրագրի համար:

Քայլ 2: Տեղադրեք ISStreamer- ը

Տեղադրեք սկզբնական վիճակի Python մոդուլը ձեր Raspberry Pi- ի վրա: Հրամանի տողում գործարկեք հետևյալ հրամանը.

$ cd/home/pi/

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

Քայլ 3: Կատարեք որոշ ավտոմատիկա

Քայլ 2 -ից հետո էկրանին կտեսնեք հետևյալ արտադրանքի նման մի բան.

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword. Սկսնակ ISStreamer Python Հեշտ տեղադրում: Տեղադրումը կարող է տևել մի քանի րոպե, սուրճ խմել:) Բայց մի մոռացեք վերադառնալ, ես հարցեր կունենամ ավելի ուշ: Գտնվել է easy_install. Գտնվել է 5 ISStreamer, թարմացվում է … Պահանջն արդեն արդիական է. ISStreamer գրադարանում/Python/2.7/կայքի փաթեթներում Մաքրում … wantանկանու՞մ եք ավտոմատ կերպով ստանալ օրինակ սցենար: [y/N] Որտե՞ղ եք ցանկանում պահպանել օրինակը: [կանխադրված..initialstate.com օգտվողի անունը. Մուտքագրեք iot.app.initialstate.com գաղտնաբառը:

Հարցին, թե արդյո՞ք ցանկանում եք ավտոմատ կերպով ձեռք բերել օրինակ սցենար, այո նշեք «y» և սեղմեք enter ՝ ձեր սկրիպտը կանխադրված վայրում պահելու համար: Հարցին, թե որ ծրագիրն եք օգտագործում, ընտրեք 2 -ը (եթե չեք գրանցվել մինչև 2018 թ. Նոյեմբեր) և մուտքագրեք ձեր օգտանունը և գաղտնաբառը:

Քայլ 4: Գործարկեք օրինակ սցենարը

Գործարկեք փորձարկման սցենարը `համոզվելու համար, որ մենք կարող ենք տվյալների հոսք ստեղծել ձեր Նախնական վիճակի հաշվին: Գրեք հետևյալ հրամանը.

$ python is_example.py

Քայլ 5: Տվյալների օրինակ

Վերադարձեք ձեր սկզբնական վիճակի հաշվին ձեր վեբ դիտարկիչում: Տվյալների նոր դույլ, որը կոչվում է «Python Stream Օրինակ», պետք է հայտնվեր ձեր մատյանների դարակում ձախ կողմում (գուցե ստիպված լինեք թարմացնել էջը): Կտտացրեք այս դույլին ՝ ձեր տվյալները դիտելու համար:

Քայլ 2: BerryGPS-GSM & Raspberry Pi Zero

BerryGPS-GSM & Raspberry Pi Zero
BerryGPS-GSM & Raspberry Pi Zero

Եթե դուք օգտագործում եք BerryGPS-GSM, կարող եք հետևել այս ուղեցույցին, որպեսզի GPS- ը աշխատի և ձեր Pi- ն միանա 3G- ի միջոցով ՝ օգտագործելով PPP:

Կապված ուղեցույցը նաև ցույց է տալիս, թե ինչպես կարելի է ստիպել ձեր Pi- ին ինքնաբերաբար միանալ կրիչի ցանցին, երբ գործարկվում է: Սա ձեզ պետք կգա, եթե պլանավորում եք կատարել հեռավոր հետևում:

Տեղադրեք գրադարաններ

Ձեզ հարկավոր է տեղադրել հետևյալ գրադարանները.

$ sudo apt-get տեղադրել python-pip

$ sudo pip տեղադրել pynmea2 $ sudo pip տեղադրել ISStreamer

Հիմնական Python Script

Այստեղ մենք կստեղծենք հիմնական սցենարը, որը GPS- ի տվյալները կհեռացնի Նախնական վիճակ: Ստորև բերված ծածկագիրը ստեղծում է առանձին թել, որն օգտագործվում է սերիական պորտը վերահսկելու համար: Սա անհրաժեշտ է, քանի որ հիմնական հանգույցում մենք ունենք դադար: Դադարն այնտեղ է ՝ սահմանափակելու համար, թե որքան տվյալների ենք վերբեռնում 3G- ից ավելի:

Եթե մենք ընդմիջման ժամանակ ամեն ինչ անեինք նույն շարանում, ապա սերիական բուֆերը կլցվեր (դա FIFO է), և երբ բուֆերից ստանանք հաջորդ արժեքը, այն մի քանի վայրկյանով հին կլինի: Դա տեղի է ունենում յուրաքանչյուր հանգույց և, ի վերջո, տվյալները րոպեներ կամ ժամեր հետ կլինեն:

Պիթոնի սցենարը ստեղծելու և տեքստային խմբագրիչը բացելու համար մուտքագրեք հետևյալ հրամանը.

$ nano GPStracker.py

Պատճենեք և տեղադրեք հետևյալ ծածկագիրը տեքստային խմբագրիչի մեջ: Դուք պետք է մուտքագրեք ձեր սկզբնական վիճակի մուտքի բանալին 11 -րդ տողում, որտեղ գրված է «Մուտքագրեք ձեր մուտքի բանալին».

#! /usr/bin/python From gps import * from time import * import threadinging import datetime from ISStreamer. Streamer import Streamer gpsd = Ոչ մի #Կարգավորեք գլոբալ փոփոխական #Կարգավորեք սկզբնական վիճակի հոսքը, մուտքագրեք մուտքի բանալին streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" Մուտք գործեք ձեր մուտքի բանալին ") դասի GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring այն ընդգրկում է gpsd = gps (ռեժիմ = WATCH_ENABLE) #Սկսել GPSD self.running = #իշտ #Սկսեք այս շարանը գործարկել def run (self). գլոբալ gpsd մինչ gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # ստեղծել թեմա տվյալների հավաքման համար. gpsdThread.start () # սկսել այն մինչ True: տպել 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), եթե (gpsd.fix.longitude0) և (gpsd.fix.longitude'nan '): streamer.log («Տեղ», «{lat}, {lon}». ձևաչափ (lat = gpsd.fix. լայնություն, lon = gpsd.fix.longitu դե) streamer.log («արագություն», gpsd.fix.speed) տպել «լատ», gpsd.fix.latitude, տպել «lon», gpsd.fix.longitude, տպել «արագություն», gpsd.fix.speed sleep (5) բացառությամբ (KeyboardInterrupt, SystemExit). # Երբ սեղմում ես ctrl+c print "\ n Սպանող թեմա …" gpsdThread.running = Կեղծ gpsdThread.join () # սպասիր, մինչև շարանը կավարտի տպածը "Կատարված: / n"

Պահեք և դուրս եկեք տեքստային խմբագրիչից ՝ սեղմելով CTRL + X, Y, մուտքագրեք:

Գործարկումը ինքնաբերաբար սկսեք բեռնման ժամանակ

Եթե դուք կատարում եք հեռակա մոնիտորինգ, ապա կցանկանայիք, որ սցենարը գործի բեռնման վրա: Դա անելու համար մենք կստեղծենք փոքր սցենար, որը կսկսի հիմնական պիթոնի ծրագիրը: Մուտքագրեք հետևյալ հրամանը.

$ nano GPStrackerStart.sh

Պատճենեք տողերը տեքստային խմբագրիչում.

#!/bin/bash

քնել 15 python /home/pi/GPStracker.py &

Վերևի դադարն այն է, որ Pi- ին ժամանակ տրվի գործարկելու և միանալու PPP- ի միջոցով:

Սցենարը կատարելի դարձրեք.

$ chmod +x ~/GPStrackerStart.sh

Մենք կօգտագործենք cron ՝ սցենարը սկսելու համար ամեն անգամ, երբ Pi- ն կոշիկ է անում.

$ crontab -e

Ներքևում ավելացրեք ստորև բերված տողը.

@reboot /home/pi/GPStrackerStart.sh &

Քայլ 3: Տեղադրության և արագության վահանակ

Տեղադրության և արագության վահանակ
Տեղադրության և արագության վահանակ

Այժմ, երբ դուք ունեք ձեր նախագիծը գործարկված, տվյալները պետք է ուղարկվեն Նախնական վիճակ: Դուք կունենաք GPS և արագության տվյալներ: Դուք կարող եք օգտագործել GPS տվյալները քարտեզի սալիկում ՝ գտնվելու վայրը հետևելու համար: Քարտեզ Սալիկի համար համոզվեք, որ նշեք Draw Path վանդակը, որպեսզի ձեր գտնվելու վայրի հետագծումը քարտեզագրվի վերևի վահանակի պես: Speedամանակի ընթացքում արագությունը տեսնելու համար կարող եք տեղադրել ձեր արագության տվյալները գծային գրաֆիկի մեջ:

Խորհուրդ ենք տալիս: