← zpět

ESP32 + DS18B20 + relé: jednoduchý termostatický modul

2026-04-11

Ilustrační zapojení ESP32, OLED, DS18B20 a relé modulu
Jednoduchý termostatický modul: ESP32 čte DS18B20, zobrazuje stav na OLED a podle nastaveného limitu spíná relé.

Když potřebuješ rychle postavit dílenský termostat, hlídání skříně nebo jednoduché spínání ventilátoru či topení, kombinace ESP32 + DS18B20 + OLED + relé je praktický základ. Je levná, rychlá na oživení a jde snadno rozšířit o Wi‑Fi logování nebo webové rozhraní.

Doporučené zapojení

  • OLED SSD1306: SDA → GPIO21, SCL → GPIO22, VCC → 3V3, GND → GND
  • DS18B20: DATA → GPIO4, VCC → 3V3, GND → GND
  • Pull-up rezistor: 4.7 kΩ mezi DATA a 3V3
  • Relé modul: IN → GPIO27, VCC a GND podle typu modulu
Pozor na hardware: relé modul musí spolehlivě fungovat s 3.3V logikou. Když si tím nejsi jistý, dej tranzistorový stupeň nebo použij modul deklarovaný pro ESP32.

Proč zrovna DS18B20

DS18B20 je pro takový projekt rozumný kompromis. Nemá sice laboratorní přesnost, ale pro hlídání teploty skříně, vody, boxu nebo pomalého technologického procesu je dostatečný. Výhoda je jednoduché 1‑Wire zapojení a dlouhé roky prověřená podpora v Arduino toolchainu.

Doporučená logika programu

  • po startu načíst poslední nastavený limit z Preferences,
  • v pravidelném intervalu přečíst teplotu,
  • zobrazit aktuální stav na OLED,
  • spínat relé s hysterezí, ne přesně na jednom bodu,
  • při chybě senzoru přejít do bezpečného stavu.

Ukázka kostry kódu

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>

constexpr int PIN_ONEWIRE = 4;
constexpr int PIN_RELAY   = 27;

OneWire oneWire(PIN_ONEWIRE);
DallasTemperature sensors(&oneWire);

float targetTemp = 30.0f;
float hysteresis = 1.0f;

void controlRelay(float t) {
  static bool relayOn = false;
  if (!relayOn && t >= targetTemp + hysteresis) relayOn = true;
  if ( relayOn && t <= targetTemp - hysteresis) relayOn = false;
  digitalWrite(PIN_RELAY, relayOn ? HIGH : LOW);
}

Na co si dát pozor

  • Napájení — relé a ESP32 umí dělat špičky a resetovat celý modul.
  • Blokující smyčka — teplotu není potřeba číst každých pár milisekund. Čti ji třeba po 500 ms až 2 s.
  • Bezpečný stav — rozmysli, co se má stát při výpadku senzoru nebo restartu.
  • Silová část — relé kontakt není hračka. Oddělení nízkého napětí a spínané zátěže musí být fyzicky čisté.

Kde se to hodí

Větrání boxu, hlídání skříně s elektronikou, jednoduché spínání topného tělesa přes další stupeň, řízení ventilátoru nebo malé dílenské automatiky. Na rychlý prototyp výborné. Na dlouhodobý provoz už je potřeba řešit EMC, watchdog a kvalitní napájení.