что означает возвращаемое значение термометра BLE?

Я использую xiaomi LYWSD03MMC, я получил температуру этого устройства по характеристикам BLE, и он показывает: 21 0a 17 7e 0b, однако я знаю, что это шестнадцатеричное значение, но, к сожалению, я не могу понять, что это значит Я знаю только число 17, которое является количеством влажности, которое является шестнадцатеричным, и когда я конвертирую его в десятичное, оно возвращает 23.


person M.Minbashi    schedule 02.02.2021    source источник


Ответы (2)


Какой UUID у характеристики, которую вы читаете?

Если он имеет формат 0000xxxx-0000-1000-8000-00805F9B34FB, он должен быть задокументирован на https://www.bluetooth.com/.

Вы можете найти сопоставление характеристического UUID с именем в Документ с 16-битными номерами UUID по адресу: https://www.bluetooth.com/specifications/assigned-numbers/

Затем это имя можно использовать для просмотра более подробного описания полей в Дополнении к спецификации GATT. .

person ukBaz    schedule 02.02.2021

Согласно , первые два значения из скрипта github, описывают это температуры и должны быть преобразованы в прямой порядок байтов. Это приведет к шестнадцатеричному значению 0a21, которое в десятичной системе счисления равно 2539. Его нужно разделить на 100, чтобы получить температуру 25,39 градуса.

Как вы сказали, третье значение - влажность, последние два значения описывают напряжение аккумулятора. Преобразованное в прямой порядок байтов (0b7e) и десятичное число (2942), это значение нужно разделить на 1000 и получить напряжение 2,942.

person Michael Kotzjan    schedule 02.02.2021
comment
Также есть ответ, описывающий преобразование температуры: stackoverflow.com/a/61590018/7473793 - person Michael Kotzjan; 02.02.2021