8 ESPHome Projects for Beginners (With Complete Configs)


ESPHome turns a $5 ESP32 into a smart home device that integrates directly with Home Assistant. No cloud, no subscription, no app. These 8 projects are beginner-friendly and each one solves a real problem.

Not sure what ESPHome is? Read my ESPHome vs Tasmota comparison first.

What You Need for Every Project

No soldering needed for any of these. Everything connects with DuPont cables.

1. Temperature & Humidity Sensor

Cost: $8 total Extra parts: DHT22 sensor ($3)

The simplest useful project. Put one in every room for whole-house climate awareness.

esphome:
  name: room-climate
  friendly_name: Living Room Climate

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

sensor:
  - platform: dht
    model: DHT22
    pin: GPIO4
    temperature:
      name: "Temperature"
    humidity:
      name: "Humidity"
    update_interval: 60s

Wiring: DHT22 has 3 pins — VCC to 3.3V, GND to GND, DATA to GPIO4. That’s it.

2. Door/Window Sensor

Cost: $7 total Extra parts: Reed switch ($2)

A magnetic contact sensor. Mount the reed switch on the door frame, magnet on the door.

esphome:
  name: front-door
  friendly_name: Front Door

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO14
      mode: INPUT_PULLUP
      inverted: true
    name: "Door"
    device_class: door
    filters:
      - delayed_on: 100ms
      - delayed_off: 100ms

Wiring: One reed switch wire to GPIO14, the other to GND. The internal pull-up resistor handles the rest.

3. Motion Sensor

Cost: $7 total Extra parts: HC-SR501 PIR sensor ($2)

Basic motion detection. Not as fast as commercial Zigbee sensors, but dirt cheap.

esphome:
  name: garage-motion
  friendly_name: Garage Motion

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

binary_sensor:
  - platform: gpio
    pin: GPIO27
    name: "Motion"
    device_class: motion
    filters:
      - delayed_off: 30s

Wiring: PIR has 3 pins — VCC to 5V (not 3.3V), GND to GND, OUT to GPIO27. Adjust the two potentiometers on the PIR for sensitivity and timeout.

4. Light Sensor

Cost: $6 total Extra parts: BH1750 light sensor ($1)

Measure ambient light levels to trigger automations based on actual brightness, not just time of day.

esphome:
  name: room-light-level
  friendly_name: Living Room Light Level

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  - platform: bh1750
    name: "Light Level"
    address: 0x23
    update_interval: 30s

Wiring: BH1750 uses I2C — SDA to GPIO21, SCL to GPIO22, VCC to 3.3V, GND to GND.

Use case: “Only turn on lights if the room is actually dark” — much smarter than time-based triggers.

5. Water Leak Detector

Cost: ~$6 total Extra parts: Two bare wires (or a cheap water sensor module, ~$1)

Two exposed wires touching water completes a circuit. Simple and effective.

esphome:
  name: kitchen-leak
  friendly_name: Kitchen Leak Detector

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO34
      mode: INPUT
    name: "Water Leak"
    device_class: moisture
    filters:
      - delayed_on: 2s

Wiring: One wire from GPIO34, one from GND. Lay both exposed ends flat under the sink where water would pool. When water bridges the gap, the sensor triggers.

6. Bluetooth Proxy

Cost: ~$5 (just the ESP32) Extra parts: None

Turn your ESP32 into a Bluetooth Low Energy (BLE) proxy that extends Home Assistant’s Bluetooth range throughout your house. Great for tracking BLE devices, plant sensors, and Switchbot devices.

esphome:
  name: ble-proxy-living-room
  friendly_name: BLE Proxy Living Room

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

esp32_ble_tracker:
  scan_parameters:
    active: true

bluetooth_proxy:
  active: true

Wiring: None. Just flash and place the ESP32 in a room where you need Bluetooth coverage. Power it with any USB charger.

7. Bed Occupancy Sensor

Cost: ~$12 total Extra parts: 2x FSR 406 force-sensitive resistors, 2x 10K resistors

Know who’s in bed for automations like goodnight routines, nightlight triggers, and morning routines.

I have a full detailed guide for this project with wiring diagrams and calibration instructions. You can also get the complete config pack ready to flash.

8. Smart Power Monitor

Cost: $8 total Extra parts: SCT-013 current transformer ($3)

Monitor how much power an appliance uses without modifying any wiring. The clamp goes around the power cable — no electrical work needed.

esphome:
  name: dryer-power
  friendly_name: Dryer Power Monitor

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

sensor:
  - platform: ct_clamp
    sensor: adc_sensor
    name: "Dryer Current"
    update_interval: 5s
    filters:
      - calibrate_linear:
          - 0 -> 0
          - 0.02 -> 5.0

  - platform: adc
    pin: GPIO36
    id: adc_sensor
    attenuation: 11db

Use case: “Dryer is done” notification. Same concept as the washing machine automation, but without needing a smart plug rated for dryer power.

Tips for All ESPHome Projects

  1. Use !secret for Wi-Fi credentials and API keys — never hardcode them
  2. Add a web_server component during development so you can check values in a browser
  3. Use OTA updates — flash once over USB, then update wirelessly forever
  4. Name devices by location (e.g., kitchen-climate, garage-motion) not by function alone
  5. Start with the simplest project (temperature sensor) to learn the ESPHome workflow before tackling complex ones

What’s Next

Once you’re comfortable with ESPHome:

  • Combine multiple sensors on one ESP32 (temperature + motion + light in one device)
  • Build a local voice assistant with an ESP32-S3-BOX-3
  • Create custom displays using OLED screens
  • Build custom smart switches and relays

For more project ideas and complete configs, check the products page where I sell ready-to-flash config bundles.