Можно ли использовать модуль BLE HM-10 или HM-11 с Arduino для связи с устройством iOS (ANCS)?

Я хотел бы создать умные часы для моего iPhone на основе инструментов и библиотек Arduino. Но у меня есть проблема с BLE: я знаю, что уже есть библиотека для nRF8001 для ancs ( https://github.com/robotastic/ANCS-Library), но я хочу использовать модуль HM-11, главным образом потому, что он меньше и дешевле. Так можно ли подключить модуль HM-11 к Arduino, получать уведомления iOS и что-то с этим делать? (например, отобразить его на экране)

Заранее спасибо.

2 ответа

Решение

HMSoft версии V524 добавлена ​​поддержка ANCS (не включая версию HMSensor)

  1. Как открыть функцию ANCS

1.1 Пожалуйста, сначала прочтите документ уведомления Apple.
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[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-разрядное числовое значение, которое является уникальным идентификатором (UID) для уведомления iOS. Это значение можно использовать в качестве дескриптора в командах, отправляемых в характеристику контрольной точки для получения дополнительной информации об уведомлении 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 ~ 255para3: параметр максимальной длины (зарезервирован)
    Если значение 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 будет управлять связью Bluetooth и передавать сообщение в модуль.

Нет, эти модули обеспечивают эмуляцию последовательного порта через GATT с использованием службы / характеристики. Они не предоставляют низкоуровневый доступ к стеку Bluetooth, необходимый для реализации приемника ANCS.

Другие вопросы по тегам