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/he/3-transport/lessons/1-location-tracking/single-board-computer-gps-d...

4.0 KiB

פענוח נתוני GPS - חומרה וירטואלית לאינטרנט של הדברים ו-Raspberry Pi

בחלק זה של השיעור, תפענחו את הודעות NMEA שנקראות מחיישן ה-GPS על ידי ה-Raspberry Pi או מכשיר IoT וירטואלי, ותפיקו את קווי הרוחב והאורך.

פענוח נתוני GPS

לאחר קריאת נתוני NMEA הגולמיים מהפורט הסדרתי, ניתן לפענח אותם באמצעות ספריית NMEA בקוד פתוח.

משימה - פענוח נתוני GPS

תכנתו את המכשיר לפענח את נתוני ה-GPS.

  1. פתחו את פרויקט האפליקציה gps-sensor אם הוא עדיין לא פתוח.

  2. התקינו את חבילת Pip בשם pynmea2. חבילה זו מכילה קוד לפענוח הודעות NMEA.

    pip3 install pynmea2
    
  3. הוסיפו את הקוד הבא לייבואים בקובץ app.py כדי לייבא את המודול pynmea2:

    import pynmea2
    
  4. החליפו את תוכן הפונקציה print_gps_data בקוד הבא:

    msg = pynmea2.parse(line)
    if msg.sentence_type == 'GGA':
        lat = pynmea2.dm_to_sd(msg.lat)
        lon = pynmea2.dm_to_sd(msg.lon)
    
        if msg.lat_dir == 'S':
            lat = lat * -1
    
        if msg.lon_dir == 'W':
            lon = lon * -1
    
        print(f'{lat},{lon} - from {msg.num_sats} satellites')
    

    קוד זה ישתמש בספריית pynmea2 כדי לנתח את השורה שנקראה מפורט ה-UART הסדרתי.

    אם סוג המשפט של ההודעה הוא GGA, אז מדובר בהודעת תיקון מיקום, והיא מעובדת. ערכי קווי הרוחב והאורך נקראים מההודעה ומומרים למעלות עשרוניות מפורמט NMEA (d)ddmm.mmmm. פונקציית dm_to_sd מבצעת את ההמרה הזו.

    לאחר מכן נבדקת כיווניות קו הרוחב, ואם קו הרוחב הוא דרומי, הערך מומר למספר שלילי. אותו הדבר לגבי קו האורך, אם הוא מערבי, הוא מומר למספר שלילי.

    לבסוף, הקואורדינטות מודפסות לקונסולה, יחד עם מספר הלוויינים ששימשו למציאת המיקום.

  5. הריצו את הקוד. אם אתם משתמשים במכשיר IoT וירטואלי, ודאו שאפליקציית CounterFit פועלת ונתוני ה-GPS נשלחים.

    pi@raspberrypi:~/gps-sensor $ python3 app.py 
    47.6423109,-122.1390293 - from 3 satellites
    

💁 תוכלו למצוא את הקוד הזה בתיקיית code-gps-decode/virtual-device, או בתיקיית code-gps-decode/pi.

😀 תוכנית חיישן ה-GPS שלכם עם פענוח נתונים הצליחה!


כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.