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