Electronic – arduino – How to detect that the apartment door buzzer is being pressed

arduinorelay

I want to detect the button presses of my apartment's door buzzer. This is the button in the building lobby which, when pressed, plays a ringing/door bell sound in my apartment to alert me that someone is at the front door. I want to capture these button presses to send to an Arduino to eventually support some kind of secret morse-code like password to unlock the building's front door (note: I don't need help with triggering the door opening, just detecting the button presses).

The intercom in my apartment is a 4-wire intercom with standard door/talk/listen buttons. This is the circuit for the door buzzer as currently installed:

(terminal on central console in basement) -> (button switch in lobby) -> (intercom speaker in my apt) -> (other terminal on central console)

So there is no clean DC on/off signal for me to read; only the audio signal (kind of a vibrato tone) that goes straight to the speaker. What is the best way for me to detect when this circuit is closed? It would be especially nice if I could do this just by attaching leads on either side of the button switch, and not have to wire anything into the circuit in series.

FWIW, my multimeter reads DC 20V on either side of the switch when it is open and drops to 0V when closed. But given that there is an AC audio signal in the mix, I don't know how to interpret those numbers.

Best Answer

Connect a relay with a 24vAC coil in parallel with the buzzer. Use a NO (Normally Open) relay and when the buzzer button is depressed, you will have a closed circuit. If you run a 5v rail from your Arduino into the relay, then you can use an arduino input to read the 5v pulses that will occur when the relay is triggered from the buzzer button.

schematic

simulate this circuit – Schematic created using CircuitLab