جدول المحتويات:

تتبع GPS في الوقت الحقيقي: 3 خطوات
تتبع GPS في الوقت الحقيقي: 3 خطوات

فيديو: تتبع GPS في الوقت الحقيقي: 3 خطوات

فيديو: تتبع GPS في الوقت الحقيقي: 3 خطوات
فيديو: اصلاح GPS وضبط اعداداته 2024, يوليو
Anonim

تابع المزيد بالمؤلف:

اليقطين 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 و Initial State. سنرسل خطوط الطول والعرض والسرعة عبر 3G مع BerryGPS-GSM إلى الحالة الأولية.

اللوازم

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • الحالة الأولية

الخطوة 1: الحالة الأولية

الحالة الأولية
الحالة الأولية

نريد دفق جميع بيانات خطوط الطول والعرض والسرعة لدينا إلى خدمة سحابية وجعل هذه الخدمة تحول بياناتنا إلى لوحة تحكم لطيفة يمكننا الوصول إليها من جهاز الكمبيوتر المحمول أو الجهاز المحمول الخاص بنا. سوف نستخدم الحالة الأولية.

الخطوة 1: التسجيل للحصول على حساب الدولة الأولي

انتقل إلى https://iot.app.initialstate.com وأنشئ حسابًا جديدًا. تحصل على نسخة تجريبية مجانية مدتها 14 يومًا ويمكن لأي شخص لديه عنوان بريد إلكتروني تعليمي التسجيل للحصول على خطة مجانية للطلاب.

الخطوة 2: قم بتثبيت ISStreamer

قم بتثبيت وحدة بيثون الحالة الأولية على Raspberry Pi الخاص بك. في موجه الأوامر ، قم بتشغيل الأمر التالي:

$ cd / الرئيسية / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | سودو باش

الخطوة 3: اصنع بعض Automagic

بعد الخطوة 2 ، سترى شيئًا مشابهًا للإخراج التالي على الشاشة:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: بداية ISStreamer Python سهل التثبيت! قد يستغرق هذا بضع دقائق للتثبيت ، احصل على بعض القهوة:) ولكن لا تنسَ العودة ، سأطرح أسئلة لاحقًا! Found easy_install: setuptools 1.1.6 Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) إصدار النقطة الرئيسي: 1 pip إصدار ثانوي: تم العثور على 5 ISStreamer ، قيد التحديث … المطلب محدث بالفعل: ISStreamer في Library / Python / 2.7 / site-packs Cleaning up… هل تريد الحصول تلقائيًا على مثال على البرنامج النصي؟ [y / N] أين تريد حفظ المثال؟ [افتراضي:./is_example.py] يرجى تحديد تطبيق الحالة الأولية الذي تستخدمه: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com أدخل الخيار 1 أو 2: أدخل iot.app اسم مستخدم.initialstate.com: أدخل كلمة مرور iot.app.initialstate.com:

عند سؤالك عما إذا كنت تريد الحصول على مثال نصي تلقائيًا ، ضع "y" للإجابة على "نعم" واضغط على "إدخال" لحفظ البرنامج النصي في الموقع الافتراضي. بالنسبة للسؤال حول التطبيق الذي تستخدمه ، حدد 2 (إلا إذا قمت بالتسجيل قبل نوفمبر 2018) وأدخل اسم المستخدم وكلمة المرور الخاصين بك.

الخطوة 4: قم بتشغيل المثال النصي

قم بتشغيل البرنامج النصي التجريبي للتأكد من أنه يمكننا إنشاء دفق بيانات إلى حساب Initial State الخاص بك. اكتب الأمر التالي:

$ python is_example.py

الخطوة 5: مثال على البيانات

ارجع إلى حساب Initial State الخاص بك في متصفح الويب الخاص بك. يجب أن تظهر مجموعة بيانات جديدة تسمى "Python Stream Example" على اليسار في رف السجل (قد تضطر إلى تحديث الصفحة). انقر فوق هذه المجموعة لعرض البيانات الخاصة بك.

الخطوة 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 install python-pip

