§ Work

ESP32 doorbell

A doorbell that reaches my phone. Someone presses the button at the door and I get a notification, whether I am wearing headphones in the next room or not in the house at all.

Not built yet. This is the next one, and this page is the plan rather than the write-up.

The idea

Someone presses the button at my door, and my phone buzzes. That is the entire scope, deliberately: no camera, no video, no intercom, no app to install. One button, one notification.

Scope creep is what kills a first hardware project. A camera turns this from a button and a radio into power budgets, storage, bandwidth and somewhere to put the footage. That can be version two.

Why a doorbell

It is one input and one output, which makes it small enough to actually finish — and yet nearly every hard thing about embedded work turns up anyway: power, radio, and what the device does when the network is not there. Those are the parts you cannot learn from a blinking LED.

What I expect to be hard

Power. Mains-powered is easy and limits where the thing can go; battery means deep sleep, and deep sleep means the device is off when the button is pressed and has to wake, join wifi and send — on a budget that has to last months, not days.

Latency. Waking, associating with the access point, and completing a TLS handshake before anything is sent adds up. A notification that lands eight seconds after the press does not feel late, it feels broken — whoever pressed the button has already given up.

The network being down. The doorbell has one job and it needs to do it when the internet does not. That argues for leaving the existing chime wired and treating the notification as an addition rather than a replacement, so a dead router downgrades the doorbell instead of breaking it.

A press is not one press. Contact bounce turns one push into several, and someone leaning on the button should not send a dozen notifications.

Open questions

  • How the notification actually gets there — MQTT, an ntfy topic, a Telegram bot, or a webhook into Home Assistant
  • Mains or battery, and what that does to the enclosure
  • Whether it keeps the original chime in the loop
  • What it does when wifi credentials change, without needing a laptop and a cable at the front door