組員:翁永傑、徐浩程、楊皓宇
動機
有同學購買的加濕器仍採手動開關控制,必須在濕度不足時自行啟動,濕度回升後也需手動關閉,使用上較不方便。因此,我們認為加濕器具備自動化功能會更符合日常需求,因此決定做一款具有濕度偵測並可自動啟動、停止的智慧加濕器。
器材
Arduino Uno
DHT11
超音波水霧化模組
麵包板
杜邦線
寶特瓶
系統原理
1. 環境感知 : 利用 DHT11 數位溫濕度感測器,以 1Hz 的採樣頻率 (Sampling Rate) 即時監測環境數據,將物理訊號轉換為數位訊號回傳。
2. 核心控制 : 以 Arduino UNO 微控制器為大腦,執行邏輯判斷。系統設定 60% 相對濕度為閾值,透過程式自動比對當前數值與目標值,實現自動化決策。
3. 物理執行 : 採用 壓電式超音波霧化技術 (Piezoelectric Atomization)。當濕度不足時,驅動電路產生高頻震盪 (108kHz),將水瞬間轉化為微米級霧氣,快速調節環境濕度。
接線圖
最左方藍色是DHT11,最下方是超音波水霧化模組
軟體邏輯
// 包含函式庫
#include <SimpleDHT.h>
// --- 感測器設定 ---
int pinDHT11 = 2; // DHT11 訊號腳位
SimpleDHT11 dht11; // 建立 DHT11 物件
// --- 新增的霧化器設定 ---
// 定義霧化器模組的「訊號」腳位 (例如 D7)
// 注意:這不是電源腳位,而是控制訊號腳位
int pinMistMaker = 7;
// 設定濕度閾值 (單位: %)
// 當濕度「低於」此數值時,開啟霧化器
int humidityThreshold = 60;
void setup() {
Serial.begin(9600);
// --- 新增的腳位設定 ---
// 將霧化器腳位設為「輸出」模式
pinMode(pinMistMaker, OUTPUT);
// 程式剛啟動時,預設先「關閉」霧化器 (LOW = 低電位)
digitalWrite(pinMistMaker, LOW);
}
void loop() {
// 儲存感測器讀值的變數
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
// --- 讀取 DHT11 ---
Serial.println("=================================");
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return; // 讀取失敗,跳過這次迴圈
}
// --- 顯示感測器讀值 ---
Serial.print("Humidity = ");
Serial.print((int)humidity);
Serial.print("% , ");
Serial.print("Temperature = ");
Serial.print((int)temperature);
Serial.print("C "); // 將 println 改成 print,讓狀態顯示在同一行
// --- 新增:霧化器控制邏輯 ---
if ((int)humidity < humidityThreshold) {
// 判斷:如果 濕度 < 閾值 (例如 55 < 60)
// 動作:開啟霧化器 (HIGH = 高電位)
digitalWrite(pinMistMaker,HIGH );
Serial.println(" -> 霧化器 ON"); // 在序列埠監控視窗顯示狀態
} else {
// 判斷:如果 濕度 >= 閾值 (例如 61 >= 60)
// 動作:關閉霧化器 (LOW = 低電位)
digitalWrite(pinMistMaker, LOW);
Serial.println(" -> 霧化器 OFF"); // 在序列埠監控視窗顯示狀態
}
// 延遲 1 秒後再進行下一次讀取
// 注意:DHT11 建議至少延遲 1-2 秒讀取一次,1000ms (1秒) 可以
delay(1000);
}
未來改進目標
1.加入物聯網功能(IoT) 將 ESP8266 / ESP32 與加濕器整合,使設備能夠連上 Wi‑Fi,並將即時的溫濕度數據傳輸至雲端,讓使用者可從手機 App 或網頁查看環境狀態,實現遠端監測。
2.手機 App / 網頁介面控制 建立簡易的控制介面,讓使用者能透過手機進行: 即時查看濕度變化 遠端開關加濕器 設定濕度上下限區間 查看歷史濕度資料趨勢圖
3.智慧化控制(AI / 自動化) 未來可加入簡易 AI 模型或演算法,根據房間大小、使用者習慣、時間、環境變化,自動調整加濕器運作策略,使濕度控制更精準。
總結
本專案從日常生活的不便出發,針對傳統加濕器需要手動開關的問題提出改良方案,設計出能自動偵測濕度並自行啟動或關閉的智慧加濕器。透過 DHT11 感測器進行環境監測、Arduino 控制決策以及超音波霧化模組執行加濕,成功實現自動化運作。過程中我們遇到並解決機構設計、感測器位置與運作邏輯等問題,使系統更穩定可靠。未來,我們也希望能加入 IoT、遠端控制與智慧化演算法,讓裝置更便利並擁有更全面的應用價值。
成果影片
心得
楊皓宇 :
雖然本次的專題簡單,且成品簡陋,但是有時候生活就是需要滿足一些簡單的需求來維持,動手解決問題的初衷。透過將一行行的程式碼以及電路化為實際的功能,讓我理解到 "實用" 比 "華麗" 更重要。隨然市場上或許有解決該問題的產品,但是我們卻利用所學、親手打造出來回應生活所需所求的成果,一方面可以獲得成就感,一方面也能嘗試反向工程,去推敲並理解那些市場上的自動感應加濕器,究竟是如何偵測環境、判斷邏輯,並穩定運作的。
徐浩程:
這次製作 Arduino 自動偵測加濕器,透過濕度感測器即時監測環境濕度,並在濕度過低時自動啟動霧化模組。過程中學到了DHT11以及超音波水霧化器的接線方法、程式邏輯判斷與模組控制的整合,也體會到實際接線與除錯的重要性。雖然成品外觀十分陽春,但是有做出預期的效果,希望未來可以改善並增加更客製化的選擇,更接近市面上所販售的高級加濕器。
翁永傑 :
這次專題讓我體會到理論和實作的差別,過程中我們遇到最大的問題是霧化片的高度控制,因為霧化片需要在合適的水深(大概0.2~0.3cm)才能穩定正常運作,我們想過很多方式,比如偵測水位,然後對應調整霧化片高度,但這太複雜了,後來想到可以固定霧化片,設計水閥讓水慢慢滴到霧化片上,但要穩定控制滴水量不容易,最後我們發現,只要黏幾塊保麗龍,讓霧化片漂在水面上,就可以穩定的吸到水,但這個做法的缺點是漂浮片設計是移動的,不穩定,實際使用可能會卡在容器壁而吸不到水,因此還需要進一步優化。