我的问题与软件无关,而是与技术有关。我认为BLE是我系统的解决方案,但我不确定它是如何工作的,配对是如何工作的。
我正在投射一个有4个设备的系统,每个设备都有一些传感器。设备A1和A2具有相同的传感器,它们彼此独立,读取不同的数据。如果其中一个读到临界值,就会发出噪声。
设备B1和B2具有相同的传感器,它们彼此接近且相互依赖。我的意思是,我需要知道B1的值是比B2高还是反之亦然。值较高的设备发出噪音。
---- ------------ ----
|A1| ------> |smartphone | <----- |B1| <--|
---- ------------ ---- |
^ ^ |
---- | | ---- |
|A2| ----------| |----------- |B2| <--|
---- ----
这些设备彼此靠得很近,稍后会在一天结束时同步到智能手机上,以存储所有读取的数据。
如何在传感器和智能手机之间建立连接?我需要让通信B1和B2,知道谁有更高的价值。然后我需要将它们全部传送到智能手机上以收集数据。
对于每个设备来说,一个蓝牙芯片的低能耗就足够了吗?我是否可以使用同一芯片在设备之间以及与智能手机之间(在不同时刻)进行通信?
我不确定配对的过程...我是否需要每次都将设备与智能手机关联和取消关联?或者最好是有两个芯片的B1作为主控,一个用于智能手机,一个用于通信,做B2吗?
发布于 2016-02-18 05:17:50
BLE要求一台设备是服务器,另一台是客户端,才能建立连接。您不能让服务器与服务器对话,也不能让客户端与客户端对话。但是,设备可以同时实施服务器协议和客户端协议。
如果B1和B2是相同的,并且它们只实现服务器或客户端接口,那么它们就不能相互通信。如果您在设计上控制了B1和B2,则可以将它们设计为同时实现服务器和客户端协议,然后自动相互通信,以更新每个协议中具有较高值的那一个。然而,我想知道为什么你需要让它们彼此交谈--为什么智能手机不能同时获得B1和B2的值,然后再决定保留哪一个?然后,它还可以向B1或B2发送命令来制造噪音。
单个BLE芯片可以管理许多连接,因为BLE连接是非常临时的(并且,如果内部软件支持它,它可能能够处理多个同时连接)。
如果我决定让B1和B2简单地在他们的广告数据包中包括他们的测量数据,然后让两个人都监听其他的广告数据包。在这种情况下,根本不需要建立任何协商连接-每个设备只需连续运行BLE“附近设备”扫描。然后,当智能手机出现时,他们每个人都可以独立与手机建立协商连接,并上传他们的数据。
https://stackoverflow.com/questions/35459039
复制相似问题