The probe, wired and watching.

A ten-dollar fermentation temperature probe: an ESP32, a DS18B20, and this page. Web Bluetooth, no server, nothing recorded.

The parts

As built, about $10: an ESP32 dev board (≈$5–8), a DS18B20 waterproof probe (≈$2), a 4.7 kΩ resistor (pennies), and a breadboard or three wires. The sensor’s own convention for the wiring, straight from its datasheet:

red→3V3 black→GND yellow (data)→GPIO 4, with the 4.7 kΩ pull-up between data and 3V3

The firmware

Flash this with the Arduino IDE and the ESP32 board package; the libraries are OneWire, DallasTemperature, and the ESP32 BLE that ships with the board package. It is the standard pattern from those libraries’ own examples, assembled for the probe — verify on your own hardware before you trust a batch to it.


The dashboard

Connect the probe and this page reads it over Web Bluetooth: Chrome or Edge on desktop and Android (Web Bluetooth is not in iOS Safari — on a phone, the Android browsers carry it). The readings stay on your device: the page plots them, saves nothing, sends nothing.

not connected

the plot fills as the readings arrive · every two seconds, straight from the probe

The honest boundary: Web Bluetooth is a browser feature that some browsers decline to ship; if the button says so, the page will not pretend otherwise. And the probe is a maker’s tool: it logs temperature. Salt and time still come from the wizard, which checks the arithmetic against published ranges. Neither one can tell you a batch is safe.