A WiFi-based wildfire detection & warning system. 🔊
HACKMIT 2023 2nd Place IBM Watson AI Lab Award
Motivation 🧠
Every year, more than 35 thousand cases of wildfire occur in the US. Recently, the Maui wildfires caused 79 people to lose their lives, with at least 31 people missing. One of the primary factors contributing to the substantial loss of life was the lack of widespread, accessible information during the wildfires. A couple friends and I who have roots in Hawai'i wanted to create a small-scale, wireless wildfire detection and warning system as a proof of concept for a large-scale version that could be implemented in regions sensitive to wildfires in the future. 
​​​​​​​Technologies Used 💡
・Three.js, Flask, Arduino (Wifi, board, sensors), Raspberry Pi, MQTT/HTTP protocol
Application Overview 📖
Components
1. Multi-sensor: an Arduino board with flame, humidity, and temperature sensors that collect values on flame levels, proximity, and intensity of fire
2. Raspberry Pi: a server that collects all fire-related data 
3. Web app: a flask-powered web app utilizing Three.js that displays fire location, radius, and evacuation information
4. Arduino Giga R1 WiFi: WiFi system that allows multi-sensor to transmit data wirelessly

System flow
1. The multi-sensor first sends out flame data in MQTT protocol
2. Data is caught and processed by Raspberry Pi server 
3. Processed data is sent to the web app in HTTP protocol
4. Whenever there is a change in flame levels, the web app displays (1) the flame location on the map, (2) two differing levels of evacuation radii, and (3) the four nearest areas with large bodies of water, as in a screenshot below: 
Demo! 🗯
*Our project was a proof-of-concept for an eventually scaled version of our detection & warning system — we definitely have more to go to get to that point!
Personal Responsibilities 🗣
As one of the lead developers, I integrated the hardware—a multi-sensor Arduino and Raspberry Pi—with our web app. First, I hosted a server on our Raspberry Pi, then implemented MQTT packages to communicate wirelessly with the Arduino. Then, I configured the server to constantly send Arduino sensor levels to our web app. Finally, I set up web sockets on our web app to enable constant receiving of sensor data and developed real-time, triggered wildfire location and safe area recommendations. I initially struggled to connect the Arduino with our web app, especially making sure our server received parsable sensor data and configuring it so that it would respond to sensor level changes without requiring a refresh. However, through experimenting with the settings of our web sockets, patience, and sustained effort, I was able to effectively build and deploy a web app with real-time response to sensor fluctuations. 
Takeaways 👣
Gained confidence in distributed/embedded system development, connecting servers and hardware, and debugging hardware-server connections!
・Learned I love working in a fast-paced development environment (definitely doing more         hackathons!) 
・Realized once more that building something of your own is extremely fun!
Back to Top