1. 项目背景与核心价值
去年在做一个智能家居项目时,需要实时获取室外温度数据来自动调节空调运行模式。当时市面上大多数气象站设备要么价格昂贵,要么数据更新频率太低。偶然发现心知天气API提供免费的基础气象数据服务,配合手头闲置的ESP32开发板,只用了一个周末就搭建出成本不到50元的天气数据采集终端。
这个方案的核心优势在于ESP32自带WiFi模块,无需额外网络硬件就能直接联网获取数据。心知天气的免费API对于个人开发者和小型项目完全够用,响应速度快且数据准确。整套系统从硬件连接到数据解析的完整实现过程,正是本文要详细分享的内容。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件与平台准备
2.1 ESP32开发板选型
市面上常见的ESP32开发板主要有以下三种型号:
- ESP32-DevKitC:基础款,自带CP2102 USB转串口芯片
- NodeMCU-32S:集成CH340串口芯片,板载LED和按键
- WEMOS LOLIN32:微型化设计,适合紧凑空间安装
我选择的是NodeMCU-32S,主要考虑其板载LED便于调试状态指示,且CH340芯片在Linux系统下驱动兼容性更好。实测在Ubuntu 20.04上即插即用,无需额外安装驱动。
2.2 必要开发环境配置
-
Arduino IDE设置:
- 文件 > 首选项 > 附加开发板管理器网址添加:
code复制https://dl.espressif.com/dl/package_esp32_index.json - 工具 > 开发板 > 开发板管理器安装"esp32 by Espressif Systems"
- 选择开发板型号:"NodeMCU-32S"
- 文件 > 首选项 > 附加开发板管理器网址添加:
-
必备库安装:
- WiFi.h(内置)
- HTTPClient.h(内置)
- ArduinoJson(需通过库管理器安装6.x版本)
注意:ArduinoJson库务必选择v6.x版本,v5.x与ESP32的兼容性存在已知问题,会导致内存异常。
3. 心知天气API申请与配置
3.1 API密钥获取
- 访问心知天气官网注册开发者账号
- 进入控制台创建新项目
- 获取API密钥(通常以"SDK-"开头的一
