Skip to content

Commit f0ab392

Browse files
authored
Project/ramona.mitran (#1357)
* Add index.md and schematics * Fix typos * Fix table typo and clean URLs * Revise documentation for IoT Weather-Station features Updated project documentation to include two push-buttons for data upload and alarm snooze features, replacing hardware interrupts with polling for stability. Enhanced descriptions of system architecture and functionality. * Add weather station code for ESP32 with sensors * Add README with architecture and data flow diagram Added detailed architecture description and data flow diagram for the weather station. * Delete website/versioned_docs/version-acs_cc/project/2026/ramona.mitran/weather_station.ino * Delete website/versioned_docs/version-acs_cc/project/2026/ramona.mitran/README.md * Revise project details and update log entries Updated project description to clarify button functionalities and alarm behaviors. * Add files via upload * Delete website/versioned_docs/version-acs_cc/project/2026/ramona.mitran/SCH_Schematic1_1-P1_2026-05-27.svg * Add files via upload * Update schematic image format from SVG to WebP * Delete website/versioned_docs/version-acs_cc/project/2026/ramona.mitran/SCH_Schematic1_1-P1_2026-05-27.webp * Add files via upload
1 parent 835cc2e commit f0ab392

2 files changed

Lines changed: 15 additions & 5 deletions

File tree

45.5 KB
Loading

website/versioned_docs/version-acs_cc/project/2026/ramona.mitran/index.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# IoT Weather-Station: Meteo and Air Quality Monitor
22
A smart IoT station for monitoring weather and air quality, featuring acoustic alerts and a live cloud dashboard.
33

4-
**Author**: Mitran Ramona Luminița
4+
**Author**: Mitran Ramona Luminița \
55
**GitHub Project Link**: [UPB-PMRust-Students/acs-project-2026-mnoramona](https://github.com/UPB-PMRust-Students/acs-project-2026-mnoramona)
66

77
## Description
88

9-
This project consists of an IoT station capable of measuring environmental parameters and displaying them in real-time on an online dashboard (Adafruit IO). The system reads temperature and atmospheric pressure (via I2C), measures UV ray intensity (via ADC), and monitors air quality by detecting CO2, ammonia, benzene, and smoke using an MQ-135 sensor. When safety thresholds are exceeded, a buzzer triggers distinct acoustic alarms depending on the specific hazard. Additionally, two physical push-buttons are integrated into the system using software debouncing algorithms (polling). One button allows the user to force an immediate data upload to the cloud, while the second acts as a "Mute/Snooze" switch, silencing the acoustic alarms for 5 minutes if the user acknowledges the hazard.
9+
This project consists of an IoT station capable of measuring environmental parameters and displaying them in real-time on an online dashboard (Adafruit IO). The system reads temperature and atmospheric pressure (via I2C), measures UV ray intensity (via ADC), and monitors air quality by detecting CO2, ammonia, benzene, and smoke using an MQ-135 sensor. When safety thresholds are exceeded, a buzzer triggers distinct acoustic alarms depending on the specific hazard.
10+
11+
Additionally, two physical push-buttons are integrated into the system using software debouncing algorithms (polling). The primary button features dual functionality: a short press toggles a continuous data upload mode (every 15 seconds), while a long press (3 seconds) calibrates the gas sensor by setting a new clean-air reference zero. The second button acts as a "Mute/Snooze" switch, silencing the acoustic alarms for 1 minute if the user acknowledges the hazard.
1012

1113
## Motivation
1214

@@ -18,12 +20,14 @@ The system is built around a central microcontroller that interfaces with variou
1820
* **Processing Unit (ESP32):** Reads sensor data, applies digital filters and business logic (mapping ADC voltages for the UV and MQ-135 sensors), and manages the Wi-Fi connection.
1921
* **Digital Input Module (I2C):** The BME280 sensor communicates bidirectionally over the I2C bus (SDA/SCL) to provide precise temperature, humidity, and pressure data.
2022
* **Analog Input Module (ADC):** The ML8511 (UV) and MQ-135 (Air Quality) sensors output a variable voltage that is read by the ESP32's ADC pins.
21-
* **Digital Input Module (Buttons & Polling):** Two push-buttons are connected to digital pins configured with internal pull-up resistors. Instead of hardware interrupts (which proved susceptible to breadboard electrical noise), the system uses a non-blocking polling method with a software debounce algorithm (`millis()`) to accurately register "Force Upload" and "Mute/Snooze" commands.
23+
* **Digital Input Module (Buttons & Polling):** Two push-buttons are connected to digital pins with internal pull-up resistors. The system uses a non-blocking polling method (millis()):
24+
* *Button 1:* Short press toggles continuous 15-second data upload; Long press (3s) calibrates the MQ-135 zero baseline.
25+
* *Button 2:* Triggers a 1-minute alarm snooze.
2226
* **Local Output Module:** A buzzer provides immediate acoustic feedback, generating specific patterns:
2327
* *Gas Alarm (Siren):* Continuous long beeps when dangerous gas levels are detected (MQ-135 raw > 1000).
2428
* *Temperature Alarm:* 3 rapid, sharp beeps when ambient temperature exceeds 28°C.
25-
* *Confirmation Beep:* A single short beep triggered when data is successfully uploaded to the cloud via the physical button.
26-
* **Cloud Module:** Adafruit IO receives JSON/MQTT payloads and visualizes the data on live charts and gauges.
29+
* *Status Beep:* Short beeps for upload toggle confirmation, and a rapid burst pattern for successful gas sensor calibration.
30+
* **Cloud Module:** Adafruit IO receives JSON/MQTT payloads and visualizes the data on live charts.
2731

2832
## Log
2933

@@ -42,13 +46,19 @@ The system is built around a central microcontroller that interfaces with variou
4246
### Week 18 - 24 May
4347
* Finalized code logic, cleaned up the project structure, and completed the final testing.
4448

49+
### Week 25 - 27 May
50+
* Implemented short/long press logic for continuous MQTT upload toggling and real-time MQ-135 gas sensor zeroing.
51+
* Added 1-minute snooze functionality and aggressive buzzer patterns for noisy environments.
52+
4553
## Hardware
4654
The project utilizes an ESP32 microcontroller due to its native Wi-Fi capabilities and generous pinout. The selected sensors cover both digital communication (BME280) and analog voltage reading (ML8511 and MQ-135). Two push-buttons serve as input triggers for cloud uploads and alarms, and a buzzer adds a layer of local user interaction.
4755

4856
### Schematics
4957

5058
![Schematics](./schematics.webp)
5159

60+
![Schematics](./SCH_Schematic1_1-P1_2026-05-27.webp)
61+
5262
### Bill of Materials
5363

5464
| Device | Usage | Price |

0 commit comments

Comments
 (0)