ได้รับส่งมอบฟรีในคําสั่งทั้งหมดมากกว่า 20 ปอนด์!

การใช้โมดูล GPS Neo-6M กับ Raspberry Pi

Using the NEO-6M GPS Module with the Raspberry Pi

The NEO-6M GPS module เป็นตัวเลือกยอดนิยมสำหรับการเพิ่มฟังก์ชัน GPS ให้กับโครงการ Raspberry Pi ของคุณ มันให้ข้อมูลตำแหน่ง ความสูง และข้อมูลเวลาอย่างแม่นยำ ทำให้เหมาะสำหรับการนำทาง การระบุพิกัดทางภูมิศาสตร์ และการประยุกต์ใช้การซิงค์เวลา คู่มือนี้จะแนะนำคุณตลอดขั้นตอนการตั้งค่าและการใช้งาน NEO-6M GPS module กับ Raspberry Pi.


สิ่งที่คุณจะต้องมี

  1. Raspberry Pi (ทุกรุ่นที่รองรับ GPIO เช่น Pi 3, Pi 4)
  2. NEO-6M GPS Module
  3. บอร์ดทดลองและสายจัมเปอร์
  4. คอมพิวเตอร์ที่เชื่อมต่อ SSH เข้ากับ Raspberry Pi หรือคีย์บอร์ดและมอนิเตอร์ที่ต่ออยู่
  5. Python ติดตั้งบน Raspberry Pi

ขั้นตอนที่ 1: การเดินสาย NEO-6M กับ Raspberry Pi

ค่า NEO-6M สื่อสารกับ Raspberry Pi โดยใช้ UART (serial) interface.

การเชื่อมต่อ

NEO-6M ขา Raspberry Pi ขา
VCC 3.3V (Pin 1)
GND Ground (Pin 6)
TXD RXD (Pin 10, GPIO15)
RXD TXD (Pin 8, GPIO14)

หมายเหตุ: ตรวจสอบให้แน่ใจว่า NEO-6M ได้รับพลังงานด้วย 3.3V หรือ 5V ตามที่โมดูลของคุณระบุ ตรวจสอบ datasheet ของโมดูล


ขั้นตอนที่ 2: เปิดใช้งาน UART บน Raspberry Pi

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. ไปที่ Interface Options > Serial Port:
    • เลือก "No" เมื่อถูกถามว่าต้องการให้มี login shell ผ่านอินเทอร์เฟซ serial หรือไม่
    • เลือก "Yes" เพื่อเปิดใช้งานฮาร์ดแวร์พอร์ตอนุกรม (serial port).
  3. รีบูต Raspberry Pi:
    sudo reboot
    

ขั้นตอนที่ 3: ติดตั้งเครื่องมือและไลบรารีที่จำเป็น

  1. อัปเดต Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้ง minicom เพื่อทดสอบโมดูล GPS:
    sudo apt install -y minicom
    
  3. ติดตั้งไลบรารี Python สำหรับการสื่อสารแบบอนุกรมและการแยกข้อมูล GPS:
    pip install pyserial pynmea2
    

ขั้นตอนที่ 4: ทดสอบโมดูล GPS

  1. เปิด minicom เพื่อตรวจสอบว่าโมดูล GPS ส่งข้อมูลหรือไม่:
    sudo minicom -b 9600 -o -D /dev/serial0
    
  2. คุณควรเห็นข้อมูล GPS ในรูปแบบ NMEA (เช่น $GPGGA, $GPRMC). หากไม่เห็น:
    • ตรวจสอบการเดินสายของคุณ.
    • ตรวจสอบให้แน่ใจว่าโมดูลมีทัศนวิสัยท้องฟ้าเพื่อรับสัญญาณดาวเทียม.
  3. ออกจาก minicom โดยกด Ctrl+A, จากนั้น Z, และเลือก X.

ขั้นตอนที่ 5: อ่านข้อมูล GPS โดยใช้ Python

สคริปต์ Python ต่อไปนี้อ่านและแยกข้อมูล GPS จาก NEO-6M module.

ตัวอย่างโค้ด Python

import serial
import pynmea2

def read_gps():
    # เปิดการเชื่อมต่อ serial กับโมดูล GPS
    gps_serial = serial.Serial("/dev/serial0", baudrate=9600, timeout=1)

    while True:
        try:
            line = gps_serial.readline().decode("ascii", errors="replace")
            if line.startswith("$GPGGA"):
                msg = pynmea2.parse(line)
                print(f"Latitude: {msg.latitude}, Longitude: {msg.longitude}")
                print(f"Altitude: {msg.altitude} {msg.altitude_units}")
        except pynmea2.ParseError as e:
            print(f"Parse error: {e}")
        except KeyboardInterrupt:
            print("Exiting...")
            break

if __name__ == "__main__":
    read_gps()

ขั้นตอนที่ 6: การประยุกต์ใช้ NEO-6M GPS Module

  1. ระบบนำทาง: สร้างอุปกรณ์ติดตาม GPS สำหรับยานพาหนะหรือโดรน
  2. การใส่พิกัดในข้อมูลภาพถ่าย (Geotagging): บันทึกข้อมูลตำแหน่งสำหรับภาพถ่ายหรือเหตุการณ์อื่นๆ
  3. การซิงโครไนซ์เวลา: ใช้ข้อมูล GPS สำหรับการเก็บเวลาที่แม่นยำสูง
  4. อุปกรณ์ IoT: เปิดใช้งานการทำงานอัตโนมัติตามตำแหน่ง

การแก้ไขปัญหา

  1. ไม่มีข้อมูล GPS ใน Minicom:

    • ตรวจสอบการเดินสาย (ขา TXD และ RXD).
    • ตรวจสอบให้แน่ใจว่าโมดูล GPS ได้รับพลังงานอย่างถูกต้อง.
    • วางโมดูลในพื้นที่เปิดเพื่อการรับสัญญาณดาวเทียมที่ดีกว่า.
  2. สคริปต์ Python ใช้งานไม่ได้:

    • ยืนยันว่าอินเทอร์เฟซ serial0 ถูกเปิดใช้งานและเข้าถึงได้.
    • ตรวจสอบให้แน่ใจว่าไลบรารี Python (pyserial, pynmea2) ถูกติดตั้งแล้ว.
  3. การได้สัญญาณดาวเทียมช้า:

    • ให้เวลาโมดูล GPS ในการจับสัญญาณ โดยเฉพาะการใช้งานครั้งแรก.
    • ใช้เสาอากาศภายนอกหากจำเป็น.

สรุป

The NEO-6M GPS module เป็นเครื่องมือที่มีความหลากหลายและแม่นยำสำหรับการเพิ่มฟังก์ชันการระบุตำแหน่งลงในโครงการ Raspberry Pi ของคุณ โดยทำตามคำแนะนำนี้ คุณสามารถตั้งค่าโมดูล GPS และเริ่มเก็บข้อมูลตำแหน่งสำหรับการประยุกต์ใช้หลากหลาย ทดลองผสมผสานโมดูล GPS เข้ากับระบบนำทาง การติดตาม หรือโครงการ IoT เพื่อใช้ความสามารถของมันอย่างเต็มที่!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

แสดงความคิดเห็น