Smart Desk Assistant
A small device to display and manage notifications from an external server.
info
Author: Andrei-George Zdrali
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-AndreiZdrali
Description
The Smart Desk Assistant shows notifications pulled from a server. Users can scroll through them, delete them, and get buzzer alerts for timer-based reminders.
Motivation
I wanted a simple and useful device to help manage my tasks without being distracted by my laptop or phone. Also, seems like a good project to practice networking in embedded programming.
Architecture
Main components:
- Server: Hosts the notifications and sends them on request.
- Raspberry Pi Pico W 2: Connects to the server over WiFi, manages notifications, updates the display, and handles button inputs.
- OLED Display (SSD1306 I2C): Displays the notifications.
- Buttons: Navigate through and delete notifications.
- Buzzer: Alerts when timer notifications trigger.
Connections:
- WiFi connects the Pico W 2 to the Server.
- I2C connects Pico W 2 to the OLED Display.
- GPIOs connect Pico W 2 to the Buttons and Buzzer.
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
- Raspberry Pi Pico W 2 for networking and control.
- SSD1306 I2C OLED Display for showing notifications.
- Buzzer for sound alerts.
- Three Push Buttons for user input.
Schematics
Place your KiCAD schematics here.
Device | Usage | Price |
---|---|---|
2x Raspberry Pi Pico W 2 | Main microcontroller | 80 RON |
SSD1306 I2C OLED Display | Display notifications | 40 RON |
Buzzer | Sound alert for timers | 1 RON |
3x Push Buttons | Navigate/delete notifications | 1 RON |
2x Breadboard | Aid development | 5 RON |
Jumper Wires | Connect components | 8 RON |
Software
Library | Description | Usage |
---|---|---|
embassy | Async embedded framework | Main async runtime |
defmt | Logging for embedded | Debugging output |
embedded-hal | Hardware abstraction layer | Interfaces for GPIO, I2C, etc |
ssd1306 | Driver for SSD1306 displays | Display text and notifications |
embassy-net | Async network stack | Connect to server over WiFi |