สารบัญ:

การติดตาม GPS แบบเรียลไทม์: 3 ขั้นตอน
การติดตาม GPS แบบเรียลไทม์: 3 ขั้นตอน

วีดีโอ: การติดตาม GPS แบบเรียลไทม์: 3 ขั้นตอน

วีดีโอ: การติดตาม GPS แบบเรียลไทม์: 3 ขั้นตอน
วีดีโอ: วิธีแชร์พิกัดมือถือแบบเรียลไทม์ ติดตามมือถืออีกเครื่องได้ตลอดเวลา 2024, กรกฎาคม
Anonim

โดย elizabethnaFollow เพิ่มเติมโดยผู้เขียน:

ฟักทอง Pi Trick-or-Treat Tracker
ฟักทอง Pi Trick-or-Treat Tracker
ฟักทอง Pi Trick-or-Treat Tracker
ฟักทอง Pi Trick-or-Treat Tracker
วิธีสร้างตัวตรวจสอบอุณหภูมิ Raspberry Pi
วิธีสร้างตัวตรวจสอบอุณหภูมิ Raspberry Pi
วิธีสร้างตัวตรวจสอบอุณหภูมิ Raspberry Pi
วิธีสร้างตัวตรวจสอบอุณหภูมิ Raspberry Pi
สตรีมข้อมูลจาก Google ชีตไปยังแดชบอร์ด
สตรีมข้อมูลจาก Google ชีตไปยังแดชบอร์ด
สตรีมข้อมูลจาก Google ชีตไปยังแดชบอร์ด
สตรีมข้อมูลจาก Google ชีตไปยังแดชบอร์ด

ในบทช่วยสอนนี้ เราจะแสดงวิธีการติดตามตำแหน่งแบบเรียลไทม์โดยใช้ BerryGPS-GSM, Raspberry Pi Zero และสถานะเริ่มต้น เราจะส่งลองจิจูด ละติจูด และความเร็วผ่าน 3G ด้วย BerryGPS-GSM ไปยังสถานะเริ่มต้น

เสบียง

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • สถานะเริ่มต้น

ขั้นตอนที่ 1: สถานะเริ่มต้น

สถานะเริ่มต้น
สถานะเริ่มต้น

เราต้องการสตรีมข้อมูลลองจิจูด ละติจูด และความเร็วทั้งหมดไปยังบริการคลาวด์ และให้บริการนั้นเปลี่ยนข้อมูลของเราให้เป็นแดชบอร์ดที่ดีที่เราสามารถเข้าถึงได้จากแล็ปท็อปหรืออุปกรณ์มือถือของเรา เราจะใช้สถานะเริ่มต้น

ขั้นตอนที่ 1: ลงทะเบียนบัญชีสถานะเริ่มต้น

ไปที่ https://iot.app.initialstate.com และสร้างบัญชีใหม่ คุณได้รับการทดลองใช้ฟรี 14 วัน และทุกคนที่มีที่อยู่อีเมลสำหรับการศึกษาสามารถลงทะเบียนแผนสำหรับนักเรียนได้ฟรี

ขั้นตอนที่ 2: ติดตั้ง ISStreamer

ติดตั้งโมดูล Initial State Python ลงใน Raspberry Pi ของคุณ ในพรอมต์คำสั่ง เรียกใช้คำสั่งต่อไปนี้:

$ cd /home/pi/

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

ขั้นตอนที่ 3: สร้าง Automagic

