ANALOGbeginner

Steam Sensor

A TinkerBlock board that reads water on its surface: seven nested loops of bare gold, every other one on VCC, the rest held at 0 V by a 1 MΩ. Condensed steam, breath or a drop across the loops makes a divider, and SIGNAL rises from 0 V towards VCC. It is an analog output, it does not sense humidity in the air, and VCC must be your board's logic voltage.

Comes in this kit — not sold separately

Specifications

TypeResistive water sensor: bare loops of copper that water bridges. Reads condensed steam, breath, drops and splashes on its surface, not humidity in the air
Pattern7 nested rectangular loops, 0.4 mm wide, 0.20 to 0.35 mm apart, bare with a gold finish. 4 loops on VCC, 3 on SENSE, alternating
Circuit1 MΩ from SENSE to GND, 150 Ω from SENSE to SIGNAL, 100 nF from SIGNAL to GND. No chip, no LED, nothing to adjust
SIGNALAnalog: VCC × 1 MΩ / (1 MΩ + the water). 0 V dry, rising with how much water and how conductive, up to VCC. Read it on an analog pin
SettlingTime constant 1 MΩ × 100 nF = 0.1 s at most. Powered from a pin, wait 500 ms before reading
SupplyYour board's logic voltage on VCC: 3V3 on an ESP32, ESP32-S3 or Pico, 5V on an Uno. A soaked board puts VCC itself on SIGNAL
Current0 mA dry. Wet, at most VCC / 1 MΩ: 3.3 µA at 3.3 V, 5 µA at 5 V. A GPIO can power it
Pins to wire3 of the 4: GND, VCC and SIGNAL. NC is connected to nothing on the board
Header4-pin right-angle male, 2.54 mm pitch: GND, VCC, NC, SIGNAL, with GND on the square pad
Board22.4 × 30.4 mm, two 4.8 mm mounting holes 16 mm apart. The front prints ANALOG, the back DETECTS STEAM VIA MOISTURE
In the box1 × TK65 block. It also ships inside the TinkerBlock kits

What it does

It tells your board whether there is water on it. The gold rectangles across the top are the sensor: seven loops of bare copper, one inside the other, with every other loop on VCC and the loops between them held at 0 V by a 1 MΩ. Water that lands across a gap joins the two, and the voltage on SIGNAL rises.

Drag to turn it
The TK65. The gold loops are the sensor; the three parts turn water on them into a voltage. Turn it over for the back.

It reads water on its surface, not the air. Steam and breath register when they condense into droplets on a board cooler than they are, which is what DETECTS STEAM VIA MOISTURE on the back means. Humid air, however humid, reads 0.

The page this replaces said it read humidity, drew its loops as combs, offered either supply as though it suited any board, and said SIGNAL was a digital HIGH when steam was detected. SIGNAL is an analog voltage, from 0 V dry towards VCC as the loops get wetter.

Two things to know before wiring

  • VCC is your board's logic voltage. A soaked board can put VCC itself on your pin: 3V3 on an ESP32, an ESP32-S3 or a Pico, 5V on an Uno.
  • SIGNAL goes to an analog pin. Read it with analogRead. A digital pin calls a small reading LOW.

Wiring, in four lines

  1. GND to your board's GND.
  2. VCC to 3V3 on an ESP32, ESP32-S3 or Pico; 5V on an Uno.
  3. SIGNAL to A0 on an Uno, GPIO 34 on an ESP32, GPIO 4 on an ESP32-S3, GP26 on a Pico.
  4. NC to nothing: it is connected to nothing on the board.

Then analogRead(pin) is 0 dry and rises as water bridges the loops.

Where to start

The handbook below is nine short articles, each with a working figure. The first reading is the whole build in three wires and a few lines, and wet or dry powers it from a pin and turns the reading into a yes or a no.

For how it works, read water, not air and a divider made of water. If the reading is wrong, when the reading is wrong.

When it doesn’t work

Does it measure humidity?
No. Water vapour is a gas and conducts nothing, so the board reads 0 in air at any humidity. It reads liquid water on its loops: steam or breath that has condensed on it, drops, rain, a splash. For humidity in the air, use a humidity sensor such as the TK39 DHT22.
Is SIGNAL HIGH when it detects steam?
No. SIGNAL is an analog voltage, 0 V dry and rising as water bridges the loops, and a drop of condensate may lift it only a few per cent. Read it with analogRead on an analog pin, and decide in your sketch where wet begins.
Should VCC go to 3V3 or 5V?
To your board's logic voltage: 3V3 on an ESP32, ESP32-S3 or Pico, 5V on an Uno. A soaked board can put VCC itself on SIGNAL, so 5 V on VCC can be 5 V on a 3.3 V pin.
Will the traces corrode if I leave it powered?
Direct current through water slowly dissolves the positive electrode, but on this board the 1 MΩ keeps it to a few microamps, and only while water bridges the loops. Nobody has measured how long the gold-finished loops last under that. For a board left wet for long periods, power VCC from a pin only while reading, and wait 500 ms before each reading.
Why does it need half a second after switching on?
The 100 nF on SIGNAL fills through the 1 MΩ with a time constant of 0.1 s. Read after a few milliseconds and it is still filling, and the reading is low. Five time constants, 500 ms, is within 1 % of the final value.
Why does the same amount of water read differently?
Because what conducts is what is dissolved in the water. Condensed steam is nearly pure and reads low; tap water and rain carry more salt and read higher. Use the reading as wet or dry against numbers from your own board, not as a measurement.

The steam sensor handbook

9 articles · about 45 minutes

This page is the reference: what the part is, what it is made of, and the questions people arrive already asking. The handbook is the walk — the same part in the order somebody actually meets it.

The board

2 articles

Four pins of which three are wired, seven loops of bare gold on two nets, and three small parts that turn water into a voltage.

How it works

3 articles

It reads water on its surface, not the air. The water and a 1 MΩ make a divider, and a 100 nF makes a megohm readable.

Reading it

2 articles

Three wires and analogRead, then the same wires with VCC from a pin, and the half second it needs.

Using it

2 articles

A wet-or-dry detector with two thresholds, and the short list of reasons a reading is wrong.

Lessons using TK65

Each one is a working build, not a snippet.

Edit this page — content/modules/steam-sensor.mdx

Community

Questions about this product

See what other owners have asked, and read their solutions.

Ask a question ↗

Steam Sensor

Loading discussions…

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Modules and blocks on the forum →