Fire Detector

Electronic Systems Design

The Challenge

Design and build a prototype circuit on a breadboard, perfboard, and pcb.

Initial Design

My senior design group is building a rescue drone equipped with a radio sniffier and a thermal camera. I’ve decided to take the project one step further and develop a board with an array of other sensors such as: air quality, smoke, temperature, radiation, and room for expansion. My plan is to build a custom Arduino based off of the Arduino Uno that is USB powered and has 3 sensors: a temperature sensor, humidity sensor, and a gas sensor. The analog input from these sensors will be routed into an ATMEGA328P and the data will be stored on the integrated memory and available over USB. The board will be USB powered. This project would help me gain experience working with Arduino and microprocessors. I could use this experience to build a much more extensive version for project 3. The board will be connected to a Raspberry Pi via USB and mounted on a quadcopter. Power efficiency and size are major constraints for this project. holders for my sensors for now.

Final Design

The gas sensor contains a heating element that heats the air within the sensor and measures the conductivity of the air. In theory air with smoke or gas conducts electricity much better than clean air due to the elements used within the sensor. The gas sensor has a 48 hour burn in time. As of writing this report I am up to hour 5 of continues run time. I have noticed the voltage output of the sensor declining over time. Three pins of the gas sensor are connected to VCC, 1 is connected to ground, and 2 are connected to the microprocessor via a voltage divider.

The ATmega328 receives power from the USB to Serial Converter and is also connected to the serial RXD, TXD and DTR (Data Terminal Ready) pins. This allows the microprocessor to be fully programmed via USB and also send data back to the host computer. A .1uF capacitor sits between the DTR and Reset pin of the ATmega to shorten the pulse length of the serial signal, allowing the board to be reprogrammable.


The temperature sensor is connected to analog pin 26 of the ATMega and has 10-bit resolution. This sensor is configured in half range 0°C-150°C mode. A voltage divider helps stabilize the output voltage.


I tested the temperature sensor independently. The sensor gives reasonable output voltages and temperatures. It also responds to my touch. I was taking data once a second for 200 seconds. Judging from the data I would need many more reading and a rolling average to get a more accurate reading of temperature. The sensor appears jumpy and rough. This could also be due to the low resolution of the ATMEGA328 digital to analog converter. I have also compared my temperature reading with various other thermometers and my calculated value is within a few degrees.

I checked all of my resistors with the ohm meter. They were all within 5% of the expected value. I also checked the output voltage of my USB to serial power supply. The output voltage was measured to be 5.103 V and the Atmega328 required 1.8-5.5 volts, well within the range. Further, I verified that my oscillator frequency was 16MHZ even with 18pF capacitors


I really enjoyed this project. It was my first perfboard project, and the learning curve was pretty steep at first. I had a lot to learn about Arduino and the ATmega328 before I could really start. My design was relatively simple and I look forward to doing something much more complicated for the final project. Overall my project was successful and is working as expected. I successfully built and tested a breadboard and perf board version of my project with identical results. I made one mistake on my perfboard when I soldered the TXD and RXD pins backwards. My testing quickly revealed my mistake and it was a good learning moment. I remedied the problem and everything worked as expected after a bit of soldering shenanigans.

Like what you see?