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/fa/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

10 KiB

خواندن داده‌های GPS - سخت‌افزار مجازی IoT

در این بخش از درس، شما یک حسگر GPS به دستگاه IoT مجازی خود اضافه می‌کنید و مقادیر آن را می‌خوانید.

سخت‌افزار مجازی

دستگاه IoT مجازی از یک حسگر GPS شبیه‌سازی‌شده استفاده می‌کند که از طریق یک پورت سریال به UART دسترسی دارد.

یک حسگر GPS فیزیکی دارای یک آنتن است که امواج رادیویی را از ماهواره‌های GPS دریافت کرده و سیگنال‌های GPS را به داده‌های GPS تبدیل می‌کند. نسخه مجازی این کار را شبیه‌سازی می‌کند و به شما اجازه می‌دهد که یا یک عرض و طول جغرافیایی تنظیم کنید، جملات خام NMEA ارسال کنید، یا یک فایل GPX با چندین موقعیت مکانی بارگذاری کنید که به ترتیب بازگردانده شوند.

🎓 جملات NMEA در ادامه این درس پوشش داده خواهند شد

افزودن حسگر به CounterFit

برای استفاده از یک حسگر GPS مجازی، باید یکی را به برنامه CounterFit اضافه کنید.

وظیفه - افزودن حسگر به CounterFit

حسگر GPS را به برنامه CounterFit اضافه کنید.

  1. یک برنامه پایتون جدید در کامپیوتر خود در پوشه‌ای به نام gps-sensor با یک فایل به نام app.py و یک محیط مجازی پایتون ایجاد کنید و بسته‌های pip مربوط به CounterFit را اضافه کنید.

    ⚠️ می‌توانید به دستورالعمل‌های ایجاد و تنظیم یک پروژه پایتون CounterFit در درس ۱ در صورت نیاز مراجعه کنید.

  2. یک بسته Pip اضافی نصب کنید تا یک شیم CounterFit نصب شود که بتواند با حسگرهای مبتنی بر UART از طریق اتصال سریال ارتباط برقرار کند. مطمئن شوید که این کار را از یک ترمینال با محیط مجازی فعال انجام می‌دهید.

    pip install counterfit-shims-serial
    
  3. مطمئن شوید که برنامه وب CounterFit در حال اجرا است.

  4. یک حسگر GPS ایجاد کنید:

    1. در کادر Create sensor در بخش Sensors، از منوی کشویی Sensor type گزینه UART GPS را انتخاب کنید.

    2. مقدار Port را روی /dev/ttyAMA0 بگذارید.

    3. دکمه Add را انتخاب کنید تا حسگر GPS در پورت /dev/ttyAMA0 ایجاد شود.

    تنظیمات حسگر GPS

    حسگر GPS ایجاد شده و در لیست حسگرها ظاهر می‌شود.

    حسگر GPS ایجاد شده

برنامه‌نویسی حسگر GPS

اکنون می‌توانید دستگاه IoT مجازی را برای استفاده از حسگر 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 را تغییر دهید. می‌توانید این کار را به یکی از روش‌های زیر انجام دهید:

    • مقدار Source را روی Lat/Lon تنظیم کنید و یک عرض جغرافیایی، طول جغرافیایی و تعداد ماهواره‌های استفاده‌شده برای دریافت موقعیت GPS مشخص کنید. این مقدار فقط یک بار ارسال می‌شود، بنابراین گزینه Repeat را علامت بزنید تا داده‌ها هر ثانیه تکرار شوند.

      حسگر GPS با Lat/Lon تنظیم شده

    • مقدار Source را روی NMEA تنظیم کنید و چند جمله NMEA در کادر متن وارد کنید. تمام این مقادیر ارسال می‌شوند، با تأخیری ۱ ثانیه‌ای قبل از هر جمله GGA (موقعیت‌یابی).

      حسگر GPS با جملات NMEA تنظیم شده

      می‌توانید از ابزاری مانند nmeagen.org برای تولید این جملات با کشیدن روی نقشه استفاده کنید. این مقادیر فقط یک بار ارسال می‌شوند، بنابراین گزینه Repeat را علامت بزنید تا داده‌ها یک ثانیه پس از ارسال کامل تکرار شوند.

    • مقدار Source را روی فایل GPX تنظیم کنید و یک فایل GPX با موقعیت‌های مسیر بارگذاری کنید. می‌توانید فایل‌های GPX را از سایت‌های محبوب نقشه‌برداری و کوهنوردی مانند AllTrails دانلود کنید. این فایل‌ها شامل چندین موقعیت GPS به صورت یک مسیر هستند و حسگر GPS هر موقعیت جدید را با فاصله ۱ ثانیه بازمی‌گرداند.

      حسگر GPS با فایل GPX تنظیم شده

      این مقادیر فقط یک بار ارسال می‌شوند، بنابراین گزینه Repeat را علامت بزنید تا داده‌ها یک ثانیه پس از ارسال کامل تکرار شوند.

    پس از تنظیم مقادیر GPS، دکمه Set را انتخاب کنید تا این مقادیر به حسگر اعمال شوند.

  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 ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.