使用されている湿度センサー「Sensirion SHT21」は、温度とthe 湿度の2種類のデータが取得できます。

SensorTagの 湿度センサーへのデータアクセス

ハンドルを用いたSensorTagの 湿度センサー「Sensirion SHT21」(U6)への問い合わせは、次のテーブルに従います。

SensorTagの湿度センサー(U6)への問い合わせ
Type UUID Handle Read/Write Format
<Data> F000AA21 * 0×38 Read/Notify TempLSB TempMSB HumLSB HumMSB (4 bytes)
<Data Notification> 0×39 R/W 2 bytes
<Configuration> F000AA22 * 0×3c R/W 1 byte

湿度センサー変換式
次に温度に変換する計算式を示します。単位は「°C」となります。
温度データへの変換式

/* Conversion algorithm, temperature */ private double calcHumTmp(int rawT) { double v; //-- calculate temperature [deg C] -- v = -46.85 + 175.72/65536 *(double)rawT; return v; } /* Conversion algorithm, humidity */ private double calcHumRel(int rawH) { double v; rawH &= ~0x0003; // clear bits [1..0] (status bits) //-- calculate relative humidity [%RH] -- v = -6.0 + 125.0/65536 * (double)rawH; // RH= -6 + 125 * SRH/2^16 return v; }

C言語で記述すると次のようになります。

/* Conversion algorithm, temperature */

double calcHumTmp(uint16 rawT)
{
  double v;

  //-- calculate temperature [deg C] --
  v = -46.85 + 175.72/65536 *(double)(qint16)rawT;

  return v;
}

/*  Conversion algorithm, humidity */

double calcHumRel(uint16 rawH)
{
  double v;

  rawH &= ~0x0003; // clear bits [1..0] (status bits)
  //-- calculate relative humidity [%RH] --
  v = -6.0 + 125.0/65536 * (double)rawH; // RH= -6 + 125 * SRH/2^16

  return v;
}