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.

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