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

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

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


person Tym3k    schedule 12.02.2015    source источник
comment
Это не столько вопрос iOS, сколько вопрос о том, можно ли модифицировать ANCS-Library для поддержки HM-11 (или вообще любого произвольного чипсета)   -  person David Berry    schedule 13.02.2015


Ответы (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 параметр максимальной длины -bytes)
    NotificationAttributeIDMessage = 3, (должен сопровождаться параметром максимальной длины 2 байта)
    NotificationAttributeIDMessageSize = 4,
    NotificationAttributeIDDate = 5,
    NotificationAttributeID = 6 ~ 255 para3 : max параметр длины (зарезервирован)
    Если значение para2 равно 0, 4, 5, para3 должно быть установлено на 00
    если значение para2 равно 1, 2, 3, вам необходимо установить число.

  5. О ответе Get Notification Attributes
    AT+ANCSW: Отправить запрос УСПЕШНО.
    AT+ANCS[para1]:
    Значение para1: 0x00 ~ 0x14.
    Означает длину следующего пакета, который необходимо получить.
    [ ........]: Массив байтов, который необходимо получить.
    Показать в документе Apple 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 будет управлять связью Bluetooth и отправлять сообщение в модуль.

person Rafael Machado    schedule 03.06.2015

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

person Paulw11    schedule 12.02.2015