Closed GabrielEValenzuela closed 5 days ago
The project involves the design and implementation of an embedded air quality monitoring and control system, integrating two microcontrollers: the LPC1769 and STM32. The LPC1769 handles flow monitoring, PWM fan control, UART communication, and AQI calculation, while the STM32 simulates a PSM 5003 sensor, generating 32 bytes data frames in the same way the sensor does it. The system dynamically adjusts the fan speed based on the calculated AQI value and provides visual feedback through a DAC-controlled LED indicating the air filter’s condition. The project leverages FreeRTOS for task management and employs UART for communication between the two microcontrollers, with the potential for future integration with a real PSM 5003 sensor.
Integration of LPC1769 and STM32: To successfully integrate the LPC1769 and STM32 microcontrollers to handle different tasks of the air quality monitoring and control system. The LPC1769 will manage tasks such as flow control, PWM fan control, and AQI calculation, while the STM32 will simulate a PSM 5003 sensor.
Air Quality Control: To implement a dynamic fan speed control based on the AQI value derived from the received sensor data.
Real-time Monitoring and Feedback: To continuously monitor the air filter’s flow and display a visual indication (using a DAC-controlled LED) that reflects the filter's condition, with adjustments made based on the detected airflow.
Communication between Microcontrollers: To enable efficient UART communication between the LPC1769 and STM32 for data transmission (simulated 32 byte frame), ensuring data integrity and proper checksum verification.
Testing and Simulation: To simulate real-world air quality conditions with the STM32 and fine-tune the system before implementing a real PSM 5003 sensor.
Functional System: The system should correctly monitor airflow, adjust the fan speed based on the AQI value, and provide real-time feedback on the air filter’s condition via the LED.
Correct Communication: UART communication between the LPC1769 and STM32 should work without data loss or corruption. The checksum verification should successfully ensure data integrity.
Correct AQI Calculation and Fan Control: The AQI should be correctly calculated from the PM2.5 values of the 32 byte frame. The fan speed should adjust based on the AQI, using PWM.
Scalability for Future Hardware: The system should be designed in a way that it can seamlessly integrate a real PSM 5003 sensor in the future, with minimal adjustments needed for hardware integration.
Testing and Debugging: All features must be tested, including manual tests of the flow monitoring, fan control, and UART communication.
Documentation and Code Quality: Code will be documented using Doxygen and styled consistently with clang-format
. CI pipelines will automate style checks, testing, and builds. Comprehensive documentation, including a README and INSTALL guide, will ensure ease of use and maintainability.
Flow Monitoring Module (LPC1769)
Purpose: Monitor the airflow through the filter and adjust the LED brightness to reflect the filter's condition.
Functionality:
PWM Control Module (LPC1769)
Purpose: Regulate fan speed based on the Air Quality Index (AQI) calculated.
Functionality:
UART RX Module (LPC1769)
Purpose: Handle and manage the reception of data transmitted by the STM32.
Functionality:
AQI Calculation Module (LPC1769)
Purpose: Compute the AQI value from the received PM2.5 concentration.
Functionality:
PSM 5003 Sensor Simulation Module (STM32)
Purpose: Simulate the behavior of a real PSM 5003 sensor for testing purposes.
Functionality:
Task Management Module with FreeRTOS (STM32)
Purpose: Manage task scheduling and system stability using FreeRTOS.
Functionality:
0x42
, 0x4D
). The provided schematic circuit will be used to identify the main connections.
This project will involve designing and implementing an embedded system in a collaborative GitHub environment. Each team of 4 students will follow a structured approach to plan, design, document, and implement the project. Below are the steps and expectations for each part of the project.
Task Breakdown
1. Project Plan and Milestones
2. System Design Documentation
3. Implement Continuous Integration and Continuous Deployment (CI/CD) (if applicable)
clang-format
to enforce consistent coding style.4. Code Implementation and Style Guidelines
clang-format
on all code to ensure consistent styling across the project.5. Comprehensive Documentation with Doxygen
docs/
directory for easy access.6. INSTALL.md - Installation and Setup Guide
7. Hardware Specifications and Schematics
8. Additional Suggestions
1.0.0
considered the release branch, and merge only when reviewed and approved by professor.Final Deliverable
The project should be fully implemented, tested, and documented. Each team will create a GitHub repository with all code, diagrams, and documentation completed and structured as per the requirements above. Ensure that the
README.md
provides a quick overview and instructions to navigate the repository effectively.Good luck, and remember that collaboration and clear communication are key to a successful project! 🍀