Raspberry pi 中的 GPS 模块使用 python 代码

GPS Module in Raspberry pi using python code

我在 Raspberry pi 中使用 Neo 6M GPS 模块,并尝试 运行 使用 python 代码来处理 GPS 数据。但是我 运行 代码没有 return 任何结果。这是代码:

 import serial
 import time
 import string
 import pynmea2

 while True:
     port="/dev/ttyAMA0"
     ser=serial.Serial(port, baudrate=9600, 
     timeout=0.5)
     dataout = pynmea2.NMEAStreamReader()
     newdata=ser.readline()

     if newdata[0:6] == "$GPGLL":
         newmsg=pynmea2.parse(newdata)
         lat=newmsg.latitude
         lng=newmsg.longitude
         gps = "Latitude=" + str(lat) + "and 
         Longitude=" + str(lng)
         print(gps)

您的 if 语句不在 while True: 循环内,因此永远不会到达。

我无法测试这个 - 但我想你想要这样的东西:

import serial
import time
import string
import pynmea2

port="/dev/ttyAMA0"
ser=serial.Serial(port, baudrate=9600, timeout=0.5)

while True:
    newdata=ser.readline()

    if newdata[0:6] == "$GPGLL":
        newmsg=pynmea2.parse(newdata)
        lat=newmsg.latitude
        lng=newmsg.longitude
        gps = "Latitude=" + str(lat) + "and 
        Longitude=" + str(lng)
        print(gps)
import serial
import time
import string
import pynmea2

while True:
    port = "/dev/ttyAMA0"
    ser = serial.Serial(port,baudrate=9600,timeout=0.5)
    dataout = pynmea2.NMEAStreamReader()
    newdata = (ser.readline().decode("utf-8")).strip("b'rn\")

    if newdata[0:6] == "$GPRMC":
        newmsg = pynmea2.parse(newdata)
        lat = newmsg.latitude
        lng = newmsg.longitude
        gps = ("Latitude = " + str(lat) + " and Longitude = " +str(lng))
        print(gps)
    elif newdata[0:6] == "$GPGLL":
        print("Found GPGLL record: " + newdata)
    else:
        print(newdata)