Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

ESP32 DS18B20: Wi-Fi Smoker Thermometer Alerts | ShillehTek

May 26, 2026 21 views

ESP32 DS18B20: Wi-Fi Smoker Thermometer Alerts | ShillehTek
Project

Build an ESP32 DS18B20 Wi-Fi BBQ thermometer with OLED readout and Telegram alerts, so you can monitor long smoker cooks remotely with ShillehTek.

1.5 hr Intermediate6 parts

Project Overview

ESP32 + DS18B20 Wi-Fi BBQ / smoker thermometer: A waterproof DS18B20 probe measures meat or smoker temperature while an ESP32 shows it on a small OLED and sends a Telegram alert when your target temperature is reached.

This build is designed for long cooks so you can step away and still get notified the moment the food is ready.

  • Time: ~1.5 hours
  • Skill level: Intermediate
  • What you will build: A Wi-Fi-connected meat thermometer with OLED display and Telegram alerts.
ESP32 BBQ thermometer with DS18B20 probe and OLED display used for smoker temperature monitoring
DS18B20 waterproof probe + ESP32 + OLED + Telegram alerts.

Parts List

From ShillehTek

External

  • 4.7kΩ resistor - required 1-Wire pull-up resistor for the DS18B20 data line
  • 18650 cell - optional battery for portability
  • Telegram bot token + chat ID - required for Telegram notifications

Note: The DS18B20 probe is rated 0 to 125°C, which is suitable for meat and smoker chamber temperatures. The stainless steel sheath is food-safe, but wipe it with food-safe sanitizer before each use.

Step-by-Step Guide

Step 1 - Inspect the probe

Goal: Confirm you have a waterproof DS18B20 probe and understand its role in the build.

What to do: Check the cable jacket and stainless tip for damage. Identify the three probe wires used for power, ground, and data (your probe colors may vary).

DS18B20 waterproof temperature probe used with an ESP32 for BBQ and smoker temperature sensing
1m stainless steel waterproof DS18B20 probe.

Expected result: You are ready to wire the DS18B20 to the ESP32 using a 1-Wire pull-up resistor.

Step 2 - Wire the ESP32, DS18B20, OLED, and buzzer

Goal: Connect the temperature probe, OLED display (I2C), and buzzer to the ESP32.

What to do: Make the connections below. Add the 4.7kΩ pull-up resistor from the DS18B20 data line to 3.3V.

Wiring diagram showing ESP32 connected to a DS18B20 temperature probe on GPIO 4 with 4.7k pull-up, SSD1306 OLED on I2C GPIO 21 and 22, and buzzer on GPIO 13
Probe data to GPIO 4 (with 4.7kΩ pull-up). OLED on I2C. Buzzer on GPIO 13.
  • Probe red to 3.3V, black to GND, yellow to GPIO 4 (with 4.7kΩ to 3.3V)
  • OLED VCC to 3.3V, GND to GND, SDA to GPIO 21, SCL to GPIO 22
  • Buzzer signal to GPIO 13, GND to GND

Expected result: All modules are powered from 3.3V and share a common ground, and the DS18B20 data line has a pull-up resistor.

Step 3 - Upload the sketch

Goal: Program the ESP32 to read the DS18B20, display the temperature on the OLED, and send a Telegram alert at the target temperature.

What to do: Install the required libraries in your Arduino IDE, then paste and upload the sketch. Replace SSID, PASS, TOKEN, and CHAT with your Wi-Fi and Telegram details.

ESP32 controller board used for a DS18B20 BBQ thermometer build, ready to be placed in a small enclosure
Compact ESP32-based controller suitable for a small project box.

Code:

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

const char* SSID="WIFI", *PASS="PWD", *TOKEN="BOT", *CHAT="CHAT";
const float TARGET = 95.0;   // target meat temp (e.g. brisket)
const int BUZZ = 13;

OneWire bus(4); DallasTemperature ds(&bus);
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
WiFiClientSecure client;
UniversalTelegramBot bot(TOKEN, client);
bool alerted = false;

void setup() {
  Serial.begin(115200); ds.begin();
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  pinMode(BUZZ, OUTPUT);
  WiFi.begin(SSID, PASS);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
}

void loop() {
  ds.requestTemperatures();
  float t = ds.getTempCByIndex(0);

  oled.clearDisplay(); oled.setTextSize(3); oled.setCursor(0, 8);
  oled.setTextColor(SSD1306_WHITE); oled.print(t, 1);
  oled.setTextSize(1); oled.setCursor(70, 50);
  oled.print(t >= TARGET ? "READY" : "...");
  oled.display();

  if (t >= TARGET && !alerted) {
    bot.sendMessage(CHAT, "🥩 Meat is ready! " + String(t,1) + "C");
    tone(BUZZ, 1500, 500); delay(700);
    tone(BUZZ, 1500, 500);
    alerted = true;
  }
  delay(1000);
}

Expected result: The OLED shows the current temperature, and when the reading reaches TARGET, the buzzer sounds and a Telegram message is sent once.

Step 4 - Build the enclosure

Goal: Package the electronics so they can sit outside the smoker while the probe stays inside.

What to do: Place the ESP32, OLED, and buzzer in a heat-resistant enclosure. Route the probe cable through a grommet or strain relief so the cable is protected.

ESP32 BBQ thermometer electronics mounted in a heat-resistant enclosure with DS18B20 probe cable routed through a grommet
Heat-resistant enclosure with probe cable routed through a grommet.

Expected result: A portable controller you can place safely away from heat and moisture.

Step 5 - Use it during a cook

Goal: Monitor meat temperature in real time and receive an alert when it is ready.

What to do: Insert the DS18B20 probe into the meat (or position it where you want to measure chamber temperature). Keep the ESP32 enclosure outside the smoker. Power the device and connect it to your Wi-Fi network.

OLED display showing live temperature reading from a DS18B20 probe while the ESP32 sits outside a smoker
Live temperature on the OLED, with Telegram alerts when target is reached.

Expected result: You can read temperature on the OLED, and you receive a Telegram notification when the temperature crosses the target value.

Step 6 - Optional next improvements

Goal: Extend the project after the basic build is working.

What to do: Consider adding features such as a second probe, data logging, or active temperature control.

  • Add a second probe to track meat and smoker chamber temperature
  • Log data over time for low-and-slow cook curves
  • Add a relay-controlled fan for active smoker temperature control
  • Pair with a meat-doneness lookup table (brisket 93°C, pork shoulder 88°C, chicken 74°C)

Expected result: A clear path to expand the project while keeping the current build as the foundation.

Conclusion

You built an ESP32 and DS18B20 Wi-Fi BBQ / smoker thermometer that displays live temperature on an SSD1306 OLED and sends a Telegram alert at your target temperature. This makes long cooks easier because you can monitor the temperature without standing by the smoker.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services. Reference inspiration: Instructables.