3 votes

Module GPS dans Raspberry pi en utilisant le code python

J'utilise le module GPS Neo 6M dans Raspberry pi, et j'essaie de l'exécuter en utilisant le code python pour traiter les données GPS. Mais lorsque j'exécute le code, il ne renvoie aucun résultat. Voici le code :

 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)

2voto

ace_mbj Points 86
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)

0voto

cguk70 Points 311

Votre if ne se trouve pas à l'intérieur de la while True: La boucle ne sera donc jamais atteinte.

Je ne peux pas le tester - mais je pense que vous voulez quelque chose comme ça :

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)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X