树莓派下GPS模块使用详细教程(树莓派实现GPS定位,定位获取,经纬度获取)

今天终于有空把这篇文章整理出来了,GPS模块我买了很久了,一直没有时间研究。我这款GPS模块是串口的,使用方法很简单,只要把GPS模块接好线,直接接树莓派的串口针脚,或者买个USB转串口(TTL)的模块,然后插在树莓派上即可,然后不停的读取数据,从读取到的数据里面即可解析出经纬度,卫星数等信息。


下面先来看一些模块图片,接线图片

1、GPS模块(具体型号:ATGM336H-5N-31),包含一条天线


2、接上天线后的GPS模块


3、接上USB转串口(TTL)模块后的GPS。这里要特别注意:GPS的两个针脚TX和RX,必须要和USB串口模块的TX和RX对调,也就是TX接RX,RX接TX


4、接了树莓派后的GPS


模块全部接好后,测试GPS是否正常。因为我这里用了USB转串口(TTL)模块,所以测试起来也非常的简单。串口设备是/dev/ttyUSB0,所以直接用cat /dev/ttyUSB0就可以读取到数据,或者用minicom -b 9600 -o -D /dev/ttyUSB0也可以。如果读不到数据的话,请记得把GPS模块拿到窗口外面或者露天的地方去测试。室内一般是定位不了的。

读取数据的效果如下图:


GPS模块测试成功后,我们发现返回的数据一大堆,那么到底哪些才是我们要的呢?这个时候就要分析协议了。

协议下载:ATGM336H-5N模块使用手册

我们主要看里面的GNGGA数据,同时要注意经纬度转换成谷歌、百度地图的方法。


协议了解了,下面我们就要写代码实现经纬度的读取解析和转换了。下面是python源码:


# -*- coding: utf-8 -*
import serial
import time

ser = serial.Serial("/dev/ttyUSB0", 9600)
try:
    while True:
        temp = ser.readline()
        if temp.startswith('$GNGGA'):
            temp = temp.split(',')
            latitude = temp[2]
            longitude = temp[4]
            flag = temp[6]
            satellite = temp[7]
            if latitude != '' and longitude != '':
                # 对经纬度进行转换
                latitude = int(latitude[0:2]) + (float(latitude[2:8]) / 60)
                longitude = int(longitude[0:3]) + (float(longitude[3:9]) / 60)
                if flag == '1':
                    # 数据有效
                    print('当前坐标:%s,%s' % (latitude, longitude))
                    print('卫星数量:%s' % int(satellite))
                    print('定位时间:%s\n' % time.strftime('%Y-%m-%d %H:%M:%S'))
                else:
                    print('定位数据无效(%s)' % time.strftime('%Y-%m-%d %H:%M:%S'))
            else:
                print('定位失败(%s)' % time.strftime('%Y-%m-%d %H:%M:%S'))
except KeyboardInterrupt as e:
    print("程序结束")

源代码下载:GPS.zip


效果图:


  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号