Not Tested! Do not use in place of a certified alarm!
Needs to be tested to see if light does not enter the chamber from outside. If you print one before I do, let me know how it goes! Print lid and base in black to absorb light, other colours may let in light. Also sand down the inside of your print if it is reflective, this will prevent light bouncing.
You will need a 5mm LED in one end and a 5mm photoresistor (LDR) in the other, see photo. (...or scale it for the 3mm ones.)
Attach the LED to a resistor and LDR via a voltage divider then both to an arduino nano (or whatever you like) to monitor smoke levels. You can attach a speaker or monitor smoke levels from your computer via serial. Attaching to PC can also be set up to send you alerts. (An "ESP8266 ESP-12E CH340G" can be setup to use your wifi.)
You don't need an arduino, a simple circuit can also be used to power the LED, test the LDR and send noise to a speaker as required. The Arduino just makes it easier.
If there is no smoke, the LDR should have almost no resistance when the LED is lit. (To prolong the LED life, it only needs to be lit for test sampling or you can leave it on for continuous data.) However, with smoke present the LDR values should vary. The thicker the smoke the more resistance. This is a light-obscuration type.
I also made the light-scattering type, where the light should only get to the LDR if there is smoke. This works the opposite, the more smoke refracting the light, the less resistance on the LDR. There are lots of code and wiring diagrams that are only a google search away for doing this.
I want to make a dual type too, eventually. Not sure if it will offer more accuracy or not.
smokeDetectBase-Scatter.stl | 139.9KB | |
smokeDetectBase.stl | 139.9KB | |
smokeDetectLid-Scatter.stl | 53.6KB | |
smokeDetectLid.stl | 56.7KB |