ESP32 - TMP36 Temperatuursensor

In deze handleiding leert u hoe u de ESP32 programmeert om de temperatuur uit te lezen van de TMP36 sensor.

Hardware Benodigdheden

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×TMP36 Temperatuursensor
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de TMP36 Temperatuursensor

Pinout

De TMP36 temperatuursensor heeft drie pinnen:

  • GND pin: moet worden aangesloten op GND (0V)
  • VCC pin: moet worden aangesloten op VCC (5V)
  • +Vs pin: is de voedingsspanning voor de sensor en kan variëren tussen 2,7V en 5,5V
  • Vout pin: signaalpin die de uitgangsspanning levert welke lineair evenredig is met de temperatuur; deze pin moet worden aangesloten op een analoge pin van de ESP32.
TMP36 temperatuursensor Pinout

Hoe Het Werkt

De TMP36 geeft een spanning uit die lineair evenredig is aan de temperatuur in graden Celsius. De schaalfactor van de uitgang van de TMP36 is 10 mV/°C. Dit betekent dat de temperatuur wordt berekend door de spanning (in mV) op de uitgangspen te delen door 10.

Bedradingsschema

ESP32 TMP36 temperatuursensor Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe Te Programmeren Voor TMP36 Temperatuursensor

  • Verkrijg de ADC-waarde van de temperatuursensor met behulp van de functie analogRead().
int adcVal = analogRead(PIN_TMP36);
  • Zet de ADC-waarde om naar spanning (volt)
float voltage = adcVal * (3.3 / 4095.0);
  • Zet de spanning om naar temperatuur in graden Celsius
float tempC = (voltage - 0.5) * 100;
  • (Optioneel) Zet de temperatuur in Celsius om naar Fahrenheit
float tempF = tempC * 9 / 5 + 32;

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle Stappen

  • Als u voor het eerst met de ESP32 werkt, bekijk dan hoe u de omgeving instelt voor ESP32 in de Arduino IDE.
  • Voer de bedrading uit zoals op de afbeelding hierboven.
  • Verbind de ESP32 met uw pc via een micro-USB kabel.
  • Open de Arduino IDE op uw pc.
  • Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en juiste COM-poort.
  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de Upload-knop in Arduino IDE om de code naar de ESP32 te uploaden.
  • Houd de sensor met uw hand vast.
  • Bekijk het resultaat in de Seriële 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:

Deze handleiding gebruikt de functie analogRead() om waarden uit te lezen van een ADC (Analog-to-Digital Converter) aangesloten op een TMP36 sensor. De ADC van de ESP32 is geschikt voor projecten die GEEN hoge precisie vereisen. Houd er echter rekening mee:

  • De ADC van de ESP32 is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elke ESP32 bord kan iets verschillen, dus u moet de ADC voor elk individueel bord kalibreren.
  • Kalibratie kan lastig zijn, vooral voor beginners, en geeft mogelijk niet altijd de exacte resultaten die u wilt.

Voor projecten die hoge precisie vereisen, overweeg het gebruik van een externe ADC (bijvoorbeeld ADS1115) samen met de ESP32 of gebruik een Arduino, die een betrouwbaardere ADC heeft. Als u toch de ESP32 ADC wilt kalibreren, raadpleeg dan de ESP32 ADC Calibration Driver.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u fouten bij de bedrading en programmering te voorkomen.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!