Creating a sensing station to detect potential wildfires
Sherri Li
STEM Innovation Academy High School
Grade 11
Presentation
No video provided
Problem
Overview
All fires start due to a combination of fuel, oxygen, and heat. A wildfire is an area of burning vegetation that is caused by either human activity, such as unattended fires, cigarette butts, or arson, or naturally, by lightning strikes. In Canada, this mostly occurs in the forests that make up a large part of the land. According to the Canadian Wildland Fire Information System, “over 8000 fires occur each year and burn an average of over 2.1 million hectares.” These fires cause severe damage. Buildings are burnt down, resulting in communities being displaced. Local ecosystems are destroyed, becoming unsuitable to live in for the wildlife. Smoke is a major health hazard to humans, polluting air, making it unsafe to breathe, and water, making it unsafe to drink. It also damages crops, making them unable to be consumed.
Importance of Early Detection
Fires are easier to extinguish when they are relatively small. However, they have been difficult to detect until they have significantly spread, at which point can easily be out of firefighters’ control, creating a feedback loop in which the fire continues to grow. Crown fires, which are fires that have reached the forest canopy, spread at speeds of up to 6km/h.
According to this infographic from Dryad, forest fires spread exponentially, going from the smoldering stage to trees going up in flames, often within days. They compare their sensors to cameras and satellites, showing a significant difference in the severity of detected fires. Because of the exponential growth, early detection is crucial in keeping fires under control and easy to extinguish.
Challenges in Early Detection
Lookout Towers
Lookout towers were traditionally used by being placed on high vantage points with a 360 degree field of view, but relied on humans to spot signs of fire, such as smoke or flames, often only after the fire had grown significantly. The area that could be monitored was also limited due to the fact that the lookout tower could not move and smoke was unable to be seen at night. Additionally, smoke is able to be spotted only after the fire has become around 100 square meters.
Satellites
Aerial surveillance using satellites has also been used, which can monitor large areas of land during its orbit, but fires would also have to be relatively large to be detected from space. Previous satellites could only detect fires that were several acres large. Now, FireSat has been developed, but even with much stronger sensors, only fires at least around 5x5 m large are able to be detected.
AI-Powered Cameras
AI has been used in cameras to detect fires by recognizing smoke or flames, also using thermal imaging to detect heat. The cameras are placed in high vantage points, similar to lookout towers. When a potential fire is detected, images are then sent to human reviewers to prevent false positives and get firefighters to respond quickly. The cameras can work even at night, providing faster results than humans. However, due to being placed above a large landscape, detection times are also often slow and can take several hours.
Sensors
Sensors have been placed in forests to detect sudden changes in the environment, usually temperature, gas concentration, humidity, and infrared and ultraviolet radiation. They are distributed throughout forests, particularly in high-risk areas, and send out data, alerting when a fire is detected. Sensors are able to be placed relatively close to the ground, and are able to detect fires faster than other methods, mostly within a few minutes.
An example of a sensor layout in a forest
Problem
Considering that sensors can detect fires the fastest, I decided to focus on creating a system that uses sensors to detect changes in the environment and contains a way to indicate if a potential fire has been sensed.
What kind of sensing system can be built in forests to detect and prevent forest fires from spreading out of control?
Method
Materials
These are the materials I used in the project.
| Item | Cost (CAD) | Amount used |
|---|---|---|
| Arduino MEGA | $27.60 | 1 |
| USB Cable | $5.90 | 1 |
| DHT 11 Module | $6.65 | 1 |
| LCD 16x2 | $13.29 | 1 |
| RGB LED | $10.99/100pcs | 1 |
| Wires | $10.89/120pcs | 1 |
| Total | $75.32 | 30 |
The Arduino MEGA has 54 digital input/output pins (14 can be used as PWM) and 16 analog input pins. These can be used to connect all the necessary components without needing to overload a breadboard, especially since my LCD does not come with an I2C interface that reduces the amount of pins required to 4.
The LCD is not required for the actual sensor, but will provide a visual display in presenting data at a specific moment in time. As the sensor reads the temperature and humidity once every 100 milliseconds, the data on the serial monitor in the Arduino IDE scrolls very quickly and becomes hard to read.
The DHT 11 module detects the ambient temperature and humidity with an accuracy of ±1℃ and ±1% having a range from 0-50℃ and 20-90% humidity. Forest fires cause low humidity and high temperatures, so the accuracy range will be close enough to still detect a potential fire.
The RGB LED is an indicator of the current state of the environment. Green indicates that a fire has not been detected, yellow indicates that there may be an increased risk of a fire, and red means that the sensor has likely detected a fire. Blue indicates that the sensor is broken, either needing maintenance or due to damage from an actual fire.
Build Development
After receiving my components, I connected them using a breadboard and originally created this setup, with the DHT sensor connected to wires and the LED and LCD connected to the breadboard.
(Maintenance light was green at the time)
However, I found it slightly difficult to see the LED behind the wires and it also kept getting knocked out of place as I was moving the breadboard around, so I switched it to being on wires like the DHT sensor.

