5.9.12

The Skype Video Doorbell

BY JEFF ROBERTSON

At new client meetings, half the time I introduce myself as a “professional nerd” - I have a real title, but professional nerd is just as accurate. And the thing about professional nerds is that they’re usually also personal nerds, too.

With that, I wanted to write about a personal project I completed recently - in part because I think it's cool, and also because it involves the side of development we don't get to do as often. Most of our creations at Carbon8 are digital, but not everyone knows we can do the more physical side of technology as well.

To start from the beginning, a few months ago my girlfriend encouraged me to do something special for myself for my birthday. I think she wanted me to go heli-skiing or something equally extreme - the type of things she would do. Unfortunately, her plan backfired.  After thinking a day or two, I told her I was going to design and build a video doorbell.

The rationale is that I'm on Skype all day at work.  If someone comes to my house unannounced (UPS, a neighbor, a friend I forgot I was hosting, etc.), they are probably showing up when I'm at work, and they may not have my phone number. The answer is to have the doorbell make the call for them.

In essence this is a pretty simple idea - hook Skype to the doorbell. Like most projects, it’s when you get into the actual implementation that things get interesting. What follows is half story, half instructions… just in case you feel like doing it yourself.

Ingredients:

  • 1 old computer - I found a Dell Optiplex on Craigslist for a whopping $50.
  • 1 wireless network card - Your computer should be so old and cheap that it doesn't have one.
  • 1 Teensy chip - This is a simple computer chip you can program via USB. It can be used for all sorts of projects that need to bridge the physical world to the digital world.
  • 1 webcam with mic
  • 1 set of speakers you don't mind destroying
  • Various mounting hardware depending on your specific situation

First things first, I had to figure out how to make a physical input (the doorbell) tell the computer to call me on Skype. This is where the Teensy comes in. I used a simple default program on the Teensy that makes the computer think it is a keyboard. Then, I had the Teensy wait for a button press (the doorbell). When it gets that signal, it sends a fake keypress to the computer - Ctrl + F12.

On the computer side of things, I used an old favorite, AutoHotkey. This program lets you write your own shortcuts for Windows. I use it every day to simplify opening programs - Win + W opens Word, for example. In this instance, I told AutoHotkey to look for Ctrl + F12 - that shortcut should launch a Skype callto command to call me.

Unfortunately, Skype doesn’t allow you to call someone with video automatically enabled. (Given the limited API, I don’t think Skype is a big fan of people automating its features at all.) No matter, I just had AutoHotkey call me on Skype, wait a moment, and then move the mouse to a certain position in the Skype window (the video camera button) and click. That gets me a phone call with video.

Finally, I had to think through all the little stuff, including:

  • What happens if someone rings the doorbell twice? Set the Teensy to only acknowledge one key press every 3 minutes.
  • How much energy will this use?
    Not much Ð there is no monitor and nothing else runs on the machine.
    I also set the computer to automatically turn off around 8 pm and back on at 8 am, so it only runs when I'm likely to be away from home.
  • Since there’s no monitor, how do I debug?
    Set up the computer to allow remote desktop and get it all networkified.
  • What happens if Skype updates itself and the video button location changes?
    Turn off automatic updatesÉ it's not like this needs the latest features.

Once I got this all running and tested, I hooked it up in the garage. A tiny hole behind my porch light allows the video and speaker wires to run out onto the porch. Here is the result:

Hooking the doorbell wires into the breadboard.

jeffpic1sml

Duct tape fixes (and mounts) anything.

jeffpic2sml

The computer is mounted inside the garage. I gave it a seatbelt.

jeffpic3sml

Drilling a hole for the camera and speaker wires.

jeffpic4sml

The mounted camera. (Apparently there was gum or something on my phone’s camera lens.)

jeffpic5sml

The doorbell comes online. I gave it a nice profile picture.

jeffpic6sml

My first test subject… and there’s still gum on my lens.

jeffpic7sml

And inside, I get the call.

jeffpic8sml

Jeff Robertson
written by JEFF ROBERTSON

Jeff Robertson is an entrepreneur and an online development expert with experience stretching back to dial-up. He is a partner and VP of Technology & Operations at Carbon8. On the development side, he helps bridge the gap between the technical and marketing worlds, and oversees technical infrastructure. On the operations side, he helps optimize team processes, manages finances and buys emergency coffee if the supply runs low.

share this
iamges