9.5 KiB
قراءة بيانات GPS - جهاز إنترنت الأشياء الافتراضي
في هذا الجزء من الدرس، ستضيف مستشعر GPS إلى جهاز إنترنت الأشياء الافتراضي الخاص بك، وتقرأ القيم منه.
الأجهزة الافتراضية
سيستخدم جهاز إنترنت الأشياء الافتراضي مستشعر GPS محاكى يمكن الوصول إليه عبر UART من خلال منفذ تسلسلي.
يحتوي مستشعر GPS الفعلي على هوائي لالتقاط موجات الراديو من الأقمار الصناعية لنظام GPS، وتحويل إشارات GPS إلى بيانات GPS. النسخة الافتراضية تحاكي ذلك من خلال السماح لك إما بتعيين خط العرض وخط الطول، أو إرسال جمل NMEA الخام، أو تحميل ملف GPX يحتوي على مواقع متعددة يمكن إرجاعها بالتتابع.
🎓 سيتم تغطية جمل NMEA لاحقًا في هذا الدرس
إضافة المستشعر إلى CounterFit
لاستخدام مستشعر GPS افتراضي، تحتاج إلى إضافته إلى تطبيق CounterFit.
المهمة - إضافة المستشعر إلى CounterFit
أضف مستشعر GPS إلى تطبيق CounterFit.
-
قم بإنشاء تطبيق Python جديد على جهاز الكمبيوتر الخاص بك في مجلد يسمى
gps-sensor
يحتوي على ملف واحد يسمىapp.py
وبيئة افتراضية لـ Python، وأضف حزم pip الخاصة بـ CounterFit.⚠️ يمكنك الرجوع إلى التعليمات الخاصة بإنشاء وإعداد مشروع Python لـ CounterFit في الدرس الأول إذا لزم الأمر.
-
قم بتثبيت حزمة Pip إضافية لتثبيت shim لـ CounterFit يمكنه التحدث إلى المستشعرات القائمة على UART عبر اتصال تسلسلي. تأكد من تثبيتها من خلال نافذة طرفية مع تفعيل البيئة الافتراضية.
pip install counterfit-shims-serial
-
تأكد من تشغيل تطبيق الويب CounterFit.
-
قم بإنشاء مستشعر GPS:
-
في مربع إنشاء مستشعر في لوحة المستشعرات، افتح القائمة المنسدلة نوع المستشعر واختر UART GPS.
-
اترك المنفذ مضبوطًا على /dev/ttyAMA0.
-
اختر زر إضافة لإنشاء مستشعر GPS على المنفذ
/dev/ttyAMA0
.
سيتم إنشاء مستشعر GPS وسيظهر في قائمة المستشعرات.
-
برمجة مستشعر GPS
يمكن الآن برمجة جهاز إنترنت الأشياء الافتراضي لاستخدام مستشعر GPS الافتراضي.
المهمة - برمجة مستشعر GPS
برمج تطبيق مستشعر GPS.
-
تأكد من فتح تطبيق
gps-sensor
في VS Code. -
افتح ملف
app.py
. -
أضف الكود التالي إلى أعلى ملف
app.py
لتوصيل التطبيق بـ CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
أضف الكود التالي أسفل ذلك لاستيراد بعض المكتبات اللازمة، بما في ذلك مكتبة المنفذ التسلسلي لـ CounterFit:
import time import counterfit_shims_serial serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
يقوم هذا الكود باستيراد وحدة
serial
من حزمة Pip الخاصة بـcounterfit_shims_serial
. ثم يتصل بمنفذ/dev/ttyAMA0
التسلسلي - وهو عنوان المنفذ التسلسلي الذي يستخدمه مستشعر GPS الافتراضي لمنفذ UART الخاص به. -
أضف الكود التالي أسفل ذلك لقراءة البيانات من المنفذ التسلسلي وطباعة القيم إلى وحدة التحكم:
def print_gps_data(line): print(line.rstrip()) while True: line = serial.readline().decode('utf-8') while len(line) > 0: print_gps_data(line) line = serial.readline().decode('utf-8') time.sleep(1)
يتم تعريف وظيفة تسمى
print_gps_data
تقوم بطباعة السطر الممرر إليها إلى وحدة التحكم.بعد ذلك، يقوم الكود بالتكرار إلى ما لا نهاية، حيث يقرأ أكبر عدد ممكن من الأسطر النصية من المنفذ التسلسلي في كل دورة. يستدعي وظيفة
print_gps_data
لكل سطر.بعد قراءة جميع البيانات، يتوقف التكرار لمدة ثانية واحدة، ثم يحاول مرة أخرى.
-
قم بتشغيل هذا الكود، مع التأكد من استخدام نافذة طرفية مختلفة عن تلك التي يتم تشغيل تطبيق CounterFit فيها، حتى يظل تطبيق CounterFit قيد التشغيل.
-
من تطبيق CounterFit، قم بتغيير قيمة مستشعر GPS. يمكنك القيام بذلك بإحدى الطرق التالية:
-
ضبط المصدر على
Lat/Lon
، وتعيين خط عرض وخط طول وعدد الأقمار الصناعية المستخدمة للحصول على تثبيت GPS. سيتم إرسال هذه القيمة مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات كل ثانية. -
ضبط المصدر على
NMEA
وإضافة بعض جمل NMEA في مربع النص. سيتم إرسال جميع هذه القيم، مع تأخير قدره ثانية واحدة قبل قراءة كل جملة GGA (تثبيت الموقع).يمكنك استخدام أداة مثل nmeagen.org لإنشاء هذه الجمل عن طريق الرسم على الخريطة. سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.
-
ضبط المصدر على ملف GPX، وتحميل ملف GPX يحتوي على مواقع المسار. يمكنك تنزيل ملفات GPX من عدد من مواقع الخرائط والمشي الشهيرة، مثل AllTrails. تحتوي هذه الملفات على مواقع GPS متعددة كمسار، وسيعيد مستشعر GPS كل موقع جديد بفاصل زمني قدره ثانية واحدة.
سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.
بمجرد تكوين إعدادات GPS، اختر زر تعيين لتطبيق هذه القيم على المستشعر.
-
-
سترى الإخراج الخام من مستشعر GPS، شيء مثل التالي:
$GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
💁 يمكنك العثور على هذا الكود في المجلد code-gps/virtual-device.
😀 لقد نجحت في برمجة مستشعر GPS الخاص بك!
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.