Kategorien: Mikrocontroller-Schaltungen
Anzahl der Aufrufe: 9996
Kommentare zum Artikel: 0

Messung von Temperatur und Luftfeuchtigkeit auf Arduino - eine Auswahl von Methoden

 

Um eine Heimwetterstation oder ein Thermometer zu erstellen, müssen Sie lernen, wie Sie das Arduino-Board und ein Gerät zum Messen von Temperatur und Luftfeuchtigkeit koppeln. Die Temperaturmessung kann jedoch mit einem Thermistor oder einem digitalen Sensor DS18B20 durchgeführt werden zur Messung der Luftfeuchtigkeit Verwenden Sie komplexere Geräte - Sensoren DHT11 oder DHT22. In diesem Artikel zeigen wir Ihnen, wie Sie Temperatur und Luftfeuchtigkeit mit dem Arduino und diesen Sensoren messen.

Messung von Temperatur und Luftfeuchtigkeit auf Arduino - eine Auswahl von Methoden

Thermistormessung

Der einfachste Weg, die Temperatur zu bestimmen, ist die Verwendung Thermistor. Dies ist eine Art Widerstand, dessen Widerstand von der Umgebungstemperatur abhängt. Es gibt Thermistoren mit einem positiven und einem negativen Temperaturkoeffizienten des Widerstands - PTC- (auch Posistoren genannt) bzw. NTC-Thermistoren.

In der Grafik unten sehen Sie die Temperaturabhängigkeit des Widerstands. Die gestrichelte Linie zeigt die Abhängigkeit für einen negativen TCS-Thermistor (NTC) und die durchgezogene Linie für einen positiven TCS-Thermistor (PTC).

Temperaturabhängigkeit des Widerstands

Was sehen wir hier? Das erste, was auffällt, ist, dass der Zeitplan für den PTC-Thermistor gebrochen ist und es schwierig oder unmöglich ist, eine Reihe von Temperaturwerten zu messen, aber der Zeitplan für den NTC-Thermistor ist mehr oder weniger einheitlich, obwohl er eindeutig nicht linear ist. Was bedeutet das? Die Verwendung eines NTC-Thermistors ist einfacher, die Temperatur zu messen, da es einfacher ist, die Funktion herauszufinden, durch die sich seine Werte ändern.

Um die Temperatur in Widerstand umzuwandeln, können Sie die Werte manuell entfernen. Dies ist jedoch zu Hause schwierig und Sie benötigen ein Thermometer, um die tatsächlichen Werte der Temperatur des Mediums zu bestimmen. In den Datenblättern einiger Komponenten ist eine solche Tabelle beispielsweise für eine Reihe von NTC-Thermistoren von Vishay angegeben.

Datashit Vishay TC Thermistoren

Anschließend können Sie die Übersetzung über die Zweige mit der Funktion if ... else oder switchcase organisieren. Wenn die Datenblätter jedoch keine solchen Tabellen enthalten, müssen Sie die Funktion berechnen, mit der sich der Widerstand mit zunehmender Temperatur ändert.

Um diese Änderung zu beschreiben, existiert die Steinhart-Hart-Gleichung.

Steinhart-Hart-Gleichung

wobei A, B und C die Thermistorkonstanten sind, die durch Messen von drei Temperaturen mit einer Differenz von mindestens 10 Grad Celsius bestimmt werden. Gleichzeitig weisen verschiedene Quellen darauf hin, dass sie für einen typischen 10-kΩ-NTC-Thermistor gleich sind:

Thermistorkonstanten

Der B - Beta - Koeffizient wird basierend auf der Widerstandsmessung für zwei verschiedene Temperaturen berechnet. Sie wird entweder im Datenblatt (wie unten dargestellt) angegeben oder unabhängig berechnet.

B - Beta-Koeffizient aus Datenblatt

In diesem Fall wird B in der folgenden Form angegeben:

Beta-Verhältnis

Dies bedeutet, dass der Koeffizient auf der Grundlage von Daten berechnet wurde, die bei der Widerstandsmessung bei Temperaturen von 25 und 100 Grad Celsius erhalten wurden. Dies ist die häufigste Variante. Dann wird es durch die Formel berechnet:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

Ein typisches Anschlussdiagramm eines Thermistors an einen Mikrocontroller ist unten gezeigt.

Anschlussplan des Thermistors an den Mikrocontroller

Hier ist R1 ein konstanter Widerstand, der Thermistor ist mit der Stromquelle verbunden, und die Daten werden vom Mittelpunkt zwischen ihnen genommen, das Diagramm zeigt bedingt an, dass das Signal an Pin A0 geliefert wird - dies Analogeingang Arduino.

Anschlussplan des Thermistors an den Mikrocontroller

Um den Widerstand eines Thermistors zu berechnen, können Sie die folgende Formel verwenden:

R des Thermistors = R1⋅ ((Vcc / Voutput) −1)

Um in eine Sprache zu übersetzen, die für Arduino verständlich ist, müssen Sie sich daran erinnern, dass das Arduino über einen 10-Bit-ADC verfügt, sodass der maximale digitale Wert des Eingangssignals (Spannung 5 V) 1023 beträgt. Dann bedingt:

  • Dmax = 1023;

  • D ist der tatsächliche Wert des Signals.

