Arduino D1/esp8266 + DHT11 网页实时显示温湿度

Arduino D1是一种基于ESP8266芯片的开发板,具有内置的Wi-Fi模块,使得它在物联网项目中非常流行。本篇博客将介绍如何使用Arduino D1与DHT11温湿度传感器构建一个实时显示温湿度数据的网页应用。

1.准备材料

Arduino D1开发板
DHT11温湿度传感器
杜邦线若干

2.硬件连接

使用杜邦线将DHT11传感器与Arduino D1连接:
DHT11 VCC引脚 → Arduino D1 3.3V引脚
DHT11 GND引脚 → Arduino D1 GND引脚
DHT11 OUT引脚 → Arduino D1 D4引脚

3.编写代码

1.导入库
#include <ESP8266WiFi.h>
#include <DHT.h>

2.配置WiFi

const char* ssid = "您的Wi-Fi网络名称";
const char* password = "您的Wi-Fi网络密码";

3.定义DHT11传感器

#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

4.设置Web服务器

WiFiServer server(80);

5.初始化DHT11和WIFI

void setup() {
    
    
  Serial.begin(115200);
  dht.begin();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    
    
    delay(1000);
    Serial.print(".");
  }
  Serial.println("WiFi连接成功!");
  Serial.println("Wi-Fi connected.");
  server.begin();
  Serial.println("IP address: " + WiFi.localIP().toString());
}

创建WEB界面并获取传感器数据

void loop() {
    
    
  WiFiClient client = server.available();
  if (client) {
    
    
    Serial.println("新的客户端连接");
    String currentTemperature = String(dht.readTemperature());
    String currentHumidity = String(dht.readHumidity());

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html; charset=utf-8"); // 设置正确的 Content-Type
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    
    client.println("<h2>温度和湿度</h2>"); // 使用中文文本
    client.print("温度:");
    client.print(currentTemperature);
    client.print("°C");
    client.println("<br>");
    
    client.print("湿度:");
    client.print(currentHumidity);
    client.print("%");
    client.println("<br>");
    
    client.println("</html>");

    delay(100);
    client.stop();
    Serial.println("客户端断开连接");
  }
}

IP地址可以在串口中查询:

在这里插入图片描述

在浏览器中输入IP地址即可获得数据

在这里插入图片描述

完整代码

#include <ESP8266WiFi.h>
#include <DHT.h>

// 替换为您的网络凭据
const char* ssid = "319";
const char* password = "5201314520";

// 替换为您的传感器引脚
#define DHTPIN D4
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
WiFiServer server(80);

void setup() {
    
    
  Serial.begin(115200);
  dht.begin();
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    
    
    delay(1000);
    Serial.println("连接到WiFi网络...");
  }
  Serial.println("WiFi连接成功!");
  server.begin();
  Serial.println("WiFi connected");
  Serial.println("IP address: " + WiFi.localIP().toString());

}

void loop() {
    
    
  WiFiClient client = server.available();
  if (client) {
    
    
    Serial.println("新的客户端连接");
    String currentTemperature = String(dht.readTemperature());
    String currentHumidity = String(dht.readHumidity());

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html; charset=utf-8"); // 设置正确的 Content-Type
    client.println("");
    client.println("<!DOCTYPE HTML>");
    client.println("<html>");
    
    client.println("<h2>温度和湿度</h2>"); // 使用中文文本
    client.print("温度:");
    client.print(currentTemperature);
    client.print("°C");
    client.println("<br>");
    
    client.print("湿度:");
    client.print(currentHumidity);
    client.print("%");
    client.println("<br>");
    
    client.println("</html>");

    delay(100);
    client.stop();
    Serial.println("客户端断开连接");
  }
}

通过使用Arduino D1开发板和DHT11温湿度传感器,我们成功地构建了一个实时显示温湿度数据的网页应用。这种物联网项目可以为家庭自动化、温室监测等领域提供有用的信息。

猜你喜欢

转载自blog.csdn.net/m0_63715549/article/details/131786581