예제 #1
0
파일: SHT1x.cpp 프로젝트: krhoyt/Adobe
/**
 * Reads the current temperature in degrees Fahrenheit
 */
float SHT1x::readTemperatureF()
{
  int _val;                 // Raw value returned from sensor
  float _temperature;       // Temperature derived from raw value

  // Conversion coefficients from SHT15 datasheet
  const float D1 = -40.0;   // for 14 Bit @ 5V
  const float D2 =   0.018; // for 14 Bit DEGF

  // Fetch raw value
  _val = readTemperatureRaw();

  // Convert raw value to degrees Fahrenheit
  _temperature = (_val * D2) + D1;

  return (_temperature);
}
/**
 * Reads the current temperature in degrees Celsius
 */
float SHT1x::readTemperatureC()
{
    int _val;                // Raw value returned from sensor
    float _temperature;      // Temperature derived from raw value
    
    // Conversion coefficients from SHT15 datasheet
    const float Dat1 = -40.0;  // for 14 Bit @ 5V
    const float Dat2 =   0.01; // for 14 Bit DEGC
    
    // Fetch raw value
    _val = readTemperatureRaw();
    
    // Convert raw value to degrees Celsius
    _temperature = (_val * Dat2) + Dat1;
    
    return (_temperature);
}
void wuclass_temperature_humidity_sensor_update(wuobject_t *wuobject) {
    sbi(TCCR0B, CS01);
    sbi(TCCR0B, CS00);	
    sbi(TIMSK0, TOIE0);    
    SHT1x(5,6);
    
    int temperature, temperatureRaw, humidityRaw, humidity;
    temperatureRaw=readTemperatureRaw();
    temperatureRaw=temperatureRaw-4000;
    temperature=temperatureRaw/100;
    
    humidityRaw=readHumidity();
    humidity=(temperature*(100000+800*humidityRaw) + (405000+28*humidityRaw)*humidityRaw - 4*10000000)/10000000 - 11;
    
    DEBUG_LOG(DBG_WKPFUPDATE, "WKPFUPDATE(TemperatureHumiditySensor): Sensed temperature value: %d.%dC\n", temperature, temperatureRaw%100);
    DEBUG_LOG(DBG_WKPFUPDATE, "WKPFUPDATE(TemperatureHumiditySensor): Sensed humidity value: %d %% \n", humidity);
    wkpf_internal_write_property_int16(wuobject, WKPF_PROPERTY_TEMPERATURE_HUMIDITY_SENSOR_CURRENT_VALUE_TEMPERATURE, temperature);
    wkpf_internal_write_property_int16(wuobject, WKPF_PROPERTY_TEMPERATURE_HUMIDITY_SENSOR_CURRENT_VALUE_HUMIDITY, humidity);
}
예제 #4
0
// reads temperature in degrees F
float LPS::readTemperatureF(void)
{
  return 108.5 + (float)readTemperatureRaw() / 480 * 1.8;
}
예제 #5
0
// reads temperature in degrees C
float LPS::readTemperatureC(void)
{
  return 42.5 + (float)readTemperatureRaw() / 480;
}