Specifications
| Type | Resistive water sensor: bare loops of copper that water bridges. Reads condensed steam, breath, drops and splashes on its surface, not humidity in the air |
|---|---|
| Pattern | 7 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 |
| Circuit | 1 MΩ from SENSE to GND, 150 Ω from SENSE to SIGNAL, 100 nF from SIGNAL to GND. No chip, no LED, nothing to adjust |
| SIGNAL | Analog: 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 |
| Settling | Time constant 1 MΩ × 100 nF = 0.1 s at most. Powered from a pin, wait 500 ms before reading |
| Supply | Your 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 |
| Current | 0 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 wire | 3 of the 4: GND, VCC and SIGNAL. NC is connected to nothing on the board |
| Header | 4-pin right-angle male, 2.54 mm pitch: GND, VCC, NC, SIGNAL, with GND on the square pad |
| Board | 22.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 box | 1 × 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.
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
- GND to your board's GND.
- VCC to 3V3 on an ESP32, ESP32-S3 or Pico; 5V on an Uno.
- SIGNAL to A0 on an Uno, GPIO 34 on an ESP32, GPIO 4 on an ESP32-S3, GP26 on a Pico.
- 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.
