超级简单的一个时钟,可以获取时间和温湿度。
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <DHT.h>
// Wi-Fi连接设置
const char* ssid = "你的wifi名称"; // WiFi名称
const char* password = "你的wifi密码"; // WiFi密码
// NTP客户端设置
WiFiUDP udp;
NTPClient timeClient(udp, "pool.ntp.org", 28800, 60000); // 设置时区偏移为UTC+8 (28800秒)
// DHT11设置
#define DHTPIN 4 // DHT11连接到GPIO 4
#define DHTTYPE DHT11 // 使用DHT11传感器
DHT dht(DHTPIN, DHTTYPE); // 初始化DHT传感器
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password); // 连接Wi-Fi
// 等待连接
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi!");
// 初始化时间客户端
timeClient.begin();
// 初始化DHT传感器
dht.begin();
}
void loop() {
timeClient.update(); // 获取网络时间
Serial.print("网络时间: ");
Serial.println(timeClient.getFormattedTime()); // 打印当前时间
// 读取温湿度数据
float humidity = dht.readHumidity(); // 读取湿度
float temperature = dht.readTemperature(); // 读取温度(默认单位为摄氏度)
// 检查读取是否成功
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
} else {
// 打印温湿度数据
Serial.print("温度: ");
Serial.print(temperature);
Serial.print(" °C\t");
Serial.print("湿度: ");
Serial.print(humidity);
Serial.println(" %");
}
delay(100); // 每秒打印一次
}