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

13 KiB

อ่านข้อมูล GPS - ฮาร์ดแวร์ IoT เสมือนจริง

ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์ GPS ลงในอุปกรณ์ IoT เสมือนจริงของคุณ และอ่านค่าจากเซ็นเซอร์นั้น

ฮาร์ดแวร์เสมือนจริง

อุปกรณ์ IoT เสมือนจริงจะใช้เซ็นเซอร์ 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 shim ที่สามารถสื่อสารกับเซ็นเซอร์ที่ใช้ 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 สำหรับแต่ละบรรทัด

    หลังจากอ่านข้อมูลทั้งหมดแล้ว ลูปจะหยุดพัก 1 วินาที จากนั้นลองอีกครั้ง

  6. รันโค้ดนี้ โดยตรวจสอบให้แน่ใจว่าคุณใช้เทอร์มินัลที่แตกต่างจากที่แอป CounterFit กำลังทำงานอยู่ เพื่อให้แอป CounterFit ยังคงทำงานต่อไป

  7. จากแอป CounterFit เปลี่ยนค่าของเซ็นเซอร์ GPS คุณสามารถทำได้ในวิธีใดวิธีหนึ่งดังนี้:

    • ตั้งค่า Source เป็น Lat/Lon และตั้งค่าละติจูด ลองจิจูด และจำนวนดาวเทียมที่ใช้ในการรับค่าตำแหน่ง GPS ค่านี้จะถูกส่งเพียงครั้งเดียว ดังนั้นให้ทำเครื่องหมายที่กล่อง Repeat เพื่อให้ข้อมูลส่งซ้ำทุกวินาที

      เซ็นเซอร์ GPS ที่ตั้งค่า lat lon

    • ตั้งค่า Source เป็น NMEA และเพิ่มประโยค NMEA ลงในกล่องข้อความ ค่าทั้งหมดนี้จะถูกส่ง โดยมีการหน่วงเวลา 1 วินาทีก่อนที่ประโยค GGA (ตำแหน่ง) ใหม่จะถูกอ่าน

      เซ็นเซอร์ GPS ที่ตั้งค่าประโยค NMEA

      คุณสามารถใช้เครื่องมืออย่าง nmeagen.org เพื่อสร้างประโยคเหล่านี้โดยการวาดบนแผนที่ ค่าจะถูกส่งเพียงครั้งเดียว ดังนั้นให้ทำเครื่องหมายที่กล่อง Repeat เพื่อให้ข้อมูลส่งซ้ำหลังจากส่งทั้งหมดแล้ว

    • ตั้งค่า Source เป็นไฟล์ GPX และอัปโหลดไฟล์ GPX ที่มีตำแหน่งเส้นทาง คุณสามารถดาวน์โหลดไฟล์ GPX จากเว็บไซต์แผนที่และเดินป่ายอดนิยม เช่น AllTrails ไฟล์เหล่านี้มีตำแหน่ง GPS หลายตำแหน่งเป็นเส้นทาง และเซ็นเซอร์ GPS จะส่งคืนตำแหน่งใหม่ทุกๆ 1 วินาที

      เซ็นเซอร์ 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 ของคุณสำเร็จแล้ว!


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