Wireless Weather Station
A wireless weather station transmitting temperature, humidity, and pressure readings to a web interface.
Author: Ana-Maria Batagoi
GitHub Project Link: https://github.com/UPB-FILS-MA/project-anabat27
Description
This project aims to design and implement a comprehensive weather monitoring system utilizing the Raspberry Pi Pico W microcontroller and Rust programming language. It involves integrating temperature, humidity, and pressure sensors to gather environmental data, which is then transmitted wirelessly to a web interface. Users can access this interface from any device with a web browser to view real-time weather conditions, enabling remote monitoring and analysis for various applications.
Motivation
I chose this project because it combines several interesting elements: microcontroller programming with the Raspberry Pi Pico W, coding in Rust, sensor integration for environmental data collection, and web development for creating a user interface. Additionally, building a weather station provides practical applications for monitoring weather conditions, which can be useful for personal or educational purposes. Overall, it's a challenging and rewarding project that encompasses a range of skills and technologies.
Architecture
Main components:
Sensor Interface Module: This consists of the BME280, which is a sensor that integrates all three measuraments(temperature, pressure and humidity).
Data Processing Module: The data processing module primarily consists of the microcontroller (Raspberry Pi Pico W) itself. It handles the processing of raw sensor data, including tasks such as data filtering, calibration, and conversion.
Data Transmission Module: For wireless transmission, this module typically includes the Wi-Fi capabilities of the Raspberry Pi Pico W. The Pico W has built-in Wi-Fi connectivity, allowing it to connect to your local Wi-Fi network and transmit data to a web server or cloud platform.
User Interface Module: The user interface module primarily consists of the web server where the weather station data is transmitted and displayed.
How they connect: Sensor Interface Module to Data Processing Module: The BME280 is connected to the Raspberry Pi Pico W through GPIO pins. Data Processing Module to User Interface Module:The Raspberry Pi Pico W is connected to the web interface using a micro USB cable.
Log
Week 6 - 12 May
Week 7 - 19 May
Week 20 - 26 May
Hardware
Raspberry Pi Pico W: The main microcontroller board that will control the operation of the weather station and handle communication with sensors.
BME280 Sensor Module: This sensor module integrates temperature, humidity, and pressure sensors into one unit, simplifying the hardware setup. It communicates with the Raspberry Pi Pico W using the I2C communication protocol.
Micro USB Cable: To connect the Raspberry Pi Pico W to the computer for programming and development.
Breadboard and Jumper Wires: For prototyping and connecting the components together.
Schematics
project_documentation
Place your KiCAD schematics here. main
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico W | The microcontroller | 35 RON |
BME280 | The sensor | 74 RON |
Micro USB Cable | To power the Raspberry Pi Pico W | 3 RON |
Breadbord | To assembly the prototype | 8 RON |
Male-to-male Wires | To connect | 5 RON |
Male-to-female Wires | To connect | 4 RON |
Female-to-female Wires | To connect | 4 RON |
Software
Library | Description | Usage |
---|---|---|
embassy-hal | Embassy hardware abstraction layer | Used to provide a hardware abstraction layer (HAL) for embedded systems |
embassy | Asynchronous embedded applications | Used to write efficient, reliable, and scalable embedded applications |
embassy-net | Networking support for embedded applications | Used to simplify the implementation of networking functionality in embedded Rust applications |