← All Projects

Build a WiFi Temperature Monitoring Station with ESP32

Beginner Est. Time: 45 minutes Est. Total: $18.52

Create a real-time temperature monitoring system using an NTC thermistor and an ESP32 microcontroller. The ESP32 reads the analog voltage from a voltage divider, converts it to a temperature using the Steinhart-Hart equation, and serves live readings over WiFi to any device on your network. A foundational project for understanding analog sensors, ADC conversion, IoT data logging, and environmental monitoring.

Bill of Materials — Available in Our Shop

PartQty PriceTotal Status
ESP32-WROOM-32 DevKit (38-Pin, USB-C)
Microcontroller — reads temperature, serves data over WiFi
1 $8.99 $8.99 In Stock
NTC 5D-15 Thermistor
Temperature sensor — measures from -55C to +200C
1 $1.49 $1.49 In Stock
830-Point Breadboard + Jumper Wires + Power Supply Kit
Prototyping platform with power supply and jumper wires
1 $7.99 $7.99 In Stock
Subtotal (from our shop) $18.47
View Cart

Additional Parts Needed

These common parts are available at most electronics retailers. Estimated prices shown for budgeting.

PartQty Est.Total
10K ohm Resistor (voltage divider) 1 $0.05 $0.05
Est. external subtotal $0.05
Parts from our shop$18.47
Est. external parts$0.05
Est. Project Total$18.52

Step-by-Step Instructions

  1. Create a voltage divider on the breadboard: connect the 10K resistor from ESP32 3.3V to GPIO 34 (ADC input). Connect the NTC thermistor from GPIO 34 to GND.
  2. The voltage at GPIO 34 now varies with temperature. As the thermistor heats up, its resistance drops, changing the voltage ratio.
  3. Upload the ESP32 sketch via USB-C: read the analog value from GPIO 34 (0-4095 on ESP32's 12-bit ADC), convert to resistance using the voltage divider formula, then convert to temperature using the Steinhart-Hart equation.
  4. Open the Serial Monitor at 115200 baud. You should see temperature readings updating every second. Touch the thermistor with your finger to see the reading climb.
  5. Add WiFi capability: include the ESP32 WiFi library to create a simple web server that displays live temperature readings on any phone or computer on your network. Add threshold alerts that trigger when temperature exceeds a set limit.