Lichtschranke von IPF


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Das Große Rennen

DHT11 contra DS18B20 mit ESP32

In dem Versuch werden zwei digitale Temperatursensoren, DHT11 und DS18B20, miteinander verglichen, um festzustellen, ob bei der Temperaturerfassung Unterschiede auftreten. Beide Sensoren sind in der Welt des Arduino und Raspberry Pi bekannt und populär. In diesem Fall werden sie an den Mikrocontroller ESP32 angeschlossen. Die Temperaturwerte werden auf einem LCD Display angezeigt und in Minutentakt manuell notiert. Zum Vergleich werden gleichzeitig Messwerte eines Thermometers aufgenommen. Die so ermittelten Temperaturkurven sollen anschließend zeigen, welcher der beiden Sensoren zuverlässiger arbeitet. Zum Zeitpunkt des Versuches konnten beide Sensoren z.B. bei Amazon zum Preis von 1 bis 3 Euro erworben werden. Beide Sensoren arbeiten mit einer Spannung von 3,3 VDC bis 5VDC und sind damit ohne weitere Maßnahmen für den Mikrocontroller ESP32 geeignet.

Temperatursensor DHT11

Temperatursensor DHT11

Der Sensor DHT11 kann Temperatur und Feuchtigkeit erfassen. Die Daten werden seriell zu einem Mikrocontroller geliefert. Die versprochene Genauigkeit bei Temperaturerfassung liegt bei +/- 2 °C.

DHT11

Temperatursensor DS18B20

Temperatursensor DS18B20

Der digitale Temperatursensor DS18B20 kann Temperatur im Bereich von -55 °C bis +125 °C erfassen und verspricht eine Genauigkeit von +/- 0,5 °C.

DS18B20

Mikrocontroller ESP32

Mikrocontroller ESP32

Der Mikrocontroller ESP32 fungiert in der Schaltung als der Koordinator. Die ausgelesenen Temperaturmesswerte werden auf einem Display angezeigt. Mit einem akustischen Signal meldet der Mikrocontroller, wann die Daten notiert werden sollen.

Heizfolie

Heizfolie

Für die Temperaturerhöhung in unserem Versuchsbehälter wird eine selbstklebende Polyesterheizfolie zuständig sein. Die Heizfolie arbeitet mit 12 V und hat eine Leistung von 36 W. Ihre Abmessungen betragen 137 x 320 mm, ihre maximale Dauerbelastung liegt im Bereich -40 °C bis 95 °C.


Lüfter XKS4010M12S

Lüfter

Ein kleiner PC-Lüfter übernimmt die Rolle eines Umluftventilators. Er verteilt gleichmäßig die Luft in dem gesamten Versuchsbehälter. Er sorgt damit u.a. auch dafür, dass die Heizfolie während des Versuchs nicht überhitzt.

XKS4010M12S

Der bürstenlose CPU-Lüfter XKS4010M12S arbeitet mit 12 VDC und hat eine Stromaufnahme von 0,08A. Die Abmessungen betragen 40x40x10 mm. Er hat drei Anschlüsse, zwei für Versorgungsspannung, der dritte Anschluss ist Tachoausgang. Sein Gewicht beträgt 17g. Der Geräuschpegel liegt bei ‎0.03 dB. Die Lüftergeschwindigkeit liegt bei 5000 U/min (± 10 %). Die Drehzahl kann mit der Eingangsspannung oder via PWM gesteuert werden. Am Tachoausgang werden pro Umdrehung zwei Impulse ausgegeben.
Die Anschlüsse:

Anschlussbelegung



Display

Display

Die Temperatur-Messwerte werden auf dem 20x4 Display angezeigt. Zusätzlich wird auf dem Display der Stand des internen Sekundenzählers sichtbar. Er zeigt die verbleibende Zeit bis zur nächsten Datenaufnahme. Die Messwerte werden in Minutentakt aufgenommen. Das Display arbeitet mit einem I2C-Modul, das an der Rückseite angelötet ist.

20x4 LCD

Summer

Summer

Sobald eine weitere Minute abgelaufen ist, ertönt ein akustisches Signal. Der Summer erinnert uns an die Datenaufnahme. Bei einem länger andauernden Versuch kann man sich so in den Zwischenzeiten anderen Aufgaben widmen.


Der Schaltplan

Der Schaltplan

Der Schaltplan

Die Schaltung arbeitet mit drei unterschiedlichen Spannungen. Die Haupteinspeisung beträgt 12 VDC. Diese Spannung wird direkt zu dem Lüfter und der Heizfolie geführt. Darüber hinaus versorgt sie den Spannungsregler (hier mit einer 7-Segmentanzeige), mit dem sie auf 5 VDC heruntergeregelt wird. Die 5V nutzen wir als Versorgung des Mikrocontrollers ESP32. Des Weiteren wird mit der Spannung auch das Display versorgt. Die beiden Sensoren DHT11 und DS18B20 werden mit 3,3 VDC versorgt. Diese Spannung liefert wiederum das Modul des Mikrocontrollers (Pin 3V3).

