Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Недавно я занимался разработкой Bluetooth. Когда я впервые столкнулся с этим, я не мог отличить классический Bluetooth от Bluetooth с низким энергопотреблением и продолжал использовать метод разработки Bluetooth с низким энергопотреблением для подключения к классическим устройствам Bluetooth. В конце концов я, конечно, не смог подключиться. Здесь мы записываем различия и связи между классическим Bluetooth и Bluetooth с низким энергопотреблением.
Кстати о Bluetooth в Android,Вы можете услышать номера версий Bluetooth, оканчивающиеся на такие цифры, как Bluetooth 1.0, Bluetooth 2.0, Bluetooth 3.0 и Bluetooth 4.0.,Фактически,в новейших стандартах,Числовые номера версий больше не используются для различения версий Bluetooth.,Вместо этого есть два различия: классический Bluetooth и Bluetooth Low Energy (BLE).
Упомянутый здесь Bluetooth с низким энергопотреблением также может быть неправильно понят многими людьми как Bluetooth 4.0, но полная спецификация Bluetooth 4.0 на самом деле включает в себя две части: классический Bluetooth и Bluetooth с низким энергопотреблением. Взгляните на следующую классификацию. Вы можете понять взаимосвязь. стол.
Как сказано в таблице, Bluetooth сегодня фактически делится на три категории: одномодовые, двухрежимные и классические. Итак, наиболее официальные названия версий Bluetooth — одномодовый Bluetooth, двухрежимный Bluetooth и классический Bluetooth.
Среди них наиболее передовым является одномодовый Bluetooth, то есть Bluetooth Low Energy. Этот стандарт Bluetooth сильно отличается от классического Bluetooth. Сначала я даже подумывал присоединиться к лагерю WIFI, но из-за относительно благоприятных условий в лагере Bluetooth (например, чрезвычайно низких лицензионных сборов) он был включен в стандарт Bluetooth.
Итак, в чем разница между Bluetooth с низким энергопотреблением и классическим Bluetooth?
Если мы посмотрим только на методы связи между ними, можно сказать, что, помимо названия Bluetooth, их можно рассматривать как две вещи. Однако общие процессы этих двух процессов схожи, а именно:
За исключением ссылки сопряжения/привязки, классический Bluetooth и Bluetooth с низким энергопотреблением одинаковы, а остальные три ссылки отличаются.
1. Откройте для себя устройство
Классический Bluetooth:классический Bluetoothоборудование发现其它классический Bluetoothоборудованиеиз方式是вызовBluetoothAdapterизstartDiscovery()метод。
API довольно расплывчатый, и это примерно означает, что можно обнаружить только классические устройства Bluetooth.
Однако эксперименты показали, что BluetoothAdapter.startDiscovery может одновременно обнаруживать классический Bluetooth и отключать его.
Bluetooth с низким энергопотреблением:低功耗蓝牙中则有一个主оборудование(Central)和从оборудование(Peripheral,Также называется периферийными устройствами). Главное устройство в качестве первооткрывателя,вызов Обнаружение устройствизметод,Реализовано с помощью метода startLeScan() BluetoothAdapter. Ведомое устройство выступает в роли обнаруженной стороны.,отправить трансляцию,для открытия. такой же,Этот метод startLeScan() может обнаруживать только ведомые устройства Bluetooth с низким энергопотреблением.
Подведите итог:BluetoothAdapter.startDiscoveryНа большинстве мобильных телефонов можно найти как классический Bluetooth, так иBleиз,Но обратный вызов startDiscovery не может вернуть трансляцию Ble.,Значит устройство не может быть идентифицировано по трансляции,А эффективность сканирования startDiscovery Ble гораздо ниже, чем StartLeScan. Итак, в практическом применении,Или сканировать StartDiscovery и StartLeScan отдельно?,Первый сканирует традиционный Bluetooth,Последний сканирует Bluetooth Low Energy.
Уведомление:когда两种蓝牙оборудование被某оборудование(包括когда前изоборудование)сопряжение/привязканазад,Больше нельзя сканировать.
2. Сопряжение/привязка
Многие друзья не совсем понимают разницу между спариванием и привязкой, или это просто одно и то же. Ну, строго говоря, между спариванием и связыванием есть разница, а это значит, что они не относятся к одному и тому же. Однако разница между ними неясна и ее трудно объяснить. Текущее понимание робота JACK заключается в том, что спаривание устанавливает соответствующие отношения между ними, в то время как связывание сохраняет и укрепляет эти отношения. Давайте пока понимаем это так.
Будь то классический Bluetooth или Bluetooth с низким энергопотреблением, метод привязки универсален, и можно вызвать один и тот же метод привязки.
3. Установите соединение
Они очень разные в том, как они устанавливают связи.
——Советы по Bluetooth—— В устройстве Bluetooth есть физический адрес, который мы также называем MAC-адресом Bluetooth. Этот адрес уникален, как и IP-адрес в нашей сети. В то же время существует нечто, называемое UUID, под которым можно понимать номер порта в IP-адресе. Точно так же, как вы знаете IP-адрес и номер порта, вы знаете, как подключиться к целевому сетевому серверу. Если вы знаете MAC-адрес и UUID устройства Bluetooth, вы можете определить, какое это устройство Bluetooth. . уникальный идентификатор.
Классический Bluetooth:классический BluetoothУстановить Метод соединения на самом деле представляет собой установление сокет-соединения. Просто здесь используется не Socket напрямую, а BluetoothSocket. Способ получения BluetoothSocket также очень прост. Используйте BluetoothDevice, найденный с помощью поиска, и вызовите его метод createRfcommSocketToServiceRecord(UUID). Наконец, используйте полученный BluetoothDevice для вызова его метода Connect(), чтобы установить канал соединения между классическими устройствами Bluetooth.
Bluetooth с низким энергопотреблением:低功耗蓝牙则用了一种看起来比较怪异из方式Установить соединение。
——Некоторые основные понятия о BLE—— Generic Attribute Profile (GATT) Общая спецификация профиля для чтения и записи небольших данных атрибутного типа через соединение BLE. Все текущие профили приложений BLE основаны на GATT. Attribute Protocol (ATT) ГАТТ основано на ДТО Протокол. ATT провела специальную оптимизацию для устройств BLE, в частности, используя как можно меньше данных в процессе передачи. Каждое свойство имеет уникальный UUID, и свойства будут представлены характеристиками. and Передается в виде услуг. Characteristic Под характеристикой можно понимать тип данных, который включает в себя значение и от 0 до нескольких описаний (дескриптор) вторичного значения. Descriptor Описание характеристики, например область применения, единица измерения и т. д. Service Характерный сборник. Например, услуга под названием «Сердце Rate Монитор», который может содержать несколько характеристик, которые могут содержать rate измерение» «Характеристика».
Вот пример. Например, вам нужно использовать смартфон в качестве главного устройства для подключения к смарт-браслету в качестве подчиненного устройства. Затем смартфон в качестве главного устройства фактически является клиентом в процессе подключения, а смарт-браслет. подчиненным устройством в этом процессе является сервер. Здесь необходимо четко различать главное устройство и подчиненное устройство клиента и сервера.
Если вы хотите установить соединение с ведомым устройством BLE, обычно это интеллектуальное устройство, например смарт-браслет, интеллектуальная лампочка и т. д. Если вы используете смартфон в качестве тестовой платформы, аппаратные условия таковы, что Bluetooth должен быть как минимум версией Bluetooth с низким энергопотреблением, а система Android должна быть не ниже Android 4.3 или выше, поскольку Google создала главное устройство BLE только на Поддержка Android 4.3 и выше. Если вы хотите использовать смартфон в качестве подчиненного устройства BLE, он должен быть Android 5.0 или выше.
Конкретная последовательность установления соединения GATT заключается в том, чтобы сначала получить BluetoothDevice соответствующего ведомого устройства BLE с помощью метода getRemoteDevice(address) BluetoothAdapter, где адресом является MAC-адрес целевого устройства Bluetooth. Затем получите подключение устройства с помощью метода ConnectGatt(this, false, mGattCallback) этого BluetoothDevice.
Соединение в это время можно только отслеживать, то есть можно получать данные, транслируемые текущим ведомым устройством BLE.
4. Передача данных
Классический Bluetooth:когда Установить После соединения вы можете напрямую использовать метод getOutputStream() BluetoothSocket для получения данных, которые необходимо отправить при записи в выходной поток. Чтобы прочитать отправленные обратно данные, вызовите метод getInputStream() BluetoothSocket, чтобы получить входной поток для чтения. Это почти то же самое, что и связь через сокеты в Java.
Bluetooth с низким энергопотреблением:想要实现主оборудование对从оборудованиеиз数据发送,Вам необходимо напрямую считать полученную характеристику ведомого устройства.,Характеристика находится на уровне ниже Сервиса.,Итак, порядок действий такой:
(1) Получите соответствующий BluetoothGattService из соответствующего Service_UUID устройства через BLE. Метод получения: используйте объект BluetoothGatt, возвращаемый методом connectGatt(this, false, mGattCallback) BluetoothDevice, и вызовите метод BluetoothGatt getService(Service_UUID). для получения соответствующего BluetoothGattService;
(2) Вызовите BluetoothGattService и запишите соответствующий UUID характеристики, чтобы получить соответствующую BluetoothGattCharacteristic. Метод получения: вызов метода getCharacteristic(Characteristic_UUID) BluetoothGattService для получения;
(3) Установите значение команды, которую необходимо отправить, и вызовите метод BluetoothGattCharacteristic setValue(value), чтобы установить его, где значение обычно равно byte[];
(4) Наконец, используйте метод записи writeCharacteristic(TxChar) BluetoothGatt для завершения отправки команды.
Как видите, шаги по реализации передачи данных BLE довольно сложны. Вот простое концептуальное понимание. Если вы хотите получить возвращаемое значение ведомого устройства BLE, вам также необходимо установить уведомление, а затем вызвать функцию readCharacteristic BluetoothGatt. (характеристика) Здесь не будет подробно объясняться метод чтения данных. Он будет объяснен позже, когда будет подробно объяснена связь BLE.
Поскольку существуют классический Bluetooth и Bluetooth с низким энергопотреблением, какой выбор мы делаем при разработке продуктов Интернета вещей и интеллектуальных аппаратных продуктов?
Классический Bluetooth:蓝牙最初из设计意图,Это воспроизведение музыки на телефоне. Версия Bluetooth ниже 3.0,все называются“классический Bluetooth”。Высокое энергопотребление、Передача больших объемов данных、Дальность передачи составляет всего 10 метров.
Bluetooth с низким энергопотреблением:то естьBLE,Обычно называется Bluetooth 4.0 (и выше). Низкое энергопотребление,Небольшой объем данных,Расстояние около 50 метров.
Для передачи звука используйте классический Bluetooth:
нравитьсяBluetooth-гарнитуры, Bluetooth-колонки。蓝牙设计из时候то есть为了传声音из,так этоЛучший выбор для передачи звука на близком расстоянии。
Питание от аккумулятора, подключение к мобильному приложению, с использованием BLE:
нравитьсяОбщий замок для велосипеда, интеллектуальный замок Bluetooth, устройство защиты от потери Bluetooth, позиционирование Bluetooth в помещении,в настоящее времяСамый экономичный способ связи между мобильными телефонами и интеллектуальным оборудованием.。Расстояние по прямой линии ок.50рис,Одной батарейки типа АА хватает на один год.,Модуль передачи стоит 10 юаней.,Это гораздо практичнее, чем протоколы передачи больших данных, такие как WIFI и 4G.
Если вам нужны и голос, и данные, используйте двухрежимный Bluetooth: Двойной режим Bluetooth,то естьПоддерживает как классический Bluetooth Audio, так и Bluetooth Low Energy.。
Например, пульт дистанционного управления смарт-телевизором.、Наушники с шумоподавлением и т. д.。很多智能电视配из遥控器带Для распознавания голоса требуется классический Bluetoothпередавать звук
Для передачи больших объемов данных используйте классический Bluetooth: Например, в некоторых сценариях промышленного управления, если используется основной элемент управления Android или Linux и подключено внешнее устройство дистанционного управления Bluetooth, протокол SPP в классическом Bluetooth можно использовать в качестве беспроводного последовательного порта. Скорость намного выше, чем передача BLE.
Большое расстояние, Bluetooth не требуется. Для Bluetooth не подходят те, у которых фиксированное питание, те, которые не учитывают энергопотребление, те, которым необходимо передавать данные на расстояния, превышающие десятки метров, и те, которым необходимо передавать высокоскоростные данные. На больших расстояниях можно использовать 2G, 4G и NB-IOT, а для больших объемов данных можно использовать WIFI.
Ссылка на статью:Простой сравнительный анализ классического Bluetooth и Bluetooth с низким энергопотреблением в Android
Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/149168.html Исходная ссылка: https://javaforall.cn