如何将 ESP32 快速接入高德、心知、和风天气API 获取天气信息

ESP32 Weather 组件:打造属于你的智能天气站

这里推荐大家使用 ESP32 Weather 组件快速接入高德、心知、和风三种天气 API,获取丰富的天气数据。

项目简介

ESP32 Weather 是一个基于 ESP32 IDF 的第三方组件,它支持高德、心知、和风三种天气 API,能够自动识别位置并获取包括温度、湿度、风向风速等在内的丰富天气数据。项目还提供了美观的终端输出和 HTTPS 加密传输,确保数据安全。用户可以轻松地将其集成到 ESP32 项目中,快速实现天气信息的获取和展示。

项目地址:GitHub - NingZiXi/weather

功能亮点

  • 三合一 API 支持:可以选择高德、心知、和风天气中的任意一种 API,这为用户提供了更多的选择和灵活性。
  • 智能定位:组件能够自动识别你的位置,无需手动配置,大大简化了使用过程。
  • 数据丰富:涵盖了温度、湿度、风速、降水等多种天气数据,满足了不同用户的需求。
  • 终端美化:控制台输出美观大方,堪比艺术品,提升了用户体验。
  • 安全可靠:采用 HTTPS 加密传输和 CRT 证书验证,确保数据的安全性。

免费数据支持对比

功能特性 高德天气 心知天气 和风天气
实时天气
温度
湿度
风向风速
风力
气压
能见度
体感温度
降水量
云量
露点温度
免费调用次数 30 万/日 无次数限制 1000/日
是否需要付费 可选 可选 可选

从上表可以看出,和风天气虽然免费调用次数较少,但免费版的服务与付费版相同,数据也较为丰富,因此推荐使用和风天气。

快速开始

1. 克隆项目

要将组件添加到项目中,可以在 IDF 终端执行以下命令:

bash 复制代码
idf.py add-dependency "ningzixi/weather^1.1.0"

或者直接克隆本仓库到项目的 components 目录下:

bash 复制代码
git clone https://github.com/NingZiXi/weather

2. 获取 API 密钥

3. 基本用法

以下是一个简单的示例代码,展示如何使用该组件获取天气信息并打印到终端:

c 复制代码
#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 支持哦!

相关推荐
GXSC2 小时前
国芯思辰|SCS5501/5502芯片组打破技术壁垒,重构车载视频传输链路,兼容MAX9295A/MAX96717
嵌入式硬件
CYRUS_STUDIO2 小时前
FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码
android·安全·逆向
啵啵学习2 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
可乐鸡翅好好吃4 小时前
通过BUG(prvIdleTask、pxTasksWaitingTerminatio不断跳转问题)了解空闲函数(prvIdleTask)和TCB
c语言·stm32·单片机·嵌入式硬件·bug·keil
Shujie_L5 小时前
【Android基础回顾】四:ServiceManager
android
才鲸嵌入式5 小时前
01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
linux·c语言·单片机·嵌入式·arm·qemu·虚拟机
Think Spatial 空间思维5 小时前
【实施指南】Android客户端HTTPS双向认证实施指南
android·网络协议·https·ssl
louisgeek6 小时前
Git 使用 SSH 连接
android
二流小码农6 小时前
鸿蒙开发:实现一个标题栏吸顶
android·ios·harmonyos
广药门徒7 小时前
我认为STM32输入只分为模拟输入 与 数字输入
stm32·单片机·嵌入式硬件