You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ar/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

9.5 KiB

قراءة بيانات GPS - جهاز إنترنت الأشياء الافتراضي

في هذا الجزء من الدرس، ستضيف مستشعر GPS إلى جهاز إنترنت الأشياء الافتراضي الخاص بك، وتقرأ القيم منه.

الأجهزة الافتراضية

سيستخدم جهاز إنترنت الأشياء الافتراضي مستشعر GPS محاكى يمكن الوصول إليه عبر UART من خلال منفذ تسلسلي.

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

🎓 سيتم تغطية جمل NMEA لاحقًا في هذا الدرس

إضافة المستشعر إلى CounterFit

لاستخدام مستشعر GPS افتراضي، تحتاج إلى إضافته إلى تطبيق CounterFit.

المهمة - إضافة المستشعر إلى CounterFit

أضف مستشعر GPS إلى تطبيق CounterFit.

  1. قم بإنشاء تطبيق Python جديد على جهاز الكمبيوتر الخاص بك في مجلد يسمى gps-sensor يحتوي على ملف واحد يسمى app.py وبيئة افتراضية لـ Python، وأضف حزم pip الخاصة بـ CounterFit.

    ⚠️ يمكنك الرجوع إلى التعليمات الخاصة بإنشاء وإعداد مشروع Python لـ CounterFit في الدرس الأول إذا لزم الأمر.

  2. قم بتثبيت حزمة Pip إضافية لتثبيت shim لـ CounterFit يمكنه التحدث إلى المستشعرات القائمة على UART عبر اتصال تسلسلي. تأكد من تثبيتها من خلال نافذة طرفية مع تفعيل البيئة الافتراضية.

    pip install counterfit-shims-serial
    
  3. تأكد من تشغيل تطبيق الويب CounterFit.

  4. قم بإنشاء مستشعر GPS:

    1. في مربع إنشاء مستشعر في لوحة المستشعرات، افتح القائمة المنسدلة نوع المستشعر واختر UART GPS.

    2. اترك المنفذ مضبوطًا على /dev/ttyAMA0.

    3. اختر زر إضافة لإنشاء مستشعر GPS على المنفذ /dev/ttyAMA0.

    إعدادات مستشعر GPS

    سيتم إنشاء مستشعر GPS وسيظهر في قائمة المستشعرات.

    تم إنشاء مستشعر GPS

برمجة مستشعر GPS

يمكن الآن برمجة جهاز إنترنت الأشياء الافتراضي لاستخدام مستشعر GPS الافتراضي.

المهمة - برمجة مستشعر GPS

برمج تطبيق مستشعر GPS.

  1. تأكد من فتح تطبيق gps-sensor في VS Code.

  2. افتح ملف app.py.

  3. أضف الكود التالي إلى أعلى ملف app.py لتوصيل التطبيق بـ CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. أضف الكود التالي أسفل ذلك لاستيراد بعض المكتبات اللازمة، بما في ذلك مكتبة المنفذ التسلسلي لـ CounterFit:

    import time
    import counterfit_shims_serial
    
    serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
    

    يقوم هذا الكود باستيراد وحدة serial من حزمة Pip الخاصة بـ counterfit_shims_serial. ثم يتصل بمنفذ /dev/ttyAMA0 التسلسلي - وهو عنوان المنفذ التسلسلي الذي يستخدمه مستشعر GPS الافتراضي لمنفذ UART الخاص به.

  5. أضف الكود التالي أسفل ذلك لقراءة البيانات من المنفذ التسلسلي وطباعة القيم إلى وحدة التحكم:

    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 لكل سطر.

    بعد قراءة جميع البيانات، يتوقف التكرار لمدة ثانية واحدة، ثم يحاول مرة أخرى.

  6. قم بتشغيل هذا الكود، مع التأكد من استخدام نافذة طرفية مختلفة عن تلك التي يتم تشغيل تطبيق CounterFit فيها، حتى يظل تطبيق CounterFit قيد التشغيل.

  7. من تطبيق CounterFit، قم بتغيير قيمة مستشعر GPS. يمكنك القيام بذلك بإحدى الطرق التالية:

    • ضبط المصدر على Lat/Lon، وتعيين خط عرض وخط طول وعدد الأقمار الصناعية المستخدمة للحصول على تثبيت GPS. سيتم إرسال هذه القيمة مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات كل ثانية.

      مستشعر GPS مع تحديد lat lon

    • ضبط المصدر على NMEA وإضافة بعض جمل NMEA في مربع النص. سيتم إرسال جميع هذه القيم، مع تأخير قدره ثانية واحدة قبل قراءة كل جملة GGA (تثبيت الموقع).

      مستشعر GPS مع إعداد جمل NMEA

      يمكنك استخدام أداة مثل nmeagen.org لإنشاء هذه الجمل عن طريق الرسم على الخريطة. سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.

    • ضبط المصدر على ملف GPX، وتحميل ملف GPX يحتوي على مواقع المسار. يمكنك تنزيل ملفات GPX من عدد من مواقع الخرائط والمشي الشهيرة، مثل AllTrails. تحتوي هذه الملفات على مواقع GPS متعددة كمسار، وسيعيد مستشعر GPS كل موقع جديد بفاصل زمني قدره ثانية واحدة.

      مستشعر GPS مع إعداد ملف GPX

      سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع التكرار لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.

    بمجرد تكوين إعدادات GPS، اختر زر تعيين لتطبيق هذه القيم على المستشعر.

  8. سترى الإخراج الخام من مستشعر 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. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.