ESP32 E-Paper Weather Display 开源项目安装与使用指南
目录结构及介绍
当你从GitHub仓库克隆(lmarzen/esp32-weather-epd)该项目到本地之后,你会看到如下的目录结构:
├── fonts # 字体文件夹,存放各种字体样式用于E-Paper显示文字
│ ├── font1.ttf
│ └── ...
├── icons # 图标文件夹,存储了用于表示天气状态的各种图标
│ ├── sun.png
│ └── ...
├── platformio # PlatformIO相关的配置和缓存文件夹
│ ├── .piolibdeps # 内部库依赖
│ └── .pioenvs # 编译环境设置
├── showcase # 示例项目文件夹,包含了预设的显示效果模板
│ ├── example1.ino
│ └── ...
├── LICENSE # 项目授权许可文件,通常包含了使用的开源许可证类型
├── README.md # 主读我文件,描述了项目的基本信息和用法
└── main.ino # 主程序入口文件,ESP32的所有逻辑都在这里实现
main.ino
: 主程序文件。包含整个项目的初始化流程和主要逻辑处理。这是ESP32微控制器上的核心执行文件。fonts
&icons
: 资源文件夹。分别存放着不同的字体和天气图标,用于美化E-Paper的显示结果。
项目的启动文件介绍
main.ino
: 这是ESP32 E-Paper Weather Display项目的主启动文件。在这个文件中,你可以找到以下关键部分:
初始化部分
void setup() {
// 初始化串口通信
Serial.begin(115200);
// 初始化Wi-Fi网络
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
// 等待Wi-Fi连接成功
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
这段代码负责项目的整体初始化工作,包括串口通讯的开启、Wi-Fi模块的激活并连接至指定的无线网络。
循环执行部分
void loop() {
// 获取天气信息
getWeatherData();
// 显示天气信息
displayWeatherInfo();
}
void getWeatherData() {
// HTTP请求天气数据
HTTPClient http;
String requestUrl = apiUrl + "?appid=" + apiKey + "&q=" + city;
Serial.println(requestUrl);
http.begin(requestUrl.c_str());
int httpResponseCode = http.GET();
if (httpResponseCode > 0) { // 成功接收响应
String payload = http.getString();
parseWeatherJson(payload); // 解析json
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpResponseCode).c_str());
}
http.end(); // 释放HTTP客户端资源
}
loop()
函数是ESP32循环运行的核心,它周期性地调用getWeatherData()
来从OpenWeatherMap API获取最新的天气数据,然后调用displayWeatherInfo()
将这些数据渲染到E-Paper显示器上。
项目的配置文件介绍
尽管ESP32-Weather-Epd没有明确的配置文件(.ini
, .json
)形式,但其配置参数通常被定义在代码中,尤其是在main.ino
文件内。下面列出了一些常见的配置项:
const char* ssid = "YourSSID"; // Wi-Fi SSID
const char* password = "YourPassword"; // Wi-Fi Password
String city = "CityName"; // 查询天气的城市名
String apiKey = "YourApiKey"; // OpenWeatherMap API密钥
const char *apiUrl = "https://api.openweathermap.org/data/2.5/weather";
ssid
和password
分别代表了你打算连接的Wi-Fi的名称和服务密码;city
表示希望查询天气的城市名称;apiKey
则是从OpenWeatherMap网站申请得到的个人API密钥,用于身份验证和权限管理;apiUrl
指定了API请求的目标URL。
这些配置项直接决定了项目能否正确地接入互联网、获取天气数据并呈现给使用者。务必确保它们的值是有效且安全的。在进行生产部署前,建议不要泄露apiKey
这样的敏感信息。