1 系統功能介紹
本設計實現了一種 基于 51 單片機的智能加濕器控制系統。隨著現代生活水平的提高,人們對居住和辦公環境的舒適度要求越來越高,空氣濕度和溫度的調節逐漸成為家庭和辦公自動化的重要組成部分。傳統加濕器僅能實現簡單的加濕功能,缺乏對環境參數的實時監測和安全防護。本系統在傳統加濕器的基礎上,加入了 溫濕度檢測、水位檢測、防干燒保護、聲光報警、手動和自動模式切換 等功能,提升了設備的智能化和安全性。
系統的主要功能如下:
-
實時監測與顯示
- 通過 DHT11 溫濕度傳感器實時檢測環境溫度和濕度;
- 通過水位檢測電路獲取當前水位高度;
- LCD1602 液晶屏顯示溫度、濕度、水位及工作模式(手動/自動)。
-
手動與自動模式切換
- 手動模式下用戶可以通過按鍵直接控制加濕器工作;
- 自動模式下系統根據閾值自動控制加濕器啟停,并進行報警提示。
-
閾值設定功能
- 用戶可通過按鍵設定溫度上下限、濕度上下限、水位報警值;
- 設置完成后,系統根據這些閾值進行邏輯判斷。
-
報警與安全保護功能
- 當檢測到溫度超出安全范圍時,蜂鳴器和指示燈發出聲光報警;
- 當濕度低于下限時,系統報警并自動啟動加濕器;
- 當濕度超過上限時,加濕器停止工作,避免空氣過濕;
- 當檢測到缺水時,立即停止加濕器工作,防止干燒損壞。
-
按鍵功能
- S1:設置鍵,進入設置界面;
- S2:加鍵,數值+1;
- S3:減鍵,數值-1。
2 系統電路設計
2.1 單片機最小系統
核心控制單元采用 STC89C52RC 單片機,其具備豐富的 I/O 接口資源,能夠滿足溫濕度采集、LCD 顯示、繼電器控制和按鍵檢測等多任務需求。最小系統包括:
- 單片機 STC89C52RC;
- 晶振電路,采用 11.0592MHz 晶振及兩只 30pF 電容;
- 電源電路,提供 +5V 穩定電源;
- 復位電路,確保單片機上電初始化正常。
2.2 溫濕度檢測模塊(DHT11)
DHT11 傳感器是一種常見的數字溫濕度檢測模塊:
- 工作電壓:3.3V–5V;
- 通信方式:單總線;
- 輸出數據:8 位濕度整數+8 位濕度小數+8 位溫度整數+8 位溫度小數+8 位校驗和。
DHT11 與單片機 P3.7 端口相連,通過時序采集協議獲取溫濕度數據,再進行數據解析。
2.3 水位檢測模塊
水位檢測部分采用簡單的水位電極傳感器或浮球開關:
- 當水位足夠時,傳感器輸出高電平;
- 當水位不足時,輸出低電平。
單片機通過 GPIO 讀取該電平狀態,結合邏輯控制繼電器,從而防止加濕器在缺水狀態下工作。
2.4 顯示模塊(LCD1602)
LCD1602 用于顯示環境參數和工作狀態,主要顯示內容包括:
- 實時溫度值;
- 實時濕度值;
- 當前水位狀態(正常/缺水);
- 工作模式(手動/自動);
- 當前報警狀態。
LCD1602 通過 4 位數據接口模式與單片機相連,節省了 I/O 資源。
2.5 報警模塊(蜂鳴器+LED 指示燈)
系統設計了一個有源蜂鳴器和一個紅色 LED 燈作為報警輸出裝置:
- 當系統檢測到溫度或濕度異常時,蜂鳴器發出聲響,LED 燈閃爍,形成聲光報警;
- 當故障解除或用戶處理完畢后,報警自動停止。
2.6 繼電器驅動與加濕器電路
繼電器用于控制加濕器電源:
- 單片機輸出低電平驅動三極管導通,繼電器線圈得電吸合,接通加濕器電源;
- 單片機輸出高電平時,繼電器斷開,加濕器停止工作。
這種方式確保了加濕器工作時的隔離性與安全性。
2.7 按鍵輸入電路
系統設計三個獨立按鍵:
- S1(設置鍵):進入閾值設定模式;
- S2(加鍵):數值增加;
- S3(減鍵):數值減少。
按鍵采用下拉電阻方式與 GPIO 相連,單片機通過輪詢方式或中斷方式進行檢測。
3 程序設計
3.1 主程序框架
#include <reg52.h>
#include "lcd1602.h"
#include "dht11.h"
#include "relay.h"
#include "key.h"
#include "beep.h"unsigned char mode = 0; // 0=自動模式 1=手動模式
unsigned int temp, humi, water;
unsigned int T_min=15, T_max=35;
unsigned int H_min=40, H_max=70;void main()
{LCD_Init();DHT11_Init();Relay_Init();Beep_Init();Key_Init();while(1){DHT11_Read(&temp,&humi);water = Read_WaterLevel();Display_Info(temp,humi,water,mode);Key_Scan(); // 按鍵檢測Auto_Control(); // 自動控制邏輯}
}
3.2 溫濕度采集程序
bit DHT11_Read(unsigned int *t, unsigned int *h)
{unsigned char temp_h, temp_l, humi_h, humi_l, check;// 發送起始信號并接收數據,略*t = temp_h;*h = humi_h;return 1;
}
3.3 水位檢測程序
unsigned int Read_WaterLevel(void)
{if(P3 & 0x01) // P3.0 接水位傳感器return 1; // 正常elsereturn 0; // 缺水
}
3.4 自動控制邏輯
void Auto_Control(void)
{if(mode == 0) // 自動模式{if(temp < T_min || temp > T_max){Beep_On();LED_On();}else{Beep_Off();LED_Off();}if(humi < H_min && water == 1){Relay_On();Beep_On();}else if(humi >= H_min && humi <= H_max){Relay_On();Beep_Off();}else if(humi > H_max){Relay_Off();}if(water == 0){Relay_Off();Beep_On();}}
}
3.5 按鍵設置程序
void Key_Scan(void)
{if(S1 == 0) // 設置鍵{Delay(10);if(S1 == 0){mode = !mode; // 手動/自動切換}}if(S2 == 0) // 加鍵{Delay(10);if(S2 == 0) { H_min++; }}if(S3 == 0) // 減鍵{Delay(10);if(S3 == 0) { H_min--; }}
}
3.6 LCD 顯示程序
void Display_Info(unsigned int t, unsigned int h, unsigned int w, unsigned char m)
{LCD_ShowString(0,0,"T:");LCD_ShowNum(2,0,t,2);LCD_ShowString(6,0,"H:");LCD_ShowNum(8,0,h,2);LCD_ShowString(0,1,"W:");if(w) LCD_ShowString(2,1,"OK");else LCD_ShowString(2,1,"LOW");if(m==0) LCD_ShowString(8,1,"AUTO");else LCD_ShowString(8,1,"MANU");
}
4 總結
本設計基于 51 單片機,構建了一個具有 溫濕度檢測、水位檢測、防干燒保護、手動/自動模式切換、聲光報警、LCD 顯示 等多功能的智能加濕器系統。其優點主要體現在以下幾個方面:
- 安全性高:通過水位檢測與自動停機機制,有效防止干燒;
- 智能化強:支持閾值設定和自動模式,使設備能根據環境變化自動調節;
- 交互性好:LCD1602 實時顯示參數,按鍵方便用戶設置,報警提示直觀;
- 擴展性強:可進一步增加 WiFi 模塊,實現遠程監控與控制。
該設計不僅能滿足家庭生活中的空氣濕度調節需求,還可應用于實驗室、倉儲等場合,具有較高的實用價值和推廣意義。