SmartAir
An automated temperature-based fan control system.
Author: Aktas Furkan Said
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-furkansaktas
Description
SmartAir is a temperature-activated fan system that automatically turns a fan on when the temperature exceeds a set threshold and off when it drops below. It uses a temperature sensor to monitor the environment and a microcontroller (Raspberry Pi Pico W) running Rust code to control the fan.
Motivation
The motivation behind this project is to create an energy-efficient solution for regulating room temperature automatically. It showcases embedded systems' practical application in environmental monitoring and automation.
Architecture
The Raspberry Pi Pico W acts as the central controller managing all components. The BMP280 sensor provides temperature and pressure data via I2C, which the Pico uses to control a DC motor-powered fan. An LCD also connected through I2C displays live sensor readings and system status.
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
The project uses a Raspberry Pi Pico W as the central controller managing all components. A BMP280 sensor monitors temperature and pressure sending data to the Pico via I2C. When the temperature exceeds a defined threshold the Pico activates a DC motor to power a cooling fan and triggers an active buzzer to emit an audible alert. An LCD display shows real-time temperature, pressure, and system status, allowing users to easily monitor environmental conditions.
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico W | The microcontroller | 35 RON |
BMP280 | The temperature censor | 8.76 RON |
LCD display | The LCD Display | 29.31 RON |
DC Motor | DC Fan Motor | 8.99 RON |
Passive Buzzer | Passive Buzzer | 1.40 RON |
Software
Library | Description | Usage |
---|---|---|
[embassy-rp] | (https://docs.embassy.dev/embassy-rp/git/rp235xb/index.html) | Access to the pheripherals |
[panic-probe] | (https://docs.rs/panic-probe/latest/panic_probe/) | Panic handler for embedded targets |
[ag-lcd] | (https://docs.rs/ag-lcd/latest/ag_lcd/) | Display library for I2C LCDs |
[embassy-time] | (https://docs.embassy.dev/embassy-time/git/default/index.html) | Time management for async execution |