Go Down

Topic: Easiest way to hookup standard smoke detector to digital input (Read 4636 times) previous topic - next topic

I want to rig a smoke detector so that when it goes off, it causes a digital input to go to 1.  I'm thinking of using a transistor to make it so +5v is applied to the digital pin when the buzzer goes off.  Since the buzzer is probably not constant, I will also need to add a capacitor so it can hold the voltage longer.   I'm fairly new to electronics so I'll have to play around with this, but I have an idea of how to do it I think.  I'd also need a pull down resistor for when the smoke detector is not active.

Basically, piezo's voltage hooked up to the transistor, and the +5 and ch to the transistor as well, with a capacitor in between.  (I forget which pins are what, I will research that further)

Am I on the right track, or is there perhaps an easier way of doing this?  I know there are special sensors made for arduino, but I want to use a standard smoke detector so it looks less out of place, hopefully I can shove the extra components inside so I can simply have a small terminal block on the outside of the detector.


Jul 09, 2012, 04:23 am Last Edit: Jul 09, 2012, 04:27 am by pYro_65 Reason: 1
If you can safely get 5v into the arduino, connect the input to an interrupt and check for a rising or falling signal. Then you might not have a need for a capacitor if you disable interrupts ( or detach ISR ) once activated.

If the smoke alarm doesn't PWM the pezio, you will have a nice signal.


Do not attempt.  A smoke detector is a life safety device, designed by people skilled in that art, tested exhaustively, and listed for its application.  When you say,
"I'm fairly new to electronics ..."
you're telling us that you're absolutely not qualified for this work.  There's nothing about an Arduino that suggests that it's intended for a life safety application, either.  If you inadvertently disable the detector, and a fire occurs, occupants won't be alerted, and that's a very bad thing.

Having said that, there is a way to trigger the Arduino that's consistent with the use of the detector.  Mount your new gizmo as close to the smoke detector as the manufacturer's instructions allow, use an electret microphone to listen for the sounder, and program the Arduino to detect the oscillations.  That's likely to be challenging for a guy that's fairly new to electronics - it's a character-building experience.

But, don't get into the smoke detector.  Don't try to steal power from it, don't connect to its input power circuit or its signalling circuit, if it has one. 

If you just can't resist doing something inside a smoke detector, then buy another one, fiddle with it, and mount it in addition to the existing detector(s), if there are any, or the one(s) the codes require, if there aren't any.  Then, paint it black, or otherwise mark it so that no one will mistake it for a smoke detector.

These detectors will be extra ones added in spots that code does not require.  I have existing smoke detectors around the house and one is already monitored by my home security company, those wont be touched.

The ones I am adding are extras.  Basically I want one in every room, and the basement.  So it's better to have a rigged smoke detector in those places, than none at all.  Once I can get the digital input trigger to work ok, the rest will be easy as it can be done at the programming level.  I just need a solid way to make it go to 1 when the smoke detector goes off, basically.  I also want to ensure that any power that is used from the detector is only used when it's beeping otherwise I'll be leeching life out of the batteries. 

I was also considering some kind of audio sensing device of some sort, but seems it would be complex to calibrate that.   I'm hopping whatever I do I can just do it from behind so it wont show and be neat and tidy.    I was even thinking about the hard wired type detectors but I don't think they sell these here, I've never seen them anywhere. 

How do commercial detectors work, do they use a proprietary communication protocol, or do they simply close a circuit? Maybe I could use those instead?


The ones I am adding are extras.
I'm glad to know that you thought that through.

How do commercial detectors work ... ?"
In the US, a typical smoke detector in a large fire alarm system talks digitally to upstream devices.  I've never seen a manufacturer even identify their communication protocol, so I'll suspect that those protocols are usually proprietary.  Commercial detectors look to be considerably more expensive that residential models.

... audio sensing device of some sort, but seems it would be complex to calibrate ...
Maybe.  Or, it may be that the detector, which is piercingly loud by design, can persuade an electret with a judiciously chosen resistor to bang the rails of a 5V power supply.  You may wind up looking for the same thing if you connect to the detector's buzzer output, since it's probably driven with a square wave - the Arduino watches for the input to go active and raises its output, and then watches for it to go inactive for some relatively long time before lowering its output.

