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/wio-terminal-gps-decode.md

5.7 KiB

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

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

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

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

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

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

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

  2. เพิ่มการพึ่งพาไลบรารีสำหรับไลบรารี TinyGPSPlus ลงในไฟล์ platformio.ini ของโปรเจกต์ ไลบรารีนี้มีโค้ดสำหรับถอดรหัสข้อมูล NMEA

    lib_deps =
        mikalhart/TinyGPSPlus @ 1.0.2
    
  3. ในไฟล์ main.cpp ให้เพิ่มคำสั่ง include สำหรับไลบรารี TinyGPSPlus:

    #include <TinyGPS++.h>
    
  4. ด้านล่างการประกาศ Serial3 ให้ประกาศออบเจ็กต์ TinyGPSPlus เพื่อประมวลผลประโยค NMEA:

    TinyGPSPlus gps;
    
  5. เปลี่ยนเนื้อหาของฟังก์ชัน printGPSData เป็นดังนี้:

    if (gps.encode(Serial3.read()))
    {
        if (gps.location.isValid())
        {
            Serial.print(gps.location.lat(), 6);
            Serial.print(F(","));
            Serial.print(gps.location.lng(), 6);
            Serial.print(" - from ");
            Serial.print(gps.satellites.value());
            Serial.println(" satellites");
        }
    }
    

    โค้ดนี้จะอ่านตัวอักษรถัดไปจากพอร์ตอนุกรม UART ลงในตัวถอดรหัส NMEA gps หลังจากอ่านตัวอักษรแต่ละตัว มันจะตรวจสอบว่าตัวถอดรหัสได้อ่านประโยคที่ถูกต้องหรือไม่ จากนั้นตรวจสอบว่ามีการอ่านตำแหน่งที่ถูกต้องหรือไม่ หากตำแหน่งถูกต้อง มันจะส่งข้อมูลไปยังหน้าจออนุกรม พร้อมกับจำนวนดาวเทียมที่มีส่วนร่วมในตำแหน่งนี้

  6. สร้างและอัปโหลดโค้ดไปยัง Wio Terminal

  7. เมื่ออัปโหลดเสร็จแล้ว คุณสามารถตรวจสอบข้อมูลตำแหน่ง GPS ได้โดยใช้หน้าจออนุกรม

    > Executing task: platformio device monitor <
    
    --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
    --- More details at http://bit.ly/pio-monitor-filters
    --- Miniterm on /dev/cu.usbmodem1201  9600,8,N,1 ---
    --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    47.6423109,-122.1390293 - from 3 satellites
    

💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-gps-decode/wio-terminal

😀 โปรแกรมเซ็นเซอร์ GPS ของคุณพร้อมการถอดรหัสข้อมูลสำเร็จแล้ว!


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