Feuchtigkeitssensor HTU21D mit dem Netduino (Teil 1)
Zuvor habe ich für meinem Weather Shield einen Feuchtigkeitssensor DHT11 verwendet. Wer diesen kennt, weiss sicherlich wie ungenau die Messwerte sind. Ich möchte den Sensor nicht schlecht reden, denn immerhin ist er sehr günstig. Möchte man allerdings für eine Anwendung mehr Genauigkeit und eine schnelle Abtastung der aktuellen Feuchtigkeit und Temperatur, bieten andere Sensoren deutlich bessere Ergebnisse.
Ein paar interessante Daten zum Sensor:
- Schnittstelle I²C
- Betriebsspannung: 3,3V (max. 3,6V)
- Stromaufnahme: ca. 10mA
- Temperaturmessung ca. 50ms bei 14Bit (7ms bei 11Bit) (-40°C bis 125°C)
- Feuchtigkeitmessung ca. 16ms bei 12bit (3ms bei 8Bit)
- Kostet ab 6,50€ bei Ebay über einem chinesischen Händler
Weitere Daten findet ihr im Datenblatt.
Ansprechen lässt sich der Sensor über den I²C Bus und kann mit dem .NET Micro Framework mit geringen Aufwand programmiert werden. Das Einstiegsverhalten lässt sich mit dem Luftdruck Sensors BMP085 vergleichen, über den ich bereits geschrieben habe.
Erstellen wir eine neue Klasse mit dem Namen des Sensors, um zunächst die Verbindung herzustellen und die Rohdaten zu erhalten.
public class HTU21D : I2CDevice // Luftfeuchtigkeit Messen und Rohwert zurückgeben // Warten bis der Sensor mit dem Lesevorgang fertig ist. byte[] data = new byte[3]; // Messergebnis abrufen Debug.Print("Sensor konnte nicht gelesen werden!"); return Execute(trans, 1000); // Liest den zu empfangene Byte Array return Execute(trans, 1000); |
Die Rohdaten können nun über die Program.cs Klasse aufgerufen und über die Ausgabe in Visual Studio ausgegeben werden.
public class Program while (true) |
Im nächsten Schritt wird das Modul mit dem Feuchtigkeitsensor mit dem Netduino verbunden. Je nach Ausführung des Sensor, werden eventuell zwei Widerstände mit 2,2kOhm benötigt. In der Variante die ich erhalten habe, sind diese aufgelötet, aber mit der 3,3V Zuleitung nicht verbunden. Das Modul habe ich zunächst so belassen und habe für den Testlauf zwei Pull Up Widerstände hinzu gesteckt.
Ansonsten hält sich die Schaltung mit den Netduino und dem Feuchtigkeitssensor sehr Übersichtlich.
Wie bereits aus den Technischen Grunddaten hervorgeht, gibt es auch einen Temperatursensor zum Messen. Dafür muss nur in der Methode “Read()”, das zu sendende Byte von 0xf5 auf 0xf3 umgeschrieben werden. Damit erhält man den Rohwert der gemessenen Temperatur.
Kommentare