Code Development
Due to a major problem I encountered (see below), I needed to change my way of testing.
To simulate hot, dry, and windy conditions in which fire spreads fastest, I decided to used a hair dryer instead.
To create the code for the sensing system, I first had to put in code for the sensor to read the temperature and humidity.
I then had to allow it to indicate if there was an error and it was not reading.
To ensure that the sensor was working, I set it to update once every 2 seconds so my serial monitor wouldn't overload, and it returned reasonable values.
Afterwards, I added code for an LCD to display data, but it kept showing garble. According to the Arduino forum, it was likely a faulty pin, so I switched pin 1 to pin 22 and solved the problem.
Finally, I added code for the RGB LED to display whether the temperature and humidity was normal, had a risk of fire, had probably detected a fire, or needed to be checked on.
The usual threshold for temperature is 50℃, but since the DHT 11 module is only accurate up to that range, I decided to make the threshold 40℃, a relatively high temperature that is not frequently reached in forests. Average humidity is around 30%, so I made that the threshold for humidity.
Finally, I changed the sensor back to read once every 100 milliseconds.
Sensor Code
This is the final version of the code.
#include <DHT.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(22, 2, 4, 5, 6, 7); // Parameters: (rs, enable, d4, d5, d6, d7)
#define DHTPIN 20 // DHT sensor reads from pin 20
#define DHTTYPE DHT11 // Using a DHT11 sensor
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor
void setup() {
Serial.begin(9600); // Start serial communication
lcd.begin(16,2); //Start LCD
dht.begin(); // Start DHT sensor
}
void loop() {
delay(100); // Wait 0.1 seconds
float h = dht.readHumidity();// Read humidity
float t = dht.readTemperature();// Read temperature as Celsius
// Check if any reads failed
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
analogWrite(13,10); //Make the light blue
analogWrite(10, 0);
analogWrite(12,0);
}
if (!isnan(h) && !isnan(t))/*if both are numbers */{
analogWrite(13,0);//Turn the blue LED off
}
// LED pinout: Red- 10, Green- 12, Blue- 13
Serial.print("Humidity: ");
Serial.print(h); // Print humidity on serial monitor
Serial.print(" %\t"); // \t adds a tab
Serial.print("Temperature: ");
Serial.print(t);
Serial.println("*C"); // Print temperature on serial monitor
lcd.setCursor(0, 0);
lcd.print("Temp:");
lcd.print(t);
lcd.print(" C "); //Print temperature on the LCD
lcd.setCursor(0, 1);
lcd.print("Humid:");
lcd.print(h);
lcd.print("%"); // Print humidity on the LCD
if (t > 40 && h < 30) { //if temperature is greater than 40C and humidity is less than 30%
analogWrite(10,10);
analogWrite(12,0); //Make the light red
}
else if (t<40 && h<30 || t>40 && h > 30) { //if temperature is less than 40C but humidity is less than 30% or temperature over 40C and humidity greater than 30%
analogWrite(10,10);
analogWrite(12,10);//Make the light yellow
}
else if (t<40&&h>30) { //if temperature is less than 40C and humidity is greater than 30%
analogWrite(12,10);
analogWrite(10,0);//Make the light green
}
}
This is a flow chart that explains the process of how the sensor works

Analysis
I ran 5 organized tests among many others, and each time, the sensor was able to detect the hair dryer, turning the light yellow when the measured humidity decreased below 30.00%, and ultimately red when the measured temperature increased to above 40 degrees Celsius as well. While I did not intentionally damage the sensor, the blue light indicating maintenance also functioned, turning on when the wire connecting the sensor to the Arduino was unplugged. While I was testing, the updates could have a slight delay of a few seconds, but were relatively on time. I did not risk going over 50 degrees Celsius in temperature as a heat-damaged sensor would break the project, but I had a lowest recorded humidity of 2.00%. The accuracy of that, however, is not necessarily reliable, as the 1 degree or percent accuracy range applies only from 0 to 50 degrees Celsius and 20-90% humidity.

