在设备上按下“设置时间”按钮以使其开始广告
打开手机/计算机上的蓝牙设置或控制面板,找到设备并点击以连接到设备
设备使用当前的时间服务从电话请求时间,然后断开连接并停止投放广告
整个交互的范围仅是为了获得无需手动调整本地时间,也无需添加更复杂的连接(如WiFi即可使用NTP)。
BLE可以实现这种交互流程吗?外围设备可以自己从中央系统读取当前时间服务吗?如果不是,手机上的配套应用程序是否需要写入外设的当前时间服务特征?
#1 楼
由于您不打算与伙伴设备进一步通信,我想设置时间的精度在几秒钟的精度范围内对您来说还可以。如果您想获得更高的精确度,则必须考虑很多因素(延迟,延迟,较低级别的协议等)。一般来说,BLE是一种通信协议,您可以访问终端设备提供的所有功能。因此,如果您有允许NTP请求的计算机/电话,则可以通过BLE提出NTP请求。当然,这需要某种配置或附加程序。
您可以使用扫描请求和扫描响应来传递广告过程中的时间。当然,要做到这一点,您必须提供最少的BLE对应物。这样做的好处是,您甚至不必完全配对。如果要从Pi或其他可能更有效的实例中抽出时间,那么当然这需要从两侧访问BLE行为,而这可能是您在智能手机上可能没有的。
如果您不怕扎根Android,也可以使用Cheepsync,而他们正是这样做的。在Github上。
#2 楼
您是否看过Web蓝牙?这可用于写入设备,而无需本机客户端应用程序来设置时间。大多数平台上的Chrome都支持该功能,其他浏览器也在增加支持。
我一直在使用Web蓝牙设置wifi详细信息的设备(该设备是使用NTP保持准确并支持其他功能的时钟)。
#3 楼
BLE可以实现这种交互流程吗?
是的。
外围设备可以自己读取当前数据吗?来自中心的时间服务吗?
仅当中心正在运行当前时间服务时。
如果没有,则在中心上运行配套应用程序手机是否需要写外设上的当前时间服务特性?
取决于中心是否已经在运行当前时间服务。例如,iOS内置了一个,它将每分钟在外围设备上写入当前时间特性。
如果没有内置的“当前时间服务”,则可以添加一个或提供当前时间设置其他时间(例如通用应用和自定义协议,或网站和网络蓝牙)。
评论
所需的精度是多少?您是否希望将其用作显示时间的通用时钟,或者您需要某种需要精确时钟的其他应用程序?除了Bence的问题之外,您是否考虑过使用无线电时钟信号而不是BLE与设备同步?许多消费类设备(例如数字时钟)都使用它来获取准确的时间读数。
是的,几秒钟之内就可以了。其他任何带时钟的家用电器都具有相同的精度。
另外,我查看了LF无线电时钟系统,但是接收器没有集成到我知道的任何µC中,并且在随意搜索中也找不到任何离散的接收器,你知道吗?