หลังจากขั้นตอนที่ 2 คุณจะเห็นสิ่งที่คล้ายกับผลลัพธ์ต่อไปนี้ที่หน้าจอ:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: เริ่มต้น ISStreamer Python ติดตั้งง่าย! อาจใช้เวลาสองสามนาทีในการติดตั้ง หยิบกาแฟ:) แต่อย่าลืมกลับมา ฉันจะมีคำถามในภายหลัง! พบ easy_install: setuptools 1.1.6 พบ pip: pip 1.5.6 จาก /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) รุ่น pip หลัก: 1 pip รุ่นรอง: พบ ISStreamer 5 รายการ กำลังอัปเดต… ข้อกำหนดเป็นปัจจุบันแล้ว: ISStreamer ใน Library/Python/2.7/site-packages กำลังล้างข้อมูล… คุณต้องการรับสคริปต์ตัวอย่างโดยอัตโนมัติหรือไม่ [y/N] คุณต้องการเก็บตัวอย่างไว้ที่ไหน? [ค่าเริ่มต้น:./is_example.py] โปรดเลือกแอป Initial State ที่คุณใช้อยู่: 1. app.initialstate.com 2. [ใหม่!] iot.app.initialstate.com ป้อนตัวเลือก 1 หรือ 2: ป้อน iot.app.initialstate.com ชื่อผู้ใช้: ป้อน iot.app.initialstate.com รหัสผ่าน:

เมื่อถูกถามว่าคุณต้องการรับสคริปต์ตัวอย่างโดยอัตโนมัติหรือไม่ ให้ใส่ "y" สำหรับใช่ แล้วกด Enter เพื่อบันทึกสคริปต์ของคุณในตำแหน่งเริ่มต้น สำหรับคำถามเกี่ยวกับแอปที่คุณกำลังใช้ ให้เลือก 2 (เว้นแต่คุณจะสมัครก่อนเดือนพฤศจิกายน 2018) แล้วป้อนชื่อผู้ใช้และรหัสผ่านของคุณ

ขั้นตอนที่ 4: เรียกใช้สคริปต์ตัวอย่าง

เรียกใช้สคริปต์ทดสอบเพื่อให้แน่ใจว่าเราสามารถสร้างสตรีมข้อมูลไปยังบัญชีสถานะเริ่มต้นของคุณได้ เขียนคำสั่งต่อไปนี้:

$ หลาม is_example.py

ขั้นตอนที่ 5: ตัวอย่างข้อมูล

กลับไปที่บัญชี Initial State ของคุณในเว็บเบราว์เซอร์ ที่เก็บข้อมูลใหม่ที่เรียกว่า "ตัวอย่างสตรีม Python" ควรปรากฏขึ้นทางด้านซ้ายในชั้นวางบันทึกของคุณ (คุณอาจต้องรีเฟรชหน้า) คลิกที่ถังนี้เพื่อดูข้อมูลของคุณ

ขั้นตอนที่ 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 หลัก

ที่นี่ เราจะสร้างสคริปต์หลักซึ่งจะสตรีมข้อมูล GPS ไปยังสถานะเริ่มต้น รหัสด้านล่างสร้างเธรดแยกต่างหากซึ่งใช้ตรวจสอบพอร์ตอนุกรม นี่เป็นสิ่งจำเป็นเพราะเรามีการหยุดชั่วคราวในลูปหลัก มีการหยุดชั่วคราวเพื่อจำกัดปริมาณข้อมูลที่เราอัปโหลดผ่าน 3G

ถ้าเราทำทุกอย่างในเธรดเดียวกันระหว่างการหยุดชั่วคราว บัฟเฟอร์อนุกรมจะเต็ม (มันคือ FIFO) และเมื่อเราได้รับค่าถัดไปจากบัฟเฟอร์ ค่านั้นก็จะเก่าภายในไม่กี่วินาที สิ่งนี้เกิดขึ้นทุก ๆ วงและในที่สุดข้อมูลจะช้าไปเป็นนาทีหรือหลายชั่วโมง

ในการสร้างสคริปต์หลามและเปิดตัวแก้ไขข้อความให้ป้อนคำสั่งต่อไปนี้:

$ nano GPStracker.py

คัดลอกและวางโค้ดต่อไปนี้ลงในโปรแกรมแก้ไขข้อความ คุณจะต้องป้อนรหัสการเข้าถึงสถานะเริ่มต้นของคุณในบรรทัดที่ 11 ซึ่งระบุว่า "ENTER YOUR ACCESS KEY":

