是否可以使用带有Arduino的HM-10或HM-11 BLE模块与iOS设备(ANCS)进行通信?

时间:2015-02-12 21:53:09

标签: ios arduino bluetooth-lowenergy hm-10 ancs

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

提前致谢。

2 个答案:

答案 0 :(得分:3)

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

  1. 如何打开ANCS功能
  2. 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收到UART [para1]命令。

    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
      para2NotificationAttributeID
            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 表示您需要接收的下一个包裹长度 [........]:您需要接收的字节数组 在Apple中显示通知文档图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将管理蓝牙链接并将消息推送到模块。

答案 1 :(得分:1)

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