bluetooth - 如何实现两个设备的BLE通信?
问题描述
我有一个希望实现的 IoT 设备:
移动应用程序 - 当用户的手机发起通信时,手机是主控
远程键 - 单击所述键应使物联网设备执行某些操作。遥控钥匙应与物联网设备配对一次。
现在,我遇到的问题是我无法与两者沟通。我想始终启用与移动应用程序的连接,但我也想随时监听远程键的点击(除非我已连接到应用程序)。
这种通信的最佳架构是什么?谁是主人,谁是奴隶?我应该为遥控钥匙使用信标设备吗?这里的最佳做法是什么?
解决方案
根据 BLE 堆栈,设备当然可以同时是中央设备和外围设备(此处使用“主设备”和“从设备”不准确)。
如果我理解正确,您有 3 台设备——电话、钥匙和物联网设备。这里有几个选项:
- 电话是中央的,并且作为外围设备连接到密钥和设备。单击该键将通知手机,然后手机会向设备发送一些消息。优点 - 易于配对。缺点 - 手机应用程序必须一直运行。
- Phone 是 Central,Key 是 Central 和 Peripheral,Device 是 Peripheral。电话连接到 Key Peripheral,Key 作为 Central 连接到 Device。优点 - 即使没有电话,也可以按键控制设备。缺点 - 可能更难设置 Key 和 Device 配对(取决于它们的 I/O 能力)
推荐阅读
- azure - 无法使用客户端 ID/机密 Azure AD B2C 登录
- c - 用 C 语言优化井字游戏
- jquery - $.ajax 不会触发成功
- python - 多处理和 scipy (dblquad)
- javascript - 按字母顺序排列争论并根据顺序打印一个数字
- go - 如何在运行前通过 gin 合并多个路由器
- matplotlib - 如何更新我的 matplotlib 动画中的标题?
- postgresql - 通过 JDBC 连接到 postgres 服务器时 sslmode 参数的默认值?
- html - 使用 KeyboardDatePicker 的 React.js 中两个日期之间的月差
- wpf - 从 ViewModel 触发 UIElement 的操作