Hacker News new | past | comments | ask | show | jobs | submit login

Interesting, I've recently done a bit of searching in this space to find a project that would fit for an idea I had: I'd like to use a raspberry pi zero w to listen for our doorbell. If the doorbell rings, it should do something (e.g. send an sms or turn on a light).

I couldn't really find anything, does someone know if a project like this exists? For the one listed here, I'm not sure if it is fast enough to run on a slow device like the W? Also, would it be able to detect audio in a continuous stream from say a microphone?




You're looking for a single-bit stream of information and very likely you can find it as an electrical signal inside your doorbell already.

I wanted to replace the sound my wireless doorbell made so I took the basestation apart and it was a very simple thing, with three chips: a radio (NRF51), a microcontroller (PIC) and a blob of epoxy on a separate board that was connected to the speaker. It took maybe half an hour of beeping and scoping to understand how the PIC and the sound maker communicated - in this case five pins to select one of 32 sounds, and one pin to trigger playback. I simply took the playback trigger pin and connected it to a small MP3 player module and moved the speaker from the internal sound maker to that.

If you can just attach wires to the button directly, it's even simpler.

Of course, if the object is to use a pi zero to do some DSP, this is missing the point. But there's a good chance it's the long way round if you want to solve the problem of knowing when somebody is at your door.


Same here, what I want to do is detect my dog barking excessively at people/cats/birds on the street and trigger my curtains to close for a few minutes... I've already got a wired camera in there so processing the audio seems easiest technically, but I can't help but think it's a really crazy waste of CPU time (even though it will be good for my neighbours).

I'd wondered if computing peak volumes per second would be a good enough proxy, then trigger action if the threshold is exceeded more than n times in 15 seconds... certainly seems like it should be way less compute intensive!


Or, you know, just wire in the doorbell button and be done?


If your doorbell is electric and plays a recording of chimes, it can be very straightforward to implement this yourself. Just off the top of my head I use FFTs (fast Fourier transform) of a known recording of the door bell limited to certain frequencies, normalized etc and compare it to the audio stream. This can be done in real time without any hardware acceleration. You can also go a bit further and implement something similar to the shazam algo.

If it's an "analog" door or a buzzer it will be trickier.


OMG dude. Your doorbell is already operated by a pushbutton switch. This is the cheapest and most reliable input device you will ever find




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: