|
许多项目要求您确定Raspberry Pi的位置。有时,您无法使用蜂窝网络或Wi-Fi网络执行该任务。
在这种情况下,GPS可能是一个很好的选择,特别是如果在户外使用树莓派(Raspberry Pi)。在本篇文章中,我将讨论如何将GPS模块连接到Raspberry Pi,以及如何在设计中使用获取的数据。
连接GPS接收器和Raspberry Pi 我不会讨论GPS接收器的详细信息以及整个系统的工作原理,因为许多其他文章已经介绍过。让我们直接省略这部分,然后将GPS模块连接到Raspberry Pi!
我使用简单的串口连接,因此需要将其连接到Raspberry Pi的TX和RX引脚:
GPS接收器和树莓派4之间的连接。
确保将模块的RX输入连接到Raspberry Pi的TX输出!另请注意,我已将GPS模块连接至Raspberry Pi的电源引脚。确保为您的设备使用正确的电压。
为GPS配置Raspberry Pi 接下来,您必须配置Raspberry Pi的OS,使其能够与GPS接收器通信。请注意,这些步骤专门适用于Raspbian Jessie或更高版本。对于较旧的版本,它们可能有所不同。
我还建议您在首次测试GPS模块时使用全新安装的操作系统来排除任何配置问题。
首先运行raspi-config: 您应该看到以下界面:
在这里,您需要选择“Interfacing Options”,然后选择“Serial”:
然后禁用通过串行连接访问login-shell的可能性,并在下一步中,当系统询问您是否要保留串行端口启用时,选择“Yes”:
当您回到raspi-config程序的主菜单时,选择“Finish”,然后重新启动Raspberry Pi。
下载所需的软件 安装gpsd和gpsd-client: - sudo apt-get install gpsd gpsd-clients
复制代码gpsd是串行GPS接收器的接口程序,支持不同的通信标准。我将使用它来进行测试读取并验证硬件是否正常运行。有关该程序的更多信息,您可以键入:
安装完成后,请确认您可以从GPS模块接收数据。为此,输出通过串行端口发送的数据:
首先,输出应如下所示:
此时您收到什么数据都没有关系,只要您能收到数据就行。如果端口立即关闭或Pi根本没有收到任何数据,请确认您已正确连接模块。
请注意,您无需超级用户就可以运行此命令。如果不能,请将pi用户添加到dialout组中:
读取位置数据 现在终于可以确定Raspberry Pi的位置了。键入以下命令,停止早先安装gpsd时自动启动的gpsd服务。您必须这样做,因为Pi的默认选项不正确: - sudo systemctl stop gpsd.socket
复制代码请注意,每次启动系统时都必须键入此命令。另外,您也可以完全禁用它: - sudo systemctl disable gpsd.socket
复制代码启动一个新的gpsd实例,该实例将正确的串行端口的数据重定向到套接字: - sudo gpsd /dev/serial0 -F /var/run/gpsd.sock
复制代码
然后,您可以运行以下两个命令之一来显示GPS数据:
首先,您应该看到类似以下内容:
但是,一段时间后,该模块应该已经收集了足够的数据来显示位置:
请注意,首次启动模块之前,可能最多需要30分钟才能确定模块的位置,尤其是在室内时。尝试将天线指向窗户,或者甚至将整个模块放在窗户旁边或室外。
如果在运行gpsmon时遇到错误,而在运行cgps时没有输出,请尝试以下命令: - sudo systemctl stop serial-getty@serial0.service
复制代码
然后,您也应该能够使用gpsmon:
|