Подключите ESP32 к умным часам Mi Band 6. ⇐ C++
Подключите ESP32 к умным часам Mi Band 6.
У меня есть следующий код. Я пытаюсь подключить ESP32 к умным часам Mi Band 6 по Bluetooth. Я не могу установить соединение между устройствами и пытаюсь показать найденные устройства, но безуспешно. Вот код; если кто-то может дать полезный совет
#include `Библиотека Bluetooth` #include #include #include БЛЕКлиент* pКлиент; БЛЕадрес* pServerAddress; BLERemoteCharacteristic* pRemoteCharacteristic; static bool deviceConnected = false; // Сервисный UUID фитнес-браслета, полученный через приложение nRF Connect статический BLEUID serviceUUID((uint16_t)0x1800); // Характеристика UUID статический BLEUID charUUID((uint16_t)0x2A04); статическое логическое соединение = ложь; статическая сила notifyCallback( BLERemoteCharacteristic* pBLERemoteCharacteristic, uint8_t* pData, длина size_t, bool isNotify) { Serial.println(pData[1]); } bool ConnectToServer (BLEAddress pAddress) { Serial.print(F("Создание вызова: ")); Serial.println(pAddress.toString().c_str()); BLEClient* pClient = BLEDevice::createClient(); Serial.println(F(" - клиент создан")); // Подключаемся к удаленному BLE-серверу. if (!pClient->connect(pAddress, (esp_ble_addr_type_t)1)) { Serial.println(F(" - Не удалось подключиться к серверу")); вернуть ложь; } Serial.println(F(" - Подключено к серверу")); // Получение ссылки на сервис на удаленном BLE-сервере. BLERemoteService* pRemoteService = pClient->getService(serviceUUID); // Сообщаем, был ли сервис найден на сервере если (pRemoteService == nullptr) { Serial.print(F("Не удалось найти UUID нашего сервиса: ")); Serial.println(serviceUUID.toString().c_str()); вернуть ложь; } Serial.println(F(" - Найден наш сервис"); // Получение ссылки на характеристику в сервисе удаленного BLE-сервера. pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); // Сообщаем, если характеристика найдена на сервере если (pRemoteCharacteristic == nullptr) { Serial.print(F("Не удалось найти UUID характеристики: ")); Serial.println(charUUID.toString().c_str()); вернуть ложь; } Serial.println(F(" - Найдена наша характеристика"); // Читаем значение характеристики std::string value = pRemoteCharacteristic->readValue(); Serial.print(F("Значение характеристики: ")); Serial.println(value.c_str()); pRemoteCharacteristic->registerForNotify(notifyCallback); вернуть истину; } класс MyAdvertizedDeviceCallbacks: public BLEAdvertizedDeviceCallbacks { частный: const char* pServerName; публика: void onResult (BLEAdvertizedDevice AdvertisedDevice) { если (рекламируемоеDevice.haveServiceUUID() && AdvertisedDevice.getServiceUUID().equals(BLEUUID("0000180a-0000-1000-8000-00805f9b34fb"))) { // Найден Xiaomi Mi Band 7 по UUID его сервиса Serial.println("Найден Xiaomi Mi Band 7!"); рекламируемоеDevice.getScan()->stop(); pServerAddress = новый BLEAddress(advertizedDevice.getAddress()); pServerName = рекламируемоеУстройство.getName().c_str(); Serial.println(рекламируемоеУстройство.getName().c_str()); // Подключаемся к Mi Band pClient = BLEDevice::createClient(); если (connectToServer(*pServerAddress)) { устройствоConnected = правда; } } } }; недействительная настройка() { Serial.begin(115200); Serial.println("Сканирование устройства..."); BLEDevice::init("ESP32_BLE_Client"); BLEScan* pBLEScan = BLEDevice::getScan(); pBLEScan->setAdvertizedDeviceCallbacks(new MyAdvertizedDeviceCallbacks()); pBLEScan->setActiveScan(истина); pBLEScan-> старт (10); // Сканируем 10 секунд } недействительный цикл() { // Если флаг "deviceConnected" истинен, то ищем и находим нужный сервер если (deviceConnected == true) { если (connectToServer(*pServerAddress)) { Serial.println(F("Подключено к серверу BLE.")); подключен = правда; } еще { Serial.println(F("Не удалось подключиться к серверу; больше нечего делать."); } deviceConnected = false;`ваш текст` } } Установите соединение между умными часами (Xiaomi Mi Band 6) и ESP32 с помощью Bluetooth.
У меня есть следующий код. Я пытаюсь подключить ESP32 к умным часам Mi Band 6 по Bluetooth. Я не могу установить соединение между устройствами и пытаюсь показать найденные устройства, но безуспешно. Вот код; если кто-то может дать полезный совет
#include `Библиотека Bluetooth` #include #include #include БЛЕКлиент* pКлиент; БЛЕадрес* pServerAddress; BLERemoteCharacteristic* pRemoteCharacteristic; static bool deviceConnected = false; // Сервисный UUID фитнес-браслета, полученный через приложение nRF Connect статический BLEUID serviceUUID((uint16_t)0x1800); // Характеристика UUID статический BLEUID charUUID((uint16_t)0x2A04); статическое логическое соединение = ложь; статическая сила notifyCallback( BLERemoteCharacteristic* pBLERemoteCharacteristic, uint8_t* pData, длина size_t, bool isNotify) { Serial.println(pData[1]); } bool ConnectToServer (BLEAddress pAddress) { Serial.print(F("Создание вызова: ")); Serial.println(pAddress.toString().c_str()); BLEClient* pClient = BLEDevice::createClient(); Serial.println(F(" - клиент создан")); // Подключаемся к удаленному BLE-серверу. if (!pClient->connect(pAddress, (esp_ble_addr_type_t)1)) { Serial.println(F(" - Не удалось подключиться к серверу")); вернуть ложь; } Serial.println(F(" - Подключено к серверу")); // Получение ссылки на сервис на удаленном BLE-сервере. BLERemoteService* pRemoteService = pClient->getService(serviceUUID); // Сообщаем, был ли сервис найден на сервере если (pRemoteService == nullptr) { Serial.print(F("Не удалось найти UUID нашего сервиса: ")); Serial.println(serviceUUID.toString().c_str()); вернуть ложь; } Serial.println(F(" - Найден наш сервис"); // Получение ссылки на характеристику в сервисе удаленного BLE-сервера. pRemoteCharacteristic = pRemoteService->getCharacteristic(charUUID); // Сообщаем, если характеристика найдена на сервере если (pRemoteCharacteristic == nullptr) { Serial.print(F("Не удалось найти UUID характеристики: ")); Serial.println(charUUID.toString().c_str()); вернуть ложь; } Serial.println(F(" - Найдена наша характеристика"); // Читаем значение характеристики std::string value = pRemoteCharacteristic->readValue(); Serial.print(F("Значение характеристики: ")); Serial.println(value.c_str()); pRemoteCharacteristic->registerForNotify(notifyCallback); вернуть истину; } класс MyAdvertizedDeviceCallbacks: public BLEAdvertizedDeviceCallbacks { частный: const char* pServerName; публика: void onResult (BLEAdvertizedDevice AdvertisedDevice) { если (рекламируемоеDevice.haveServiceUUID() && AdvertisedDevice.getServiceUUID().equals(BLEUUID("0000180a-0000-1000-8000-00805f9b34fb"))) { // Найден Xiaomi Mi Band 7 по UUID его сервиса Serial.println("Найден Xiaomi Mi Band 7!"); рекламируемоеDevice.getScan()->stop(); pServerAddress = новый BLEAddress(advertizedDevice.getAddress()); pServerName = рекламируемоеУстройство.getName().c_str(); Serial.println(рекламируемоеУстройство.getName().c_str()); // Подключаемся к Mi Band pClient = BLEDevice::createClient(); если (connectToServer(*pServerAddress)) { устройствоConnected = правда; } } } }; недействительная настройка() { Serial.begin(115200); Serial.println("Сканирование устройства..."); BLEDevice::init("ESP32_BLE_Client"); BLEScan* pBLEScan = BLEDevice::getScan(); pBLEScan->setAdvertizedDeviceCallbacks(new MyAdvertizedDeviceCallbacks()); pBLEScan->setActiveScan(истина); pBLEScan-> старт (10); // Сканируем 10 секунд } недействительный цикл() { // Если флаг "deviceConnected" истинен, то ищем и находим нужный сервер если (deviceConnected == true) { если (connectToServer(*pServerAddress)) { Serial.println(F("Подключено к серверу BLE.")); подключен = правда; } еще { Serial.println(F("Не удалось подключиться к серверу; больше нечего делать."); } deviceConnected = false;`ваш текст` } } Установите соединение между умными часами (Xiaomi Mi Band 6) и ESP32 с помощью Bluetooth.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как реализовать сдвиг высоты звука в Android с помощью библиотеки Rubber Band?
Anonymous » » в форуме Android - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
JasperReports не заполняет данные от jrbeancollectiondatasource в The Detail Band
Anonymous » » в форуме Javascript - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-