{"id":27627092,"url":"https://github.com/intothevoid/daysync","last_synced_at":"2026-04-10T23:03:11.546Z","repository":{"id":286614906,"uuid":"961935011","full_name":"intothevoid/daysync","owner":"intothevoid","description":"A project that displays weather information, crypto prices, news and MotoGP calendar information on a ESP32 with a TFT display","archived":false,"fork":false,"pushed_at":"2025-04-17T01:39:01.000Z","size":4534,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-17T13:31:30.157Z","etag":null,"topics":["c","cheap-yellow-display","cyd","esp32","esp32-2432s028r","golang","iot","platformio"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/intothevoid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T11:56:15.000Z","updated_at":"2025-04-17T01:39:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"6485fb92-e516-46e7-ac93-5d27db5284b1","html_url":"https://github.com/intothevoid/daysync","commit_stats":null,"previous_names":["intothevoid/daysync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Fdaysync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Fdaysync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Fdaysync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intothevoid%2Fdaysync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intothevoid","download_url":"https://codeload.github.com/intothevoid/daysync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250444026,"owners_count":21431570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cheap-yellow-display","cyd","esp32","esp32-2432s028r","golang","iot","platformio"],"created_at":"2025-04-23T13:52:49.207Z","updated_at":"2026-04-10T23:03:11.526Z","avatar_url":"https://github.com/intothevoid.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Daysync\n\n![Daysync Display](static/daysync.gif)\n\nA project that displays weather information, news, cryptocurrency prices, MotoGP / Formula1 calendars and stock market data on an ESP32 with a TFT display. The ESP32-2432S028 is a 2.4\" TFT display with a resolution of 240x320 pixels which is perfect for this project.\n\n```mermaid\ngraph LR\n    subgraph ESP32[\"ESP32 Display\"]\n        E[ESP32 Board]\n        T[TFT Display]\n        E --\u003e T\n    end\n\n    subgraph Backend[\"Go Backend\"]\n        B[API Server]\n        W[Weather API]\n        M[MotoGP API]\n        F[F1 API]\n        C[Crypto API]\n        N[News API]\n        S[Stock API]\n    end\n\n    E \u003c--\u003e|HTTP Requests| B\n    B \u003c--\u003e|Data Fetch| W\n    B \u003c--\u003e|Data Fetch| M\n    B \u003c--\u003e|Data Fetch| F\n    B \u003c--\u003e|Data Fetch| C\n    B \u003c--\u003e|Data Fetch| N\n    B \u003c--\u003e|Data Fetch| S\n```\n\n## Project Structure\n\n- `backend/`: Go API backend\n- `esp32/`: ESP32 display code\n\n## Backend Setup\n\n1. Navigate to the backend directory:\n```bash\ncd backend\n```\n\n2. Install dependencies:\n```bash\ngo mod tidy\n```\n\n3. Run the server:\n```bash\ngo run main.go\n```\n\nThe API will be available at `http://localhost:5173/api` with the following endpoints:\n- `GET /api/motogp` - Get MotoGP season data\n- `GET /api/motogpnextrace` - Get next MotoGP race\n- `GET /api/formula1` - Get Formula 1 season data\n- `GET /api/formula1nextrace` - Get next Formula 1 race\n- `GET /api/weather` - Get weather data for a location\n- `GET /api/crypto` - Get cryptocurrency price data\n- `GET /api/news` - Get top news headlines\n- `GET /api/finance` - Get stock market data\n\n## API Documentation\n\nThe API documentation is available at `http://localhost:5173/docs/` and provides:\n\n- Interactive Swagger UI interface\n- Detailed API endpoint documentation\n- Request/response schemas\n- Try-it-out functionality for testing endpoints\n\nThe documentation is automatically generated from the OpenAPI specification and includes:\n- All available endpoints\n- Required parameters\n- Response formats\n- Example requests and responses\n\n## ESP32 Setup\n\n1. Install required libraries in Arduino IDE:\n   - TFT_eSPI\n   - ArduinoJson\n   - HTTPClient\n   - LVGL\n\n2. Configure TFT_eSPI:\n   - Edit the `User_Setup.h` file in the TFT_eSPI library\n   - Uncomment the correct display configuration for your ESP32 board\n\n3. Update the following in `esp32/src/main.cpp`:\n   - WiFi credentials (`ssid` and `password`)\n   - API endpoint URL (`BASE_URL`)\n   - Location and timezone settings\n\n4. Upload the code to your ESP32\n\n## Hardware Requirements\n\n- ESP32 development board\n- TFT display compatible with TFT_eSPI library\n- USB cable for programming\n- Power supply\n\n## Display Features\n\nThe display automatically switches between screens every 10 seconds, showing:\n\n1. Weather Information\n   - Location\n   - Current date and time\n   - Temperature\n   - Humidity\n   - Weather conditions\n\n2. MotoGP Calendar\n   - Race name\n   - Circuit\n   - Date\n   - Next race information\n\n3. Formula 1 Calendar\n   - Race name\n   - Circuit\n   - Date\n   - Next race information\n\n4. Stock Market\n   - Multiple stock symbols\n   - Current price\n   - Price change\n   - Market data\n\n5. Cryptocurrency\n   - Multiple crypto symbols\n   - Current price\n   - 24h change\n   - Market cap\n\n6. News Headlines\n   - News title\n   - Source\n   - Multiple headlines across two screens\n\n7. About Screen\n   - Version information\n   - Author details\n   - GitHub repository link\n\n## Data Refresh\n\n- Weather data: Every 60 minutes\n- MotoGP data: Every 60 minutes\n- Formula 1 data: Every 60 minutes\n- Cryptocurrency data: Every 60 minutes\n- News data: Every 60 minutes\n- Stock market data: Every 60 minutes\n\n## Configuration\n\nThe project can be configured through:\n- Backend configuration file (`config.yaml`)\n- Environment variables (`api.env`)\n- ESP32 source code settings\n\n## Development\n\nThe project supports:\n- Test mode for development\n- ICS to JSON conversion for calendar data\n- CORS support for API endpoints\n- HTTP caching for improved performance\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintothevoid%2Fdaysync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintothevoid%2Fdaysync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintothevoid%2Fdaysync/lists"}