βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β βββ βββββββ βββ βββ βββββββ βββββββ βββββββββββββββββ β β βββ ββββββββββββ βββ ββββββββββββββββββββββββββββββββββ β β βββ βββ ββββββ ββ βββ βββ βββ βββββββββββ βββ β β βββ βββ βββββββββββββ βββ βββ βββββββββββ βββ β β βββββββββββββββββββββββββββ βββββββββββββββββββββββββ βββ β β ββββββββ βββββββ ββββββββ βββββββ βββββββ ββββββββ βββ β β β β ββββββββββββββββββββ βββββββββββ βββββββ βββββββ ββββββββ β β βββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββ β β ββββββββββββββ ββββββ ββββββββββββββ βββββββββββββββββββ β β ββββββββββββββ βββββββββββββββββββββ βββββββββββββββββββ β β βββββββββββββββββββ ββββββββββββββββββββββββββ βββββββββββ β β βββββββββββββββββββ βββββββββββββ βββββββ βββ βββββββββββ β β β β DRONE-BASED AIR QUALITY MONITORING SYSTEM β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Measure. Monitor. Protect. A cutting-edge air quality monitoring system designed for DJI Matrice drones, capable of measuring and logging key environmental parameters in real-time.
|
|
|
|
|
|
- Familiarity with Git, terminal and basic UNIX commands
- Recommended: Linux host (Windows/Mac supported but requires extra configuration)
- Required Tools
- C++ Compiler
- Linux:
sudo apt install build-essential - Mac: Xcode Command Line Tools (
xcode-select --install) - Windows: Install MinGW or use WSL
- Linux:
- VSCode (Or IDE of your choice)
- Platform IO Extension for VSCode
- ROS Noetic (This software was built in 2025 on Ubuntu 20.04)
- [Optional but Recommended] PlatformIO Core CLI for terminal workflows
- C++ Compiler
cd ~
git clone https://github.com/MRU-Earth-and-Enviromental-Science/Low-Cost-Sensors.git
cd Low-Cost-Sensors
code . # Open in VSCode (or editor of your choice)- Connect your ESP32 dev board via USB.
- Open the Drone_System Directory on Visual Studio Code.
cd ~/Low-Cost-Sensors/drone_esp32- Use PlatformIO to build and upload:
- Click the right-facing arrow (β€) at the bottom of VSCode, or
# If using PIO command line
pio run --target uploadPlatformIO will automatically detect your environment and upload the firmware to the board.
cd ~/Low-Cost-Sensors/ground_station/ground_esp32- Use PlatformIO to build and upload the code to the ESP32. (same as above)
- Running any Linux Distro between 16.04 and 20.04 (This was developed on Ubuntu 20.04 Server, Raspberry Pi 3)
- Requires ROS Noetic (Base) to be installed
- Requires a C++ compiler
- Requires CMake > 3.0
- Clone this repo on the Pi
cd ~
git clone https://github.com/MRU-Earth-and-Enviromental-Science/Low-Cost-Sensors.git- Clone the DJI OSDK and DJI OSDK ROS Packages
cd ~
git clone https://github.com/dji-sdk/Onboard-SDK.git
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
git clone https://github.com/dji-sdk/Onboard-SDK-ROS/tree/master/src/dji_osdk_rosRun the install script to setup the rest of the code
cd ~/Low-Cost-Sensors
chmod +x install_sdk.sh
./install_sdk.sh- Install the Dashboard from the 'Releases Section' of the GitHub repo linked below for your system.
- For Windows: Download the
.exefile. - For Mac: Download the
.dmgfile. - For Linux: Download the
.AppImagefile and make it executable:
- For Windows: Download the
- Alternatively, you can clone the sensor-dashboard submodule and build from source (must have npm installed):
# Clone the sensor-dashboard submodule
cd ~/Low-Cost-Sensors
git submodule update --init --recursive
cd ground_station/sensor-dashboard
npm install --legacy-peer-deps
npm run dev
# in a new terminal, run the following command to start the dashboard
npm run electron-dev
# to run the backend
python3 -m venv venv
source venv/bin/activate # This is a UNIX command for windows run: venv\Scripts\activate
pip3 install -r requirements.txt
python3 serial_backend.py # Run this in the venv- ESP32 Dev Module (WROVER-E based)
- Raspberry Pi 3
- K30 COβ Sensor
- MQ Series Gas Sensors (e.g., MQ-7 for CO, MQ-135 for NOβ, MQ-4 for CHβ)
- Plantower PMS7003 (PM2.5 Sensor)
- SGP30 (VOC Sensor)
- DHT11 (Temperature & Humidity)
- UART to USB Cable (Drone to Pi connection)
- Custom PCB Ordered from JLC PCB (Found in Repo)
- Bill of Materials Found in Repo
- STEP and STL Files available to mount to Matrice210
This project is licensed under the MIT License.
Gwen O'Sullivan β Vice Dean of Science and Technology @ MRU
Shivam Walia β Mechatronics Engineering @ UWaterloo
shivamwalia2006 [at] gmail [dot] com
gosullivan [at] mtroyal [dot] ca
