ESP32 - Temperatuursensor

Deze tutorial legt uit hoe u met een ESP32 de temperatuur uitleest van een DS18B20 temperatuursensor en deze afdrukt op de Serial Monitor.

Hardware Benodigdheden

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×(Alternatief) ESP32 Uno-form board
1×(Alternatief) ESP32 S3 Uno-form board
1×USB-kabel Type-C
1×DS18B20 Temperatuursensor (MET adapter)
1×DS18B20 Temperatuursensor (ZONDER adapter)
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Optioneel) DC Power Jack
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 ESP32 Starterskit (ESP32 inbegrepen)
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.

Aankoopadvies: Veel DS18B20-sensoren op de markt zijn van lage kwaliteit. We raden u ten zeerste aan de sensor van het merk DIYables te kopen via de bovenstaande link. We hebben het getest en het werkte goed.

Over de One Wire Temperatuursensor - DS18B20

DS18B20 Temperatuursensor Pinout

De DS18B20 temperatuursensor heeft drie pinnen:

  • GND pin: verbind deze met GND (0V)
  • VCC pin: verbind deze met VCC (5V of 3,3V)
  • DATA pin: dit is de 1-Wire Data Bus. Deze moet worden aangesloten op een digital pin van de ESP32.

De DS18B20 sensor is verkrijgbaar in twee vormen:

  • TO-92 behuizing (lijkt op een transistor)
  • Waterdichte probe. Deze vorm gebruiken we in deze tutorial.
DS18B20 temperatuursensor Pinout

Het aansluiten van een DS18B20 temperatuursensor op een Arduino vereist vaak een pull-up weerstand, wat soms lastig kan zijn. Sommige fabrikanten hebben dit proces eenvoudiger gemaakt door een adapter te leveren met een ingebouwde pull-up weerstand en een schroefklem voor makkelijke aansluiting.

Aansluitdiagram tussen DS18B20 Temperatuursensor en ESP32

  • Hoe u de ESP32 en DS18B20 temperatuursensor aansluit met behulp van een breadboard.
ESP32 Temperatuursensor Aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

  • Hoe u de ESP32 en DS18B20 temperatuursensor aansluit met een breadboard en adapter.
ESP32 DS18B20 Aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Hoe ESP32 en temperatuursensor aansluiten
  • Werkelijk aansluitdiagram met adapter
ESP32 DS18B20 adapter aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Voor een eenvoudige aansluiting is het aan te raden een DS18B20 sensor te kopen met een bedradingadapter die een ingebouwde weerstand bevat, zodat u geen extra weerstand nodig hebt bij het aansluiten.

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-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 17 // ESP32 pin GPIO17 connected to DS18B20 sensor's DATA pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); float tempC; // temperature in Celsius float tempF; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures tempC = DS18B20.getTempCByIndex(0); // read temperature in °C tempF = tempC * 9 / 5 + 32; // convert °C to °F Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in °C Serial.print("°C"); Serial.print(" ~ "); // separator between °C and °F Serial.print(tempF); // print the temperature in °F Serial.println("°F"); delay(500); }

Snelle Stappen

  • Als u de ESP32 voor het eerst gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bedrading volgens bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Klik op het Libraries-icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek in het zoekvenster op “DallasTemperature” en zoek de DallasTemperature library van Miles Burton.
  • Klik op de Installeren-knop om de DallasTemperature library te installeren.
ESP32 Dallas Temperature library
  • U wordt gevraagd om de afhankelijkheid te installeren. Klik op Alles installeren om de OneWire library te installeren.
ESP32 onewire library
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar de ESP32 door op de Upload-knop in Arduino IDE te klikken.
  • Verhoog of verlaag de temperatuur van de sensor door de DS18B20 temperatuursensor met uw hand vast te pakken of deze in warm en koud water te dompelen.
  • Bekijk het resultaat in de Serial Monitor. Dit ziet er ongeveer als volgt uit:
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

※ 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!