基于 STM32 的智能淋浴系統(tǒng)設(shè)計
引 言
隨著科學(xué)技術(shù)的快速普及,人們生活向智能化方向發(fā)展, 但能源的消耗不容小覷。一方面生活要更加便捷,另一方面能源要更加節(jié)約,這樣才能真實推動我國可持續(xù)發(fā)展戰(zhàn)略的深入實施 [1]。淋浴作為家家戶戶必不可少的生活設(shè)施,不論是在生活還是在能源利用方面都占有相當(dāng)?shù)姆至俊,F(xiàn)有的淋浴操作方式普遍較為傳統(tǒng),且水溫控制十分不便,熱冷水的交融比例不宜把控,給洗浴帶來諸多不便 [2]。另外,幾乎所有的洗浴設(shè)施都將洗浴所用的廢水直通下水道,很少二次利用,這就使得生活用水的利用程度不高,致使資源浪費。利用微型控制器將多傳感器復(fù)合,以用于淋浴系統(tǒng),并增添廢水回收裝置,可解決上述問題。
1 系統(tǒng)總體設(shè)計
為了解決現(xiàn)有淋浴系統(tǒng)面臨的問題,本文設(shè)計一種基于STM32 微型控制器的智能淋浴系統(tǒng)。系統(tǒng)總體結(jié)構(gòu)如圖 1 所示,包括裝載于淋浴上的 STM32F407VGT6 處理器、紅外人體體溫傳感器、DS18B20 水溫傳感器、紅外人體感應(yīng)探頭、混水閥及電源等模塊。淋浴及其裝載的傳感器模塊協(xié)同工作。首先,紅外人體體溫傳感器捕捉到人體體溫,結(jié)合當(dāng)前季節(jié)自動設(shè)定最舒適的洗浴溫度 ;DS18B20 水溫傳感器實時檢測水溫溫度 ;混水閥的旋轉(zhuǎn)按鈕由舵機控制,并使用工業(yè)控制中常用的 PID 算法快速精確地控制舵機的轉(zhuǎn)角以控制混水閥中冷水熱水的混合程度,達到快速調(diào)整混水閥使水溫恒定的效果。當(dāng)水溫達到一定溫度且紅外人體感應(yīng)探頭感應(yīng)到淋浴下方有人時,便立刻控制電磁閥出水,洗浴過程中也可手動設(shè)置調(diào)控水溫。洗浴廢水優(yōu)先流入淋浴下方的廢水收集容器, 流入的洗浴廢水經(jīng)過簡單處理可用于沖洗馬桶、花卉澆灌、拖地等。
圖 1 系統(tǒng)總體結(jié)構(gòu)
2 系統(tǒng)硬件設(shè)計
2.1 STM32F407VGT6處理器
本 文 設(shè) 計 的 系 統(tǒng) 處 理 器 采 用 Cortex-M4 內(nèi) 核 的STM32F407VGT6,最高主頻為 168 MHz,集成 DSP 和 FPU 指令。其 168 MHz 的高速性能使得數(shù)字信號控制器應(yīng)用和快速的產(chǎn)品開發(fā)達到了新的水平,提升了控制算法的執(zhí)行速度和代碼效率。同時,提供 1 MB 的 FLASH,192 KB 的SRAM,擁有單精度浮點運算單元,多重 AHB 總線矩陣和16 通道 DMA[3],支持程序執(zhí)行和并行數(shù)據(jù)傳輸處理,具有非常快的數(shù)據(jù)傳輸速率,在多模塊復(fù)用中也能快速應(yīng)答。
2.2 傳感器模塊
2.2.1 人體體溫傳感器
非接觸紅外線測溫探頭可通過測量目標(biāo)表面所輻射的紅外能量來確定表面溫度,淋浴過程需要獲得用戶體表溫度數(shù)據(jù)以對水溫做適當(dāng)調(diào)節(jié),本系統(tǒng)中采用的就是以上技術(shù)。Melexis公司推出一款非接觸式紅外傳感測溫儀 [4-5],該產(chǎn)品中集成對紅外敏感的熱電堆檢測芯片和信號處理芯片 MLX90325, 可將其設(shè)計封裝為非接觸式測溫模塊GY-MCU90615。這是一款低成本的紅外測溫模塊,其工作電壓在 3 ~ 5 V 之間,具有功耗小、體積小等特點。通過STM32 單片機讀取采集到的紅外溫度數(shù)據(jù),以串口通信方式輸出。傳感器模塊串口的波特率可以設(shè)置為 9 600 b/s 或115 200 b/s,具有兩種輸出方式 :連續(xù)輸出和詢問輸出,能夠適應(yīng)不同的工作環(huán)境,不僅限于和 STM32 相連,還能與所有的單片機及電腦連接。將此體溫傳感器嵌入到淋浴顯示屏旁邊,保證傳感器位置位于人體中上部,使得體溫測量更合理。MLX90615 紅外傳感測溫模塊內(nèi)部結(jié)構(gòu)如圖 2 所示。
2.2.2 水溫傳感器
本文采用美國 Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20,其采用導(dǎo)熱性高的密封膠灌封,保證了溫度傳感器的高靈敏性,只有很小的溫度延遲。該溫度傳感器支持“一線總線”接口 [6],測量溫度范圍為 -55 ~ 125 ℃,在測量溫度 -10 ~85℃的范圍內(nèi),此傳感器的測量精度在 0.5℃范圍內(nèi)。所測環(huán)境(水體)溫度直接以“一線總線”的數(shù)字方式傳輸,提高了系統(tǒng)測溫的抗干擾性,在溫差較大的環(huán)境中也能穩(wěn)定的測溫,滿足了穩(wěn)定性的要求。將水溫傳感器嵌于淋浴花灑的噴頭處,用于實時監(jiān)測噴口處的水溫。
DS18B20 數(shù)字溫度計提供 9 ~ 12 位(可編程設(shè)備溫度讀數(shù))數(shù)據(jù)。由于 DS18B20 是一條口線通信, 所以STM32F407VGT6 處理器與 DS18B20 只有一個一條口線連接。讀寫以及溫度轉(zhuǎn)換所需能量可以從數(shù)據(jù)線本身獲得,不需外接電源。其結(jié)構(gòu)如圖 3 所示。
2.2.3 人體感應(yīng)模塊
HC-SR501 是基于紅外線技術(shù)的自動控制模塊,靈敏度高,可靠性強,直流工作電壓為 4.5 ~ 20 V,輸出電壓為 0 ~
3.3 V,工作溫度 [7] 范圍為 -15 ~ 70 ℃。當(dāng)人體進入其感應(yīng)范圍則輸出高電平,人離開感應(yīng)范圍則自動延時,高電平關(guān)閉,輸出低電平。其接口有電源 VCC、模擬信號輸出 OUT、接地 GND 等。人體感應(yīng)模塊內(nèi)部結(jié)構(gòu)如圖 4 所示。
圖 4 HC-SR501 人體感應(yīng)模塊內(nèi)部結(jié)構(gòu)
2.2.4 OLED液晶顯示屏
OLED 液晶顯示屏具有自發(fā)光、不需背光源、對比度高、厚度薄、反應(yīng)速度快、使用溫度范圍廣、構(gòu)造及制程較簡單等優(yōu)異特性,被認(rèn)為是下一代的平面顯示器新興的應(yīng)用技術(shù) [8]。LCD 都需要背光,而 OLED 是自發(fā)光的,對于同樣的顯示效果,OLED 會更好一些。以目前的技術(shù),OLED 的尺寸還難以大型化,但是分辨率卻可以做到很高。在智能淋浴設(shè)計中,使用 0.96 寸 OLED 顯示屏來實時顯示數(shù)據(jù)信息。
0.96 寸 OLED 顯示屏的接口方式包括 :6800,8080 兩種并行接口方式,3 線或 4 線的串行 SPI 接口方式,I2C 接口方式等。在本文所設(shè)計的淋浴系統(tǒng)中,采用 I2C 接口方式。
3 系統(tǒng)軟件設(shè)計
3.1 人體體溫傳感器
非接觸測溫模塊(GY-MCU90615)具有 6 個引腳 :電源引腳 VDD、接地引腳 GND、串行數(shù)據(jù)收發(fā)引腳 TX 和RX、兩個內(nèi)部使用引腳 RST 和 SIM。在使用時,內(nèi)部使用引腳 RST 和 SIM 不需要連接,設(shè)置為懸空狀態(tài) ;電源 VDD 與 GND 之間須加一個 100 nF 的電容用來去耦濾波 ;TX, RX 引腳用于串行數(shù)據(jù)的發(fā)送和接收及讀取傳感器數(shù)據(jù) [9]。此傳感器模塊的通信流程如圖 5 所示。
圖 5 GY-MCU90615 通信流程
(1) 啟動傳感器。在通電 10ms 后進入休眠狀態(tài),發(fā)送連續(xù)輸出指令 0xA5+0x45+0xEA—溫度數(shù)據(jù)(模塊返回數(shù)據(jù)類型為 0x45),傳輸時序啟動,完成數(shù)據(jù)傳輸?shù)某跏蓟T撏ㄐ艜r序如圖 6所示。
(2) 人 體 體 溫 測 量 。 發(fā) 送 查 詢 輸 出 指 令0xA5+0x15+0xBA— 溫度數(shù) 據(jù)(模塊返回數(shù)據(jù)類型為0x45),傳感器自動測量人體體溫,接收 4 B 的測量數(shù)據(jù)和 1 B的 CRC 奇偶校驗。測量和通信完成后傳感器自動進入休眠模式,等待下次溫度測量。
(3) 溫度數(shù)據(jù)計算。
溫度 = 高 8位 <<8|低 8位(結(jié)果為實際值乘以 100),代碼計算如下 :
TO=(float)((TEMP_data[4]<<8)|TEMP_data[5])*100 ;// 得到真實的溫度研究表明,淋浴水溫高于人體表溫度 2℃左右時人感覺最舒適,而高于體表溫度 4~6℃時有活血保健的效用。一般在夏季,洗澡的水溫保持在 34 ~ 36 ℃,這個溫度接近人體溫度,洗浴后在水分蒸發(fā)的同時,會使熱量有效散發(fā),增加回心血量,人也會感到更加舒適、涼爽。冬天洗澡適宜的水溫為 37 ~ 42 ℃,也就是比人體體溫高 3 ℃左右即可。在此數(shù)據(jù)的基礎(chǔ)上做了大量的統(tǒng)計調(diào)查,了解不同年齡段、不同地域的用戶對最舒適淋浴水溫的要求,并統(tǒng)計用戶的淋浴習(xí)慣,之后將大眾化數(shù)據(jù)固化到本文系統(tǒng)當(dāng)中。
3.2 水溫傳感器
3.2.1 DS18B20溫度傳感器
在 DS18B20溫度傳感器中,低溫度系數(shù)晶振用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1,高溫度系數(shù)晶振所產(chǎn)生的信號作為減法計數(shù)器 2的脈沖輸入。在設(shè)計的智能淋浴系統(tǒng)中,當(dāng) DS18B20計數(shù)門打開時,計數(shù)器 1對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù),進而完成溫度測量。
在測量水溫前,首先將 -55℃所對應(yīng)的基數(shù)置入減法計數(shù)器 1和溫度寄存器中。減法計數(shù)器 1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器 1的預(yù)置值減到0時,溫度寄存器的值將加 1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器 1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù)。如此循環(huán)直到減法計數(shù)器 2 計數(shù)到 0 時, 停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。數(shù)據(jù)傳輸時序如圖 7 所示。
3.2.2 控制出水溫度
準(zhǔn)確控制出水溫度,快速出水。混水閥的旋轉(zhuǎn)由舵機控制,舵機的轉(zhuǎn)角可由程序精準(zhǔn)控制。當(dāng)系統(tǒng)設(shè)定好出水溫度, 使用工業(yè)控制中常用的 PID 算法快速精確地控制舵機的轉(zhuǎn)角以控制混水閥中冷水熱水的混合程度,達到準(zhǔn)確控溫的目的 [10]。PID 控制原理如圖 8 所示。
同時,增加補償措施以補償熱水流經(jīng)淋浴花灑到達人體表面過程中熱量的損失。在洗浴結(jié)束后,存留于水管中的水將通過一個固定的通路流到冷水管,因此避免了下次洗澡時最開始一段冷水的浪費。
3.3 人體感應(yīng)模塊
HC-SR501 紅外人體傳感器模塊具有以下引腳 :電源引腳 VDD、接地引腳 GND、信號輸出引腳 OUT。VDD 與 GND 之 間 須 加 一 個 100 nF 的 電 容 用 來 去 耦 濾 波 。STM32F407VGT6 控制核心檢測 OUT 輸出電平,當(dāng)洗浴區(qū)域無人時,檢測到低電平,電磁閥關(guān)閉 ;當(dāng)洗浴區(qū)域有人時, 檢測到高電平,此時打開電磁閥門,可以進行洗浴。當(dāng)人體離開洗浴區(qū)域后,檢測到低電平,電磁閥自動關(guān)閉,達到人走水?dāng)嗟男Ч?
4 儲水容器設(shè)計
在淋浴系統(tǒng)的正下方,設(shè)計一個儲水區(qū)域,并配備有簡單的廢水處理裝置,對洗浴廢水做簡單的處理。此處采用二層過濾凈化模式對廢水進行進一步處理。第一層過濾由石英砂、陶瓷粒、麥飯石三種濾料構(gòu)成。石英砂用于過濾懸浮膠體等顆粒雜質(zhì) ;陶瓷粒用于阻截懸浮物、膠體物及微生物等污染物質(zhì) ;麥飯石用于吸附對植物花卉有害的重金屬、大腸桿菌。
第一層過濾從技術(shù)上來說是先過濾固體大顆粒與難溶物 ;第二層過濾由活性炭構(gòu)成,活性炭用于去除色度、臭味、有機污染物、有毒重金屬,防止廢水中的有機物在廢水二次利用中產(chǎn)生臭味。
經(jīng)過這樣簡單處理,洗浴用水可用于沖洗馬桶、花卉的澆灌、拖地等。
5 系統(tǒng)測試結(jié)果
系統(tǒng)在實驗室模擬洗浴環(huán)境中進行測試。根據(jù)普通的太陽能熱水器出水水溫大約在 70 ℃,將熱水管中的水溫定在70 ℃,冷水管用水采用不做處理的自來水,以此來給系統(tǒng)供水。用人體溫度傳感器采集手掌溫度代替人體溫度,自動設(shè)置洗浴水溫。系統(tǒng)測試如圖 9 所示。
測試過程中,各路傳感器工作正常,各模塊之間通信正常。系統(tǒng)在 4 s 內(nèi)達到預(yù)定水溫,檢測到人體存在時,即可出水 ;當(dāng)人離開洗浴區(qū)域時,便立刻停止出水,達到了人走水?dāng)嗟男ЧO丛∷脧U水,優(yōu)先儲存在下方的儲水容器中, 用于二次使用。
6 結(jié) 語
本文設(shè)計一種基于 STM32 微處理器的節(jié)能型智能淋浴系統(tǒng)。該淋浴系統(tǒng)搭載 STM32F407VGT6 處理器、GYMCU90615 人體體溫傳感器、DS18B20 水溫傳感器、HCSR501 人體感應(yīng)傳感器,并輔由 OLED 顯示屏實時顯示水溫,儲水區(qū)簡單處理洗浴廢水并儲存,用于二次使用。GYMCU90615 用于檢測人體數(shù)據(jù),并自動設(shè)置最適宜的洗浴溫度,通過 PID 算法調(diào)節(jié)混水閥舵機開度,達到精準(zhǔn)控溫 ;同時增加補償措施以補償熱水流經(jīng)電子閥門到達人體表過程中熱量的損失。當(dāng)水溫達到預(yù)定的溫度且 HC-SR501 傳感器檢測到人體存在時,淋浴自動出水 ;檢測不到人體時,自動停水, 可達到人走水?dāng)嗟男Ч?。測試結(jié)果表明,與現(xiàn)有的淋浴系統(tǒng)相比,本文設(shè)計的智能淋浴系統(tǒng)更智能、更方便,系統(tǒng)運行更穩(wěn)定,并且可收集洗浴廢水二次利用,實現(xiàn)了節(jié)水的目的。系統(tǒng)的設(shè)計達到了預(yù)期的效果。
在未來的改進中,本團隊將會實現(xiàn)淋浴的無線通信。用基于 Java 的可擴展平臺 Eclipse 實現(xiàn)安卓客戶端對淋浴系統(tǒng)的無線調(diào)控,使得系統(tǒng)更加智能化。