ESP32 - Verwarmingssysteem

In deze gids leert u hoe u een verwarmingssysteem maakt dat de kamertemperatuur regelt met behulp van een ESP32, een DS18B20 temperatuursensor en een verwarmingselement. Het werkt heel eenvoudig: als het in de kamer te koud wordt, schakelen we het verwarmingselement in en zodra het warmer is, schakelen we het weer uit. U kunt de code aanpassen om samen te werken met andere temperatuursensoren zoals de DHT11, DHT22 of LM35, zodat u flexibel bent in het kiezen van de sensor die bij uw wensen past.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×DS18B20 Temperatuursensor (MET adapter)
1×DS18B20 Temperatuursensor (ZONDER adapter)
1×4,7 kΩ weerstand
1×Relais
1×Verwarmingselement
1×12V Voedingsadapter
1×(Optioneel) DC Power Jack
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
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.

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 Verwarmingselement en DS18B20 Temperatuursensor

Het verwarmingselement dat we in deze handleiding gebruiken werkt op een 12-volt voedingsspanning. Wanneer er stroom wordt geleverd aan het verwarmingselement, genereert het warmte. Om het verwarmingselement met de ESP32 te kunnen aansturen, gebruiken we een relais. Dit relais fungeert als een schakelaar waarmee de ESP32 het verwarmingselement aan of uit kan zetten indien nodig.

Als u meer wilt weten over de temperatuursensor en het verwarmingselement (zoals pinout, werking, en programmeren), bekijk dan de volgende tutorials:

Bedradingsschema

  • Bedradingsschema met breadboard (experimenteerprint)
ESP32 verwarmingssysteem bedrading schema

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met adapter (aanbevolen)
ESP32 temperatuursensor regelt verwarmingssysteem bedrading schema

This image is created using Fritzing. Click to enlarge image

Hoe het systeem werkt

  • De ESP32 leest de temperatuur uit de temperatuursensor
  • Als de temperatuur onder een lagere drempelwaarde zakt, schakelt de ESP32 het verwarmingselement in
  • Als de temperatuur boven een hogere drempelwaarde stijgt, schakelt de ESP32 het verwarmingselement uit

Bovenstaand proces wordt continu herhaald in een lus.

ESP32 Code voor het verwarmingssysteem met DS18B20 sensor

/* * 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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold #define SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DS18B20 sensor's DQ pin #define RELAY_PIN 18 // ESP32 pin GPIO18 connected to relay OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the heating element on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the heating element off"); digitalWrite(RELAY_PIN, LOW); // turn off } delay(500); }

In de bovenstaande code schakelt de ESP32 het verwarmingselement in wanneer de temperatuur onder de 15°C daalt en laat het element aan tot de temperatuur boven de 20°C komt.

Snelle Stappen

  • Als dit de eerste keer is dat u een ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in de Arduino IDE.
  • Doe de bedrading zoals te zien in bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro-USB kabel
  • Open de 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 linker balk van de Arduino IDE.
  • Zoek in het zoekvak naar “DallasTemperature” en selecteer de DallasTemperature library van Miles Burton.
  • Klik op Install om de DallasTemperature library te installeren.
ESP32 Dallas Temperature library
  • U wordt gevraagd om de afhankelijkheid te installeren. Klik op de Install All knop om ook de OneWire library te installeren.
ESP32 onewire library
  • Kopieer de bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de ESP32 te uploaden
  • Maak de omgeving rond de sensor warmer of kouder
  • Controleer de temperatuur van het verwarmingselement en de kamer

Geavanceerde Kennis

De hierboven gebruikte aansturing is een aan-uitregelaar, ook wel bekend als een signaalregelaar of "bang-bang" controller. Deze methode is erg eenvoudig te implementeren.

Er is een alternatieve methode genaamd de PID-regelaar. Met de PID-regelaar is de gewenste temperatuur stabieler, maar deze is veel ingewikkelder te begrijpen en te implementeren. Daarom is de PID-regelaar minder populair voor temperatuurregeling.

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