天气的所有状态

这个问题其实没有一个**全球统一"固定数量"**的天气状态标准,不同气象机构(比如中国气象局、WMO、METAR航空天气)分类都不一样。

但在嵌入式/APP开发里,一般会用一个**"工程上够用 + 覆盖常见情况"**的分类,大概 20~40种状态比较合理。

我给你一套非常实用、工程可落地的完整天气枚举(约30种),适合你ESP32 + LVGL项目直接用 👇


✅ 常见天气状态分类(工程版)

☀️ 晴天类

  • 少云
  • 多云

🌧️ 雨类

  • 小雨
  • 中雨
  • 大雨
  • 暴雨
  • 雷阵雨
  • 雷阵雨伴有冰雹

❄️ 雪类

  • 小雪
  • 中雪
  • 大雪
  • 暴雪
  • 雨夹雪

🌫️ 能见度类

  • 浓雾
  • 霾(PM2.5)
  • 浮尘
  • 扬沙
  • 沙尘暴

🌬️ 风类

  • 微风
  • 大风
  • 烈风
  • 台风

🌡️ 特殊天气

  • 冰雹
  • 冻雨
  • 高温
  • 低温
  • 龙卷风

✅ C语言枚举定义(推荐直接用)

c 复制代码
typedef enum
{
    WEATHER_UNKNOWN = 0,

    // ☀️ 晴天类
    WEATHER_CLEAR,          // 晴
    WEATHER_PARTLY_CLOUDY,  // 少云
    WEATHER_CLOUDY,         // 多云
    WEATHER_OVERCAST,       // 阴

    // 🌧️ 雨类
    WEATHER_LIGHT_RAIN,     // 小雨
    WEATHER_MODERATE_RAIN,  // 中雨
    WEATHER_HEAVY_RAIN,     // 大雨
    WEATHER_STORM_RAIN,     // 暴雨
    WEATHER_THUNDER_SHOWER, // 雷阵雨
    WEATHER_HAIL_THUNDER,   // 雷阵雨伴冰雹

    // ❄️ 雪类
    WEATHER_LIGHT_SNOW,     // 小雪
    WEATHER_MODERATE_SNOW,  // 中雪
    WEATHER_HEAVY_SNOW,     // 大雪
    WEATHER_BLIZZARD,       // 暴雪
    WEATHER_SLEET,          // 雨夹雪

    // 🌫️ 能见度
    WEATHER_FOG,            // 雾
    WEATHER_HEAVY_FOG,      // 浓雾
    WEATHER_HAZE,           // 霾
    WEATHER_DUST,           // 浮尘
    WEATHER_SAND,           // 扬沙
    WEATHER_SANDSTORM,      // 沙尘暴

    // 🌬️ 风
    WEATHER_BREEZE,         // 微风
    WEATHER_STRONG_WIND,    // 大风
    WEATHER_GALE,           // 烈风
    WEATHER_TYPHOON,        // 台风

    // 🌡️ 特殊
    WEATHER_HAIL,           // 冰雹
    WEATHER_FREEZING_RAIN,  // 冻雨
    WEATHER_FROST,          // 霜
    WEATHER_HEAT,           // 高温
    WEATHER_COLD,           // 低温
    WEATHER_TORNADO,        // 龙卷风

    WEATHER_MAX
} weather_type_t;

✅ 实战建议(非常关键)

你这个是做 ESP32天气显示 + LVGL UI,建议这样设计:

1️⃣ 枚举 + 字符串映射

c 复制代码
const char *weather_str[] = {
    "未知",
    "晴",
    "少云",
    "多云",
    "阴",
    ...
};

2️⃣ 图标映射(LVGL)

c 复制代码
const lv_img_dsc_t *weather_icon[] = {
    &img_unknown,
    &img_sunny,
    &img_cloudy,
    ...
};

3️⃣ API适配层(重点)

天气API(比如和风天气)返回的是字符串:

json 复制代码
"weather": "小雨"

你需要写转换函数:

c 复制代码
weather_type_t weather_parse(const char *str)
{
    if (strcmp(str, "晴") == 0) return WEATHER_CLEAR;
    if (strcmp(str, "小雨") == 0) return WEATHER_LIGHT_RAIN;
    ...
}

🚀 如果你想做"高级一点"(建议)

可以扩展成:

c 复制代码
typedef struct {
    weather_type_t type;
    int temperature;
    int humidity;
    int wind_level;
} weather_info_t;

这样你以后可以做:

  • 动态UI动画 🌧️🌩️❄️
  • 温湿度图形化(你之前说要做艺术风)
  • 天气趋势曲线

👍 总结一句话

👉 没有统一标准,但工程上30种左右最实用

👉 关键不是"有多少种",而是"API怎么映射 + UI怎么展示"


相关推荐
静心观复12 小时前
从短连接到 gRPC:一文读懂 HTTP 连接模型的演进
网络·网络协议·http
w1wi15 小时前
【Vibe Coding】TCP/UDP包篡改重放工具
人工智能·网络协议·tcp/ip·ai·udp·ai编程
treesforest15 小时前
IP地址段查询完全指南:从单IP查到IPv4段批量归属地查询
网络·数据库·网络协议·tcp/ip·网络安全·运维开发
wangl_9215 小时前
Modbus RTU 与 Modbus TCP 深入指南-字节顺序与跨平台问题
网络·网络协议·tcp/ip·tcp·modbus·rtu
wefg115 小时前
【计算机网络】DNS/ICMP协议/ping指令
网络·网络协议·计算机网络
花间相见16 小时前
【全栈开发03】—— curl 常用参数详解与 HTTP 请求实战
网络·网络协议·http
S1998_1997111609•X16 小时前
哈希树函数洪水泛滥污染孪生镜像导致生物量子信息泄露以钩子而爬虫植入ssd探测
爬虫·网络协议·缓存·哈希算法·开闭原则
原来是猿17 小时前
应用层【协议再识/序列化与反序列化】
linux·运维·服务器·网络·网络协议·tcp/ip
报错小能手18 小时前
HTTP/2 牛逼在哪?
网络·网络协议·tcp/ip·http
pengyi87101518 小时前
安全性深度对比,HTTP与HTTPS代理风险差异分析
网络协议·http·https