Если вы хотите попытаться «перепроектировать» данные производителя в поисках показаний температуры, вам нужно знать, как температура кодируется / рассчитывается для этого датчика.Другими словами, как преобразовать необработанные данные / байты от датчика в фактическое значение.
Я нашел это в примерах кода для SHT3x :
static ft SHT3X_CalcTemperature(u16t rawValue)
{
// calculate temperature [°C]
// T = -45 + 175 * rawValue / (2^16-1)
return 175.0f * (ft)rawValue / 65535.0f - 45.0f;
}
Имея это в виду, я бы попробовал что-то вроде этого:
Попробуйте каждую последовательную пару байтов в данных производителя.
- для
0eee14362c196d66dfac1500
это будет 0e
+ ee
, затем ee
+ 14
и т. д.
Преобразование двух байтов в uint16.Поскольку мы не знаем порядка байтов, вам нужно попробовать MSB и LSB.
- , например, для
0e
+ ee
, попробуйте оба 0eee
и ee0e
Используйте uint16 в качестве rawValue
для функции, указанной выше, чтобы получить температуру.
Тогда вы можете увидеть, есть ливыходной сигнал на самом деле напоминает показания температуры.