Raspberry Pi 设备网络的 NTP 解决方案

NTP solution for network of Raspberry Pi devices

我已经基于 Raspberry Pi 构建了自己的数字标牌解决方案。基本上所有的 Pi 都分散在中西部的一个城市周围(目前),他们要求 VPS 每小时更新一次,而 VPS 恰好位于达拉斯。 Pi 的实际显示是通过启动时打开的 chromium webapp 完成的,并使用 javascript 以定义的时间间隔循环显示内容。

例如,假设其中两个显示器位于同一位置,每个显示器每 4 秒更改一次屏幕上的图像。并假设从 15:00 开始的一小时内,服务器会为他们提供相同的内容列表以循环浏览。 15:00 滚动时,都显示内容项 A,等待 4 秒,显示内容项 B,等等,然后再次回到 A。

由于 raspberry pi 没有实时时钟芯片,两者都将通过 NTP 获取所有时间信息。 ntp.conf 告诉我:

"pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will pick a different set every time it starts up."

这几乎在所有时间都运行良好,因为这两个屏幕看起来完全同步,同时更改为相同的内容,但我时不时地发现它们不同步了一点而

我的理论是,由于他们从池中选择不同的 NTP 服务器(可能其中一些服务器距离很远等),他们获得的时间更新差异足以让人认为它是 15:00 :005 和另一个认为是 15:00:00.

终于到了这个问题(抱歉),将我的达拉斯服务器设置为我所有分散的 Pi 的唯一 NTP 服务器是否值得?即使达拉斯的服务器有几秒钟的错误,至少它们都会同步,忽略一个 Pi 的数据可能与另一个 Pi 的数据采用不同的路由到达达拉斯的事实,因此使时间更新略有不正确。澄清一下,我不在乎 Pi 是否认为它是 15:00:005 而实际上是 15:00:00,我只是希望他们都认为它是 15:00:005.

可能是我太担心了,或者低估了3-4台低层NTP服务器即使距离很远也能准确。认为这至少是一个有趣的问题。提前致谢!

取决于你的错误window(看起来很窄)

  1. 你将它们都指向同一个确切的 NTP 服务器(可能是你自己的),并在一天中收到关于你的数据包往返的错误,根据你的网络,这可能会让你精确到几秒。
  2. 安装一个 GPS 模块,GPS 卫星广播一个非常 精确的小时。他们甚至有位置信息,所以你可以知道你的时间戳有多大偏差。如果操作得当,这是非常精确的,甚至有无线网络广播系统使用这种技术进行数据同步。