我想基于arduino工具和库为我的iPhone构建智能手表。但我对BLE有一个问题:我知道nCF8001已经有一个用于ancs(https://github.com/robotastic/ANCS-Library)的库,但我想使用HM-11模块,主要是因为它更小更便宜。 那么可以将HM-11模块连接到Arduino并接收iOS通知并使用它做些什么吗? (例如在屏幕上显示)
提前致谢。
答案 0 :(得分:3)
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会要求您输入密码。请输入您的密码值
如果一切正常,您应该从模块AT+ANCS
收到UART
[para1]命令。
关于AT+ANCS[para1]
命令
AT+ANCSN
:模块打开通知源已成功。
AT+ANCSC
:模块打开控制点已成功。
AT+ANCSD
:模块打开数据源已成功。
获取ANCS通知信息。 iOS通知中心有更改(如通话,电子邮件,短信)。模块将通过AT+ANCS8[para2]
输出UART
命令。
关于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中显示通知文档图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将管理蓝牙链接并将消息推送到模块。
答案 1 :(得分:1)
不,这些模块使用服务/特性在GATT上提供串行端口仿真。它们不提供对实现ANCS接收器所需的蓝牙堆栈的低级访问。