Problem: A ringing doorbell at the wrong time can wreck meals, naps, or a once in a life time moment (queue dramatic music). Furthermore, when you're away, how can you know whether you've had any visitors, packages, or neighbors stop by.
Solution: You need a way to route the switch off the doorbell, but still know if someone is delivering the pizza. Don't just cut the doorbell cord, leaving your friends hanging out in the cold, make it smart enough to send you a text or email you when they arrive. All while the baby is sleeping upstairs.
Brilliant yet ingenious, I think so.
My plan of getting the open source iDONT project off the ground:
Take the current doorbell system and break the connection after the 16-24VAC transformer. Relays controlled by an ESP32 connect:
- The doorbell and bell/ringer to the ESP32 for logging and sending information to a phone OR
- The doorbell and bell/ringer to the transformer for normal operation
The advantage of having the smarts at the transformer is that the system is powered off of the transformer...no full time battery operation and thus recharge.
By using a double pole relay, I can either connect the doorbell to the AC transformer (normal operation) or to the ESP32 to monitor when a doorbell is pressed without engaging/triggering the chime. The part I have not figured out is if it is possible to sense a doorbell press in normal operation with the ESP32 without many expensive components. Suggestions welcome. The best I have come up with so far is a AC current sensor connected to the ESP's ADC.
The cost of the prototype should be under $50 on top of the existing doorbell, chime and transformer. If this were to go to production, I would guess that the hardware would be under $10, given how few components are needed for a bare bones iDONT, but more for all the features I might have. Hackaday.io user Cdon raised the concern about the ESP32's WIFI signal strength. So, I may need an external antenna for some people's setups...more costs.
The following flow diagram describes the basic architecture of the software:
A webpage seems to be a good way to go for interacting with iDONT. It allows any smart device or computer to control it without having to write an app for Apple, Android, and computer devices. The ESP32 would serve up a webpage to enable and disable the iDONT and config it. I am not sure if the ESP32 will interact with an app or just sent alerts.
Here are some examples of code of ESP32 doing similar things:
From these examples, I am more confident that this hardware engineer can hack enough software together to make it work.
That said, security still is concern. One possible solution would be not to have this device on my network. Instead, as part of the of the initialization process, iDONT checks to see if the password is a default value and prompts for a change. Any issues with this method?? Commits welcome.
The Business Plan: See this log.
License: MIT Open Source
The following shows my plan to build the iDONT. This will be fun mixture of hardware and software.
- Install software to add the ESP32 to the Arduino IDE (done 4/1/17)
- Get the classic Blink example working (done 4/1/17)
- Control some relays (done 6/7/17)
- Build a hello world webpage and wifi setup (done 6/7/17)
- Build a webpage that controls the relays (done 6/7/17)
- Add email and/or texting to when the doorbell is pressed and in off/silent mode.
- Add logging abilities (bonus)
- Get Blink LED example working (done 4/1/17)
- Get any old relay switching (done 6/7/17)
- Find and buy the right relay
- Find and buy a doorbell kit to prototype with (done 6/7/17)
- Find and buy a AC to 5VDC power supply (not sure if will regulate before or after the doorbell transformer (done 6/11/17)
- Build the prototype doorbell, relay, ESP32, and power supply (done 6/11/17)
- Verify that the ESP32 can sense when a doorbell is...