2

我想基于 arduino 工具和库为我的 iPhone 构建智能手表。但我对 BLE 有疑问:我知道已经有一个用于 ancs 的 nRF8001 库(https://github.com/robotastic/ANCS-Library),但我想使用 HM-11 模块,主要是因为它是更小更便宜。那么是否可以将 HM-11 模块连接到 Arduino 并接收 iOS 通知并对其进行处理?(例如在屏幕上显示)

提前致谢。

4

2 回答 2

3

HMSoft 版本 V524 添加了 ANCS 支持(不包括 HMSensor 版本)

  1. 如何开启ANCS功能

1.1 请先阅读苹果通知文件。
1.2 发送AT+TYPE3命令更改到AUTHBOND模式。
1.3 发送AT+ANCS1命令打开ANCS
1.4 发送AT+PASS[para1]命令设置密码。默认密码为“000000”
1.5 发送AT+RESET重启模块。

现在您可以使用 LightBlue 或我们的软件来扫描并与模块建立连接。iOS 会要求你输入密码。请输入您的密码值。
如果一切正常,您应该收到AT+ANCS来自 module 的 [para1] 命令UART

  1. 关于AT+ANCS[para1]命令
    AT+ANCSN:模块打开通知源成功。
    AT+ANCSC:模块打开控制点成功。
    AT+ANCSD:模块打开数据源成功。

  2. 获取 ANCS 通知信息。当 iOS 通知中心发生变化时(如来电、邮件、短信)。模块将AT+ANCS8[para2]通过UART.

  3. 关于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 通知的更多信息。

  4. 获取通知属性
    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,则需要设置一个数字。

  5. 关于获取通知属性响应
    AT+ANCSW:发送请求成功。
    AT+ANCS[para1]:
    para1 值为 0x00 ~ 0x14。
    表示您需要接收的下一个包裹长度。
    [........]:需要接收的字节数组。
    在苹果的 Notification 文档中显示图 2-6。(第 9 页)
    收到 AT+ANCSW 后,您可能会收到AT+ANCS[para1]多次。直到图 2-6 封装完成。

  6. 如何删除 ANCS。
    7.1 从 iOS 中删除债券信息。7.2 执行AT+ERASE删除模块绑定信息。
    7.3 执行AT+ANCS0关闭模块ANCS功能。
    7.4 执行AT+RESET重启模块。

    ANCS 易于使用,您无需编写任何 iOS 代码。iOS 将管理蓝牙链接并将消息推送到模块。

于 2015-06-03T16:41:32.770 回答
1

不,这些模块使用服务/特性通过 GATT 提供串行端口仿真。它们不提供实现 ANCS 接收器所需的对蓝牙堆栈的较低级别访问。

于 2015-02-12T22:34:20.320 回答