KY-013 Temperatursensor (NTC)
Dieses Modul beinhaltet einen NTC Thermistor welcher Temperaturen im Bereich von -55°C bis zu +125°C messen kann.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Dieses Modul enthält einen NTC-Thermistor, der Temperaturen im Bereich von -55°C bis +125°C messen kann. Ein NTC-Thermistor (Negative Temperature Coefficient) hat die Eigenschaft, dass sein Widerstand bei steigender Temperatur abnimmt. Diese Änderung des Widerstandswerts ermöglicht es, die entsprechende Temperatur zu berechnen.
Die Beziehung zwischen Temperatur und Widerstand ist nicht linear, kann jedoch mathematisch angenähert werden. Durch die Verwendung eines Spannungsteilers kann die Änderung des Widerstands ermittelt werden. Ein Spannungsteiler besteht aus einem bekannten festen Widerstand und dem variablen Widerstand des Thermistors. Wenn eine Spannung an den Spannungsteiler angelegt wird, teilt sich die Spannung entsprechend den Widerstandswerten auf. Durch das Messen der Spannung über den Thermistor kann der aktuelle Widerstand berechnet werden.
Diese Widerstandswerte lassen sich dann in Temperaturen umrechnen. Die genaue Berechnungsmethode und der mathematische Ansatz zur Bestimmung der Temperatur sind in den beigefügten Codebeispielen beschrieben. Dieses Modul ist ideal für Anwendungen, bei denen präzise Temperaturmessungen erforderlich sind, wie z.B. in Klimasteuerungen, Überwachungssystemen und anderen temperaturabhängigen Prozessen. Durch seine hohe Genauigkeit und den breiten Messbereich bietet es eine zuverlässige Lösung für viele Temperaturmessaufgaben.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Anschlussbelegung
Arduino | Sensor |
---|---|
A1 | Signal |
5 V | +V |
GND | GND |
Man kann auch einen ADC wie der KY-053 verwenden. Dieser ADC hat eine höhere Auflösung als der interne ADC vom Arduino, was dazuführt, dass der Sensor genauer ausgewertet werden kann.
Code-Beispiel
Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und übersetzt das Ergebnis in °C für die serielle Ausgabe.
Um das folgende Codebeispiel auf Ihren Arduino zu laden, empfehlen wir die Verwendung der Arduino IDE. In der IDE können Sie den passenden Port und das richtige Board für Ihr Gerät auswählen.
Kopieren Sie den unten stehenden Code in Ihre IDE. Um den Code auf Ihren Arduino hochzuladen, klicken Sie einfach auf den Upload-Button.
int ntc = A1; // Deklaration des Sensoreingangs-Pins
// Deklaration von temporäre Variablen
double raw_value;
double voltage;
double temperature;
void setup () {
pinMode(ntc, INPUT); // Initialisierung Sensor-Pin
Serial.begin(9600); // Initialisierung des seriellen Monitors
Serial.println("KY-013 NTC Temperatur Test");
}
void loop () {
// Analogen Wert auslesen
raw_value = analogRead(ntc);
// Mittels analogen Wert die Spannung auslesen
voltage = raw_value * 5.0 / 1023.0;
// Berechnung der Temperatur mittels der Spannung
temperature = ((voltage / 5.0) * 10000.0) / (1.0 - (voltage / 5.0));
temperature = 1.0 / ((1.0 / 298.15) + (1.0 / 3950.0) * log(temperature / 10000.0));
temperature = temperature - 273.15;
// Ausgabe des Messwerts
Serial.println("Temperatur: " + String(temperature) + " °C");
delay(1000); // 1 Sekunde auf nächste Messung warten
}
Dieses Modul enthält einen NTC-Thermistor, der Temperaturen im Bereich von -55°C bis +125°C messen kann. Ein NTC-Thermistor (Negative Temperature Coefficient) hat die Eigenschaft, dass sein Widerstand bei steigender Temperatur abnimmt. Diese Änderung des Widerstandswerts ermöglicht es, die entsprechende Temperatur zu berechnen.
Die Beziehung zwischen Temperatur und Widerstand ist nicht linear, kann jedoch mathematisch angenähert werden. Durch die Verwendung eines Spannungsteilers kann die Änderung des Widerstands ermittelt werden. Ein Spannungsteiler besteht aus einem bekannten festen Widerstand und dem variablen Widerstand des Thermistors. Wenn eine Spannung an den Spannungsteiler angelegt wird, teilt sich die Spannung entsprechend den Widerstandswerten auf. Durch das Messen der Spannung über den Thermistor kann der aktuelle Widerstand berechnet werden.
Diese Widerstandswerte lassen sich dann in Temperaturen umrechnen. Die genaue Berechnungsmethode und der mathematische Ansatz zur Bestimmung der Temperatur sind in den beigefügten Codebeispielen beschrieben. Dieses Modul ist ideal für Anwendungen, bei denen präzise Temperaturmessungen erforderlich sind, wie z.B. in Klimasteuerungen, Überwachungssystemen und anderen temperaturabhängigen Prozessen. Durch seine hohe Genauigkeit und den breiten Messbereich bietet es eine zuverlässige Lösung für viele Temperaturmessaufgaben.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Anschlussbelegung
Raspberry Pi | Sensor |
---|---|
- | Signal |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Raspberry Pi | KY-053 |
---|---|
GPIO 3 [Pin 5] | SCL |
Gpio 2 [Pin 3] | SDA |
3,3 V [Pin 1] | VDD |
GND [Pin 6] | GND |
Analoger Sensor, daher muss folgendes beachtet werden: Der Raspberry Pi besitzt, im Gegensatz zum Arduino, keine analogen Eingänge bzw. es ist kein ADC (analog digital Converter) im Chip des Raspberry Pi's integriert. Dies schränkt den Raspberry Pi ein, insofern man Sensoren einsetzen möchte, bei denen keine digitalen Werte ausgegeben werden, sondern es sich um einen kontinuierlich veränderlichen Wert handelt (Beispiel: Potentiometer -> Andere Position = Anderer Spannungswert).
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Raspberry nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Raspberry Pi angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Raspberry Pi.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem besagten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter.
Code-Beispiel
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1x15 und I2C Python-Libraries von Adafruit. Diese wurden unter dem folgenden Link https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 unter der MIT-Lizenz veröffentlicht. Die benötigten Libraries sind nicht im unteren Download-Paket enthalten.
Zunächst müssen Sie I2C auf Ihren Raspberry Pi aktivieren. Um die Konfiguration zu öffnen, geben Sie den folgenden Befehl ein:
sudo raspi-config
Wählen Sie dort 3 Interface Options → I4 I2C aus und aktivieren Sie die I2C-Schnittstelle. Sie haben nun erfolgreich I2C aktiviert. Der Analog-Digital Wandler ist jetzt unter der I2C-Adresse 0x48 erreichbar, welche bei diesem Sensor standardmäßig gesetzt ist. Die I2C Adresse wird anders sein, wenn Sie diese bereits konfiguriert haben sollten, bevor Sie Ihren Raspberry Pi konfiguriert haben.
Installieren Sie nun pip3 mit dem folgendem Befehl:
sudo apt-get install python3-pip
Als nächstes muss die virtuelle Umgebung eingerichtet werden. Geben Sie dazu die folgenden Befehle ein:
mkdir dein_projekt
cd dein_projekt
python -m venv --system-site-packages env
source env/bin/activate
Mit dem folgenden Befehlen laden Sie sich die adafruit-circuitpython-ads1x15 Bibliothek herunter und installieren sie.
pip3 install adafruit-circuitpython-ads1x15
Nachdem Sie die Bibliothek heruntergeladen haben, brauchen Sie nur mit folgendem Befehl...
nano KY013-RPi.py
...eine neue Datei auf Ihrem Raspberry Pi zu erstellen und dann den folgenden Code in die so eben erstellt Datei kopieren.
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import math
# Erstelle den I2C-Bus
i2c = busio.I2C(board.SCL, board.SDA)
# Erstelle das ADC-Objekt mit dem I2C-Bus
ads = ADS.ADS1115(i2c)
# Maximal mögliche Spannung definieren (abhängig von Ihrer Referenzspannung)
voltageMax = 3.3
# Einzelne Eingänge an Kanälen erstellen
chan0 = AnalogIn(ads, ADS.P0)
# Hauptprogrammschleife
while True:
# Berechnung der Temperatur über einen NTC-Widerstand
ntc_resistance = ((chan0.voltage / voltageMax) * 10000) / (1 - (chan0.voltage / voltageMax))
temperatur = 1 / ((1 / 298.15) + (1 / 3950) * math.log(ntc_resistance / 10000))
temperatur -= 273.15 # Umwandlung von Kelvin in Celsius
print("Temperatur: {:.2f} °C".format(temperatur))
print("---------------------------------------------------")
time.sleep(1)
Dieses Modul enthält einen NTC-Thermistor, der Temperaturen im Bereich von -55°C bis +125°C messen kann. Ein NTC-Thermistor (Negative Temperature Coefficient) hat die Eigenschaft, dass sein Widerstand bei steigender Temperatur abnimmt. Diese Änderung des Widerstandswerts ermöglicht es, die entsprechende Temperatur zu berechnen.
Die Beziehung zwischen Temperatur und Widerstand ist nicht linear, kann jedoch mathematisch angenähert werden. Durch die Verwendung eines Spannungsteilers kann die Änderung des Widerstands ermittelt werden. Ein Spannungsteiler besteht aus einem bekannten festen Widerstand und dem variablen Widerstand des Thermistors. Wenn eine Spannung an den Spannungsteiler angelegt wird, teilt sich die Spannung entsprechend den Widerstandswerten auf. Durch das Messen der Spannung über den Thermistor kann der aktuelle Widerstand berechnet werden.
Diese Widerstandswerte lassen sich dann in Temperaturen umrechnen. Die genaue Berechnungsmethode und der mathematische Ansatz zur Bestimmung der Temperatur sind in den beigefügten Codebeispielen beschrieben. Dieses Modul ist ideal für Anwendungen, bei denen präzise Temperaturmessungen erforderlich sind, wie z.B. in Klimasteuerungen, Überwachungssystemen und anderen temperaturabhängigen Prozessen. Durch seine hohe Genauigkeit und den breiten Messbereich bietet es eine zuverlässige Lösung für viele Temperaturmessaufgaben.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Anschlussbelegung
Micro:Bit | Sensor |
---|---|
- | Signal |
3 V | +V |
GND | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Micro:Bit | KY-053 |
---|---|
Pin 19 | SCL |
Pin 20 | SDA |
3 V | VDD |
GND | GND |
Analoger Sensor, daher muss folgendes beachtet werden: Der Micro:Bit besitzt analoge Eingänge bzw. es ist ein ADC (analog digital Converter) im Chip des Micro:Bits integriert. Diese sind jedoch nur auf 10-Bit beschränkt und bieten daher nur eine recht geringe Genauigkeit für analoge Messungen.
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Micro:Bit nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Micro:Bit angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Micro:Bit.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem erwähnten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter KY-053 Analog Digital Converter.
Code-Beispiel
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechende Bibliothek von uns. Diese wurde unter dem folgenden Link pxt-ads1115 unter der MIT-Lizenz veröffentlicht.
let _2 = 0
let temperature = 0
ADS1115.setMode(mode.Multi)
ADS1115.setRate(rate.Rate6)
ADS1115.setGain(gain.One)
ADS1115.initADS1115(userInI2C.Gnd)
basic.forever(function () {
_2 = ADS1115.raw_to_v(ADS1115.read(0))
temperature = _2 / 3.3 * 10000 / (1 - _2 / 3.3)
temperature = 1 / (1 / 298.15 + 1 / 3950 * Math.log(temperature / 10000))
temperature = temperature - 273.15
serial.writeLine("" + (temperature))
basic.pause(1000)
})
Beispielprogramm Download
Dieses Modul enthält einen NTC-Thermistor, der Temperaturen im Bereich von -55°C bis +125°C messen kann. Ein NTC-Thermistor (Negative Temperature Coefficient) hat die Eigenschaft, dass sein Widerstand bei steigender Temperatur abnimmt. Diese Änderung des Widerstandswerts ermöglicht es, die entsprechende Temperatur zu berechnen.
Die Beziehung zwischen Temperatur und Widerstand ist nicht linear, kann jedoch mathematisch angenähert werden. Durch die Verwendung eines Spannungsteilers kann die Änderung des Widerstands ermittelt werden. Ein Spannungsteiler besteht aus einem bekannten festen Widerstand und dem variablen Widerstand des Thermistors. Wenn eine Spannung an den Spannungsteiler angelegt wird, teilt sich die Spannung entsprechend den Widerstandswerten auf. Durch das Messen der Spannung über den Thermistor kann der aktuelle Widerstand berechnet werden.
Diese Widerstandswerte lassen sich dann in Temperaturen umrechnen. Die genaue Berechnungsmethode und der mathematische Ansatz zur Bestimmung der Temperatur sind in den beigefügten Codebeispielen beschrieben. Dieses Modul ist ideal für Anwendungen, bei denen präzise Temperaturmessungen erforderlich sind, wie z.B. in Klimasteuerungen, Überwachungssystemen und anderen temperaturabhängigen Prozessen. Durch seine hohe Genauigkeit und den breiten Messbereich bietet es eine zuverlässige Lösung für viele Temperaturmessaufgaben.
Technische Daten | |
---|---|
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Anschlussbelegung
Raspberry Pi Pico | Sensor |
---|---|
3,3 V | +V |
GND | GND |
GPIO26 (A0) | Signal |
Man kann auch einen ADC wie der KY-053 verwenden. Dieser ADC hat eine höhere Auflösung als der interne ADC vom Raspberry Pi Pico, was dazuführt, dass der Sensor genauer ausgewertet werden kann.
Code-Beispiel
Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und rechnet das Ergebnis in °C für die serielle Ausgabe um.
Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.
Kopieren Sie den untenstehenden Code nun in Ihre IDE und klicken Sie auf Run.
# Bibliotheken laden
from machine import ADC
import math
from time import sleep
# Initialisierung des ADC0 (GPIO26)
adc = ADC(0)
print("KY-013 Temperaturmessung")
while True:
# ADC0 als Dezimalzahl lesen
read = adc.read_u16()
# Spannung berechnen
voltage = read * 3.3 / 65536
# Umrechnung von Spannung zu Temperatur
temperature = ((voltage / 3.3) * 10000) / (1 - (voltage / 3.3))
temperature = 1 / ((1 / 298.15) + (1 / 3950) * math.log(temperature / 10000))
temperature = temperature - 273.15
# Serielle Ausgabe der errechneten Temperatur
print("Temperatur: " + str(temperature) + " °C")
sleep(1)