Zpět na články

ESP32 + DS18B20 – vodotěsný teploměr pro půdu i vodu

Jak připojit vodotěsnou sondu DS18B20 k ESP32 a měřit teplotu půdy, vody nebo vzduchu pomocí knihoven OneWire a DallasTemperature.

ESP32 + DS18B20 – vodotěsný teploměr pro půdu i vodu

Co je DS18B20?

DS18B20 je digitální teplotní senzor, který posílá teplotu rovnou jako číslo – žádný analogový převod, žádné rušení, žádná kalibrace. Prodává se také ve vodotěsném nerezovém pouzdře na dlouhém kabelu, což z něj dělá ideální volbu pro měření teploty půdy, vody v akváriu, bazénu nebo venkovní teploty.

Podle datasheetu měří v rozsahu −55 °C až +125 °C, má nastavitelné rozlišení převodu 9 až 12 bitů a v rozsahu −10 °C až +85 °C je uváděná přesnost ±0,5 °C. Napájecí napětí je 3,0 až 5,5 V, takže se dá bez problémů použít nejen s klasickým Arduinem, ale i s deskami pracujícími na 3,3 V, jako je ESP32.

Senzor komunikuje přes sběrnici OneWire – to znamená, že data tečou po jediném vodiči. Nespornou výhodou komunikačního rozhraní 1-Wire je připojení několika senzorů na jednu sběrnici, tedy na jeden signálový vodič.

Hlavní vlastnosti

  • Rozsah měření −55 °C až +125 °C, přesnost ±0,5 °C
  • Digitální výstup přes sběrnici OneWire
  • Vodotěsné nerezové pouzdro na kabelu
  • Napájení 3,0–5,5 V – kompatibilní s ESP32
  • Možnost připojit více senzorů na jeden pin

Potřebné komponenty

  • ESP32
  • Vodotěsná sonda DS18B20
  • Rezistor 4,7 kΩ (pull-up)
  • Propojovací vodiče
⚠️ Pull-up rezistor je nutný. U ESP32 musí být pull-up připojený na 3,3 V, ne na 5 V, protože GPIO piny nejsou určené pro 5V logiku.

Zapojení

Vodotěsná sonda DS18B20 má tři vodiče: červený (napájení), černý nebo modrý (zem) a žlutý (data).

Červený vodič připojte na 3,3V ESP32. Černý vodič připojte na GND. Žlutý (datový) vodič připojte na GPIO 4.

Mezi datový vodič (žlutý) a napájení (3,3V) zapojte pull-up rezistor 4,7 kΩ. Bez něj sběrnice OneWire nefunguje spolehlivě a senzor vrací chybové hodnoty.

⚠️ GPIO 4 je běžná a bezpečná volba, ale funguje i většina ostatních GPIO pinů. Vyhněte se pinům 34–39 – ty jsou pouze vstupní a nemají interní pull-up.

Schéma zapojení:

ESP32 3.3V → červený vodič (VCC)
ESP32 GND → černý vodič (GND)
ESP32 GPIO4 → žlutý vodič (DATA)

Pull-up: GPIO4 ──[ 4,7 kΩ ]── 3.3V

Instalace knihoven

V Arduino IDE otevřete Library Manager a nainstalujte dvě knihovny:

  • OneWire od Paula Stoffregena
  • DallasTemperature od Milese Burtona

Kód 1 – jednoduché čtení teploty

groundtemp.ino
1#include <OneWire.h> 2#include <DallasTemperature.h> 3 4// Datový vodič připojen na GPIO 4 5#define ONE_WIRE_BUS 4 6 7OneWire oneWire(ONE_WIRE_BUS); 8DallasTemperature sensors(&oneWire); 9 10void setup() { 11 Serial.begin(115200); 12 sensors.begin(); 13 Serial.println("DS18B20 senzor připraven"); 14} 15 16void loop() { 17 // požádej senzor o měření 18 sensors.requestTemperatures(); 19 20 // přečti teplotu z prvního senzoru (index 0) 21 float teplota = sensors.getTempCByIndex(0); 22 23 if (teplota == DEVICE_DISCONNECTED_C) { 24 Serial.println("Chyba: senzor odpojen"); 25 } else { 26 Serial.print("Teplota: "); 27 Serial.print(teplota); 28 Serial.println(" °C"); 29 } 30 31 delay(1000); 32}

Časté problémy

Senzor vrací hodnotu −85 °C nebo −127 °C
→ Chybí pull-up rezistor 4,7 kΩ mezi datovým vodičem a 3,3V
→ Špatné zapojení datového vodiče
→ Hodnota −127 °C znamená, že senzor není nalezen

Teplota se nemění nebo je nesmyslná
→ Zkontrolujte že pull-up je na 3,3V, ne na 5V
→ Ověřte pevné spoje – u nepájivého pole bývá problém s kontaktem

Funguje jen občas
→ Zkraťte propojovací vodiče
→ Ověřte kvalitu pull-up rezistoru (přesně 4,7 kΩ)

Více senzorů – některý chybí
→ Ověřte že každá sonda má pevný spoj na sběrnici
→ Zkontrolujte celkové napájení – při mnoha senzorech může být potřeba silnější pull-up

Možná rozšíření

  • Přidejte relé a vodní pumpu – automatické zavlažování podle teploty půdy
  • Kombinujte s DHT22 – kompletní monitoring teploty vzduchu i půdy
  • Přidejte OLED nebo TM1637 displej – zobrazujte teplotu bez počítače
  • Kombinujte s RTC DS1307 – logujte teplotu v čase a sledujte denní křivku
  • Přidejte MQTT – posílejte teplotu do Home Assistanta nebo na mobil
  • Postavte meteostanici – DS18B20 venku + BME680 pro kompletní data

Nakupte svoje ESP32 ještě dnes!

Doprava Zásilkovnou za 89 Kč
Platba dobírkou
Vrácení do 30 dnů
Omezené zásoby - skladem

ESP32-S3 DevKit USB-C

Kompletní vývojová deska s USB-C

240MHz dvoujádrový
WiFi 802.11 b/g/n
Bluetooth 4.2 + BLE
4MB Flash paměť
520KB SRAM
38 GPIO pinů
209za kus

Množstevní slevy:

1
Celkem
209
Objednat

Bezpečná platba při převzetí zásilky nebo online platba přes Comgate, a.s.