ESP32 und 18S20 Temperatursensoren (1-wire)

Digitale Temperatursensoren der 18×20 Bauart haben große Vorteile bei Microrechner-Anwendungen. Sie produzieren schon ein digitales Ergebnis, sind beim Hersteller abgeglichen und zeigen eine hinreichende Genauigkeit von 0.5..1.0 Grad C. Ältere Sensoren haben im Ergebnis 9 Bit Auflösung, neuere 12 Bit. Sie benötigen nur 2(3) Anschlussdrähte als 1-wire-Bus. Es lassen sich mehrere Sensoren an diesen Leitungen betreiben, weil jeder Sensor individuell identifizierbar ist. Bei Tausch oder Reparaturen im Gesamtsystems kann dies auch ein Nachteil sein.

Bei Linux-Systemen ist die Ansteuer-Software im Kernel enthalten, für micropython gibt es mehrere python-Treiber zur Auswahl. Im einfachsten Fall braucht man für die DATA-Leitung des 1-wire-Bus einen 4k7-Widerstand nach 3V3 Versorgungsspannung und einen GPIO-Pin.

Im praktischen Fall kann das auch bedeuten, dass man einen CMOS-Eingangs-Pin der CPU in einem hochohmigen Stromkreis u.U. mehrere 10 Meter weit aus dem Gerät heraus durch Häuser oder Maschinenhallen irgendwo hin führt mit allen möglichen Störungen und statischen Entladungen. Das ist für die Fehlerfreiheit und langfristige Betriebssicherheit des Gerätes ein sehr großes Risiko.

Daher wird hier für die Eingangsstufe zur ESP32-CPU eine Schutzschaltung aufgebaut, die den Pullup-Widerstand 3K9 bereitstellt, aber gleichzeitig die Spannung am GPIO-Pin auf max. 3,2V begrenzt und negative Spannungen verhindert. Störimpulse bis zu mittlerer Intensität und Über-/Unterschwinger des Signals können damit zuverlässig abgeleitet werden.

ein vergleichbarer Effekt kann erreicht werden, wenn statt der Transistorschaltung nur eine blaue LED an die Stelle gesetzt wird.