Arduino D1/esp8266 + DHT11 Web ページは、温度と湿度をリアルタイムで表示します

Arduino D1 は、Wi-Fi モジュールを内蔵した ESP8266 チップベースの開発ボードであり、IoT プロジェクトで非常に人気があります。このブログでは、Arduino D1 と DHT11 温湿度センサーを使用して、温度と湿度のデータをリアルタイムに表示する Web アプリケーションを構築する方法を紹介します。

1. 材料を準備する

Arduino D1 開発ボード
DHT11 温度および湿度センサー
数本の DuPont ワイヤー

2.ハードウェア接続

Dupont ワイヤを使用して 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 温湿度センサーを使用して、温度と湿度のデータをリアルタイムに表示する Web アプリケーションを構築することに成功しました。このような IoT プロジェクトは、ホーム オートメーション、温室モニタリングなどの分野に役立つ情報を提供します。

おすすめ

転載: blog.csdn.net/m0_63715549/article/details/131786581