ESP32 Tutorial 25/55 - Temperaturmessung mit NTC & LCD | SunFounders ESP32 IoT Lernkit

ESP32 Tutorial 25/55 - Temperaturmessung mit NTC & LCD | SunFounders ESP32 IoT Lernkit

In diesem Tutorial lernen wir, wie man die Temperatur mit einem Negativen Temperaturkoeffizienten (NTC) Thermistor misst und die Messwerte auf einem LCD-Bildschirm mithilfe des ESP32-Mikrocontrollers anzeigt. Das Projekt umfasst das Anschließen eines NTC-Thermistors an den ESP32 und die Verwendung eines LCDs, um Temperaturwerte sowohl in Celsius als auch in Fahrenheit anzuzeigen. Dies ist eine großartige Möglichkeit, um mit der Temperatursensorik und Anzeigetechniken auf der ESP32-Plattform zu beginnen.

ESP32-25-NTC_ThermometerLCD

Wir werden das ESP32-Erweiterungsboard von SunFounder verwenden, das die Funktionen des ESP32 mit integriertem Wi-Fi und Bluetooth erweitert. Dieses Board kann einfach mit verschiedenen Sensoren und Displays integriert werden, wodurch es sich ideal für IoT-Projekte eignet. Der NTC-Temperaturfühler liefert Temperaturmesswerte, die auf seinem Widerstand basieren, der umgekehrt mit der Temperatur variiert. Zur weiteren Klärung des Setups und des Codes sollten Sie sich das Video (im Video bei 00:00) ansehen.

Hardware erklärt

Die Hauptkomponenten, die in diesem Projekt verwendet werden, sind der ESP32-Mikrocontroller, ein NTC-Thermistor, ein Widerstand und ein LCD-Display. Der ESP32 fungiert als zentrale Verarbeitungseinheit, die Daten vom Thermistor verarbeitet und das LCD-Display steuert. Der NTC-Thermistor ändert seinen Widerstand entsprechend der Temperatur, wodurch wir die Temperatur basierend auf der Spannungsteilerkonfiguration mit einem festen Widerstand berechnen können.

NTC-Thermistor

Das LCD-Display zeigt die Temperaturwerte sowohl in Celsius als auch in Fahrenheit an. Wir werden das I2C-Protokoll verwenden, um mit dem LCD zu kommunizieren, was die Verdrahtung vereinfacht, indem die Anzahl der benötigten Pins reduziert wird. Der NTC-Thermistor hat die Eigenschaft, dass sein Widerstand mit steigender Temperatur abnimmt, was für unsere Berechnungen entscheidend ist.

Datenblatt Details

Hersteller SunFounder
Teilenummer NTC-Thermistor
Nennwiderstand 10 kΩ
Beta-Wert 3950 K
Temperaturbereich -40°C bis 125°C
Paket Axial

  • Stellen Sie sicher, dass der Thermistor für den erwarteten Temperaturbereich ausgelegt ist.
  • Verwenden Sie einen 10 kΩ Widerstand für den Spannungsteiler; andernfalls sind die Messwerte ungenau.
  • Überprüfen Sie die Verbindungen, um Kurzschlüsse zu vermeiden.
  • Halten Sie die I2C-Adresse des LCD korrekt (typischerweise 0x27).
  • Verwenden Sie geeignete Stromversorgungspegel für das ESP32 und die Peripheriegeräte.
  • Überprüfen Sie, ob die Baudrate des seriellen Monitors mit den Codeeinstellungen (115200) übereinstimmt.
NTC_formula

Verdrahtungsanleitung

ESP32-11_LCD-wiring
ESP32-25-NTC_thermometer_wiring

Um die Komponenten zu verdrahten, beginnen Sie mit dem Anschluss des NTC-Thermistors an das ESP32. Der Thermistor hat keine Polarität, sodass er in beide Richtungen angeschlossen werden kann. Schließen Sie einen Anschluss des Thermistors an den Masse (GND)-Pin des ESP32 an. Der andere Anschluss wird mit einem 10 kΩ Widerstand verbunden, der dann mit dem 3,3V-Pin des ESP32 verbunden wird. Die Verbindung zwischen dem Thermistor und dem Widerstand wird mit dem Pin verbunden.35auf dem ESP32, der die Spannung für Temperaturberechnungen misst.

