Help Needed: Wifi Doorbell Project (webcam, speaker, mic etc...)
Do you fancy a challenge? Imagine a wireless doorbell that sports the following features:
- When someone presses the doorbell, an image is taken and sent to all your devices using pushbullet
- Or hell, why not add a cheapo PIR and it sends out an alert with a picture before the person has even pressed the button (and thus decide to ignore them or not)
- Or play back a pre-recorded message (sorry I'm washing my hair, leave it on the doorstep)
- You can have a conversation with them remotely, ideally from just a web browser! (maybe you're not even in the same country!)
- And that conversation is had while you can see them on a web camera connected to the Omega
- You can trigger a remote door lock to open close using a button in a web app.
- The same for an outside light or porch light
This a project I'm about to have a stab at using the Onion Omega. I'm super excited because of 4 things
#1 The formfactor of the Omega makes it an ideal choice
#2 All the components are inexpensive & readily available (PIR sensor, USB hub, USB drive, speaker, USB web camera and a USB sound adapter)
#3 I have a 3D printer so making a finished product that I'd want at my door is actually achievable (have basic CAD abilities)
#4 I have no idea how this will be coded, even which language. PHP is an obvious one for me, but I'm open to suggestions!
My progress so far
I've played with the "fswebcam app", that works super well for taking screenshots, eg this works very well in PHP:
$result = exec('fswebcam -c /root/fswebcam/fswebcam.conf --skip 2 --save /root/fswebcam/doorcam-' . $timenow . '.jpg 2>&1', $output, $return);
Similarly mjpg_streamer works brilliantly as well on the Onion (a country mile better than on a Pi B+)
mjpg_streamer -i "./input_uvc.so -f 30 -r 1280x720 -d /dev/video0" -o "./output_http.so -w ./www -p 8080" -b
So we have a tool to use to take pictures, another tool to stream a webcam and I know pushbullet works a treat to push out notifications to phones, ipads and desktops as I'm already using that on a PIR/web enabled doorbell using a ESP8266.
I've just bought one of these http://www.amazon.co.uk/gp/product/B00YFD2S26 as it was cheap and looked like it might be just enough to run a small speaker (if not a simple amp is easy to build or buy off the shelf, ie eBay). Not played with that yet though!
So my questions for you:
Is there anything daft you feel I'm overlooking? Is there a technical issue I've not considered? How would you approach this?
Also thinking aloud....
We could have a default timer, so that if the person isn't replied to within say 10 seconds, a random, pre-recorded message is played back to them.
The actual device could be ceiling mounted or not even mounted in the same room and use the standard doorbell & the length of the web camera cord to keep the main device safe. One of my bug-bears with the off-the-shelf doorbells, they look like they can easily be stolen!
Where are you with this project Matt? I'm interested in doing the same.
If you're not opposed to Google products, I would look into Chromecast audio for a wireless audio streaming service through the Onion. The cool thing about the Onion is that it's a router and the Chromecast should connect seamlessly!!