文章目录
- 一、简介
- 二、硬件准备
- 1、元器件清单
- 2、接线说明
- 三、软件准备
- 1、安装Python2
- 2、安装pynmea2库
- 3、配置mini串口
- 4、gps.py
- 四、知识准备
- 1、GPS数据解析
- 1、$GPGGA
- 2、$GPRMC
一、简介
因为之前想通过GPS模块来获取经纬度进行区域的划分,就买了NEO-6M GPS模块,但后来发现误差较大,且只能用于室外,有些鸡肋。不过买都买了,怎么也得试一试。
二、硬件准备
1、元器件清单
名称 | 数量 |
---|---|
树莓派4B | 1 |
MINI NEO-6M GPS模块 | 1 |
SMA有源天线(3米) | 1 |
MINI NEO-6M GPS模块:
SMA有源天线:
2、接线说明
因为我们只用到了RXD来读取GPS信息,所以GPS模块中的RXD也可以不接。
树莓派 | NEO-6M |
---|---|
5V | VCC |
TXD | RXD |
RXD | TXD |
GND | GND |
三、软件准备
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 pynmea2while 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.latitudelng=newmsg.longitudegps = "Latitude=" + str(lat) + "and Longitude=" + str(lng)print(gps)
四、知识准备
1、GPS数据解析
GPS数据一共有七种,每种都有自己的数据格式,这里只展示最常用的两种,其余的大家可以自己去查手册。