Skip to main content
Version: ACS CC

Weather Window

A smart window that monitors indoor air quality and external weather conditions, automatically deciding whether to open the window or not.

info

Author: Tudor Lavinia
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-LaviniaTudor003

Description

Weather Window is an automatic smart window that constantly monitors indoor temperature, humidity, and air quality. It also gathers external weather data — such as temperature, humidity, and approximate rain probability (based on humidity and pressure) — transmitting data to the main display unit. The system automatically determines whether opening the window is necessary to improve indoor conditions. A display that presents real-time information about the surrounding environment, both indoor and outdoor, and provides personalized recommendations for users, such as clothing suggestions ("It's cold — dress warmly") or alerts ("It might rain — take an umbrella").

Motivation

"Weather Window" was first imagined during a high school project, inspired by the idea of creating a living environment that adjusts itself for better comfort and health. Today, with the opportunity to work with real technologies, I am determined to turn that early vision into reality. This project is not just a technical challenge, but also a personal dream to contribute to smarter, healthier, and more sustainable homes.

Architecture

Description of Image
The system is based on a Raspberry Pi Pico 2W, connected to environmental sensors (BME280, BMP280, MQ-2 Gas Sensor) and LCD display via I2C + a stepper motor driver (ULN2003) via GPIO. The Pico collects indoor and outdoor data, displays it, and controls the window motor automatically based on the conditions.

Log

Week 21 - 27 April

  • Selected the main components for the project.
  • Discussed the project architecture.
  • Started component research (sensors, motor, controller).

Week 28 April - 4 May

  • Ordered the required components.
  • Started writing the project documentation.
  • Created the full electronic schematic in KiCad.

Week 5 - 11 May

  • Started the hardware development phase.
  • Used two Raspberry Pi Pico 2W boards for debugging.

Week 12 - 18 May

  • Tested the stepper motor functionality.
  • Tested the BME280 and BMP280 sensors for environmental data.
  • Began writing code to interface with the stepper motor and both sensors.
  • Updated the KiCad schematic with all necessary components.
  • Built the window prototype for the system.

Week 19 - 25 May

  • Finalized the complete software implementation for the project.
  • Implemented the automatic closing system for the window.
  • Confirmed that the system responds correctly to environmental changes in real-time.
  • Built and mounted the custom link between the stepper motor and the window for physical closing.

Hardware

  • Raspberry Pi Pico 2W – Main controller responsible for data processing and motor control.
  • BME280 Sensor – Measures temperature, humidity, and atmospheric pressure.
  • BMP280 Sensor – Measures temperature, and atmospheric pressure.
  • MQ-2 Gas Sensor – Measures indoor air quality, including CO₂ level.
  • Stepper Motor (28BYJ-48) – Controls the opening and closing of the window.
  • ULN2003 Driver Board – Drives the stepper motor based on control signals.
  • LCD 1602 – Shows real-time indoor and outdoor conditions and recommendations.
  • Breadboard and Jumper Wires – Used for prototyping and connecting components. Pic1 Pic2 Pic3

Schematics

Schema electrică

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WMain controller of the system40 RON
BME280 SensorMeasures temperature, humidity, and pressure74 RON
MQ-2 Gas Sensor ModuleDetects smoke, LPG, methane, and other gases11 RON
BMP280 SensorSecondary sensor for debugging9 RON
Stepper Motor 28BYJ-48Drives the simulated window10 RON
ULN2003 Driver BoardStepper motor controller5 RON
1602 LCD with I2C InterfaceDisplays system info15 RON
Breadboard 830 ptsPrototyping platform22 RON
Jumper Wires KitWiring connections8 RON
Breadboard HQ (400 Points)Prototyping platform10 RON

Software

LibraryDescriptionUsage
cortex-m-rtRuntime support for Cortex-M devicesDefines entry point (entry)
embassy-timeTime and delay handlingUsed for timers and delays
embassy-rpRaspberry Pi Pico peripherals (PWM, I2C, ADC, GPIO)Used for controlling peripherals
embedded-hal-asyncAsynchronous traits for embedded devicesEnables async I2C communication
hd44780-driverDriver for HD44780 LCDs over I2CUsed to display messages and alerts
  1. Monitor air quality with a Raspberry Pi – A guide from the Raspberry Pi Foundation on how to monitor air quality using a sensor and Python.
  2. Air quality monitoring with Raspberry Pi – A GitHub project using a Raspberry Pi for air quality monitoring with BME280 and CCS811 sensors.
  3. Build a Raspberry Pi SUPER Weather Station – Step-by-step instructions for building an advanced weather station with a Raspberry Pi.