The whole weather station is three parts
A XIAO ESP32C3 reads a temperature and humidity sensor and shows the reading as a colour on an RGB LED.

Free build sheet
The parts, every wire with its length and bend points, a bend guide, both sides of the board and checkboxes to track your progress. Print it or keep it open at the bench.
Open the build sheetWhat you need
9 parts on a perfboard 15 × 24 holes, plus hookup wire.
| Qty | Part | Where to buy |
|---|---|---|
| 1 | Ceramic Cap100nF C1 | Buy Ceramic Cap on Amazon |
| 1 | RGB LED (common cathode) Q1 | Buy RGB LED (common cathode) on Amazon |
| 2 | Resistor (axial)4.7k R1, R2 | Buy Resistor (axial) on Amazon |
| 1 | Resistor (axial)220 R3 | Buy Resistor (axial) on Amazon |
| 2 | Resistor (axial)100 R4, R5 | Buy Resistor (axial) on Amazon |
| 1 | Seeed Studio XIAO ESP32C3 U1 · Seeed Studio 113991054 | Buy Seeed Studio XIAO ESP32C3 on Amazon |
| 1 | I²C Breakout (4-pin) U2 |
Check every pin against the datasheet of the exact part in your hands before wiring.
As an Amazon Associate I earn from qualifying purchases.
Cut list
14 wires, 326 mm (12.8 in) in total, in the order the build sheet cuts them. Wire numbers match the build sheet. Each length includes 5 mm per end to go through the hole.
| Wire | Colour and net | Length | ||
|---|---|---|---|---|
| 6 | BlackLEDB G19 → G22 | G19 → G22 | 18mm | Straight |
| 12 | BlackGND J13 → D5 | J13 → D5 | 46mm | 25mm (90°) |
| 5 | BlueRED D14 → D11 | D14 → D11 | 18mm | Straight |
| 11 | BlueGND I18 → D21 | I18 → D21 | 30mm | 13mm (90°) |
| 10 | GreenGND J17 → J15 | J17 → J15 | 15mm | Straight |
| 4 | GreenBLU G13 → F11 | G13 → F11 | 18mm | 10mm (90°) |
| 1 | RedGRN E13 → E11 | E13 → E11 | 15mm | Straight |
| 13 | Red3V3 J20 → J16 | J20 → J16 | 20mm | Straight |
| 7 | RedSDA K13 → G9 | K13 → G9 | 30mm | 15mm (90°) |
| 3 | WhiteLEDR C19 → C21 | C19 → C21 | 15mm | Straight |
| 9 | WhiteSCL L13 → H11 | L13 → H11 | 25mm | 15mm (90°) |
| 8 | YellowSCL M15 → L15 | M15 → L15 | 13mm | Straight |
| 2 | YellowLEDG E19 → E21 | E19 → E21 | 15mm | Straight |
| 14 | Yellow3V3 I13 → E3 | I13 → E3 | 49mm | 9mm (45°), 31mm (90°) |
About this build
A weather station that's really three parts: a Seeed Studio XIAO ESP32C3, an I2C temperature and humidity breakout, and a common cathode RGB LED that shifts colour with the reading.
The sensor runs from the XIAO's 3V3 pin and talks over the XIAO's default I2C pins, SDA and SCL, which are labelled on the board. Three more XIAO pins drive red, green and blue through 220, 100 and 100 ohm resistors, and a 100nF ceramic sits across the 3.3V rail.
The two 4.7k resistors are optional I2C pull-ups. Most BME280 and AHT20 breakouts already carry them, so check your module and leave them off if it does. Power comes in over the XIAO's USB connector, so there's no separate power input on the board.
More builds
See all builds
VideoHow your ESP32 reads a 12V battery: the voltage divider
Two resistors scale a 12V battery down to a voltage an ESP32's 3.3V input can read safely, with a zener as a backstop.
6 parts · 9 wires
PowerSensors
VideoThe Clapper, recreated: lights that turn on when you clap
Clap once and an LED turns on, clap again and it turns off. A microphone, two transistors and one flip-flop chip.
14 parts · 24 wires
SensorsLights
VideoA laser tripwire alarm, like in the movies
Break the laser beam and a red LED and buzzer latch on until you press reset. A photoresistor and one 555 timer.
14 parts · 22 wires
SensorsGames and toys