ESP32 Weather 组件:打造属于你的智能天气站
这里推荐大家使用 ESP32 Weather 组件快速接入高德、心知、和风三种天气 API,获取丰富的天气数据。
项目简介
ESP32 Weather 是一个基于 ESP32 IDF 的第三方组件,它支持高德、心知、和风三种天气 API,能够自动识别位置并获取包括温度、湿度、风向风速等在内的丰富天气数据。项目还提供了美观的终端输出和 HTTPS 加密传输,确保数据安全。用户可以轻松地将其集成到 ESP32 项目中,快速实现天气信息的获取和展示。
项目地址:GitHub - NingZiXi/weather
功能亮点
- 三合一 API 支持:可以选择高德、心知、和风天气中的任意一种 API,这为用户提供了更多的选择和灵活性。
- 智能定位:组件能够自动识别你的位置,无需手动配置,大大简化了使用过程。
- 数据丰富:涵盖了温度、湿度、风速、降水等多种天气数据,满足了不同用户的需求。
- 终端美化:控制台输出美观大方,堪比艺术品,提升了用户体验。
- 安全可靠:采用 HTTPS 加密传输和 CRT 证书验证,确保数据的安全性。
免费数据支持对比
功能特性 | 高德天气 | 心知天气 | 和风天气 |
---|---|---|---|
实时天气 | ✅ | ✅ | ✅ |
温度 | ✅ | ✅ | ✅ |
湿度 | ✅ | ❌ | ✅ |
风向风速 | ✅ | ❌ | ✅ |
风力 | ✅ | ❌ | ✅ |
气压 | ❌ | ❌ | ✅ |
能见度 | ❌ | ❌ | ✅ |
体感温度 | ❌ | ❌ | ✅ |
降水量 | ❌ | ❌ | ✅ |
云量 | ❌ | ❌ | ✅ |
露点温度 | ❌ | ❌ | ✅ |
免费调用次数 | 30 万/日 | 无次数限制 | 1000/日 |
是否需要付费 | 可选 | 可选 | 可选 |
从上表可以看出,和风天气虽然免费调用次数较少,但免费版的服务与付费版相同,数据也较为丰富,因此推荐使用和风天气。
快速开始
1. 克隆项目
要将组件添加到项目中,可以在 IDF 终端执行以下命令:
idf.py add-dependency "ningzixi/weather^1.1.0"
或者直接克隆本仓库到项目的 components
目录下:
git clone https://github.com/NingZiXi/weather
2. 获取 API 密钥
- 高德 API:访问 高德地图开放平台 获取密钥。
- 心知天气 API:访问 心知天气 获取密钥。
- 和风天气 API:除了获取密钥外,还需要配置 host。密钥获取地址为 和风天气控制台,host 配置地址为 和风天气设置。
3. 基本用法
以下是一个简单的示例代码,展示如何使用该组件获取天气信息并打印到终端:
#include "weather.h"
void app_main() {
// 省略联网部分
weather_config_t config = {
.api_key = WEATHER_HEFENG_KEY,
.api_host = WEATHER_HEFENG_HOSE, // 和风天气需要配置host
.city = NULL, // city为NULL自动根据IP地址获取位置,也可以指定城市
// .city = "北京",
.type = WEATHER_HEFENG //可更改为api配置WEATHER_AMAP或WEATHER_XINZHI
};
weather_info_t *info = weather_get(&config);
if (info) {
weather_print_info(info); // 打印天气信息
weather_info_free(info);
}
}
更多 API 接口可以查看 weather.h
文件。
串口输出示例
以下是串口输出的天气信息示例:
总结
如果你觉得这个项目不错,别忘了给它一个 Star 支持哦!