Initialize docs and hello display
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Hardware Notes
|
||||
|
||||
## Core Components
|
||||
|
||||
- Arduino MKR1000
|
||||
- SH1106 OLED display
|
||||
- AM2302 temperature and humidity sensor
|
||||
- Two momentary buttons for user input
|
||||
|
||||
## Planned Responsibilities
|
||||
|
||||
### Arduino MKR1000
|
||||
|
||||
- Main controller
|
||||
- Sensor reading
|
||||
- Display updates
|
||||
- Button input handling
|
||||
- Network connectivity for time and weather data
|
||||
|
||||
### SH1106 OLED Display
|
||||
|
||||
- Render the current screen
|
||||
- Present concise text-based information
|
||||
|
||||
### AM2302 Sensor
|
||||
|
||||
- Provide ambient temperature
|
||||
- Provide ambient humidity
|
||||
|
||||
### Buttons
|
||||
|
||||
- `Next` button for navigation
|
||||
- `Select` button for action or mode selection
|
||||
|
||||
## Wiring Status
|
||||
|
||||
The physical wiring is already assembled. Current documented wiring is:
|
||||
|
||||
## Button Wiring
|
||||
|
||||
### Select button
|
||||
|
||||
- Signal pin: `A5`
|
||||
- Wiring: pull-up with `10K` resistor
|
||||
|
||||
### Next button
|
||||
|
||||
- Signal pin: `A4`
|
||||
- Wiring: pull-up with `10K` resistor
|
||||
|
||||
## Sensor Wiring
|
||||
|
||||
### AM2302
|
||||
|
||||
- Measurement/data pin: `A3`
|
||||
- `VCC` -> `3V3`
|
||||
- `GND` -> `GND`
|
||||
|
||||
## Display Wiring
|
||||
|
||||
### SH1106
|
||||
|
||||
- Interface: `I2C`
|
||||
- `SCK` -> `SCL`
|
||||
- `SDA` -> `SDA`
|
||||
- `VCC` -> `5V`
|
||||
- `GND` -> `GND`
|
||||
|
||||
## Ground
|
||||
|
||||
All component ground pins are connected to common `GND`.
|
||||
|
||||
## Assumptions To Verify Later
|
||||
|
||||
- The SH1106 module is compatible with the MKR1000 voltage levels
|
||||
- The AM2302 is powered within its supported operating range
|
||||
- The button pull-up arrangement matches the intended firmware logic
|
||||
- Available pins are sufficient for the display, sensor, and both buttons
|
||||
|
||||
## Risks To Keep In Mind
|
||||
|
||||
- OLED modules may vary by interface and initialization details
|
||||
- Sensor timing can be sensitive depending on the library used
|
||||
- Network-based features may require retry logic and fallback screen states
|
||||
@@ -0,0 +1,68 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user