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

5.6 KiB

ถอดรหัสข้อมูล GPS - ฮาร์ดแวร์ IoT เสมือนและ Raspberry Pi

ในส่วนนี้ของบทเรียน คุณจะถอดรหัสข้อความ NMEA ที่อ่านจากเซ็นเซอร์ GPS โดยใช้ Raspberry Pi หรืออุปกรณ์ IoT เสมือน และดึงค่าละติจูดและลองจิจูดออกมา

ถอดรหัสข้อมูล GPS

เมื่อข้อมูล NMEA ดิบถูกอ่านจากพอร์ตอนุกรมแล้ว สามารถถอดรหัสได้โดยใช้ไลบรารี NMEA แบบโอเพ่นซอร์ส

งาน - ถอดรหัสข้อมูล GPS

เขียนโปรแกรมให้อุปกรณ์ถอดรหัสข้อมูล GPS

  1. เปิดโปรเจกต์แอป gps-sensor หากยังไม่ได้เปิด

  2. ติดตั้งแพ็กเกจ Pip ชื่อ pynmea2 แพ็กเกจนี้มีโค้ดสำหรับถอดรหัสข้อความ NMEA

    pip3 install pynmea2
    
  3. เพิ่มโค้ดต่อไปนี้ในส่วน imports ของไฟล์ app.py เพื่อ import โมดูล 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 ของคุณพร้อมการถอดรหัสข้อมูลสำเร็จแล้ว!


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้