首页 编程教程正文

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

piaodoo 编程教程 2020-02-22 22:10:09 1051 0 python教程

本文来源吾爱破解论坛

本帖最后由 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 (19.45 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 21:17 上传


        接线好的硬件如下

3.jpg (393.22 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 21:18 上传


然后将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 (46.83 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 22:26 上传


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 (31.45 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 22:48 上传


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 (11.81 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 22:55 上传


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

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


    2.python代码如下

1.png (67.48 KB, 下载次数: 1)

下载附件  保存到相册

2019-7-27 23:11 上传


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

2.line10 ,11将gps地址按照规则转化成经纬度
3.执行结果如下

2.png (10.61 KB, 下载次数: 0)

下载附件  保存到相册

2019-7-27 23:16 上传

至此就大功告成啦嗨学网

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

本帖被以下淘专辑推荐: · 鱼木收集|主题: 2120, 订阅: 1667

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7744.html

搜索