I recently started thinking about a “smart” garage door controller.

Functionality

I would like my “smart” garage to be able to:

  • Check if the garage door is either fully opened or closed
  • See if the car is in the garage
  • Open / close the garage door (using WiFi or Bluetooth)

With additional sensors and actuators it could also:

  • Record temperature and humidity
  • Detect (human) presence
  • Control lighting

Hardware

An ESP32 (perhaps running ESPHome) seems ideally suited for this job.

  • ESP32 with WiFi and BlueTooth
    • WiFi used for OTA updates and MQTT sensor data publication
    • (optional) Bluetooth can be used for remote open/close
  • Power suppply
    • Option 1: USB with additional power brick
    • Option 2: Power (12V DC) from garage opener unit
  • Sensors
    • HC-SR04 Ultrasonic sensor, car presence detection
    • Magnetic (reed) switches, garage door open / closed detection
    • BME280, I2C temperature / humidity sensor
    • LD2410C, I2C mmWave radar human presence detection
  • Actuators
    • potential-free relays: open / close the garage door, control lighting, activate siren etc.

The sensor unit will be mounted on the garage ceiling, near / on the garage door opener unit. The ultrasonic sensor looks downward, presence of a car will reduce distance to the floor.

Board selection

Instead of using separate boards with a power supply, an ESP32 and the relays, I found a LilyGO T-Relay board that provides:

  • 12-24V DC power input
  • ESP32 with WiFi and Bluetooth
  • 4x relays with optocoupler isolation, each capable of switching 6A at 250V
  • I/O pins available via pin header, including 3v3 / GND for additional sensors

The board is very reasonably priced at around €15 - plus €6.50 for a LilyGO T-U2T USB to TTL adapter, needed to program the board.

Software

Software and information for this board is available at github/Xinyuan-LilyGO. By default, the board comes with a simple sketch that switches each relay on and off when power is applied to the board. This is a nice starting point.

Development

I’m experimenting with the board and sensors. Stay tuned for further development ;-)

Updated: