SHT11 am PC

Der Sensirion SHT11 war ein Temperatur- und Feuchtesensor mit I²C-ähnlichem Interface. Es gibt davon Derivate und Nachfolger, etwa SHT21 oder SHTC1.

Software

Die Software für den PC-Anschluss des digitalen Temperatur- und Feuchtesensors SHT11 befindet sich auf der Freeware-Seite. Sie unterstützt alle unten genannten Anschlussformen, gegebenenfalls wird die neueste Version meiner InpOut32.dll benötigt. Auch gibt es davon eine native 64-Bit-Version und — wie immer — den Quelltext. In ZIP-Archiv befindet sich sogar ein Programm für DOS und Windows 3.1; allerdings nur für den Anschluss am Parallelport.

Da die Software mittels DDE eine Automatisierungsschnittstelle bereit hält, kann diese auch im Labor- und Industrieumfeld zur gleichzeitigen Überwachung mehrerer Messstellen eingesetzt werden. Im universitären Umfeld wird oft LabVIEW verwendet, da hier dessen Lizenzkosten gering ausfallen und hübsche Grafen zur Verfügung stehen.

Anschluss am Parallelport

Am einfachsten wird ein SHT11 am Parallelport betrieben. Ein Datenpin genügt zur Speisung des Sensors.
Schaltplan
Da genügt eine simple Verdrahtung. Der Kondensator ist erforderlich. Ohne diesen misst der Schaltkreis eine zu hohe Temperatur.

Mit USB-Paralleldrucker-Konvertern funktioniert das nicht. Dafür benötigt man die folgende Schaltung:

Fehlt noch
Mit welchen Flipflops oder Latches man die beiden benötigten Datenbits auffängt ist an sich egal. Hier wurde ein 4013 dafür benutzt. Wer einen 74HC74 oder 74HCT74 hat, nimmt diesen. Auch 74HC(T)274, 74HC(T)374, 74HC(T)574, 4029, 4035, 4042 sind geeignet.

Die Leseleitung kann nicht an ACK angeschlossen werden, hier wird Pin 13 = ONL benutzt.

Anschluss am seriellen Port

Etwas komplizierter ist der Anschluss am seriellen Port, wegen der Spannungsanpassung. Dafür funktioniert es auch mit USB-Seriell-Konvertern.
Schaltplan
Auf den beiden Fotos ist die Adaptierung zu sehen. Am anderen Ende des 4-poligen Hosenträgerkabels ist der SHT11-Sensorchip und der Kondensator.
 
Adapter von innen, im Steckergehäuse

Anschluss am USB

Moderner ist der Anschluss am USB. Dafür wird ein Mikrocontroller benötigt. In seiner Firmware wurde ein HID-Gerät implementiert, welches eine etwaige Referenzimplementierung von PnPSA darstellt. Der Schaltplan ist geradezu lächerlich einfach.
Schaltplan, auch für SHT11 geeignet
Und hier ist der Firmware-Quelltext. Man beachte dabei insbesondere die Liesmich-Datei.

Die 2-Byte-Seriennummer befindet sich an der EEPROM-Speicherzelle 0x1F8 (ATtiny85) bzw. 0xF8 (ATtiny45). Die letzten 4 Bytes sind für den Programmierzykluszähler von avrdude freigehalten.

Alternativen

TODO: Referenzimplementierung und Firmware

Intelligenz im Stecker

Zum Einsatz kam hier eine Universal-Mikrocontroller-Schaltung zum Einbau in den USB-Stecker, die schon früher für das 1-Tasten-Keyboard entwickelt wurde. (Dort ist auch ein Foto von der Leiterplatte zu sehen.) Der vorgesehene IC1 ATtiny25 (2 KByte Flash) ist durch einen ATtiny45 ersetzt zu denken. Der 100-nF-Kondensator C1 sollte 10 µF haben, gibt es inzwischen auch als Keramikkondensator in der Bauform 0603 sogar bei Reichelt. Die Leuchtdiode wurde aus Platzgründen erst mal weggelassen.
 
Eagle-Schaltplan und Platinenentwurf: Einseitig SMD, für den Stecker-Einbau (bezieht sich auf alten Schaltplan!)
Dazu die Quellen: Des öfteren wird moniert, dass R1 eigentlich 1,5 kΩ haben müsste. Das ist falsch: Er müsste 10 kΩ groß sein, damit die Potenzialverhältnisse am USB bei 5 V Versorgungsspannung stimmen. Dann aber ist das Ruhepotenzial am Pin 7 in der Nähe der halben Speisespannung, und der Mikrocontroller zieht zu viel Strom im Schlafmodus, mehr als die erlaubten 500 µA. Daher ist mit 4,7 kΩ ein Kompromiss gewählt worden; die Schlafstromaufnahme ist so am geringsten. Kleineres R1 lässt den Schlafstrom durch R1 anwachsen.

Zenerdioden zur Begrenzung der Spannung auf den USB-Leitungen scheinen (zumindest bei mir) nicht nötig zu sein; die Serienwiderstände R2 und R3 erfüllen praktisch den gleichen Zweck.

Besser für eine künftige Schaltungslösung ist ein gemeinsamer Spannungsregler 3,3 V für den Controller und den SHT11; für den SHT21 ist dieser sogar Pflicht.

Im Muster wurde die Firmware in einen ein DIL-Schaltkreis auf einem Steckbrett gebrannt und getestet. Dann wurde der Chip „in system“ (auf der Platine) durch temporäres Anlöten des Programmieradapters an J1, J5, J6, J7 und J4 (bei Speisung an J8) gebrannt und einer weiteren Seriennummer versehen.

Gesamtaufbau

Der Sensor ist an einem Abschnitt vierpoligen Kabels angelötet. Damit seine Kontakte nicht mit irgendeiner geerdeten metallischen Oberfläche Kontakt aufnehmen (und womöglich die 5 V aus dem Rechner kurzschließen) wurde der Sensor mit einem Schrumpfschlauch mit Loch überzogen. Das Loch wird klitzeklein vor dem Schrumpfen eingeschnitten; beim Schrumpfvorgang zieht es sich groß. Siehe vergrößertes Foto links unten.
So sieht's aus. Im USB-Stecker ist der Mikrocontroller mit der oben angebenen Schaltung
So ähnlich sollten eigentlich alle Sensoren aussehen! Nicht irgendetwas mit losen Drahtenden.

Erfahrungsbericht

Egal wo man den SHT11 anschließt, das o.g. Windows-Programm kann alle Schnittstellen ansprechen und das quer von Windows 98 bis Windows 10 64 bit. Für den Parallelport-Anschluss werden Administrator-Rechte benötigt.

Es gibt auch andere Hersteller und Lieferanten von an USB fertig adaptierten SHT11 / SHT21. Diese laufen mit SHT11.EXE nicht. Es sei denn, jemand wünscht sich da etwas.

Sonderfall SHTC1 / SCSC1

Diese modernen Feuchtesensoren erfordern eine Speise- und Busspannung von 1,8 V. Während nahezu alle modernen Mikrocontroller bis hinunter zu 1,8 V laufen, ist mir keiner (aus der beherrschbaren und in Durchsteck-Gehäusen verfügbaren 8-Bit-Welt) bekannt, der das auch gleichzeitig mit USB kann. Daher benötigt man für SHTC1:

Sonstiges