3

我有一个连接到 HM-10 BLE 设备的 Arduino Uno。我希望能够通过 Xamarin 表单应用程序与之通信。不幸的是,我意识到为了做到这一点,有必要在 Arduino 上为 BLE 模块定义可用的服务和支持特性,然后才能开始使用它。

我查看了一些库,即 CurieBLE,这似乎是最突出的选择,但它不支持旧的 Arduino Uno。

实际上是否有任何用于此目的的在线图书馆我还没有遇到过,如果没有,我该如何自己定义服务和特征?

4

1 回答 1

2

这不是它的工作原理。HM10 具有您需要内置的特性和服务,并通过 RX 和 TX 引脚与您的 Arduino 进行通信。
您需要 softserial 库来创建额外的串行连接。

还要考虑到大多数 HM10 设备仅兼容 3.3 伏,需要一个电平转换器才能与您的 Arduino 一起使用!另一方面,我将 RX 连接到 TX 和 TX 连接到 RX 没有电平转换器没有问题,但那是你的风险。

将软串行端口的 TX 和 RX 引脚连接到 HM10 设备上的 TX 和 RX 引脚。为您的 Arduino 创建一个可以读取和写入您的软串行连接的草图,然后您就完成了。

将您的 Xamarin 应用程序设置为 BLE 客户端。
在 Xamarin 表单应用程序上,您的应用程序必须找到设备,
通过获取服务连接到设备,
选择您需要的服务(对于我的 HM10,它是 0000ffe0-0000-1000-8000-00805f9b34fb),
获取所选的特征服务,选择您需要的特性(对于我的 HM10,它是 0000ffe1-0000-1000-8000-00805f9b34fb),
将 ClientCharacteristicConfigurationDescriptor 写入特性以便能够接收通知。

如果您从 Arduino 发送消息(CHAR 或 BYTE 数组,最多 20 个字节),您的应用程序可以在通知中接收它。如果您从应用程序中编写消息,您可以在 Arduino 中阅读它。

要了解 Xamarin 应用程序的工作流程,请查看我在 Github 上的示例:https
://github.com/GrooverFromHolland/SimpleBleExample_by_Devicename 这不是 Xamarin 示例,而是通用 Windows BleExample,仅显示设置联系。

如果您对示例有疑问,请在我的 Github 页面上创建问题。
对于其他问题,请使用此处的评论。

于 2018-08-14T13:45:17.963 回答