吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8742|回复: 13
收起左侧

[Python 转载] 树莓派小白教程(四):树莓派3B+与GPS模块的连接,并用python获取数据

[复制链接]
Earlobe 发表于 2019-7-27 23:18
本帖最后由 Earlobe 于 2019-7-30 12:30 编辑

    嗒嗒嗒, 我我我我来了 ヽ(* ̄▽ ̄*)ノミ

     继上一篇用python读取MPU6050与树莓派连接后显示的数据(链接戳这里:https://www.52pojie.cn/thread-998097-1-1.html
后,我们趁热打铁,再研究一下树莓派3B+与GPS模块的连接,以及数据的获取


需要的材料:
1.BD+GPS二合一天线,北斗双模卫星定位天线
2.GPS+北斗双定位模块
3.usb转ttl模块一个,使用它的原因呢就是ttyUSB0串口使用起来更方便,可以随意的插拔,还可以在电脑、手机等其他设备上使用


方法/步骤一
用杜邦线连接树莓派和GPS模块和USB转ttl
   2.png
        接线好的硬件如下
3.jpg
然后将usb接入到USB接口,就欧克了。


方法/步骤二
1.那如何获取GPS模块发出的内容呢,就要通过 minicom 这个工具,来获取串口的数据。
       写入命令:sudo apt-get install minicom

2、安装gpsd相关的软件和库
       sudo apt-get install gpsd gpsd-clients python-gps

3.安装好之后通过minicom命令获取串口上的数据:
     minicom -b 38400 -o -D /dev/ttyUSBO
     -b 设定的是波特率,是模块参数而定;-o 是不初始化Modem且不锁定文件;-D 设定的是接口
4.png

1.关于显示数据的分析,根据GPS模块的文档,知道这是一种叫NMEA-0183的协议,包括GSA当前卫星信息、GSV可见卫星信息、GGAGPS定位信息、RMC推荐定位信息。
2.在 minicom界面里,可以按Ctrl+A,然后按Z获取帮助;Ctrl+A、然后按Q来退出。

注意: 1.GPS模块的串口默认波特率要找对,我的是38400
            2.ttyUSBO是我的GPS模块的设备名,可以通过ls /dev/ttyUSB*命令,查看设备名

如果界面成功打开,却没有显示下面的数据,那请继续看步骤三。

方法/步骤三
一、设置树莓派串口为默认打开
由于树莓派3B+的端口默认是被蓝牙模块占据的,所以如果你之前没有修改过设置的话,要想启用串口还需调试一番。

1.在树莓派的boot目录修改这两个文件内的配置

   输入以下的指令sudo nano /boot/config.txt         在里面添加如下语句
               enable_uart=1
               dtoverlay=pi3-miniuart-bt

              //以上两行的作用是将端口从指向蓝牙改为指向串口,并在启动时打开串口



2.再打开cmdline.txt文件进行修改:     

      输入以下的指令sudo nano /boot/cmdline.txt   

      修改或添加内容为:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 之后Ctrl+O保存,Ctrl+X退出
3.最后再打开树莓派的系统设置界面启用串口

    sudo raspi-config

    选择Interfacing Options,回车进入后找到 Serial , 回车进入后选择enable,然后点击finish确认就完成了。
5.png

4.最后重启树莓派即可
   sudo reboot


二、关闭板载蓝牙       

1.输入以下指令关闭蓝牙:sudo systemctl disable hciuart       

2.再打开hciuart.service文件:  

          1.sudo nano /lib/systemd/system/hciuart.server     

         2.将文件内全部的“ttyAMA0”修改为“ttyS0”,如果没有就可以不改了。   
3.更新并重启:  sudo apt-get update && sudo apt-get upgrade   

4.最后重启树莓派即可   sudo reboot      

5.重启后输入以下指令查看端口    ls -l /dev          

如果能够如下图所示,serial0 ->指向ttyAMA0就代表设置成功了,打开minicom界面就能看到GPS模块收到的数据了。
         
1.png

方法/步骤python编程获取串口数据
      上述步骤成功以后我们就可以输出数据啦~以python为例,进行数据解析和展示。   
   

  1.代码测试会用到gps3库和serial,所以 我们在写入以下命令         sudo apt-get install python-serial
       pip3 install gps3


    2.python代码如下
1.png
注意
1.line 8,9 将代码中的str转换成bytes类型        

2.line10 ,11将gps地址按照规则转化成经纬度
3.执行结果如下
2.png
至此就大功告成啦

未经本人书面许可,禁止以任何形式引用、抄袭、转载本篇文章。

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
玉成IX + 1 我很赞同!
99910369 + 1 + 1 用心讨论,共获提升!
Mr_He + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

caisejun 发表于 2019-7-28 00:14
正好有个3B,过几天我也试试
dreamsmao 发表于 2019-7-28 00:52
littlebit 发表于 2019-7-28 01:34
吓猴蹲 发表于 2019-7-28 06:53
多谢楼主,吾爱有你更精彩
ph1999 发表于 2019-7-28 06:59
看了你的文章很想买个回来玩玩
坐久落花多 发表于 2019-7-28 07:56

树莓派搞点小东西挺有意思的
Mr_He 发表于 2019-7-28 08:32
过段时间打算用树莓派搞个NAS不知道行不行
yxjoe 发表于 2019-7-28 08:53
楼主稳的呀
studyggm 发表于 2019-7-28 14:50
鼓励楼主持续更新,普惠大众。谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 18:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表