Conclusion
Conclusion and Improvements
The sensor I have built is functional, but has limitations in its detection such as having a short range and a lower threshold temperature of 40 degrees Celsius, which, although uncommon, can still occur and cause false alarms. Additionally, I have only built one sensor. If many of them were tracked, however, the potential false alarms could still be detected using weather data. Another limitation is that it does not contain a gas sensor to detect smoke. Currently, the most effective sensors detect changes in temperature, humidity, smoke concentration, air pressure, and radiation, often using AI as help and being able to transfer data to human reviewers. Due to the limitations of the project, many aspects of a forest fire sensor still need to be considered. Additional features would have to be added, such as location tracking and wireless communication in order to send out alerts. It would also need to have a long-lasting power source, such as solar power or a battery that can run for long periods of time. While it does work as intended, the sensor should undergo improvements before put into practical application.
Citations
Works Cited
CDC. (2024). NIOSH Science Bulletin. In NIOSH Science Bulletin. https://blogs.cdc.gov/niosh-science-blog/2024/04/29/wildland-ff-webinar
How Are Wildfires Detected: Understanding the Techniques and Technologies. (n.d.). In Battlbox.com. https://www.battlbox.com/blogs/outdoors/how-are-wildfires-detected-understanding-the-techniques-and-technologies
How tiny sensors in the forest are shaping the future of firefighting - National. (n.d.). In Globalnews.ca. https://globalnews.ca/news/9812366/forest-fire-sensors-ai
Igini, M. (2023). What Causes Wildfires? In Earth.Org. https://earth.org/what-causes-wildfires
Natural Resources Canada. (2011). Fire behaviour. In natural-resources.canada.ca. https://natural-resources.canada.ca/forest-forestry/wildland-fires/fire-behaviour
Why do my temperature sensor values become inconsistent when additional hardware is added to the board? (n.d.). In Arduino Stack Exchange. https://arduino.stackexchange.com/questions/28574/why-do-my-temperature-sensor-values-become-inconsistent-when-additional-hardware
Wildfires 101: How NASA Studies Fires in a Changing World - NASA Science. (2023). https://science.nasa.gov/earth/wildfires-101-how-nasa-studies-fires-in-a-changing-world
Dejan. (2022). Arduino 16x2 LCD Tutorial - Everything You Need to Know. In How To Mechatronics. https://howtomechatronics.com/tutorials/arduino/lcd-tutorial
DHT11–Temperature and Humidity Sensor. (n.d.). In Components101. https://components101.com/sensors/dht11-temperature-sensor
DRYAD Networks. (2023). Uses of Wireless Sensors for Wildlife Monitoring. In Dryad. https://www.dryad.net/post/different-uses-of-wireless-sensors-for-wildfire-monitoring
Electronic Noses Sniff Out Diseases, WildFires, and Pestered Plants - News. (n.d.). In www.allaboutcircuits.com. https://www.allaboutcircuits.com/news/electronic-noses-sniff-out-diseases-wildfires-and-pestered-plants
Fire weather index legend - Open Government. (n.d.). In open.alberta.ca. https://open.alberta.ca/publications/fire-weather-index-legend
Forest Fire Sensors: How They Work, Types, and Their Importance in Early Detection - SenseNet Inc. (2025). https://sensenet.ai/forest-fire-sensors Gupta, V. (2023).
Forest Fire Detection using Sensor Network and IoT. In PsiBorg Technologies Pvt. Ltd. https://psiborg.in/forest-fire-detection-using-sensor-network-and-iot/#elementor-toc__heading-anchor-3
Natural Resources Canada. (n.d.). Canadian Wildland Fire Information System. In Canadian National Fire Database (CNFDB). https://cwfis.cfs.nrcan.gc.ca/ha/nfdb
Project. (2025). In TinkerBlock ESP32. https://tinkerblock.io/04-project-dht-temperature-humidity-sensor-with-lcd-display
Samborska, V., & Ritchie, H. (2024). Wildfires. In Our World in Data. https://ourworldindata.org/wildfires
Silvanet Wildfire Sensor. (n.d.). In Dryad Networks. https://www.dryad.net/wildfiresensor
Understanding forest fuels. (2022). In BC Wildfire Service. https://blog.gov.bc.ca/bcwildfire/understanding-forest-fuels
Understanding isnan() in Arduino. (2025). In TinkerBlock ESP32. https://tinkerblock.io/isnan
Wildfire Recovery for Communities: How to Rebuild and Cope. (2023). In WFCA. https://wfca.com/wildfire-articles/wildfire-recovery-for-communities (N.d.-a). In anglican.ca. https://www.anglican.ca/wp-content/uploads/Wildfire-aftermath-FB.jpg
Acknowledgement
AI was used to help explain sections of code, but the code, comments, logbook, and this write up were written on my own.
Special thanks to:
- The developers of the Mechatronics 25 course for providing the assignments that helped me get ideas for this project
- Ms. O’Keefe for helping organize the science fair
- My friends who were always supportive and encouraging
