Project Description

Smoke detectors are a common household item, yet they fail in an important area: connectivity. Many detectors simply emit sounds and have no means of communicating distress signals with relevant authorities or stakeholders e.g. landlords. Furthermore, common smoke detectors are memoryless and can only detect if there is or is not currently a fire. This prevents one from collecting any data on temperature over time which can be an important metric for many situations outside of just fire detection.


Although we initially planned on using both a temperature and smoke sensor, our smoke sensor did not arrive in time for our demonstration and thus we had to improvise by switching the scope of the project slightly. We implemented a temperature sensor and with a piezo and button. The temperature readings are sent to the Blynk app and tweeted out every five seconds. We also added a piezo, which would beep constantly if the temperature was above 90 degrees, and the button would arm and disarm the piezo.


Microcontroller The system runs on an Arduino MKR 1000 which is a WiFi enable microcontroller. This controls the behavior of the device namely reading in the temperature and button inputs as well as outputting light and sound. Furthermore it connects to the Blynk application which displays the current temperature as well as a graph of temperature over time and tweets out the temperature once every five seconds.

Temperature Sensor We used a standard LM34 temperature sensor. The sensor has three different inputs, one for power, one for ground, and one that outputs a voltage. The voltage output is proportional to temperature in celsius, which is then converted into Fahrenheit.

Light System From the last system, the temperature sensor is connected into the arduino uno and converted into a Fahrenheit temperature. A set of conditional statements then determines which light to turn on: Green for below 80 degrees, Yellow for 80 to 90 degrees, and Red for above 90 degrees. Each LED is connected to an individual Digital input/output port, and the code selects which DIO to turn on.

Button Control Arming The device can be armed or disarmed by a simple button switch. Holding the button changes the state of the device. When the device is armed, the alarm is able to sound, when the device is disarmed the device will not sound. This allows someone to silence the buzzer when it is misfiring or someone is handling the issue and doesn't want the alarm sounding. Once it's been disarmed, it can easily be rearmed by pressing the button again.

Piezo To simulate a fire alarm, and notify users of dangerous temperatures, a G0080 piezo buzzer. The activity of the piezo buzzer is controlled by a conditional that requires the temperature to be above 80 (red zone) and for the device to be in an armed state.

Productizing the Project

This project serves the role of warning a user of potentially dangerous temperatures. The main use case would be in places such as restaurants or in factories where there is a high hazard of fires or overheating. Although versions of this project likely exist, ours can be created for under $40 with the majority of the cost coming from the arduino MKR1000. To be commercially viable, it would probably require a sleek design and the ability to be hung on walls like a smoke detector does.

Possible Improvements

There are a few areas where we could improve the project. First, the temperature sensor is not incredibly accurate. There is a high degree of variation in the readings and it seems that it consistently overestimates the temperature. Using a more accurate sensor will give more reliability to the system. Second, we would could design an outer coating using SolidWorks to make the product feel like a product as a opposed to just a project. And finally, we could solder the wires together to eliminate some of the risk that the wires could fall out.

Original Proposal:

Smokey Knows is an IoT sensor that measures home air quality. The device utilizes temperature and gas sensors to measure air quality and concentrations of harmful gasses like Carbon Monoxide. This has a wide range of possibilities from measuring air quality in homes to workspaces or even on the job as a wearable detecting harmful exposure to workers. Furthermore, an additional temperature sensor can detect dangerous heat conditions indicative of a fire starting. These readings are stored and uploaded online through WiFi where one can monitor conditions over time. The device is also capable of triggering a warning and can be disarmed.

The team behind Smokey Knows is Rohan Aggarwal (UPenn ESE ' 19) and Amit Gupta (UPenn BE '20). Rohan is focused on writing the code needed to set up the sensors and communicate results. Amit's focus is on building the prototype.

Hardware Required: Gas Sensor: GROVE - MULTICHANNEL GAS SENSOR ( alternatives: GROVE - AIR QUALITY SENSOR V1.3, GROVE - GAS SENSOR (MQ3))


Share this project: