雷竞技注册
项目

用arduino制作一个gps时钟

2015年12月09日经过Jens Christoffersen.

您的桌子上需要GPS时间吗?本文将向您展示如何使用GPS模块获取时间,日期和您的位置与Arduino显示在LCD上。

您的桌子上需要GPS时间吗?本文将向您展示如何使用GPS模块获取时间,日期和您的位置与Arduino显示在LCD上。

要求

介绍

在20世纪70年代初开始,全球定位系统或GPS的发展。每个国家(俄罗斯,美国,中国等)都有自己的系统,但世界各地的大多数GPS单元都使用美国系统。

每个系统的每个卫星都有一个原子钟,每天都是挪拉的持续监控和设置:

“概念上,接收器测量四个卫星信号的TOA(根据其自己的时钟)。从TOA和TOTS中,接收器形成四次飞行(TOF)值(鉴于光速)大约等同接收卫星范围差异。然后,接收器计算其与四个TOF的三维位置和时钟偏差。“(维基百科

$$ \ text {注意:TOA =到达时间,TOT =传输时间} $$

大多数地球上最便宜的GPS接收器大约有大约20米的准确性。在这里,我们将学习如何使用Arduino学习自己的GPS时钟。

硬件

我的GPS模块有6个引脚:GND,VIN,TX,RX&GND。第6个引脚是NC。GND连接到GND,VIN到VIN,TX连接到Arduino引脚10,RX引脚未连接到任何内容,因为我没有向GPS模块发送任何消息。我的模块正在使用具有4800个BPS的RS-232传输卫星数据,该RS-232在引脚10上接收。

这是模块,前后。

该模块正在发送所谓的NMEA句子。在这里,您可以看到一个NMEA句子的示例和该句子的解释(从数据表中摘录):

所有这些数据由PIN 10上的Arduino Mega收到。TinyGPS库正在阅读GPGGA句子和GPRMC句子。(有关GPRMC的详细信息,请参阅数据表。)

Arduino不在原理图中,所以请遵循连接。

软件

当应用电源时,GPS模块需要一些时间才能获得卫星的有效修复。当进行固定位置时,该模块将NMEA句子发送到Arduino。TinyGPS库有一个功能来获取GPRMC句子的日期和时间。它被称为crack_datetime(),它需要七个变量:年,月,日,小时,分钟,秒和百分之一。函数调用如下所示:

GPS.CRACK_DATETIME(&年,和和日,日,和一小时,和分钟,百分之一);

调用此函数为您提供变量中的正确值,只要具有硬件的所有内容都可以。

要获得我们的立场,你称之为功能f_get_position()。此功能需要两个变量,纬度和经度。要调用此功能,请在代码中写入:

gps.f_get_position(&latitude和经度);

链接中的草图显示了两种功能如何工作。

下载

以下是您需要的所有文件:

结论

在本文中,我已经向您展示了如何从GPS模块获取时间,日期和位置,然后在LCD上显示全部。现在你知道你在哪里!

图片和视频

在图片和视频中,我已添加到我隐私的纬度和经度的偏移量。我在工作的房间是在地下室,并有四个混凝土墙。为了获得更好的接收,我必须在GPS模块和连接标题之间焊接电缆。然后我将GPS放在窗口中。

为自己提供这个项目!得到bom。

16评论