Подтвердить что ты не робот

Подключите iPhone к Arduino через Bluetooth

Мне бы очень хотелось, чтобы мой iPhone-приложение общался с моим Arduino через Bluetooth. Я нашел несколько экранов Bluetooth, которые поддерживают следующие протоколы: BCSP, DUN, LAN, GAP SDP, RFCOMM и L2CAP. Из того, что я обнаружил в то время, когда искал немного, заключается в том, что iPhone скрывает его стек bluetooth?!? Это верно? У меня нет никакой возможности позволить моему iPhone обмениваться данными с другим устройством с поддержкой Bluetooth без джейлбрейка (что, насколько мне известно, потребуется, если я буду использовать btstack: http://code.google.com/p/btstack/)?

Если Bluetooth действительно невозможно, какие другие способы (ожидайте WLAN) вы предложите реализовать коммуникацию? То, что я хотел бы понять, это что-то вроде этого: http://theiopage.blogspot.com/2011/08/yanis-android-wireless-eos-controller.html

Спасибо за любые советы!

4b9b3361

Ответ 1

Существует несколько технологий подключения.

Как отмечали другие, стандартная Bluetooth (3.0) контролируется программой MFi. Единственный способ подключиться к iPhone, отличному от jailbroke, - это присоединиться к программе MFi.

Серийный доступ интересен. Вы должны присоединиться к MFi для распространения последовательного устройства, но вы можете использовать Redpark Serial Cable для подключения своего собственного iPhone к последовательному устройству.

Существует несколько способов подключения устройств Bluetooth LE к Arduino. Один из них я использовал RedBearLabs BLE Shield. Это хорошо работает.

iPhone to RedBearLab BLE Shield to Arduino, powering a hacked truck using techBASIC

Вы также можете подключиться к Arduino, используя WiFi-последовательный мост. У меня был успех с устройством WiFly.

iPhone to WiFly to Arduino

Одна из опрятных вещей о BLE Shield и WiFly - вам не нужно использовать Objective C или Macintosh, хотя это вариант, конечно. Вы можете получить доступ через techBASIC, работая прямо на iPad или iPhone.

Вероятно, вы можете сами оценить это самостоятельно с помощью некоторых исследований и усилий, но эти технологии соединения (плюс еще несколько, которые не применяются непосредственно к Arduino) также рассматриваются в Создание iPhone и iPad Electronics Devices, новая книга O'Reilly.

New Book from O'Reilly

Ответ 2

Информация о подключении к Bluetooth 3.0 или более низким устройствам с ОС OS iOS доступна только после принятия в Apple MFi program.

Bluetooth 4.0 (BLE) доступен как разработчикам, так и коммерческим разработчикам iOS (без необходимости доступа к программе MFi), используя общедоступную базовую инфраструктуру Bluetooth, доступную в iOS 5 или более поздней версии на iPhone 4S, iPad 3 и более поздних версиях BT4.0 на борту.

Добавлено несколько лет спустя: В настоящее время на рынке доступны несколько экранов BLE и совместимых с Arduino или Arduino-подобных продуктов со встроенными BLE (LightBlue Bean, RFduino и т.д.).

Ответ 4

Поэтому я не знаю, как реализовать, но я думаю, что ваш Arduino должен имитировать Bluetooth-гарнитуру и позволить App анализировать данные. Поскольку iPhone поддерживает только Bluetooth-гарнитуры, это будет один из единственных методов. И это будет очень сложно.

Я рекомендую вам сделать что-то подобное через Wi-Fi с помощью Wifi-Shield. Вместо того, чтобы использовать систему "Яблоки" bonjour, чтобы автоматически определять ваше оборудование.

Надеюсь, что вам дается какая-то идея, как решить проблему,

Лео

Ответ 5

Улучшение этого ответа и охват всех деталей, вероятно, нуждается в какой-то статье или подобном. Я постараюсь укрепить ситуацию и сосредоточиться на стороне iOS, поскольку Arduino в принципе не имеет ограничений на периферийные устройства Bluetooth, которые широко доступны через экраны Arduino BLE, например RedBearLab BLE Shild

Bluetooth v2.0 + EDR, v2.1 + EDR, v3.0 + HS....

Спецификация Bluetooth-стека до версии 4.0 не содержит часть с низкой энергией. Хотя это простой в использовании протокол, особенно если он упрощен вокруг SPP (Serial Port Profile), он недоступен на устройствах Apple iOS без MFi, На рынке есть несколько модулей Bluetooth, таких как Pan1321 от Panasonic, который включает сопроцессор аутентификации Apple и который можно использовать с iOS. Грустная часть истории заключается в том, что если вы посмотрите на эту официальную страницу iOS: Поддерживаемые профили Bluetooth SPP не существует, поэтому вы можете выбирать между перечисленными профилями (что вы, вероятно, будете делать, если вы создаете аудио или HID-устройство).

Низкая энергия Bluetooth (BLE)

Миграция из спецификации Bluetooth v3.0 на v4.0 была введена BLE. Новая часть спецификации имеет очень мало общего с предыдущей. В основном вы можете смотреть на него как Bluetooth v3.0 + BLE = v4.0 или Bluetooth Smart. BLE часть спецификации v4.0 - это то, что нас интересует.

CoreBluetooth

Помимо всех преимуществ BLE, таких как низкое энергопотребление, небольшие размеры и низкая стоимость, самым важным было принятие мобильными производителями, в том числе Apple (без MFI). BLE полностью поддерживается CoreBluetooth, а реализация на стороне iOS проста. Одна вещь, которую вы должны иметь в виду, это то, что BLE - это низкая энергия, но также и низкая скорость. Хотя стандарт указывает минимальный интервал подключения 7,5 м. Apple документация говорит, что рекомендация составляет 30 мс:-D То, что я испытал с использованием множества разных чипов и устройств iOS, что вы сможете передавать 20 байтов каждые 20-30 мс. Если требуется подтверждение, чем сделать его двойным, например 40-60 мс.

Пользовательские профили

Список стандартных профилей BLE доступен в группе специальных интересов Bluetooth (SIG). Взгляните на GATT Based. К сожалению, если вы не делаете монитор пульса или устройство из списка, вы, вероятно, используете сервис батарей или подобное из списка профилей. К счастью, не сложно создать настраиваемый профиль, который будет "заполнителем" для конкретных данных приложения, которые вы должны передать. Понимание ролей, GATT (услуги и характеристики), UUID и другие обязательны, но кривая обучения или стек BLE не сложны, на мой взгляд.

Когда профиль BLE, работающий на встроенном устройстве, известен, соединение и связь через BLE очень просты, используя библиотеку CoreBluetooth.

IBeacon

Apple сделала небольшой взлом, используя стандарт BLE как "несущий" для iBeacon. Они используют данные конкретного производителя в рекламном пакете BLE, чтобы "заявить", что какое-то устройство является iBeacon. Я бы сказал, что это нормально. Что вы должны иметь в виду, так это то, что BLE - это не iBeacon, но все iBeacons - это BLE (устройство с жестко заданными данными производителя, выставляющее RSSI, UUID, майор и малый в широковещательном режиме BLE). Кроме того, iBeacon обрабатывается CoreLocation не CoreBluetooth. Это ясно показывает, что было у Apple с iBeacon.

Заключение

Если вы хотите интегрировать устройство iOS с Arduino или другим встроенным устройством, BLE - это то, что вы хотите рассмотреть. Есть дополнительные причины, по которым вы хотите узнать больше о BLE, если вы посмотрите на рекламу IoT и доступные варианты RF. BLE здесь, чтобы остаться с v4.1 и предстоящими спецификациями v4.2, которые улучшат пропускную способность, обеспечат поддержку IPv6, лучшую безопасность и т.д.

В конце концов, не так коротка, но я надеюсь, что это поможет.

Ответ 6

Некоторые модули BLE могут использоваться в режиме iBeacon и могут быть подключены к IO. Я работал с модулями HM10 и HM11 на базе CC2540/CC2541. У них есть несколько AT-команд для настройки iBeacon. Переменные регистры - UUID, Major, Minor и Measured Power. Более подробно в этой статье Включите ваш смарт-модуль Bluetooth HM-10 с поддержкой технологии CC2541 в iBeacon