โมดูล GPS Neo-6M เป็นตัวเลือกยอดนิยมสำหรับการเพิ่มฟังก์ชั่น GPS ให้กับโครงการ Raspberry Pi มันให้ข้อมูลตำแหน่งความสูงและเวลาที่แม่นยำทำให้เหมาะสำหรับการนำทางการจัดตำแหน่งทางภูมิศาสตร์และแอปพลิเคชันการซิงโครไนซ์เวลา คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้โมดูล GPS Neo-6M กับ Raspberry Pi
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
- โมดูล GPS Neo-6M
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่มีการเข้าถึง SSH ไปยัง Raspberry Pi หรือแป้นพิมพ์และจอภาพที่เชื่อมต่อ
- Python ติดตั้งบน Raspberry Pi
ขั้นตอนที่ 1: เดินสาย Neo-6m ไปยัง Raspberry Pi
Neo-6M สื่อสารกับ Raspberry Pi โดยใช้อินเตอร์เฟส UART (อนุกรม)
การเชื่อมต่อ
PIN Neo-6M | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
TXD | RXD (PIN 10, GPIO15) |
RXD | txd (พิน 8, gpio14) |
บันทึก: ตรวจสอบให้แน่ใจว่า Neo-6M ใช้พลังงาน 3.3V หรือ 5V ตามที่ระบุไว้ในโมดูลของคุณ ตรวจสอบแผ่นข้อมูลของโมดูล
ขั้นตอนที่ 2: เปิดใช้งาน UART บน Raspberry Pi
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> พอร์ตอนุกรม:
- เลือก "ไม่" เมื่อถูกถามว่าคุณต้องการเชลล์เข้าสู่ระบบผ่านอินเทอร์เฟซอนุกรมหรือไม่
- เลือก "ใช่" เพื่อเปิดใช้งานฮาร์ดแวร์พอร์ตอนุกรม
- รีบูตราสเบอร์รี่ pi:
sudo reboot
ขั้นตอนที่ 3: ติดตั้งเครื่องมือและไลบรารีที่จำเป็น
- อัปเดต Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y
- ติดตั้ง
minicom
สำหรับการทดสอบโมดูล GPS:sudo apt install -y minicom
- ติดตั้งไลบรารี Python สำหรับการสื่อสารแบบอนุกรมและการแยกวิเคราะห์ GPS:
pip install pyserial pynmea2
ขั้นตอนที่ 4: ทดสอบโมดูล GPS
- เปิด
minicom
เพื่อตรวจสอบว่าโมดูล GPS กำลังส่งข้อมูลหรือไม่:sudo minicom -b 9600 -o -D /dev/serial0
- คุณควรเห็นข้อมูล GPS ในรูปแบบ NMEA (เช่น
$GPGGA
,$GPRMC
- ถ้าไม่:- ตรวจสอบสายไฟของคุณ
- ตรวจสอบให้แน่ใจว่าโมดูลมีมุมมองที่ชัดเจนของท้องฟ้าเพื่อรับสัญญาณดาวเทียม
- การออก
minicom
โดยการกดCtrl+A
, แล้วZ
และเลือกX
.
ขั้นตอนที่ 5: อ่านข้อมูล GPS โดยใช้ Python
สคริปต์ Python ต่อไปนี้อ่านและแยกวิเคราะห์ข้อมูล GPS จากโมดูล Neo-6M
ตัวอย่างรหัส Python
import serial
import pynmea2
def read_gps():
# Open serial connection to GPS module
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: แอปพลิเคชันของโมดูล GPS Neo-6M
- ระบบนำทาง: สร้างตัวติดตาม GPS สำหรับยานพาหนะหรือโดรน
- geotagging: บันทึกข้อมูลตำแหน่งสำหรับภาพถ่ายหรือกิจกรรมอื่น ๆ
- การซิงโครไนซ์เวลา: ใช้ข้อมูล GPS สำหรับการจับเวลาที่แม่นยำสูง
- อุปกรณ์ IoT: เปิดใช้งานระบบอัตโนมัติตามตำแหน่ง
การแก้ไขปัญหา
-
ไม่มีข้อมูล GPS ใน Minicom:
- ตรวจสอบการเดินสาย (การเชื่อมต่อ TXD และ RXD)
- ตรวจสอบให้แน่ใจว่าโมดูล GPS ใช้พลังงานอย่างถูกต้อง
- วางโมดูลในพื้นที่เปิดเพื่อรับสัญญาณดาวเทียมที่ดีขึ้น
-
Python Script ไม่ทำงาน:
- ตรวจสอบว่า
serial0
อินเทอร์เฟซเปิดใช้งานและเข้าถึงได้ - ตรวจสอบให้แน่ใจว่าไลบรารี Python (
pyserial
,pynmea2
) ถูกติดตั้ง
- ตรวจสอบว่า
-
การซื้อดาวเทียมช้า:
- อนุญาตให้ใช้เวลาโมดูล GPS เพื่อรับสัญญาณโดยเฉพาะอย่างยิ่งในการใช้งานครั้งแรก
- ใช้เสาอากาศภายนอกหากจำเป็น
บทสรุป
โมดูล GPS Neo-6M เป็นเครื่องมือที่หลากหลายและแม่นยำสำหรับการเพิ่มฟังก์ชั่นการจัดตำแหน่งทางภูมิศาสตร์ให้กับโครงการ Raspberry Pi ของคุณ โดยทำตามคำแนะนำนี้คุณสามารถตั้งค่าโมดูล GPS และเริ่มการจับข้อมูลตำแหน่งสำหรับแอปพลิเคชันที่หลากหลาย ทดลองกับการรวมโมดูล GPS เข้ากับการนำทางการติดตามหรือโครงการ IoT เพื่อใช้ประโยชน์อย่างเต็มที่!