是否可以使用带 Arduino 的 HM-10 或 HM-11 BLE 模块与 iOS 设备 (ANCS) 通信?
Is it possible to use HM-10 or HM-11 BLE Module with Arduino to communicate with an iOS device (ANCS)?
我想基于 arduino 工具和库为我的 iPhone 构建一个智能手表。但我对 BLE 有一个问题:我知道已经有一个用于 ancs (https://github.com/robotastic/ANCS-Library) 的 nRF8001 库,但我想使用 HM-11 模块,主要是因为它更小更便宜。
那么是否可以将 HM-11 模块连接到 Arduino 并接收 iOS 通知并对其进行处理? (例如在屏幕上显示)
提前致谢。
不,这些模块使用 service/characteristic 通过 GATT 提供串行端口仿真。它们不提供对实现 ANCS 接收器所需的蓝牙堆栈的较低级别访问。
HMSoft V524版本增加了ANCS支持(不包括HMSensor版本)
- 如何开启ANCS功能
1.1 请先阅读苹果通知文档
1.2 发送AT+TYPE3
命令更改为AUTH
和BOND
模式。
1.3 发送AT+ANCS1
命令打开ANCS
.
1.4 发送AT+PASS
[para1]命令设置密码。默认密码为“000000”
1.5 发送AT+RESET
重启模块
现在您可以使用LightBlue或我们的软件扫描并与模块建立连接。 iOS 会要求您输入密码。请输入您的密码值。
如果一切正常,您应该从模块 UART
.
收到 AT+ANCS
[para1] 命令
关于AT+ANCS[para1]
命令
AT+ANCSN
: 模块打开通知源成功。
AT+ANCSC
: 模块打开控制点成功。
AT+ANCSD
: 模块打开数据源成功。
获取 ANCS 通知信息。当iOS通知中心有变化时(如电话、邮件、短信)。模块会通过UART
.
输出AT+ANCS8[para2]
命令
关于 AT+ANCS8[para2]
命令。
格式如:AT+ANCS801012345
8:para1的长度。
0: EventID
EventIDNotificationAdded = 0
,
EventIDNotificationModified = 1
,
EventIDNotificationRemoved = 2
,
Reserved EventID values = 3 ~ 255
1:CategoryID
CategoryIDOther = 0
,
CategoryIDIncomingCall = 1
,
CategoryIDMissedCall = 2
,
CategoryIDVoicemail = 3
,
CategoryIDSocial = 4
,
CategoryIDSchedule = 5
,
CategoryIDEmail = 6
,
CategoryIDNews = 7
,
CategoryIDHealthAndFitness = 8
,
CategoryIDBusinessAndFinance = 9
,
CategoryIDLocation = 10
,
CategoryIDEntertainment = 11
,
Reserved CategoryID values = 12 ~ 255
01:CategoryCount
给定类别中的当前活动 iOS 通知数。例如,如果用户的电子邮件收件箱中有两封未读电子邮件,并且新电子邮件被推送到用户的 iOS 设备,则 CategoryCount 的值为 3。
2345:NotificationUID
一个 32 位数值,它是 iOS 通知的唯一标识符 (UID)。此值可用作发送到控制点特征的命令句柄,以检索有关 iOS 通知的更多信息。
获取通知属性
AT+ANCS[para1][para2][para3]
格式如:AT+ANCS2345100
para1
: NotificationUID
para2
: NotificationAttributeID
NotificationAttributeIDAppIdentifier = 0
,
NotificationAttributeIDTitle = 1
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDSubtitle = 2
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDMessage = 3
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDMessageSize = 4
,
NotificationAttributeIDDate = 5
,
NotificationAttributeID
= 6 ~ 255
para3
: 最大长度参数(保留)
如果 para2 值为 0、4、5,则 para3 必须设置为“00”
如果para2值为1,2,3,你需要设置一个数字。
关于获取通知属性响应
AT+ANCSW
: 发送请求成功。
AT+ANCS[para1]:
para1 值为 0x00 ~ 0x14.
表示您需要接收的下一个包裹长度。
[.......]: 你需要接收的字节数组。
在apple Notification文件中显示如图2-6。 (第 9 页)
收到AT+ANCSW后,可能会收到AT+ANCS[para1]
多次。直到图2-6包完成。
如何删除 ANCS。
7.1 从 iOS 中删除债券信息。
7.2 执行AT+ERASE
删除模块绑定信息
7.3 执行AT+ANCS0
关闭模块ANCS功能
7.4 执行AT+RESET
重启模块
ANCS 易于使用,您无需编写任何iOS代码。 iOS 将管理蓝牙 link 并将消息推送到模块。
我想基于 arduino 工具和库为我的 iPhone 构建一个智能手表。但我对 BLE 有一个问题:我知道已经有一个用于 ancs (https://github.com/robotastic/ANCS-Library) 的 nRF8001 库,但我想使用 HM-11 模块,主要是因为它更小更便宜。 那么是否可以将 HM-11 模块连接到 Arduino 并接收 iOS 通知并对其进行处理? (例如在屏幕上显示)
提前致谢。
不,这些模块使用 service/characteristic 通过 GATT 提供串行端口仿真。它们不提供对实现 ANCS 接收器所需的蓝牙堆栈的较低级别访问。
HMSoft V524版本增加了ANCS支持(不包括HMSensor版本)
- 如何开启ANCS功能
1.1 请先阅读苹果通知文档
1.2 发送AT+TYPE3
命令更改为AUTH
和BOND
模式。
1.3 发送AT+ANCS1
命令打开ANCS
.
1.4 发送AT+PASS
[para1]命令设置密码。默认密码为“000000”
1.5 发送AT+RESET
重启模块
现在您可以使用LightBlue或我们的软件扫描并与模块建立连接。 iOS 会要求您输入密码。请输入您的密码值。
如果一切正常,您应该从模块 UART
.
AT+ANCS
[para1] 命令
关于
AT+ANCS[para1]
命令
AT+ANCSN
: 模块打开通知源成功。
AT+ANCSC
: 模块打开控制点成功。
AT+ANCSD
: 模块打开数据源成功。获取 ANCS 通知信息。当iOS通知中心有变化时(如电话、邮件、短信)。模块会通过
输出UART
.AT+ANCS8[para2]
命令关于
AT+ANCS8[para2]
命令。
格式如:AT+ANCS801012345
8:para1的长度。
0:EventID
EventIDNotificationAdded = 0
,
EventIDNotificationModified = 1
,
EventIDNotificationRemoved = 2
,
Reserved EventID values = 3 ~ 255
1:CategoryID
CategoryIDOther = 0
,
CategoryIDIncomingCall = 1
,
CategoryIDMissedCall = 2
,
CategoryIDVoicemail = 3
,
CategoryIDSocial = 4
,
CategoryIDSchedule = 5
,
CategoryIDEmail = 6
,
CategoryIDNews = 7
,
CategoryIDHealthAndFitness = 8
,
CategoryIDBusinessAndFinance = 9
,
CategoryIDLocation = 10
,
CategoryIDEntertainment = 11
,
Reserved CategoryID values = 12 ~ 255
01:CategoryCount
给定类别中的当前活动 iOS 通知数。例如,如果用户的电子邮件收件箱中有两封未读电子邮件,并且新电子邮件被推送到用户的 iOS 设备,则 CategoryCount 的值为 3。
2345:NotificationUID
一个 32 位数值,它是 iOS 通知的唯一标识符 (UID)。此值可用作发送到控制点特征的命令句柄,以检索有关 iOS 通知的更多信息。获取通知属性
AT+ANCS[para1][para2][para3]
格式如:AT+ANCS2345100
para1
: NotificationUID
para2
:NotificationAttributeID
NotificationAttributeIDAppIdentifier = 0
,
NotificationAttributeIDTitle = 1
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDSubtitle = 2
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDMessage = 3
, (后面需要跟一个2字节的最大长度参数)
NotificationAttributeIDMessageSize = 4
,
NotificationAttributeIDDate = 5
,
NotificationAttributeID
= 6 ~ 255para3
: 最大长度参数(保留)
如果 para2 值为 0、4、5,则 para3 必须设置为“00”
如果para2值为1,2,3,你需要设置一个数字。关于获取通知属性响应
AT+ANCSW
: 发送请求成功。
AT+ANCS[para1]:
para1 值为 0x00 ~ 0x14.
表示您需要接收的下一个包裹长度。
[.......]: 你需要接收的字节数组。
在apple Notification文件中显示如图2-6。 (第 9 页)
收到AT+ANCSW后,可能会收到AT+ANCS[para1]
多次。直到图2-6包完成。如何删除 ANCS。
7.1 从 iOS 中删除债券信息。 7.2 执行AT+ERASE
删除模块绑定信息
7.3 执行AT+ANCS0
关闭模块ANCS功能
7.4 执行AT+RESET
重启模块ANCS 易于使用,您无需编写任何iOS代码。 iOS 将管理蓝牙 link 并将消息推送到模块。