close-circle
Close
0%
0%

iDONT (Internet Doorbell ON/off Trigger)

iDon't as in I don't want my doorbell to ring.

Similar projects worth following
I don't know about you, but the doorbell seems to ring at the wrong time at our house. It's time to find a way to mute the bell on demand some open source technology!

Using an ESP32 and a relay, the AC lines to the doorbell signal path are interruptible. A web page or app will handle the controls with an automatic timer reset planned.

Overview

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.


The Plan

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.

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.

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 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.

License: MIT Open Source

Milestones

The following shows my plan to build the iDONT. This will be fun mixture of hardware and software.

Software Milestones

  • 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)

Hardware milestones

  • 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 pressed and the transformer is not engaged (silence mode) (done 6/11/17)
  • Figure out how to sense a doorbell press when the transformer is engaged (normal operation) (bonus, very helpful for logging)
  • Install in our real house

The "Competition"

After deciding to take on my wife's challenge of killing the doorbell remotely, I did some digging into what is already out there....

Read more »

View all 6 components

  • Relay On

    David Spinden2 days ago 0 comments

    A week ago, I was one of the winners of the Internet of Useful Things Hackaday 2017 Contest! It is an honor to be selected. I was even written up in the in a HACKADAY.IO BITS....

    We've found useful Internet of Things things

    By Brian Benchoff

    To our shock and amazement, the Internet of Things can be useful, and it's more than just tweeting toasters and Internet-connected spy cameras. Check out the winners of the Internet of Useful Things phase of the Hackaday Prize which we announced yesterday.

    Just look at entries like the iDONT -- the Internet Doorbell On/Off Trigger. This is a project to connect your doorbell to the Internet, giving you the ability to turn the doorbell off for meals and naps, and send doorbell push notifications to your phone. [David Spinded] created this device with a relay and an ESP32 microcontroller. It's so simple and so brilliant we're shocked this isn't a commercial product yet.

    ---

    Thanks Brian for describing my project better than I did!

    Enough celebrating....get back to work....

    One thing that I have been struggling with is what relay to use. I have been running into an issue with the relays freezing up and I think I know why now. I have been using two relays (one for the line and one for the neutral) and controlling them with two different microcontroller pins. While in the code, the command to change the IO state happens one after another, it is not instant. I am thinking now that the relays were freezing because half of the doorbell was on AC and half on DC for long enough that the load side of the relays were seeing some "crazy" things and not switching.

    By using the same microcontroller IO the relays will be switched at the same time. To address the 12mA drive limit of the ESP32 a transistor will be used off the IO to switch the relays.

    So, I believe now that I can use relays that are inexpensive and widely available, for example the Songle SRD-05VDC-SL-C. These relays are in so many relay modules that are under $5 on ebay, or in piece parts for under $0.25 with free shipping. This certainly beats paying ~$10 for a high power SSR. While I have done a bit of testing of this, I need to completely prove this out.

    Until next time, happy hacking.

  • Putting the D in details

    David Spinden06/12/2017 at 03:10 0 comments

    My wonderful wife gave me some extra time this weekend to work on iDONT. I was able to put all the modules together and now it is time for documentation. After being awakened by a doorbell last week myself, I have some good motivation to get this project closer to the finish line. Here is a video of where the project is at:

    This block diagram gives a good overview.:

    One big thing to note is the constant current DC converter. I plan on setting the current limit low so that when the iDONT is set to turn off the doorbell, the low voltage converter is powering the doorbell. When the doorbell is pressed, the resistance changes and we can monitor if the doorbell has been pressed.

    The ESP32 software is coming along, but not ready for prime time. Here is a screenshot of where I am at:

    Here is the link to the code for the above software: GitHub. I have been able to get time as well in order to set a auto turn back on function, but still it needs work.

    Here is my scanned in log book over the past few weeks:

    Until next time, happy hacking!

  • Back to Working

    David Spinden06/07/2017 at 01:26 0 comments

    After lots happening in my personal life, I am back with an update on the iDONT: it works!


    The basic function of a doorbell disconnect using a relay that can be controlled via a web browser. The page is simple enough that it works fine on a smartphone.

    The code is located here: https://github.com/SpinInven/iDONT/blob/master/ESP32_iDONT_basic_webserver.ino

    I am shocked how easy it was to develop the software. There is a growing number of examples and tutorials and I hope the above example helps someone else. I am pleased with the progress with everything except for the security. It is just whatever comes with the basic Arduino wifi example...less than ideal. I don't fully understand what the webserver is doing. This means that I have a long road head for security...no wonder so many products are lacking security, deadlines don't seem to allow for such dives. While I don't mind if people know the status of my doorbell, it is something I plan on addressing.

  • Blinking World

    David Spinden04/03/2017 at 02:14 0 comments

      Last night, I was able to get my ESP32 Dev Board to blink an LED. While this is no major feat, I was happy that the process went smoothly. In case you have not run through the process before, here is how I did it:

      1. Followed the installation guide for “Ardunino core for ESP32 WiFi chip” (thanks to http://esp32.net/ for the link), I installed all the software for the ESP32.
      2. Opened the Arduino IDE
      3. Opened the Blink example
      4. Changed the default pin for LED from 13 to 5
      5. Connect a 500 ohm resister (I used two 1K resistors in parallel) to pin 5 and to the positive end of an LED. The negative end of the LED goes to ground.
      6. Connect the ESP32 to the computer via USB.I had to go to my Window’s control panel and update the driver before it told me the correct COM port.
      7. Set the Board and Port in the Tools directory of the Arduino IDE
      8. Compile and upload the code to the ESP32. This took a several minutes on my machine and I got an error with something about an exit 1. I ignored the error when I…
      9. Watch the excitement of the LED blinking.

      Next up is the controlling the relays. I will also figure out if the error is anything to be concerned about.

  • Requirements for Making iDONT Likeable

    David Spinden03/23/2017 at 01:49 0 comments

      So my wife has been putting a note by the doorbell "please knock, sleeping babies." Simple, effective, but I think we can do better.

      What would be helpful in an Doorbell disabler device?

      1. Ease of use. Sure, it can be Internet enabled, but if it requires a big software setup and registration it is not easy to use. The software should also be simple. If the hardware takes a professional to install the physical device, it is too difficult to use.
      2. The device and software should not require a lot of attention. Charging a battery every few days is too much. I would like at least a month, if not AC powered to be always on.
      3. A "snooze" feature where the doorbell can be disabled for one to four hours and then automatically enabled again.
      4. A log feature if any doorbells rings occur while disabled.
      5. A "route to phone" feature that alerts a phone instead of the doorbell.
      6. Not expensive or power hungry.
      7. Open source!

      Anything else? I am sure that I will be adding more as I think of it.

View all 5 project logs

  • 1
    Step 1

    Gather all parts from the parts list. To make things easier, most items are modules so a breadboard or perfboard will work instead of needing a custom-designed circuit board.

  • 2
    Step 2

    Following the diagram below for hooking up all of the components.

  • 3
    Step 3

    Download software into the ESP32 as outlined in the second log.

View all 5 instructions

Enjoy this project?

Share

Discussions

David Spinden wrote 06/22/2017 at 02:34 point

Hi Doug, thanks for the suggestions.  I think I follow...

The main issue with this project is dealing with AC voltage and an ESP32 that only can handle 3.3V IO. I am hoping to be able to detect a doorbell press when the doorbell is enabled or disabled.  I have not discussed yet that I plan on using a current sensor when the doorbell is enabled. 

I also may not have been clear that I want the iDONT to be a self contained box that all a person has to do is remove existing wires off the transformer that go to the doorbell and connect the iDONT to the transformer and doorbell wires.  This goal makes it an easy project to install, but harder to design the iDONT box.  I agree there are other ways to do it, but I wanted to challenge myself. 

Regards,

David 

  Are you sure? yes | no

Doug wrote 06/20/2017 at 22:27 point

I suppose you could change the circuit so that the chime only chimes on control from an output pin the ESP32 and always route the door bell switch to an input on the ESP32. Then the firmware sees every button push and can log it and/or send the text to the user. If the normal operation is enabled, it also turns on the chime via the relay. You could add a normal switch to bypass the electronics, connecting the door bell switch to the chime, in situations where there is some bug or problem with the ESP32 and/or code.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates