前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 解析 GPS 模块数据

python 解析 GPS 模块数据

作者头像
为为为什么
发布2024-05-18 09:32:38
1210
发布2024-05-18 09:32:38
举报
文章被收录于专栏:又见苍岚又见苍岚

本文记录如何用 python 接收串口 gps 数据并解析。

需求

  • GPS 北天 PL2303G Chip
  • 驱动安装完成,后需要用 Python 连接获取串口 GPS 信号数据

设备准备

接入设备

将 GPS 模块插入 USB 等接口中,并正确配置驱动程序

获取设备信息

在 Ubuntu 中,插入 USB 的设备会出现在 /dev/tty* 中,首先需要确认该 GPS 设备的设备名称

可以使用几种不同的方法来确定接入的GPS模块是哪个设备:

列出所有串口: 使用lsusb命令可以列出所有连接到电脑的USB设备,但可能不会直接显示GPS模块的详细信息。如果您知道GPS模块是通过USB连接的,这个命令可以作为一个起点。

bash

复制

1

lsusb

使用**dmesg**: dmesg命令可以显示内核相关的日志信息,包括新插入的USB设备。当您插入GPS模块时,运行这个命令可以帮助您找到设备的信息。

bash

复制

1

dmesg | grep tty

使用**usb-devices**: usb-devices命令可以提供关于USB设备的详细信息,包括设备的名字、制造商、型号和串行号。

bash

复制

1

usb-devices

查看**/dev**目录: 在Linux系统中,串口设备通常位于/dev目录下。您可以列出这个目录下的文件,看看是否有新出现的串口设备。

bash

复制

1

ls -l /dev/tty*

经过一番确认,我的 gps 设备是 /dev/ttyUSB0

开放设备权限

访问设备有时需要较高的权限,为了方便 python 读取,这里做一些权限开放:

1

chmod 666 /dev/ttyUSB0

Python 实现

安装库:

12

pip install serialpip install pynmea2

源码:

123456789101112131415161718192021222324252627282930313233

import serialimport pynmea2# 配置串口参数ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) # 请根据您的设备修改串口路径和波特率# 检查串口是否已打开if not ser.is_open: ser.open()try: while True: # 读取串口数据 line = ser.readline().decode('utf-8') if line.startswith('$GPGGA'): # 解析NMEA 0183数据 msg = pynmea2.parse(line) # 提取经纬度 lat = msg.latitude lon = msg.longitude # 打印解析后的数据 print(f"经度:{lon}, 纬度:{lat}")except KeyboardInterrupt: # 按Ctrl+C时退出程序 print("程序已中断")finally: # 关闭串口 ser.close()

msg.latitude 和 msg.longitude 已经包含度分秒信息。

参考资料

文章链接: https://cloud.tencent.com/developer/article/2418522

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-5-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 设备准备
    • 接入设备
      • 获取设备信息
        • 开放设备权限
        • Python 实现
        • 参考资料
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档