Initialize docs and hello display

This commit is contained in:
2026-05-26 21:09:10 +03:00
commit db5ae6eb6b
11 changed files with 377 additions and 0 deletions
+84
View File
@@ -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
+68
View File
@@ -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