Live · ESP32 → Firebase → React

A live window into a room’s air, light & motion.

A physical sensor node measures a real room and streams it to the web. Watch the temperature, humidity, ambient light and movement update in real time — and embed the live readout anywhere.

GPIO 4SDA21·SCL22GPIO 13R25 G26 B273V3·GNDESP32upesy_wroomWi-Fi · RTDBDHT22temp · humidityBH1750ambient lightPIRmotionRGB LEDSystem OK
Live temperature
0.0°C
OptimalLIVE
What it does

An instrument panel for a living space

A two-part IoT system. A physical ESP32 node measures the room and pushes readings to Firebase Realtime Database; this React dashboard subscribes live, reads the room’s quality, and can be embedded into other sites.

Real-time sensing

Temperature, humidity, ambient light and motion — sampled every 60 seconds and streamed live from the room.

Environment quality

Automatic Optimal / Too Hot / Too Dry / Too Dark analysis, tuned for a comfortable place to focus and work.

History & trends

A rolling one-hour chart, summary averages and a motion timeline — the room’s recent story at a glance.

Embeddable widgets

Drop a live widget into any website with one line of HTML. Configurable by URL, transparent or solid.

Dark & light

A calm, ambient theme in both modes that encodes the room’s state in colour — readable at a glance.

Open hardware

An ESP32 node with DHT22, BH1750 and a PIR sensor — fully documented and reproducible from scratch.

The hardware

One ESP32, four senses

The schematic up top is the whole build. Here is the exact connection map — every peripheral shares the 3.3V and GND rails — plus what the onboard status LED is telling you.

DHT22
temperature + humidity
GPIO 4
data line · 3.3V
BH1750
ambient light
SDA 21 · SCL 22
I²C · 3.3V
PIR sensor
motion
GPIO 13
active-low (!digitalRead)
RGB LED
status indicator
R 25 · G 26 · B 27
onboard signal
Power
rails
3.3V / GND
PIR Vcc may need 5V
Status-LED legendonboard RGB
System OK
solid green
Connecting to WiFi
blue blink
Sensor error
red blink
Firebase error
red / blue alternating
Motion detected
green + blue
PIR calibrating
blue blink · 30s
Initializing
white blink
Build your own

Recreate it in six steps