
1、介紹
DHT11數字溫度 - 濕度传感器是一種包含校準數字信號輸出的複合传感器。它採用特殊的數字模塊採集技術和濕度 - 溫度感應器技術,確保高可靠性和出色的長期穩定性。感測器由電阻式濕度元件和NTC溫度測量元件組成。DHT11通過單總線與微處理器通信。 它只需要一個線程,一次發送40個數據。
數據格式: 8位濕度整數數據+ 8位濕度十進制數據+ 8位溫度整數數據+ 8位溫度十進制數據+ 8位奇偶校驗位。
資料發送過程:主控發送啟動信號 - > DHT回應信號 - > DHT通知主控它已準備好接受信號 - > DHT發送準備好的資料 - > DHT結束信號 - > DHT內部重新測試環境溫度和濕度,記錄下一筆資料 從主控開始發出信號。
通過該過程獲得,每次收集的數據主控始終是最後一次DHT數據。如果我們想獲得即時數據,那麼主控可以收集兩個連續的數據,但是,正式地,不建議連續多次讀取DHT。如果每次讀取的間隔時間超過5秒,則足以獲得準確的數據。DHT在通電時需要1秒才能穩定。
2、原理圖

3、模組參數
引腳名稱 | 描述 |
|---|---|
G | GND(電源輸入負極) |
V | VCC(電源輸入正極) |
S | 數字信號引腳 |
供電電壓:3.3V / 5V
連接方式:PH2.0端子線
安裝方式:雙螺絲固定
4、電路板尺寸

5、Arduino IDE示範程序
ArduinoUNO圖形化示例程式:
//DHT11传感器接引脚D6
#include <DHT.h>//调用温dht湿度库
volatile float wendu = 0;//设置温度变量
volatile float shidu = 0;//设置湿度变量
DHT dht6(6, 11);//定义温湿度传感器引脚
void setup() {
Serial.begin(9600);//设置波特率
dht6.begin();//启动
}
void loop() {
delay(2000);//延时2秒
shidu = dht6.readHumidity();//将湿度读取为摄氏度(默认值)赋给变量
wendu = dht6.readTemperature();//将温度读取为摄氏度(默认值)赋给变量
Serial.print(wendu);//串口打印温度
Serial.print("℃");
Serial.print(" ");
Serial.print(shidu);//串口打印湿度
Serial.println("%");
}ESP32 Python 示例(適用於Mixly IDE /米思齊)
(開發板選擇 Python ESP32 【ESP32 Generic(4MB)】切換為代碼模式上傳 ):
import machine
import dhtx
import time
# 2引脚接温湿度传感器 获取当前温度和湿度
while True:
print(dhtx.DHT11(2).temperature(),end ="")
print('℃ ',end ="")
print(dhtx.DHT11(2).humidity(),end ="")
print('% ')
time.sleep_ms(200)
6、米思齊Mixly示例程式(圖形化語言)
ArduinoUNO圖形化示例程式:點擊下載
ESP32 Python圖形化示例程式:點擊下載

7、測試環境搭建
Arduino UNO 測試環境搭建
準備配件:
HELLO STEM UNO R3 開發板 *1
HELLO STEM UNO R3 P 扩展板 *1
USB type-c 資料線 *1
溫濕度感應器(HS-S26L)*1
PH2.0 3P雙頭端子線*1
電路接線圖:

ESP32 Python 測試環境搭建
8、新增DHT11 Arduino庫檔案
首先找到Arduino庫資料夾:

把庫文件複製到Arduino IDE軟體目錄下的libraries資料夾中即可:

庫文件:點擊下載
9、視頻教學
Arduino UNO視頻教學:點擊查看
ESP32 Python視頻教學:
10、測試結論
Arduino UNO測試結論:
器件連接好線之後,將上述程序上傳到開發板後,打開串口監視器。 您將看到當前溫度和濕度的數據顯示在窗口上。
ESP32 Python測試結論:器件連接好線之後,將上述程序上傳到開發板後,打開串口監視器。 您將看到當前溫度和濕度的數據顯示在窗口上。