Für das LCD schließen Sie den Massepin (typischerweise der zweite Pin von oben) an GND des ESP32 an. Schließen Sie dann den VCC (häufig der erste Pin) an den 5V-Pin des ESP32 an. Der SDA-Pin (normalerweise der dritte Pin) sollte mit dem Pin verbinden.21am ESP32, und der SCL-Pin (häufig der vierte Pin) sollte mit dem Pin verbunden werden22Stellen Sie sicher, dass alle Verbindungen sicher sind, und überprüfen Sie die PIN-Nummern doppelt, um Fehler zu vermeiden.

Codebeispiele und Anleitung

Der Code beginnt mit der Definition der Konstanten für den Thermistor, einschließlich der Pinnummer, Referenzspannung und Widerstandswerte. Die Setup-Funktion initialisiert die serielle Kommunikation und setzt den Thermistor-Pin als Eingang.

const int thermistorPin = 35; // Pin connected to the thermistor
const float referenceVoltage = 3.3;
const float referenceResistor = 10000; // the 'other' resistor

Die Hauptschleife liest den Analogwert vom Thermistor-Pin, berechnet den Widerstand und ermittelt dann die Temperatur sowohl in Celsius als auch in Fahrenheit mithilfe der Beta-Parameter-Gleichung. Die berechneten Werte werden im seriellen Monitor ausgegeben.

int adcValue = analogRead(thermistorPin); // Read ADC value
float voltage = (adcValue * referenceVoltage) / 4095.0; // Calculate voltage
float resistance = (voltage * referenceResistor) / (referenceVoltage - voltage); // Calculate thermistor resistance

Schließlich wird die Temperatur auf dem LCD angezeigt. Dielcd.print()Die Funktion wird verwendet, um die Temperaturwerte zusammen mit dem Gradzeichen anzuzeigen.

lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(tempC, 1);
lcd.write(223); // Degree symbol
lcd.print("C");

Dieser Code aktualisiert das LCD alle 300 Millisekunden effektiv mit den neuesten Temperaturmessungen und ermöglicht so eine Echtzeitüberwachung.

Demonstration / Was Sie erwarten können

Beim Ausführen des Codes und dem Abschließen der Verkabelung sollten die Temperaturmesswerte sowohl in Celsius als auch in Fahrenheit auf dem LCD angezeigt werden. Wenn Sie den Thermistor in der Hand halten, sollten Sie feststellen, dass die Temperatur steigt, während der Widerstand sinkt. Achten Sie auf umgekehrte Polarität und stellen Sie sicher, dass die Verbindungen sicher sind, da unsachgemäße Verkabelung zu ungenauen Messwerten führen kann (im Video bei 04:50).

Video-Zeiten

  • 00:00 Start
  • 1:50 Einführung in das Projekt
  • 5:32 Verdrahtung erklärt
  • 8:20 Arduino NTC-Code für ESP32 erklärt
  • 13:38 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
  • 15:20 NTC Temperaturmessungsdemonstration
  • 17:34 NTC-Temperatur auf LCD1602 mit ESP32
  • 18:42 NTC Arduino-Code mit LCD erklärt
  • 21:15 Demonstration der Temperatur auf LCD
  • 23:13 Grünes LCD oder Blaues LCD1601?

Bilder

ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
NTC_thermistor
NTC_thermistor
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_wiring
ESP32-25-NTC_thermometer_wiring
NTC_formula
NTC_formula
ESP32-25-NTC_thermometeLCD
ESP32-25-NTC_thermometeLCD
824-ESP32 Tutorial 25/55- SunFounder doc page NTC Thermometer
Sprache: C++
825-ESP32 Tutorial 25/55- Arduino code for LCD with NTC thermistor
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.