ESP32 - TMP36 Temperatursensor

In diesem Leitfaden lernen wir, wie man den ESP32 programmiert, um die Temperatur vom TMP36-Sensor zu lesen.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×TMP36 Temperature Sensor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den TMP36-Temperatursensor

Pinbelegung

Der TMP36-Temperatursensor hat drei Pins:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V) verbunden werden
  • +Vs-Pin: ist die Stromversorgung für den Sensor, die zwischen 2,7 V und 5,5 V variieren kann
  • Vout-Pin: Signalpin liefert die Ausgangsspannung, die linear proportional zur Temperatur ist; sollte an einen analogen Pin des ESP32 angeschlossen werden
Pinbelegung des TMP36-Temperatursensors

Wie es funktioniert

Der TMP36 liefert eine Spannung, die linear proportional zur Temperatur in Grad Celsius ist. Der Skalierungsfaktor der TMP36-Ausgabe beträgt 10 mV/°C. Das bedeutet, dass die Temperatur berechnet wird, indem die am Ausgangspin anliegende Spannung (in mV) durch 10 geteilt wird.

Verdrahtungsdiagramm

ESP32 TMP36-Temperatursensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

So programmieren Sie den TMP36-Temperatursensor

  • Holen Sie den ADC-Wert vom Temperatursensor, indem Sie die Funktion analogRead() verwenden.
int adcVal = analogRead(PIN_TMP36);
  • Wandle den ADC-Wert in eine Spannung um (in Volt).
float voltage = adcVal * (3.3 / 4095.0);
  • Wandle die Spannung in Celsius um.
float tempC = (voltage - 0.5) * 100;
  • (Optional) Celsius in Fahrenheit umrechnen
float tempF = tempC * 9 / 5 + 32;

ESP32-Code

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32/esp32-tmp36-temperature-sensor */ #define ADC_VREF 3.3 // 3.3V #define ADC_RESOLUTION 4095.0 #define PIN_TMP36 36 // ESP32 pin GPIO36 (ADC0) connected to LM35 void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Schnelle Schritte

  • Falls dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Schließen Sie die Verkabelung wie im obigen Bild.
  • Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Upload-Schaltfläche, um den Code auf den ESP32 hochzuladen.
  • Greifen Sie den Sensor mit der Hand.
  • Sehen Sie das Ergebnis im Seriellen Monitor.
COM6
Send
TMP36 Temperature: 26.31°C ~ 79.36°F TMP36 Temperature: 26.44°C ~ 79.59°F TMP36 Temperature: 26.50°C ~ 79.70°F TMP36 Temperature: 26.56°C ~ 79.81°F TMP36 Temperature: 27.06°C ~ 80.71°F TMP36 Temperature: 27.75°C ~ 81.95°F TMP36 Temperature: 28.37°C ~ 83.07°F TMP36 Temperature: 29.00°C ~ 84.20°F TMP36 Temperature: 29.56°C ~ 85.21°F TMP36 Temperature: 30.00°C ~ 86.00°F TMP36 Temperature: 30.31°C ~ 86.56°F TMP36 Temperature: 30.62°C ~ 87.12°F TMP36 Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Dieses Tutorial verwendet die analogRead()-Funktion, um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der an einen TMP36-Sensor angeschlossen ist. Der ESP32-ADC ist gut geeignet für Projekte, die keine hohe Genauigkeit benötigen. Allerdings gilt Folgendes für Projekte, die eine präzise Messung benötigen:

  • Der ESP32-ADC ist nicht ganz exakt und muss möglicherweise kalibriert werden, um korrekte Ergebnisse zu liefern. Jede ESP32-Platine kann sich etwas unterscheiden, daher müssen Sie den ADC für jedes einzelne Board kalibrieren.
  • Die Kalibrierung kann schwierig sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die gewünschten exakten Ergebnisse.

Für Projekte, die eine hohe Präzision benötigen, ziehen Sie in Erwägung, einen externen ADC (z. B. ADS1115) mit dem ESP32 zu verwenden oder stattdessen einen Arduino zu nutzen, der einen zuverlässigeren ADC besitzt. Wenn Sie den ESP32-ADC dennoch kalibrieren möchten, verweisen Sie auf ESP32 ADC Calibration Driver.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!