Samstag, 4. Mai 2013

Feuchtesensor


Für die Messung der Luftfeuchtigkeit und der Temperatur verwenden wir einen HYT939 Sensor der Firma IST. Der ist zwar ziemlich teuer, hat aber eine exquisite Performance, spezifiziert ist er mit +/-1,8% Fehler bei der Feuchte (bei einer Wiederholgenauigkeit von 0,2%) und +/- 0,2K bei der Temperatur. So wie es aussieht, halten die Sensoren das auch ein.

Die Anbindung an einen Controller (hier ein Arduino FIO) ist simpel, da I2C-Schnittstelle:

Source (vollständiger Quellcode bei Github):

// HYT 939 Humidity Sensor Address
#define I2C_SENS 0x28

Wire.beginTransmission(I2C_SENS);
// send MR command --> write address of sensor
Wire.write(I2C_SENS);
Wire.endTransmission();

// wait til sensor data available
delay(100);

Wire.beginTransmission(I2C_SENS);
Wire.requestFrom(I2C_SENS,4);
unsigned char data[4];

while(Wire.available()) {
data[i++] = Wire.read();
}
humidity = data[0];
humidity &= 0x3f;
humidity *= 255;
humidity += data[1];

double dHumidity = 100.0/16384.0*humidity;

temp = data[2];
temp *= 255;
temp += data[3];
temp /= 4;
double dTemp = 165.0/16384.0*temp-40;

Ein weiterer Vorteil dieses Moduls ist der niedrige Standby Verbrauch von < 1 µA (sleep) und wenigen µA während der Messung.

Durch das runde Gehäuse mit Keramikmembran ist auch die Montage sehr einfach. Deshalb. Trotz des Preises (etwa 40 € als Einzelstück) lohnt sich das in Summe.

Ergänzung: Die Faktoren zur Umrechnung finden sich in den Application Notes