... hard wired type detectors ...
In the US, residential detectors that use the building's AC for power usually have a contact output that triggers the sounding of other detectors in the house.  I believe, but can't verify, that the contact is applied between a signal wire and the neutral conductor.  That would be a handy way of detecting the smoke detector.  But, I've never seen a contact output on a battery-only smoke detector.

... but I don't think they sell these here ...
Where's "here?"

Canada.  Basically, I'm looking at these type of units: http://www.canadiantire.ca/AST/browse/3/HouseHome/SafetySecurity/SmokeAlarms/PRD~0460085P/Garrison+Photoelectric+Smoke+Alarm/CROSSSELL~0460322%20Kidde%2BRemote%2BHush%2BSmoke%2BAlarm.jsp?locale=en

Basic, battery only.   I do see some 120v ones though, but I don't see any hard wire ones, and not even sure if that would work anyway, not sure if those use a special protocol as well.

Really all I need is a basic circuit that can detect a low voltage, and then close another voltage, and keep it closed for a bit of extra time, so the on/off of the beeper translates into an "on".  Basically it would be two wires added to the circuitry of the smoke detector and no other modifications.   So not really unsafe.  Again keep in mind that these are new smoke detectors that are being added for this very purpose, where there arn't any at all right now. 

I see smoke detectors as being more than only life saving devices, they can also act as structure saving devices.... if monitored. 

I'm visiting this again as I'm almost at the stage where I will actually do this, I've mostly coded my application and I can monitor my servers and other stuff not involving arduino, still working on getting my app to communicate with arduino via serial.

But meanwhile I'm also looking into the various sensors I want to add around the house. I bought two cheap smoke detectors, figured in case I screw one up I have another.  They are ionizing so at least they leave something useful to play with if I screw them up... just kidding. 

I was trying to check the voltage going to the piezo while it is active, but I was not getting a reading, instead it was greatly reducing the amount of sound produced.  So I think the current going to it is limited and is very low, low enough in fact that my meter was pulling too much of it.

So what are other solutions, perhaps some kind of sound detection gizmo?  What about something like this?
http://www.canakit.com/piezo-vibration-sensor-small-horizontal-sen-09198.html  It would go right over the detector's piezo "vent" on the cover.  I'd want to make sure I don't cover it up completely though. I might put it inside too.  So if this is what I need, how do they work, when they detect a loud sound they close the circuit?

They have a few there but unfortunately are out of stock.

Any other good sites in Canada for buying stuff like this? 

Where would I find that?  In fact, anyone know of good places in Canada to buy misc parts like this?  Has to be in Canada, I don't want to pay customs and high shipping on orders that would probably be <$100.  I like Canakit but they don't have a HUGE selection and half the stuff is out of stock permanently.  (some stuff I've been keeping an eye on for a while).

Another thing I was thinking too, there are some Arduino modules made for detecting smoke like this:


Only thing is I think these use an analog pin for a smoke density reading if I'm not mistaken.  I just need yes/no.  I also don't like that particular one as it does too many different gases, but I'm sure I can find one for just smoke. 

How do these compare to life safety smoke detectors, could they be trusted?  I could just install these instead.  I'd probably still add the standard smoke detectors too.  Not required inside a bedroom, but why not.


You can't assume your smoke detector has some digital trigger that is conveniently waiting to be tapped.  Nor for that matter that your detector and mine have anything in common beyond taking a 9v battery and going off when cooking fajitas.  You're trying to engineer a solution, so expect a little challenge to that.  It's just part of the deal.  :-)

It may be possible to use a transistor here.  A BJT might work with a high value base resistor so as not to put too much load on the piezo driver, or you might go with a FET for the high input impedance.  Also look at the LED and see if it reacts in some fashion to an alarm.  Keep in mind it probably also blinks as a battery-good indicator, so you'll need to account for that in your detection code.  But, you'll also have to account for a battery-low chirp.  So that's a wash.


RedSquirrel, did you ever resolve how to detect a detect a positive signal to send to Arduino? I'am just starting a project with the same objective and was considering measuring when the voltage going to the piezo went high. Can you post an update on your progress? Thanks

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131