69 lines
1.8 KiB
Markdown
69 lines
1.8 KiB
Markdown
# Project Overview
|
|
|
|
## Purpose
|
|
|
|
This project will create a small standalone information display using an Arduino MKR1000. The device is meant to provide quick access to a few important data views on an SH1106 OLED screen with very simple physical controls.
|
|
|
|
## User Interaction
|
|
|
|
Two buttons are planned:
|
|
|
|
- `Next`: move to the next available screen or option
|
|
- `Select`: confirm an option or trigger a context-specific action
|
|
|
|
The exact behavior can stay minimal at first. A practical initial version is:
|
|
|
|
- `Next` cycles through screens
|
|
- `Select` toggles a secondary mode when needed
|
|
|
|
## Minimum Feature Scope
|
|
|
|
The first usable version should include:
|
|
|
|
- Time screen for local time
|
|
- Weather forecast screen
|
|
- Temperature screen using the AM2302
|
|
- Humidity screen using the AM2302
|
|
|
|
## Suggested Screen Behavior
|
|
|
|
To keep the interface simple on a small display:
|
|
|
|
- Show one primary screen at a time
|
|
- Keep text large and readable
|
|
- Refresh local sensor data regularly
|
|
- Refresh network-based data less frequently than local sensor data
|
|
- Avoid cluttered layouts
|
|
|
|
## Data Sources
|
|
|
|
### Local data
|
|
|
|
- Temperature from AM2302
|
|
- Humidity from AM2302
|
|
|
|
### External data
|
|
|
|
- Local time
|
|
- Weather forecast
|
|
|
|
The exact source and synchronization method for time and weather can be decided later during implementation.
|
|
|
|
## Non-Goals For Now
|
|
|
|
These are intentionally out of scope for the initial documentation phase:
|
|
|
|
- Final UI layout details
|
|
- Library selection
|
|
- Network/API implementation
|
|
- Pin-level firmware implementation
|
|
- Power optimization
|
|
|
|
## Open Items
|
|
|
|
- Document exact wiring for the display, sensor, and buttons
|
|
- Decide how local time will be synchronized
|
|
- Decide where weather forecast data will come from
|
|
- Define how button behavior should work on each screen
|
|
- Confirm refresh intervals for sensor and network data
|