sudo pip install pynmea2 $ sudo pip تثبيت ISStreamer

نص بايثون الرئيسي

سننشئ هنا البرنامج النصي الرئيسي الذي سيدفق بيانات GPS إلى الحالة الأولية. يُنشئ الكود أدناه سلسلة منفصلة تُستخدم لمراقبة المنفذ التسلسلي. هذا ضروري لأن لدينا وقفة في الحلقة الرئيسية. يوجد التوقف لتحديد مقدار البيانات التي نحملها عبر شبكة الجيل الثالث.

إذا فعلنا كل شيء في نفس الخيط أثناء الإيقاف المؤقت ، فسيتم ملء المخزن المؤقت التسلسلي (هو FIFO) وعندما نحصل على القيمة التالية من المخزن المؤقت ، فسيكون قديمًا لبضع ثوان. يحدث هذا في كل حلقة وفي النهاية ستتأخر البيانات دقائق أو ساعات.

لإنشاء نص Python وفتح محرر النصوص ، أدخل الأمر التالي:

نانو GPS Tracker.py

انسخ الكود التالي والصقه في محرر النصوص. ستحتاج إلى إدخال مفتاح الوصول الأولي للحالة في السطر 11 حيث يقول "أدخل مفتاح الوصول":

#! / usr / bin / python من استيراد نظام تحديد المواقع العالمي * من استيراد الوقت * استيراد تاريخ استيراد مؤشر الترابط والوقت من ISStreamer. Streamer import Streamer gpsd = لا شيء # إعداد المتغير العام # إعداد دفق الحالة الأولية ، أدخل مفتاح الوصول الخاص بك أسفل جهاز البث = 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 (mode = WATCH_ENABLE) #Start GPSD self.running = True # ابدأ تشغيل هذا الخيط def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # إنشاء مؤشر ترابط لجمع البيانات ، جرب: gpsdThread.start () # ابدأ تشغيله بينما صحيح: طباعة "GPS" ، و gpsd.utc ، و "وقت وحدة المعالجة المركزية->" ، 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 طباعة "\ n Killing Thread…" gpsdThread.running = False gpsdThread.join () # انتظر حتى ينتهي مؤشر الترابط مما يفعله اطبع "تم. / n الخروج."

احفظ واخرج من محرر النصوص بالضغط على CTRL + X ، Y ، أدخل.

ابدأ البرنامج النصي تلقائيًا عند التمهيد

إذا كنت تقوم بالمراقبة عن بعد ، فقد ترغب في تشغيل البرنامج النصي عند التمهيد. للقيام بذلك ، سننشئ نصًا صغيرًا سيبدأ برنامج بايثون الرئيسي. أدخل الأمر التالي:

نانو GPS TrackerStart.sh

انسخ الأسطر في محرر النصوص:

#! / بن / باش

النوم 15 بيثون / home/pi/GPStracker.py &

يوجد الإيقاف المؤقت أعلاه لمنح Pi وقتًا للتمهيد والاتصال عبر PPP.

اجعل البرنامج النصي قابلاً للتنفيذ:

$ chmod + x ~ / GPStrackerStart.sh

سنستخدم cron لبدء النص في كل مرة يقوم فيها Pi بالتمهيد:

$ crontab -e

أضف السطر أدناه إلى الأسفل:

reboot /home/pi/GPStrackerStart.sh &

الخطوة 3: الموقع ولوحة معلومات السرعة

الموقع والسرعة لوحة القيادة
الموقع والسرعة لوحة القيادة

الآن بعد أن تم إعداد مشروعك وتشغيله ، يجب إرسال البيانات إلى الحالة الأولية. سيكون لديك بيانات GPS وبيانات السرعة. يمكنك استخدام بيانات GPS في مربع الخرائط لتتبع الموقع. بالنسبة إلى لوحة الخريطة ، تأكد من تحديد مربع الاختيار رسم المسار بحيث يتم تعيين تتبع موقعك مثل لوحة القيادة أعلاه. يمكنك وضع بيانات السرعة في رسم بياني خطي لمعرفة السرعة بمرور الوقت.

موصى به: