风筝
发表于: 2020-2-6 17:50:30 | 显示全部楼层

许多项目要求您确定Raspberry Pi的位置。有时,您无法使用蜂窝网络或Wi-Fi网络执行该任务。


在这种情况下,GPS可能是一个很好的选择,特别是如果在户外使用树莓派(Raspberry Pi)。在本篇文章中,我将讨论如何将GPS模块连接到Raspberry Pi,以及如何在设计中使用获取的数据。


连接GPS接收器和Raspberry Pi

我不会讨论GPS接收器的详细信息以及整个系统的工作原理,因为许多其他文章已经介绍过。让我们直接省略这部分,然后将GPS模块连接到Raspberry Pi!


我使用简单的串口连接,因此需要将其连接到Raspberry Pi的TX和RX引脚:

1.jpg

GPS接收器和树莓派4之间的连接。


确保将模块的RX输入连接到Raspberry Pi的TX输出!另请注意,我已将GPS模块连接至Raspberry Pi的电源引脚。确保为您的设备使用正确的电压。


为GPS配置Raspberry Pi

接下来,您必须配置Raspberry Pi的OS,使其能够与GPS接收器通信。请注意,这些步骤专门适用于Raspbian Jessie或更高版本。对于较旧的版本,它们可能有所不同。


我还建议您在首次测试GPS模块时使用全新安装的操作系统来排除任何配置问题。


首先运行raspi-config:

  1. sudo raspi-config
复制代码

您应该看到以下界面:

2.png

在这里,您需要选择“Interfacing Options”,然后选择“Serial”:

3.png

然后禁用通过串行连接访问login-shell的可能性,并在下一步中,当系统询问您是否要保留串行端口启用时,选择“Yes”:

4.png

当您回到raspi-config程序的主菜单时,选择“Finish”,然后重新启动Raspberry Pi。


下载所需的软件

安装gpsd和gpsd-client:

  1. sudo apt-get install gpsd gpsd-clients
复制代码

gpsd是串行GPS接收器的接口程序,支持不同的通信标准。我将使用它来进行测试读取并验证硬件是否正常运行。有关该程序的更多信息,您可以键入:

  1. man gpsd
复制代码

安装完成后,请确认您可以从GPS模块接收数据。为此,输出通过串行端口发送的数据:

  1. cat /dev/serial0
复制代码

首先,输出应如下所示:

5.png

此时您收到什么数据都没有关系,只要您能收到数据就行。如果端口立即关闭或Pi根本没有收到任何数据,请确认您已正确连接模块。


请注意,您无需超级用户就可以运行此命令。如果不能,请将pi用户添加到dialout组中:

  1. sudo adduser pi dialout
复制代码

读取位置数据

现在终于可以确定Raspberry Pi的位置了。键入以下命令,停止早先安装gpsd时自动启动的gpsd服务。您必须这样做,因为Pi的默认选项不正确:

  1. sudo systemctl stop gpsd.socket
复制代码

请注意,每次启动系统时都必须键入此命令。另外,您也可以完全禁用它:

  1. sudo systemctl disable gpsd.socket
复制代码

启动一个新的gpsd实例,该实例将正确的串行端口的数据重定向到套接字:

  1. sudo gpsd /dev/serial0 -F /var/run/gpsd.sock
复制代码

然后,您可以运行以下两个命令之一来显示GPS数据:

  1. sudo gpsmon
  2. sudo cgps -s
复制代码

首先,您应该看到类似以下内容:

6.png

但是,一段时间后,该模块应该已经收集了足够的数据来显示位置:

7.png

请注意,首次启动模块之前,可能最多需要30分钟才能确定模块的位置,尤其是在室内时。尝试将天线指向窗户,或者甚至将整个模块放在窗户旁边或室外。


如果在运行gpsmon时遇到错误,而在运行cgps时没有输出,请尝试以下命令:

  1. sudo systemctl stop serial-getty@serial0.service
复制代码

然后,您也应该能够使用gpsmon:

8.png

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 23 | 回复: 33



手机版|

GMT+8, 2024-12-22 16:15 , Processed in 0.049746 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

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