Heißleiter NTC 3950 am Arduino und ESP8266

Im diesem Projekt möchte ich euch zeigen, wie man mit einem Temperatursensor (NTC 3950 Thermistor) und
einem OLED-Display eine
einfache Temperaturanzeige realisieren kann.
Diese Temperaturanzeige findet Anwendung in meinem Raise3D Drucker. 

Was braucht man dazu?

1 x Arduino (Nano, Uno, Mega …)
1 x ESP8266
1 x Level Shifter für die Arduino-Esp8266 I2C Kommunikation
2 x Thermistor (in meinem Fall 100k Ohm bei 25°C und B=3950K)
1 x Widerstand (in meinem Fall 100k Ohm)
1 x OLED Display 128×64 Pixel Softweare u8g2.h Libary

Der NTC-Sensor ist ein temperaturabhängiger Widerstand mit der Eigenschaft,
dass bei steigender Temperatur der Widerstand kleiner wird
und umgekehrt.
Dieses Verhalten lässt sich in der folgenden Formel
beschreiben.

Rt:   Widerstand in Abhängigkeit der Temperatur
Rn:  Nennwiderstand des Sensors bei Bezugstemperatur; hier 25°C entspricht 298,15 Kelvin
B:    Temperaturkoeffizient, hier 3950
T:    aktueller Temperaturwert des Sensors  in Klevin (deshalb müssen wir 273,15 Kelvin abziehen um einen Grad Celsius wert zu erhalten)
Tn:  Nenntemperatur in Klevin

 

Durch umstellen der Formel kommt man auf die Gleichung für die Temperatur in Abhängigkeit des Widerstandes:

Diese Gleichung nutzen wir später für die Berechnung der Temperatur am Thermistor.

Um mit dem Arduino die Temperatur messen zu können, müssen wir uns einen Spannungsteiler aufbauen um
Anhand eines Analogsignals den
Widerstand berechnen zu können:

Wir messen am Analogeingang A0-3 den aktuellen Spannungsabfall an den NTC Sensoren,
durch Verrechnung der Analogwerte mit den 
Vorwiderstanden, erhalten wir den aktuellen Widerstand des NTC Thermistors.

Die genauen Widerstandswerte habe ich durch Messung ermittelt. Es würden auch Messwiderstände mit ± 0.1% Toleranz ganz gut funktionieren.
Toleranz von 0.1% bedeutet der Widerstand hat eine Abweichung von ± 100 Ohm

Software (einfach)