Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c53f6a3f77 | |||
| 7fe92790d7 | |||
| 3b9d5bc984 | |||
| a73f171102 | |||
| 157dc0e6cf | |||
| df6428550f | |||
| f1d4a7c1bc |
40
README.md
40
README.md
@@ -1,5 +1,22 @@
|
||||
# This [](https://github.com/Myxelium/HomeScreen/actions/workflows/build.yml)
|
||||
Core api and Esp32 code for displaying weather data and public transport information on a e-ink display.
|
||||
[](https://github.com/myxelium/homescreen "Go to GitHub repo")
|
||||
[](https://github.com/myxelium/homescreen)
|
||||
[](https://github.com/myxelium/homescreen)
|
||||
[](https://github.com/myxelium/homescreen/releases/)
|
||||
[](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
[](https://github.com/myxelium/homescreen/issues)
|
||||
[](https://github.com/Myxelium/HomeScreen/actions/workflows/build.yml)
|
||||
# What why how
|
||||
This is a project I created that pulls weather data from the internet, transforms it into custom images, and displays them on an e-ink screen powered by an ESP32.
|
||||
|
||||
## What This Project Does
|
||||
|
||||
I wanted a low-power way to see weather information at a glance, so I built this system that:
|
||||
|
||||
- Fetches real-time weather data from online APIs
|
||||
- Processes and converts the data into visual images (temperature graphs, forecast icons, etc.)
|
||||
- Sends these images wirelessly to an ESP32 microcontroller
|
||||
- Displays the information on an energy-efficient e-ink screen
|
||||
- Updates periodically while consuming minimal power
|
||||
|
||||
<img width="800" height="480" alt="image" src="https://github.com/user-attachments/assets/ef5af0c6-ea3a-494d-b2af-3de6e70b3e6a" />
|
||||
|
||||
@@ -11,8 +28,8 @@ All commits has to follow this [Conventional Commits style](https://www.conventi
|
||||
- Display time and date
|
||||
|
||||
## Requirements 🫥
|
||||
- ESP32 board
|
||||
- E-ink display (e.g. Waveshare 7.5 inch)
|
||||
- [ESP32 board](https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board)
|
||||
- [E-ink display (e.g. Waveshare 7.5 inch)](https://www.waveshare.com/7.5inch-e-paper-hat.htm)
|
||||
|
||||
# Installation
|
||||
|
||||
@@ -92,7 +109,7 @@ end
|
||||
API[HomeControllerAPI]
|
||||
API -->|MediatR| Handlers
|
||||
Handlers -->|Service Calls| Services
|
||||
Services -->|Refit Clients| Clients
|
||||
Services -->|Refit Http Clients| Clients
|
||||
Clients -->|External APIs| ExtAPIs
|
||||
API -->|Returns JSON/JPEG| ESP
|
||||
end
|
||||
@@ -109,3 +126,16 @@ end
|
||||
ExtAPIs -.-> NominatimAPI
|
||||
ExtAPIs -.-> ResRobotAPI
|
||||
```
|
||||
|
||||
# ESP32 configuration and building
|
||||
<img width="4096" height="1842" alt="image" src="https://github.com/user-attachments/assets/5acf1b3b-f9bb-48bd-b310-a2852544eaba" />
|
||||
|
||||
Best way of getting the ESP32 ready for code upload is to follow this guide [WAVESHARE ESP32 GUIDE](https://web.archive.org/web/20250706150325/https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board).
|
||||
Once you have it ready so you can upload code to it copy my code in: Esp32_Code/INFOSCREEN_WITH_INTERVAL from this repo.
|
||||
|
||||
Install following libraries (if more is needed search for them and install them too):
|
||||
* ArduinoJson
|
||||
* GUI_Paint
|
||||
* JPEGDEC
|
||||
|
||||
You need the Waveshare examples installed since it uses code from them download them here [Download](https://files.waveshare.com/upload/5/50/E-Paper_ESP32_Driver_Board_Code.7z) or check above link.
|
||||
|
||||
Reference in New Issue
Block a user