arduino - 如何在 Arduino Uno 上为 HM-10 BLE 设置服务和特性?

标签 arduino bluetooth-lowenergy hm-10

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

我研究了一些库,例如 CurieBLE,它似乎是最突出的选择,但它不支持老式的 Arduino Uno。

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

最佳答案

这不是它的工作原理。 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 发送一条消息(最多 20 个字节的 CHAR 或 BYTE 数组),您的应用程序可以接收 它在通知中。 如果您从应用程序中编写一条消息,您可以在 Arduino 中阅读它。

要了解 Xamarin 应用程序的工作流程,请查看我在 Github 上的示例:https://github.com/GrooverFromHolland/SimpleBleExample_by_Devicename
它不是 Xamarin 示例,而是通用 Windows BleExample,仅用于展示设置连接所需的内容。

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

关于arduino - 如何在 Arduino Uno 上为 HM-10 BLE 设置服务和特性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51840345/

相关文章:

android - 蓝牙Gatt : onClientConnectionState() returns status=133

arduino - 将多个 BLE 设备连接到 Arduino

bluetooth-lowenergy - 估计到 ibeacon AVR 的距离

arduino - AVRDUDE 命令行无法连接到 Leonardo 的程序员

arduino - 从 URL 读取 GET 请求值到 Arduino WebServer

linux - 使用 hcitool 扫描低功耗蓝牙?

bluetooth-lowenergy - 一个外设可以连接到多个中心吗?

c++ - Arduino 不写入 SD 卡?

arrays - 我可以使用 Arduino 超声波传感器在处理移动/播放时制作图像序列吗?

android - 我们可以像配对经典蓝牙设备一样配对 BLE 设备吗?