Dann:

R des Thermistors = R1⋅ ((Dmax / D) −1)

Nun berechnen wir damit den Widerstand und dann die Temperatur des Thermistors mit der Beta-Gleichung in einer Programmiersprache für Arduino. Die Skizze sieht folgendermaßen aus:

Skizze

DS18B20

Noch beliebter für die Temperaturmessung mit.Arduino fand einen digitalen Sensor DS18B20. Es kommuniziert mit dem Mikrocontroller über die 1-Draht-Schnittstelle. Sie können mehrere Sensoren (bis zu 127) an ein Kabel anschließen. Um darauf zugreifen zu können, müssen Sie die ID jedes Sensors ermitteln.

Hinweis: Sie sollten die ID kennen, auch wenn Sie nur 1 Sensor verwenden.

DS18B20 Digitalsensor

Das Anschlussdiagramm des ds18b20-Sensors zu Arduino sieht folgendermaßen aus:

Anschlussplan des Sensors ds18b20 an Arduino
Anschlussplan des Sensors ds18b20 an Arduino

Es gibt auch einen parasitären Stromversorgungsmodus - sein Anschlussplan sieht folgendermaßen aus (Sie benötigen zwei statt drei Drähte):

Anschlussplan des Arduino-Sensors

In diesem Modus ist ein korrekter Betrieb nicht garantiert, wenn Temperaturen über 100 Grad Celsius gemessen werden.

Der digitale Temperatursensor DS18B20 besteht wie jedes andere SIMS aus einer ganzen Reihe von Knoten. Sie können das interne Gerät unten sehen:

Digitaler Temperatursensor DS18B20

Um damit zu arbeiten, müssen Sie die Onewire-Bibliothek für Arduino herunterladen. Für den Sensor selbst wird empfohlen, die DallasTemperature-Bibliothek zu verwenden.

Skizze

Dieses Codebeispiel zeigt die Grundlagen der Arbeit mit 1 Temperatursensor. Das Ergebnis in Grad Celsius wird nach jedem Lesevorgang über die serielle Schnittstelle ausgegeben.


DHT11 und DHT22 - Feuchtigkeits- und Temperatursensoren

DHT11 und DHT22 - Feuchtigkeits- und Temperatursensoren

Diese Sensoren sind beliebt und werden häufig zur Messung von Luftfeuchtigkeit und Umgebungstemperatur verwendet. In der folgenden Tabelle haben wir ihre Hauptunterschiede angegeben.

 
DHT11
DHT22
Feuchtigkeitsbestimmung im Bereich
20-80%
0-100%
Messgenauigkeit
5%
2-5%
Temperaturbestimmung
0 ° C bis + 50 ° C.
-40 ° C bis + 125 ° C.
Messgenauigkeit
2,5%
plus oder minus 0,5 Grad Celsius
Abrufhäufigkeit
1 Mal pro Sekunde
1 Mal in 2 Sekunden
Anschlussplan für Feuchtigkeitssensor zu Arduino

Das Anschlussdiagramm ist ganz einfach:

  • 1 Schlussfolgerung - Ernährung;

  • 2 Schlussfolgerung - Daten;

  • 3 Schlussfolgerung - nicht verwendet;

  • 4 Fazit - der allgemeine Draht.

Wenn Sie einen Sensor in Form eines Moduls haben, hat dieser drei Ausgänge, aber Sie benötigen keinen Widerstand - er ist bereits mit der Platine verlötet.

Anschlussplan des Feuchtigkeitssensors in Form eines Moduls an Arduino

Für die Arbeit benötigen wir die Bibliothek dht.h, sie befindet sich nicht im Standardsatz, daher muss sie heruntergeladen und im Bibliotheksordner des Ordners mit der Arduino-IDE installiert werden. Es unterstützt alle Sensoren dieser Familie:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Beispiel für die Verwendung der Bibliothek:

Beispiel für die Bibliotheksnutzung

Fazit

Dank der Arduino-Plattform ist es heutzutage sehr einfach, eine eigene Station zur Messung von Temperatur und Luftfeuchtigkeit zu erstellen. Die Kosten für solche Projekte betragen 3-4hundert Rubel. Für die Akkulaufzeit und nicht an einen Computer ausgegeben, kann verwendet werden Zeichenanzeige (Wir haben sie in einem kürzlich erschienenen Artikel beschrieben.) Dann können Sie ein tragbares Gerät für den Einsatz zu Hause und im Auto bauen. Schreiben Sie in die Kommentare, was Sie sonst noch über einfaches hausgemachtes Basteln auf Arduino wissen möchten!

Siehe auch zu diesem Thema:Beliebte Sensoren für Arduino - Verbindung, Diagramme, Skizzen

Siehe auch auf i.electricianexp.com:

  • Beliebteste Sensoren für Arduino
  • Analoge Sensoren an Arduino anschließen, Sensoren lesen
  • Verwendung der Wheatstone-Brücke zur Messung nichtelektrischer Größen
  • Temperatursensoren. Teil Zwei Thermistoren
  • Feuchtigkeitssensoren - wie sie angeordnet sind und funktionieren

  •