Weather App For the future.
Author: GZARA Seif
GitHub Project Link: (https://github.com/UPB-FILS-MA/project-seifgz)
Description
A robot that displays the weather of the day and makes it readable on an lcd screen and upgradable to be hearable on a small speaker.
Motivation
I remember there was a rainy day where i had to do some groceries shopping and found this old blind lady that was drenched from the rain that turned out to be my neighbor, i helped her get home and she told me her life story and that it's very difficult to do very simple things such as taking an umberalla on a rainy day, that's not when i decided to become a programmer but since i'm becoming one now i remembered this instance and i wanna do something about it so i'm gonna create this small useful robot.
Architecture
Raspberry Pi Pico W: The Raspberry Pi Pico W serves as the central microcontroller unit. It can be programmed to control various functions and interfaces with other components. 16x2 I2C LCD Display: The LCD display can be connected to the Raspberry Pi Pico W via the GPIO pins. Since it uses the I2C communication protocol, we need to connect its SDA (data) and SCL (clock) pins to the corresponding GPIO pins on the Pico W. Additionally, power (VCC) and ground (GND) connections are necessary. Jumper Wires: These are used to make the connections between the Raspberry Pi Pico W, the LCD display, and any other components on the breadboard. They're essential for establishing temporary electrical connections. Breadboard: The breadboard provides a platform for mounting and connecting the various components. The Raspberry Pi Pico W can be placed on the breadboard, and jumper wires can be used to connect its GPIO pins to the appropriate rows and columns on the breadboard. Other components can also be connected to the breadboard using jumper wires as needed. Micro-USB Cable: This is used to power the Raspberry Pi Pico W and establish a connection with a computer or power source for programming and data transfer. The cable connects to the micro-USB port on the Pico W and the USB port on the computer or power adapter.
Log
Week 6 - 12 May
Week 7 - 19 May
Week 20 - 26 May
Hardware
Raspberry Pi Pico W: A wireless-enabled microcontroller board for embedded projects.
16x2 I2C LCD Display: A compact text display module for showing information in DIY electronics projects.
Jumper Wires: Essential for making temporary connections between components on a breadboard.
Breadboard: A solderless prototyping board for building and testing electronic circuits.
Micro-USB Cable: Used for powering and connecting devices like the Raspberry Pi Pico W to a computer or power source.
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Rapspberry Pi Pico W | The microcontroller | 35 RON |
| LCD SCREEN | The Screen | 28 RON |
| Breadboard | The microcontroller | 3 RON |
| Micro-USB Cable | The USB Cable | 18 RON |
| Jumper Wires | The wires | 5 RON |
Software
Library | Description | Usage |
---|---|---|
st7789 | Display driver for ST7789 | Used for the display for the Pico Explorer Base |
embedded_hal | Hardware abstraction layer for embedded systems | Used for abstracting hardware interactions |
embassy_rp | Provides abstractions and APIs | Communicate via UART, SPI, and I2C using their respective modules |
embassy_time | Provides time-related functionality | Schedule tasks to run at specific times |
embassy_executor | Provides an executor for running asynchronous tasks concurrently | Execute asynchronous tasks concurrently |
embassy_sync | Provides synchronization primitives | Create mutexes, semaphores, and barriers for coordinating access to shared resources |
Python | Python serves as the programming language to interact with the hardware components, allowing you to create a wide range of embedded projects |