This project is focused on accurately assessing environmental sensor data to evaluate the likelihood of wildfire occurrences. The Wildfire Monitoring Dashboard integrates real-time data simulation, multithreading, and intuitive user interfaces to provide an effective monitoring tool.
- Simulate real-time environmental data from multiple sensors, updating at specified intervals.
- Identify and flag abnormal conditions that indicate a higher likelihood of wildfire occurrence.
- Provide an intuitive graphical user interface (GUI) for monitoring sensor data and visualizing fire risk.
- Multi-threaded simulation: Independent operation of sensors updating at fixed intervals.
- Thread safety with mutex locks: Ensures data integrity during concurrent access.
- Real-time logging: Historical data storage for trend analysis and accountability.
- Color-coded alerts: Quick visual indicators for normal, warning, and critical conditions.
- Wildfires are a significant threat to ecosystems, human settlements, and climate stability. Early detection can save lives and resources.
- The project demonstrates how IoT technologies can integrate to mitigate disasters effectively.
- Concurrent operations with multithreading ensure realistic simulation scenarios.
- Mutex locking addresses real-world challenges like sensor delays and overlapping data access.
- Modular design allows seamless addition of sensors or integration with real data sources.
- Python 3.8 or higher.
- Tkinter library (pre-installed with Python on most systems).
- Download the files:
main.py,populateListView.py,ListViewUI.py, andweatherGeneration.py. - Place all files in the same directory.
- Run the program using:
The Wildfire Dashboard will appear.
python main.py
The program’s execution begins with main.py, which initializes multithreading and orchestrates data flow between other components.
- Manages sensor threads that update data at intervals (1, 2, and 3 minutes).
- Employs mutex locks (
sensor_lock) for thread-safe operations.
- Defines the
ListViewAppclass:- Creates a queue for storing sensor data.
- Instantiates and populates
list_viewobjects with queued data.
- Defines the
WildfireListUIclass:- Organizes sensor data into a grid layout.
- Dynamically updates the display with incoming data.
- Defines the
Sensorclass:- Simulates sensor data, including temperature, humidity, and wind speed.
- Randomly generates initial conditions and updates data iteratively.
- Sends data to both a CSV file and a shared queue.
- Sensors operate independently, updating data at fixed intervals.
- Mutex locks ensure consistent and conflict-free data updates.
- Color-coded alerts for rapid evaluation:
- Green: Normal.
- Yellow: Warning.
- Red: Critical.
- Logs sensor updates with timestamps for review and auditing.
- Dropdown menu for selecting sensors.
- Automatic synchronization of displayed data with sensor updates.
- Concurrent sensor updates completed without data corruption.
- Accurate detection and flagging of fire-prone conditions.
- Smooth GUI performance with multiple threads.
- Example CSV files demonstrate recorded sensor data for each runtime.
- Successfully displayed live sensor data and detected fire risks using predefined thresholds.
- Maintained seamless operation of multi-threaded sensors.
- Provided a transparent system with real-time logging capabilities.
Video Presentation Link: https://youtu.be/ZSt13-u6up4
Simulated scenarios:
- High temperature and low humidity triggered "Fire Likely" alerts.
- Normal conditions displayed as "Fire Unlikely."
- Sensor data updated precisely at defined intervals.
- Ensuring thread safety and preventing race conditions in a concurrent environment.
- Maintaining UI responsiveness alongside background thread operations.
- Relies on simulated data, which may not reflect real-world conditions.
- Adding more sensors or reducing update intervals may strain the Tkinter UI.
- Integrate live IoT sensors for real-world data collection.
- Implement a database for long-term storage and analysis.
- Upgrade the GUI framework (e.g., PyQt or Kivy) for better scalability and performance.
The Wildfire Monitoring Dashboard effectively demonstrates a simulation-based approach to wildfire risk assessment. By leveraging multithreading, real-time data visualization, and intuitive design, it offers insights into how IoT technologies can aid in early disaster detection and prevention.