#! /usr/bin/pythonfrom การนำเข้า gps * จากการนำเข้าเวลา * วันที่นำเข้าเธรดการนำเข้าจาก ISStreamer. Streamer การนำเข้าสตรีมเมอร์ gpsd = ไม่มี #Setup ตัวแปรส่วนกลาง #Setup สถานะเริ่มต้นสตรีม ป้อนคีย์การเข้าถึงของคุณด้านล่าง streamer = Streamer (bucket_name="GPS_Tracker ", bucket_key="GPS_TRACKER", access_key="ENTER YOUR ACCESS KEY") คลาส GPSDcollector(threading. Thread): def _init_(self, threadID): threading. Thread._init_(self) self.threadID = threadID global gpsd #bring มันอยู่ในขอบเขต gpsd = gps(mode=WATCH_ENABLE) #Start GPSD self.running = True #Start run this thread def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # สร้างเธรดเพื่อรวบรวมข้อมูล ลอง: gpsdThread.start() # start it up while True: print 'GPS', gpsd.utc, ' CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) และ (gpsd.fix.longitude'nan'): streamer.log("Location", "{lat}, {lon}".format(lat=gpsd.fix).latitude, lon=gpsd.fix.longitu de)) streamer.log ("speed", gpsd.fix.speed) พิมพ์ ' lat ', gpsd.fix.latitude พิมพ์ ' lon ', gpsd.fix.longitude พิมพ์ ' speed ', gpsd.fix.speed sleep (5) ยกเว้น (KeyboardInterrupt, SystemExit): #เมื่อคุณกด ctrl+c พิมพ์ "\nKilling Thread…" gpsdThread.running = False gpsdThread.join() # รอให้เธรดทำงานเสร็จ ให้พิมพ์ "เสร็จสิ้น\nการออก."

บันทึกและออกจากโปรแกรมแก้ไขข้อความโดยกด CTRL + X, Y แล้ว Enter

เริ่มสคริปต์โดยอัตโนมัติเมื่อบูต

หากคุณกำลังตรวจสอบระยะไกล คุณต้องการให้สคริปต์ทำงานขณะบูต ในการทำเช่นนี้ เราจะสร้างสคริปต์ขนาดเล็กที่จะเริ่มต้นโปรแกรมไพธอนหลัก ป้อนคำสั่งต่อไปนี้:

$ nano GPStrackerStart.sh

คัดลอกบรรทัดลงในโปรแกรมแก้ไขข้อความ:

#!/bin/bash

นอน 15 หลาม /home/pi/GPStracker.py &

การหยุดชั่วคราวด้านบนมีไว้เพื่อให้ Pi มีเวลาบูตและเชื่อมต่อผ่าน PPP

ทำให้สคริปต์สามารถเรียกใช้งานได้:

$ chmod +x ~/GPStrackerStart.sh

เราจะใช้ cron เพื่อเริ่มสคริปต์ทุกครั้งที่บูท Pi:

$ crontab -e

เพิ่มบรรทัดด้านล่างไปที่ด้านล่าง:

@reboot /home/pi/GPStrackerStart.sh &

ขั้นตอนที่ 3: ตำแหน่ง & แดชบอร์ดความเร็ว

ตำแหน่ง & แดชบอร์ดความเร็ว
ตำแหน่ง & แดชบอร์ดความเร็ว

ตอนนี้คุณมีโปรเจ็กต์ของคุณแล้วและกำลังดำเนินการ ข้อมูลควรถูกส่งไปยังสถานะเริ่มต้น คุณจะมีข้อมูล GPS และข้อมูลความเร็ว คุณสามารถใช้ข้อมูล GPS ในไทล์แผนที่เพื่อติดตามตำแหน่งได้ สำหรับไทล์แผนที่ ตรวจสอบให้แน่ใจว่าได้เลือกช่องทำเครื่องหมาย Draw Path เพื่อให้การติดตามตำแหน่งของคุณถูกแมปเหมือนแดชบอร์ดด้านบน คุณสามารถใส่ข้อมูลความเร็วของคุณในกราฟเส้นเพื่อดูความเร็วเมื่อเวลาผ่านไป

แนะนำ: