Der Feuchtesensor SHT1x von Sensirion ist ein kleiner und relativ leicht anzusteuernder IC,
welcher auf einer kleinen Platine untergebracht ist. Zurzeit gibt es drei Versionen (SHT10, SHT11, SHT15)
die sich lediglich in der Toleranz unterscheiden.
Ich habe mir einfach mal so ein Breakout-Board von Sparkfun besorgt und an meinen Arduino angeschlossen.
Dies funktionierte auch ohne Probleme da der Chip 5V tolerant ist (empfohlen werden 3.3V).
Die Annahme, dass ich den IC ganz einfach über eine I2C/TWI Schnittstelle ansteuern kann, wie die Nachfolgereihe SHT2x, war leider falsch, sodass ich zuerst mal das 2-Wire Protokoll inspizieren musste. Das Protokoll ähnelt zwar dem des I2C/TWI ist jedoch nicht das selbe. Im Internet findet man schon fertige Bibliotheken. Diese blockieren jedoch den Mikrocontroller solange eine Messung stattfindet. Da mir das absolut nicht zusagte, da ich eventuell noch andere Sachen erledigen wollte habe ich kurzer Hand selbst eine kleine Bibliothek geschrieben um die Daten asynchron auslesen zu können. Zu finden ist diese in meinem github Repository.
Die Verwendung der Bibliothek ist ganze einfach, man muss nur den SHT1x-Ordner in den library-Ordner von der Arduino Software einfügen und kann direkt loslegen. Das Beispiel Projekt sieht wie folgt aus:
Was noch erwähnt werden muss ist, dass die Berechnung der Ist-Werte teilweise
von der Spannung abhängig ist. In der Headerdateier SHT1x.h der Bibliothek befinden
sich noch einige Macros die man gegebenfalls anpassen sollte. Wie zB das Macro SHT_SUPPLY_5
,
dieses sollte auf die Spannung geändert werden mit welcher ihr euer IC betreibt.
Zur Verfügung stehen die Werte SHT_SUPPLY_5
(5V, standard), SHT_SUPPLY_4
(4V),
SHT_SUPPLY_35
(3.5V), SHT_SUPPLY_3
(3V) oder SHT_SUPPLY_25
(2.5V).
Eventuell kann jemand diese Bibliothek gebrauchen. Ansonsten viel Spaß beim testen und messen.