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.

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

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...
Read more »

iDONT_1.kicad_pcb

KiCAD work-in-progess

kicad_pcb - 51.00 bytes - 07/24/2017 at 04:30

download-circle
Download

iDONT_1.bak

KiCAD work-in-progess

bak - 24.58 kB - 07/24/2017 at 04:30

download-circle
Download

iDONT_1.sch

KiCAD work-in-progess

sch - 24.64 kB - 07/24/2017 at 04:30

blank
See BOM
download-circle
Download

iDONT_1-cache.lib

KiCAD work-in-progess

lib - 10.55 kB - 07/24/2017 at 04:30

download-circle
Download

iDONT_1.net

KiCAD work-in-progess

net - 20.12 kB - 07/24/2017 at 04:30

download-circle
Download

View all 8 files

  • 1 × Existing Doorbell system
  • 1 × 18-24 AWG wire
  • 1 × See iDONT prototype BOM.xlsx for latest Electronic Components / Misc. Electronic Components

  • Wrapping it Up (In a Box)

    David Spinden07/24/2017 at 12:46 0 comments

    One of the important details in making a product for the consumer market is the look.  Without spending a lot of time and or money, premade enclosures are a good option to get close.

    For this project, I am planning on starting with this enclosure:

    Bud Box's CU-1941 (Picture credit: Digikey)

    In addition to just a box, Digikey can customize itwith holes and add things like silk screen.  Nice.

  • KiCAD (or is it KEY-CAD??)

    David Spinden07/24/2017 at 04:44 0 comments

    I finally got around to making a proper schematic for what I am doing:I have also pushed all the KiCAD files to project's files. I hope to figure out version control with git soon.

  • iDONT Plan… but the Business Should Have One

    David Spinden07/24/2017 at 03:25 0 comments

      With over 12 years of designing electronics for manufacturing, I know I can build the hardware. On the embedded software size, Joel has 13 years of experience including the critical security training.  Together, we can take iDONT from concept to production ready. Here is how the business will run:

      1. Design a prototype circuit board. This means that the ESP chip is not soldered directly to the board, but “connectorized” to an ESP module board with headers. This allows for people with minimal soldering experience to build a working iDONT.
      2. Build, test, and debug the prototype iDONT using the prototype circuit board. This is both hardware and software. Shipping a robust working product from day one is key to success.
      3. Cerate detailed instructions.
      4. Sell 20 iDONTs on Tindie. Some would be fully assembled, programmed, and ready to go. Some would be a kit. And, finally a few would be just the circuit board. If the sale of the 20 units goes within two months, I believe that I have enough market/interest to…
      5. Create a production circuit board for manufacturing iDONT. This circuit board would have as few through-hole/hand soldered connections as possible to reduce cost. Additionally, using a SMT ESP module that has been FCC certified is about half the cost of a dev module that the prototype would use.
      6. Repeat steps two and three.
      7. Pursue Crowd Supply to get even bigger discounts by buying in quantity. Selling on Adafruit, Seeedstudio, Sparkfun, or Tindie (with the help of a contract manufacture) would be another option if Crowd Supply did not work out.  I want to help others with their doorbell woes, but need support to do so.  All these avenues offer so much behind the scenes help: setting up payment, shipping, making secure webpages, asking detailed questions that lead to better planning and ultimately success.

  • Captive Update

    David Spinden07/24/2017 at 03:04 0 comments

    I asked a buddy Joel, who is an experienced embedded programmer, to help with the project.  He came over this weekend and helped me get a captive portal working!  This is a huge step in making iDONT a consumer product rather than requiring programming the ESP module for a person's Wi-Fi credentials (SSID and password)  and upload the code.  With a captive portal, the iDONT broadcast it's own SSID and once you connect with your computer or smartphone, the iDONT asks for the credentials and flashes itself.  Great work tzapu and Joel!

    That said, this only works on an ESP8266, not on a ESP32.  Joel thought that with enough work, we could get it going on an ESP32, but given our requirements are small, everything will run just fine on a ESP8266.  As a bonus, the ESP8266 is also less expensive.  So, time to make a change.  

  • Current News

    David Spinden07/10/2017 at 21:09 0 comments

    I was honored to have a Hackaday front-page article of iDONT! Much better description of the project than I could ever come up with...

    I have been playing with a Non-Invasive Current Sensor that works with AC currents. Along with the ESP's built-in ADC and a conditioner circuit described here, doorbell presses when the doorbell is on/active can be detected. This would be good for logging and maybe additional smart home features which are beyond the scope of this project.

  • Relay On

    David Spinden06/27/2017 at 02:49 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 10 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