ESP32 Bench
Boards: ESP32, S3, C3
Flash and monitor: Web Serial
← All projects

ProbeHarbor probe

Prebuilt sensor firmware from the ProbeHarbor project. Flash it from this page, then it finds a temperature sensor by itself and posts a reading every minute.

Starter15 min115200 baudBrowser flash
Board
Fig. 1. Pins this project uses on the ESP32-DevKitC V4, 38 pin. USB connector at the bottom.

Wiring

FromTo boardNote
Sensor VCC3V3
Sensor GNDGND
DS18B20 or DHT22 dataGPIO 44.7 kΩ pull-up to 3V3. Up to four DS18B20s share the line
I2C sensor SDAGPIO 21SHT31, BME280 or AHT20, found at boot
I2C sensor SCLGPIO 22
Leak contactGPIO 27Other wire to GND. Only read when enabled in setup
Door reed switchGPIO 26Other wire to GND. Only read when enabled in setup
Battery divider midpointGPIO 351:1 divider from a single Li-ion cell. Only read when enabled

Tested on this board

  • TestedBrowser flash, USB settings, Wi-Fi and first reading with a DS18B20 (firmware 1.0.1)
  • TestedDHT22 on GPIO 4 (firmware 1.1.1)
  • TestedBME280 on I2C: temperature, humidity and pressure (firmware 1.2.2)
  • TestedSHT31 on I2C (firmware 1.2.3)
  • TestedDoor reed switch, with a post on every change (firmware 1.2.3, 2026-10-29)
  • TestedAHT20 on SDA 21 / SCL 22 (firmware 1.2.6, 2026-11-11)

Parts

QuantityPartWhere to buy
1×ESP32 dev boardBuy at Amazon
1×or ESP32-S3-DevKitC-1Buy at Adafruit
1×or ESP32-C3-DevKitM-1Buy at Adafruit
1×DS18B20 waterproof probe, or a DHT22Buy at Adafruit
1×4.7 kΩ resistor, pull-up for the probe data lineBuy at Amazon
1×Optional I2C sensor: SHT31Buy at Adafruit
1×Optional I2C sensor: BME280Buy at Adafruit
1×Optional I2C sensor: AHT20Buy at Adafruit
1×Optional door reed switchBuy at Adafruit
2×Optional 100 kΩ resistors, battery dividerBuy at Adafruit

Amazon buy links may include an Associates tag, and this site may earn a commission from qualifying Amazon purchases at no extra cost to you. Adafruit links are direct.

Load it

This browser cannot flash. Use Chrome or Edge on a desktop.

Flashing needs a secure page. Open this site over https or from http://localhost.

One image per chip family: ESP32, ESP32-S3 and ESP32-C3. The installer detects which one is connected.

  1. Create a device at probeharbor.dev to get a device key.
  2. Keep the board on USB and send Wi-Fi and the key with the form below.
  3. No computer nearby? Join the ProbeHarbor-Setup Wi-Fi network from a phone and fill in the portal instead.

The probe has no settings after a flash. Fill these in with the board still on USB. They go straight to the board and are not stored by this site.

Extra inputs to readOnly tick what is wired. An unwired pin reads as dry or open. Leak and battery are not hardware tested yet.

Firmware source on GitHub

Field notes

  • Flashing writes a merged image at offset 0, which also erases saved Wi-Fi and the device key. Send settings again after every flash.
  • TT post -5 means the reply was lost, not the reading. In testing the server had stored both readings that printed -5.
  • An I2C sensor that is found at boot but then prints TT sensor problem usually has a loose power or ground wire. That was the cause when it happened on the S3.
  • Hold BOOT for five seconds to erase Wi-Fi and the key. Feather boards have no button on GPIO 0, so resend settings instead.
  • On a Feather, probe data on GPIO 4 is the pad marked A5 and the door input on GPIO 26 is A0.

Not tested yet

  • Leak and battery inputs on any board
  • Setup portal and the five-second BOOT reset
  • DS18B20 on the S3 and C3, and any I2C sensor on the C3
  • UART port on the S3 and on a C3 DevKitM-1
  • A long unattended run on the S3