问题:
我有一些传感器需要通过BLE(Peripheral)从Raspberry Pi接收数据,其接收机制实际上是非常机械的: 从传感器到外围设备(R Pi)的一次安全数据传输就是这种情况:
我尝试了什么?
我已经在Rpi上使用Bluez使这种机械机构工作了,我为Bluez / test的example-gatt-server示例创建了包装器,并且可以通过BLE发送和接收数据到esp32(使用nkolban lib)>
出现问题:
当我的两个ESP32之一尝试进行读取/写入时与服务器的连接时,此连接会导致ESP32复位(因为它期望连续的读取或写入操作且外围设备不可用),并且所有随机会话密钥上下文丢失,因为Bluez已连接了新设备等。
是否有更好的方法来实现我的目标?我还阅读了该规范,并尝试在Internet上进行研究以找到一种方法:我知道该规范要求BLE协议一旦建立连接就停止广告。 RPi也做同样的事情,但是当一个esp的读取和写入之间存在延迟时,另一个连接到它,并且整个通信变得一团糟。另外,在我的esp上附有一个计时器,无论如何(无论是不是最动态的设计),它都会停止通信以防止电池电量消耗。 但就我而言,由于我的数据传输至少需要2个连接,所以当前的机械设计要求设备都记住上下文和状态。整个过程在2秒钟之内就可以正常工作,而在蓝牙网络上只有一个esp。
我知道这个问题很长,但是如果有人愿意提供帮助,我相信这将需要洞悉我要实现的目标。