esp8266获取天气
时间: 2023-10-08 10:14:47 浏览: 48
要获取天气信息,您需要使用一些开放的天气API。这里我以中国天气网的API为例,步骤如下:
1. 注册成为开发者,获取API Key。
2. 发送HTTP GET请求到API接口,获取天气数据。
下面是一个简单的示例代码:
```
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* host = "www.weather.com.cn";
void setup() {
Serial.begin(9600);
delay(1000);
Serial.println("Connecting to WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop() {
String url = "/data/cityinfo/101010100.html"; // 北京的天气数据
String request = "GET " + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n";
WiFiClient client;
if (client.connect(host, 80)) {
Serial.println("Connected to server");
client.print(request);
while (client.connected()) {
if (client.available()) {
String line = client.readStringUntil('\r');
Serial.println(line);
}
}
client.stop();
} else {
Serial.println("Connection failed");
}
delay(60000); // 每隔一分钟获取一次天气数据
}
```
请注意,这只是一个简单的示例,您需要根据自己的实际情况修改代码。另外,由于天气API的数据格式和返回值可能会发生变化,请务必查看API文档并且进行相应的调整。