Die Testschaltung

Die Testschaltung

Die Testschaltung

Versuchsanordnung

Versuchsanordnung

Um das Temperaturspektrum ein wenig zu erweitern, nutzen wir bei dem Versuch einen Kühlbeutel mit Kühlflüssigkeit, der in einem Gefrierschrank etwas vorgekühlt wird. Für Temperaturanhebung kommt eine Heizfolie zum Einsatz. Die komplette Versuchseinrichtung mit Temperatursensoren, Lüfter, Heizfolie und Kühlbeutel wird unkompliziert mit einem Deckel eines Kuchenbehälters abgedeckt.

Das Programm

// ************************************************************************************
// Das grosse Rennen
// Digitale Temperatursensoren DHT11 und DS18B20 im Test
// Schaltung mit dem Mikrocontroller ESP32
// IDE 1.8.19
// ************************************************************************************
                                                       // Bibliothek für LC Display 
  #include "LiquidCrystal_I2C.h"                       // 20x4 anbinden
  LiquidCrystal_I2C lcd(0x27,20,4);                    // Adresse, Zeichen, Zeilen
  
  #include "DHT.h"                                     // Bibliothek DHT11 anbinden    
  DHT dht(26, DHT11);                                  // Pin, Sensortyp
                                                       
  #include "OneWire.h"                                 // Bibliothek DS18B20 anbinden
  #include "DallasTemperature.h"
  OneWire oneWire(4);
  DallasTemperature Sensor(&oneWire);
  
  int Summer = 14;
  int Sekundenzaehler = 0;

// ****************************************************************************** SetUp
  void setup() {
      lcd.init();                                             // Display initialisieren 
      lcd.backlight();                                        // Hintergrundbeleuchtung
      lcd.setCursor(0,0);                                     // Cursor Position
      lcd.print("DHT11 contra DS18B20");                      // Displayausgabe
      Sensor.begin();                                         // DS18B20 initialisieren
      dht.begin();                                            // DHT11 initialisieren
      pinMode (Summer, OUTPUT);                               // Ausgang Summer
  }


// ********************************************************************** Hauptprogramm
  void loop() {
                                                           
      float Temp_DHT11 = dht.readTemperature();            // Temperatur DHT11 auslesen
      lcd.setCursor(0,2);                                  // Display Ausgabe
      lcd.print ("DHT11:   " + String(Temp_DHT11) + "  " + char(223) + "C "); 
      
      Sensor.requestTemperatures();                        // Temp. DS18B20 auslesen
      float Temp_DS18B20 = Sensor.getTempCByIndex(0);
      lcd.setCursor(0,3);                                  // Display Ausgabe
      lcd.print ("DS18B20: " + String(Temp_DS18B20) + "  " + char(223) + "C ");
      
      Sekundenzaehler++;                                   // Sek. zählen + anzeigen
      lcd.setCursor(0,1);
      lcd.print (String(Sekundenzaehler) + " ");
      if (Sekundenzaehler == 60) {
          Sekundenzaehler = 0;
          digitalWrite (Summer, HIGH);                     // Nach 60 Sek. Summer Ein
      }
      delay (1000);                                        // Nach 1 Sek Wiederholung
      digitalWrite (Summer, LOW);                          // Summer Aus
  }  
  

Eine kleine Voruntersuchung ergab, dass bei einer konstanten Temperatur alle drei Temperatursensoren nahezu gleiche Temperaturwerte melden. In diesem Fall ist also eine Kalibrierung nicht notwendig. In dem Programm werden die Messwerte einmal pro Sekunde abgerufen und auf dem Display angezeigt. Einmal pro Minute ertönt für eine Sekunde der Summer. Er markiert den Zeitpunkt, wo man die Messwerte aufschreiben soll. Mit einem Zähler, dessen aktueller Stand ebenfalls auf dem Display angezeigt wird, werden die abgelaufenen Sekunden angezeigt.

Temperaturdiagramm



Die Ergebnisse zeigen, dass beide digitale Temperatursensoren DHT11 und DS18B20 nahezu identische Ergebnisse liefern. Die meisten Unterschiede lagen unter 0,5 °C, keiner von ihnen überstieg die 1 °C Marke. Die Kurvenverläufe der beiden Sensoren weichen etwas stärker von dem Kurvenverlauf des Vergleich-Thermometers ab. Das ist darauf zurückzuführen, dass die Sensoren größere Trägheit haben und etwas mehr Zeit benötigen, um die aktuelle Temperatur richtig zu erfassen.


Kurzvideo

Kurzvideo


Weitere Themen:



Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz