Skip to content

feat: add weather dashboard demo application#75

Open
aiduxiaoxiong wants to merge 4 commits intoopen-vela:devfrom
aiduxiaoxiong:feat/weather-dashboard-demo
Open

feat: add weather dashboard demo application#75
aiduxiaoxiong wants to merge 4 commits intoopen-vela:devfrom
aiduxiaoxiong:feat/weather-dashboard-demo

Conversation

@aiduxiaoxiong
Copy link
Member

@aiduxiaoxiong aiduxiaoxiong commented Mar 23, 2026

Weather Dashboard Demo

A feature-rich weather dashboard application built with LVGL for the openvela platform.

Features

  • Multi-page navigation with animated page transitions (slide + fade)
  • Home page: Current weather with animated effects (rain/snow/sun glow), 24-hour temperature & humidity line chart, 7-day forecast
  • Detail page: Circular gauge widgets for temperature, humidity, pressure, and AQI; UV index bar; wind speed & direction display
  • Settings page: Temperature unit toggle (°C/°F), city selection dropdown, refresh interval slider, about section
  • Simulated sensor data with realistic fluctuations for demo purposes
  • Dark-themed UI with consistent color palette
  • Bottom navigation bar with icon + label buttons

Architecture

MVC-like separation with reusable widget components:

  • weather_data (Model) — simulated weather data engine
  • page_home / page_detail / page_settings (View) — page lifecycle with create/update/destroy
  • weather_dashboard_main (Controller) — app entry, navigation, timers
  • chart_widget / gauge_widget — self-contained reusable components
  • weather_anim — particle-based weather effect animations

Files (10 source files)

weather_dashboard/
├── CMakeLists.txt
├── Kconfig
├── Make.defs
├── Makefile
├── README.md
├── README_zh-cn.md
├── weather_dashboard_main.c
└── src/
    ├── weather_data.h
    ├── weather_data.c
    ├── weather_ui.h
    ├── page_home.c
    ├── page_detail.c
    ├── page_settings.c
    ├── chart_widget.c
    ├── gauge_widget.c
    └── weather_anim.c

Build

CONFIG_LVX_USE_DEMO_WEATHER_DASHBOARD=y

Dependencies

  • LVGL (v9.x) with chart support
  • libuv
  • NuttX RTOS

- Home page: weather overview, animation, 24h chart, 7-day forecast
- Detail page: environment gauges (temp/humidity/pressure/AQI), UV index, wind
- Settings page: unit toggle, city selection, refresh interval
- Main: app framework with navigation, page transitions, timers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant