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/virtual-device-gps-sensor.md

9.0 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 בשיעור 1 אם יש צורך.

  2. התקינו חבילת Pip נוספת כדי להתקין שכבת CounterFit שיכולה לתקשר עם חיישנים מבוססי UART דרך חיבור סריאלי. ודאו שאתם מתקינים זאת מתוך טרמינל שבו סביבת העבודה הווירטואלית מופעלת.

    pip install counterfit-shims-serial
    
  3. ודאו שאפליקציית ה-Web של CounterFit פועלת.

  4. צרו חיישן GPS:

    1. בתיבה Create sensor בלשונית Sensors, פתחו את תיבת Sensor type ובחרו UART GPS.

    2. השאירו את Port מוגדר ל-/dev/ttyAMA0

    3. בחרו בכפתור Add כדי ליצור את חיישן ה-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. תוכלו לעשות זאת באחת מהדרכים הבאות:

    • הגדירו את 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. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.