【RPi系列】树莓派与GPS模块的那些事儿

495 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、简介

  因为之前想通过GPS模块来获取经纬度进行区域的划分,就买了NEO-6M GPS模块,但后来发现误差较大,且只能用于室外,有些鸡肋。不过买都买了,怎么也得试一试。 Use Neo 6M GPS Module with Raspberry Pi and Python

二、硬件准备

1、元器件清单

名称数量
树莓派4B1
MINI NEO-6M GPS模块1
SMA有源天线(3米)1

MINI NEO-6M GPS模块: MINI NEO-6M GPS模块 SMA有源天线: SMA有源天线

2、接线说明

接线图   因为我们只用到了RXD来读取GPS信息,所以GPS模块中的RXD也可以不接。

树莓派NEO-6M
5VVCC
TXDRXD
RXDTXD
GNDGND

三、软件准备

1、安装Python2

  由于目前市面上提供的测试代码都是通过Python2来运行的,所以我们需要提前安装一下Python2。

sudo apt-get install idle-python2.7
idle-python2.7

2、安装pynmea2库

  通过 pymea2库来解析gps数据。

pip3 install pynmea2

  也可以在编译器中搜索安装。 在这里插入图片描述

3、配置mini串口

  树莓派使用mini串口与外部进行通信

4、gps.py

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] == "$GPRMC":
		newmsg=pynmea2.parse(newdata)
		lat=newmsg.latitude
		lng=newmsg.longitude
		gps = "Latitude=" + str(lat) + "and Longitude=" + str(lng)
		print(gps)

在这里插入图片描述

四、知识准备

1、GPS数据解析

在这里插入图片描述   GPS数据一共有七种,每种都有自己的数据格式,这里只展示最常用的两种,其余的大家可以自己去查手册。 在这里插入图片描述

1、$GPGGA

在这里插入图片描述

2、$GPRMC

$GPRMC