Skip to main content
Version: FILS English

SmartAir

An automated temperature-based fan control system.

info

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. Components Diagram

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​

DeviceUsagePrice
Raspberry Pi Pico WThe microcontroller35 RON
BMP280The temperature censor8.76 RON
LCD displayThe LCD Display29.31 RON
DC MotorDC Fan Motor8.99 RON
Passive BuzzerPassive Buzzer1.40 RON

Software​

LibraryDescriptionUsage
[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
  1. link