Esp32Cam and ESPHome: How to Monitor your dumb devices (washer, heater…) or even your plants

The ESP32-CAM Development Board is based on ESP32S chip and a 2MPixel (OV2640) camera.

It’s very little (40mm x 30mm), it’s very cheap (less than 10€) and it’s also easy to integrate (as we are going to see in this article). Said that, don’t expect high performance or realtime video streaming, you will obtain a low refresh rate and low resolution compared to any IP camera in the market, but still usable to monitor some room or dumb device on your home. That’s the way I’m going to use it: in front of my electric water heater thermostat to check temperature status. Obviously you can do the same with any other household appliance such as monitoring the end of the Washer machine cycle. Recently I’ve also used same system to monitor my plants (see photos at the end of this article)

What we need are an ESP32-CAM and a FTDI programmer board (plus some jumpers), they are also sold on bundle:

FTDI and ESP32Cam
Buy ESP32 and FTDI kit

The ESP32-CAM board doesn’t has an onboard USB-Serial converter, so we need the FTDI board in order to connect the ESP32-CAM to the PC and flash the ESPHome firmware.

Wiring diagram is very simple, my suggestion is to to use 5V supply and not 3.3V; I found that some boards doesn’t works properly with 3.3V. (also pay attention to the jumber on the FTDI, and select 5V mode)

ESP32-CAM and FTDI pinout
ESP32-CAM and FTDI wiring

Flash ESPHome Firmware

  • Open ESPHome Control Pannel
  • Click to Add a new Configuration
  • Fill in Name, in my example boiler-temperature-cam, and your WI-FI credentials
  • Click Next
  • Click SKIP THIS STEP
  • Select ESP32 device and click NEXT to complete the procedure
  • Finally click CLOSE
  • Back to main ESPHome Control Panel now should appears the new boiler-temperature-cam configuration
  • Click EDIT
  • Copy and Paste following code. The section highlighted in red is already present in your configuration due to previous steps, so you can add only the remaining part of the code.
  • Pay attention to replace you YOUR_SSID, YOUR_PSW and the name of your configuration (highlighted in bold)
  • Click SAVE
esphome:
  name: boiler-temperature-cam
  platform: ESP32
  board: esp32dev

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: "9e4905f0508602492cef8777d17d0542"

wifi:
  ssid: "YOUR_SSID"
  password: "YOUR_PSW"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Boiler-Temperature-Cam"
    password: "UPnSengsnc0t"

captive_portal:

esp32_camera:
  external_clock:
    pin: GPIO0
    frequency: 20MHz
  i2c_pins:
    sda: GPIO26
    scl: GPIO27
  data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]

  # the order of the data_pins is significant, don't mix up the order

  vsync_pin: GPIO25
  href_pin: GPIO23
  pixel_clock_pin: GPIO22
  power_down_pin: GPIO32
  resolution: 800x600
  name: boiler-temperature-cam
  idle_framerate: 0.1fps

output:
  - platform: ledc
    pin: GPIO4
    channel: 2 # channel 1 is used for esp32_camera
    id: led
light:
  - platform: monochromatic
    output: led
    name: espcam_02 light
  • Connect the FTDI USB cable to your PC
  • Click INSTALL
  • Click on Plug on this computer
  • Select the USB PORT and click CONNECT
  • The firmware upload should start. Some ESP32-CAM board requires to hold the RESET button (placed close to the 5V and GND PIN) during all the steps above until CONNECTING appears in the screen
  • Once the upload is completed you should see new ONLINE status on your configuration
  • Navigate from Home Assistant main menu to Configuration Integration
  • Home Assistant should prompt that has discovered the new device, click on the name boiler-temperature-cam
  • Click SUBMIT
  • Select an AREA for you device and click FINISH
  • New Device is ready and integrated. Two Entities are available, the camera feed and a switch for the onboard flash LED
  • Click ADD TO LOVELACE
  • This is the final results
  • Unplug your device from the PC and disconnect the ESP32-CAM from the FTDI.
  • What you need now is only a 5V power supply connected to pins 5V and GND on the ESP32-CAM board
  • As you can see from the image I usually connect a little MICRO-USB board to use a standard USB-Cable charger to feed 5V to my projects
  • Place the camera in front of your dumb appliance to monitor what it is doing while you are not watching him

While the cat’s away the mice will play

Someone, Somewhere … out of control

Or if you prefer to monitor how your plants grow up