














摘 要:基于STM32單片機設計開發了一款衣柜智能檢測儀,旨在解決傳統衣柜監控困難和空氣質量差等問題。該設備配備溫濕度采集模塊、空氣質量監測模塊、WiFi模塊、UART串口模塊、顯示屏模塊和語音模塊,能夠實時監測衣柜內的空氣溫濕度、CO2和TVOC濃度,并采用PID算法調節。經過在密閉環境中的測試,該設備的溫度誤差在±1 ℃范圍內,濕度誤差在±5%區間,CO2和TVOC濃度的測量誤差控制在3%~5%的有效范圍內。此外,該衣柜智能檢測儀還具備語音交互功能,用戶可以通過語音指令對衣柜進行控制和查詢,實現更加人性化的操作。同時,設備支持連接WiFi網絡,用戶除了可在顯示屏端實時查看檢測數據外,還可以在上位機端查看數據變化,提高了使用的便捷性和實用性。
關鍵詞:STM32;衣柜智能檢測儀;空氣質量;PID調節;數據顯示;無線數據傳輸
中圖分類號:TP212 文獻標識碼:A 文章編號:2095-1302(2024)08-00-08
DOI:10.16667/j.issn.2095-1302.2024.08.003
0 引 言
近年來,人們對生活質量的要求不斷提高,傳統衣柜功能單一,缺乏感知性,無法滿足智能生活的需求。因此,衣柜的智能化成為一個備受關注的問題。實現衣柜環境監測、天氣預報、衣物管理和語音智能交互等功能,對于提升生活質量具有重要意義[1]。
為此,研究設計了一款基于STM32單片機[2]的衣柜智能檢測儀,能夠實時監測衣柜內的環境溫度、濕度,獲取外界天氣信息,并將這些數據顯示在用戶界面上。同時,利用PID算法對溫濕度進行自動調節,并進行日常消毒和烘干。此外,該設備還可以通過語音交互完成基本操作,如開關門,根據采集的數據給出穿衣建議等。
在密閉環境中進行實際測試,該設備響應迅速、交互能力良好,滿足了用戶對舒適、健康和智能化使用的需求。
1 系統硬件設計
系統主要包含控制模塊、數據無線傳輸模塊、傳感器模塊、顯示模塊、存儲模塊、語言模塊等。
控制模塊:該模塊使用STM32單片機作為主控制器,負責系統的控制和協調。
數據無線傳輸模塊:該模塊使用WiFi模塊實現與上位機或其他設備的無線數據傳輸,可以進行實時監測和遠程控制。
傳感器模塊:該模塊包括溫濕度傳感器、空氣質量傳感器等,用于實時監測衣柜內的環境參數,如溫度、濕度、CO2和TVOC(總揮發性有機化合物)濃度等。
顯示模塊:該模塊用于顯示衣柜內環境的數據和系統狀態,可以使用液晶顯示屏或其他合適的顯示設備。
存儲模塊:該模塊用于存儲系統的配置信息、歷史數據記錄等,可以使用閃存或者SD卡等存儲。
語音模塊:用于實現語音交互功能,用戶可以通過語音指令對衣柜進行控制和查詢。
其他模塊:包括舵機、電機、繼電器、指紋模塊、按鍵模塊等,主要用于衣柜門的開關控制、除濕、除味、殺菌消毒、衣柜抽屜安全保證、功能選擇等。
系統硬件設計的總體結構框圖如圖1所示。
1.1 控制電路設計
控制模塊選用STM32F103VCT6作為主控芯片,該芯片擁有豐富的多功能復用I/O口,集成了SPI通信、UART通信、I2C通信等常用通信接口??刂齐娐啡鐖D2所示。
1.2 電源電路設計
電源部分采用MP2359芯片和AMS1117芯片將6~24 V
電壓降為5 V,將5 V降為3.3 V。電源電路如圖3所示。
1.3 溫濕度采集、環境光、空氣質量傳感器電路設計
高靈敏度、高精度的SI7006溫濕度傳感器能同時利用芯片內部集成的AD/DA轉換器采集濕度和溫度。采用I2C模式對SI7006進行讀寫、復位(0xFE)、測量相對濕度、保持主控模式(0xE5)等操作,將讀取的數據通過公式轉換為濕度值。測量溫度,保持主模式(0xE3),將讀取的數據通過公式轉換為溫度值。
環境光傳感器采用AP3216C,該芯片集成了光傳感器、距離傳感器、紅外LED芯片,能同時利用芯片內部集成的AD/DA轉換器采集環境光強度、距離參數等。采用I2C模式對AP3216C進行讀寫、復位(0x30)、啟動轉換(0x03)等操作,通過0x0A,0x0B,0x0C,0x0D,0x0E,0x0F讀取數據,然后進行高低字節的組合、轉換,得到環境光、距離、紅外LED相應數據。
空氣質量傳感器采用SGP30,其能同時利用芯片內部集成的AD/DA轉換器采集CO2濃度和TVOC濃度,將采集的數據處理后即可得到相應數據[3]。傳感器電路設計如圖4所示。
1.4 基于WiFi的無線傳輸電路
無線傳輸采用ESP8266 WiFi無線傳輸模塊,該模塊內部集成了WiFi傳輸協議,可以通過透傳模塊,利用串口發送AT命令實現WiFi通信。無線傳輸電路如圖5所示。
1.5 語言交互電路
語言交互采用LD3320語音識別模塊和MY1690語音播報模塊,可以根據輸入的聲音進行頻譜分析、語音特征提取、匹配關鍵詞列表中的關鍵詞,將此關鍵詞列表中得分最高的關鍵詞作為最終語音識別的結果輸出。語音交互電路如圖6所示。
1.6 LCD顯示電路
采用4.3寸的TFT LCD顯示屏,其1~21引腳用于連接LCD控制器,23引腳用來控制顯示屏背光,可連接單片機的PWM引腳控制顯示屏背光亮度,5 V電源用于背光供電,
3.3 V電源用于除背光外的其他部分供電,剩下的引腳是觸摸屏接口,主要使用I2C與CPU通信。LCD顯示電路如圖7所示。
2 系統軟件設計
系統的軟件設計包含GPIO、按鍵、時鐘、定時器、串口等硬件初始化程序。
在軟件設計中,智能衣柜軟件通過WiFi連接網絡,獲取所在地的實時天氣信息,支持實時查詢天氣,通過語音播報給出適當的穿衣、出行建議。使用環境光傳感器檢測衣柜是否打開,檢查環境光照強度,根據光線強弱自動調節照明;使用溫濕度傳感器監測衣柜內的溫濕度情況,輸入外界命令控制烘干、除濕等功能,動態調節衣柜內環境的溫濕度值;TFT顯示屏用以顯示相應數據,以實現智能化管理。主程序流程如圖8所示。
3 系統關鍵技術
智能衣柜系統以嵌入式技術為基礎,構建了智能衣柜的整體架構,可對溫濕度進行自動控制。
3.1 SI7006溫濕度采集程序設計
SI7006是集成了溫度傳感器和濕度傳感器的一款高效能芯片,通過I2C數據線(SDA)和時鐘線(SCL)與STM32連接。工作原理:先將SDA、SCL置于高電平,表示I2C開始工作,然后將設備地址與讀寫位組成8位數據,ACK為每一字節數據后面跟隨的應答信號,之后進行信息數據傳輸。SDA置于高電平,SCL由低電平拉至高電平表示傳輸結束。對SI7006首先進行硬件初始化,SI7006通過數字I2C接口與主機控制器通信。當向設備發送命令時,讀命令的
R/W位設置為高,寫命令設置為低[4]。數據傳輸示意圖如圖9
所示。
7位的從設備地址與1位的讀寫位可構成8位的0x81讀命令和0x80寫命令,通過HAL_I2C_Master_Transmit函數寫入0xFE進行軟復位,之后寫入0xE5,啟動濕度傳感器進行A/D轉換,將模擬信號轉換為數字信號,通過函數HAL_I2C_Master_Receive(amp;hi2c1, 0x81, amp;RH_Code, 1, 100)讀取數據,將數據進行高低字節轉換,再運用轉換公式計算濕度:
(1)
式中:RH_Code為單片機讀取的濕度對應的數字信號。通過公式計算出濕度值,寫入0xE3,啟動溫度傳感器進行A/D
轉換,將模擬信號轉換為數字信號,通過函數HAL_I2C_Master_Receive(amp;hi2c1, 0x81, amp;Temp_Code, 1, 100)將數據讀取后存入Temp_Code,再經過高低字節轉換得到正確的數據,運用轉換公式得到溫度值:
(2)
式中:Temp_Code為單片機讀取的溫度對應的數字信號。
SI7006數據采集流程如圖10所示。
3.2 衣柜PID恒溫控制設計
該系統需要通過設備完成對衣柜內部的溫濕度調節,但是調節過程中的輸入與輸出是非線性變化,需要提高衣柜內溫濕度控制的準確性和魯棒性。文中選用傳統PID控制算法,根據溫濕度采集的數據與系統內部預先設定的值作比較,調用PID算法對數據進行處理,得到最后想要的調節結果[2]。PID調節如圖11所示。
PID控制算法由比例控制、積分控制、微分控制組成。由于需要調節衣柜內部的溫度,通常需調節占空比:
OUT=Pout+Iout+Dout (3)
式中:Pout為比例控制輸出;Iout為積分控制輸出;Dout為微分控制輸出。
對于比例控制,最終將溫度穩定在Sv。系統上電運行后,設計溫度采樣時間值,根據時間的變化會得到一系列溫度采樣值:X1, X2, X3, ..., Xk。可得采樣數據與設定值Sv之間的差值Ek:
Ek=Sv-Xk (4)
通常Ek有3種情況:Ekgt;0代表當前環境溫度未達標;Ek=0表示當前環境溫度滿足要求;Eklt;0表示當前環境溫度已超標。當出現Ek>0或Ek<0時需要調節Pout。
Pout=(Sv-Xk)+out0=KP*Ek+out0 (5)
式中:out0是常數;KP表示比例系數。
對于積分控制,通過用戶設定值Sv與采集的環境溫度數據做減法,得到差值Ek,由于需要連續采集溫度,于是有了一系列的差值數據:
E1=Sv-X1
E2=Sv-X2
E3=Sv-X3
…
Ek=Sv-Xk (6)
將E1, E2, E3, ..., Ek進行SUM處理得到:
SE=E1+E2+E3+E4+ ... +Ek-1+Ek (7)
同樣,SE也有3種情況:SEgt;0表示數據大多數未達標;SE=0表示控制效果較理想;SElt;0表示數據大多數超標。SEgt;0或SE<0時需要調節Iout。
(8)
式中:TI表示積分時間。
對于STM32單片機,通過積分運算可以得到近似值:
(9)
式中:T表示采樣時間。積分公式近似于:
(10)
TI的大小決定了恢復正常溫度的時間。
對于微分控制,通過獲得的差值數據,將兩次數據的差值表示為:
Dk=Ek-Ek-1 (11)
同樣,Dk也有3種狀態:Dkgt;0表示差值逐漸增大;Dk=0表示差值逐漸平穩;Dklt;0表示差值逐漸減少。Dkgt;0或Dklt;0時需要調節Dout:
(12)
式中:TD表示微分時間。
在STM32單片機中可以近似于:
(13)
得到PID控制近似公式:
(14)
3.3 AP3216C傳感器數據采集程序設計
AP3216C是一個集成的ALSamp;PS模塊,包括數字環境光傳感器(ALS)、接近傳感器(PS)和單個封裝IRLED,采用I2C傳輸模式。對于AP3216C先向設備地址0x3C寫入0x04進行軟復位,短暫延時,再向設備地址寫入0x03啟動ALS+PS+IR功能,延時一段時間等待轉換完成,從0x0A中讀取紅外數據(低),從0x0B中讀取紅外數據(高),從0x0C中讀取ALS數據(低),從0x0D中讀取ALS數據(高),從0x0E中讀取PS數據(低),從0x0F中讀取PS數據(高),最后進行處理。AP3216C數據采集流程如圖12所示。
3.4 SGP30氣體傳感器數據采集程序設計
SGP30是一款集成了多個傳感元件的室內氣體傳感器,用于檢測空氣質量。它采用I2C傳輸模式通信,通過寫入特定的命令并讀取數據來獲取CO2和TVOC的值[3]。在使用SGP30傳感器時,向設備地址寫入0x2003進行設備初始化,該命令用于啟動傳感器并進行初始化設置。寫入0x2008命令獲取空氣質量數據,該命令會觸發傳感器進行測量,并返回CO2和TVOC數據。
首先獲取CO2的高8位數據,然后獲取CO2的低8位數據。這兩個數據分別表示CO2濃度的高位和低位。SGP30傳感器會提供一個CRC校驗值,用于數據的完整性驗證。接下來獲取TVOC的高8位數據,然后獲取TVOC的低8位
數據,同樣表示TVOC濃度的高位和低位。再次獲取一次CRC校驗值,用于校驗數據的完整性。數據獲取完畢后,將CO2的高8位數據和低8位數據整合為一個16位的數值,即可得到CO2的濃度值。同樣,將TVOC的高8位數據和低8位數據整合為一個16位的數值,即可得到TVOC的濃度值,如圖13所示。
3.5 ESP8266 WiFi無線傳輸模塊驅動程序設計
與上位機通信采用ESP8266 WiFi模塊[5],該模塊通過UART通信,在程序設計時需通過串口發送AT指令連接網絡、服務器,從而獲取時間以及天氣等信息。模塊無需初始化,可直接使用,發送相關AT指令對模塊進行模式設置。首先,需要配置該模塊為STA模式;然后繼續發送指令連接路由器,通過在AT指令中加入WiFi名稱和密碼,即可連接WiFi;之后發送相關AT指令連接TCP服務器;連接成功后,將模塊設置為透傳模式,輸入GET+API接口獲取時間和天氣信息,等待模塊返回JSON格式的天氣或時間數據,成功后則退出透傳。ESP8266工作流程如圖14所示。
4 系統測試
4.1 系統軟硬件實現測試
按照需求設計硬件系統,燒錄程序,檢查TFT顯示屏是否能夠正確顯示數據,測試各傳感器能否正常采集數據,完成軟硬件測試。硬件實物運行如圖15所示。
將調試完成的檢測儀放入實驗環境中,通過預留的注氣孔注入各體積分數的氣體以及改變實驗環境的光線和傳感器位置,多次測試,調整預設參數,觀察溫濕度傳感器、環境光傳感器、空氣質量傳感器的采集結果,證明了儀器的可靠性。
4.2 溫濕度控制算法性能測試
該智能衣柜的溫濕度調節采用傳統的PID控制算法在任意時刻開啟系統,首先預設衣柜內目標溫度為Temp_base=22 ℃,
濕度為RH_base=50%RH,初始化比例、積分、微分控制輸出值。通過SI7006每間隔10 min實時獲取衣柜內部的溫濕度,得到相關數據。為防止數據異常,連續獲取24個數據做均值濾波處理后得到該時間點的溫度值Temp_Code,再與系統預設的Temp_base作數據差,根據誤差值計算出PID控制算法的比例、積分、微分項。再將PID算法的輸出值傳遞給加熱器,調節衣柜內部的溫度,并持續監測衣柜內部的溫度,根據反饋信息調整PID控制參數,以達到預期目標(濕度控制方法同溫度控制方法)[6-7]。實際測得的溫濕度變化值如圖16所示。
現場測試時,啟動時衣柜內溫濕度初始值為溫度26.7 ℃,
濕度68.7%RH;設定目標溫濕度值為溫度23.0 ℃,濕度
50.0%RH。每10 min獲取一次衣柜內部的溫濕度值,根據濕度和溫度的變化曲線可知,初值狀態下柜內柜外溫濕度情況一致,當關閉衣柜啟動設備后,溫濕度前期下降較為明顯,之后溫度趨于穩定,約為23.0 ℃;濕度在150 min時接近目標濕度50.0%RH;溫濕度均能通過調節達到預期值,最后得到的調節后的溫度誤差范圍為±1 ℃,調節后的濕度誤差范圍為±5%,滿足設計要求。
4.3 空氣質量傳感器性能測試
將微量氣體注入觀測環境,檢測CO2和甲苯(屬于TVOC中的一種)的體積分數來觀測傳感器數值變化[6-7]。啟動設備,初始化后CO2 _value值為5×10-4,TVOC_value為0,先對CO2的體積分數進行檢測,每10 min注入5×10-5的CO2,利用串口打印數據,然后進行數據處理。隨著CO2的注入,SGP30傳感器的電阻值發生變化,將電阻值轉換為體積分數。隨著注入量的增加,顯示屏上的體積分數也隨之增加,達到預設值后,啟動舵機,開放測試環境,CO2的體積分數隨之下降。同理對TVOC進行測試,每10 min注入5×10-6甲苯,隨著甲苯注入量的增加,TVOC_value也增加,從數據結果看,誤差控制范圍為3%~5%,滿足設計要求??諝赓|量檢測如圖17所示。
4.4 上位機數據曲線顯示
上位機可顯示溫度、濕度、CO2和TVOC體積分數等多個參數的實時數據。通過上位機界面,用戶可以一目了然地查看關鍵環境指標的變化。
為了實現上位機與下位機間的可靠通信,采用TCP通信協議。上位機作為客戶端,通過與下位機建立連接,確保數據的穩定傳輸。下位機利用強大的ESP8266-12F WiFi模塊創建了一個服務器[8-11],可提供可靠的數據傳輸通道。
通過這種通信方式,上位機可以及時獲取下位機采集的環境數據。用戶可通過動態曲線圖或直觀的數據表格,實時查看溫度、濕度、CO2和TVOC體積分數等參數的變化。此舉有助于用戶迅速發現溫度波動、濕度異?;蛴泻怏w體積分數的變化,從而采取相應措施。
此外,上位機還提供了一些額外功能,以增強用戶體驗和數據分析能力。用戶可以根據需要調整顯示的時間范圍,放大或縮小曲線以便更詳細地觀察特定時間段的數據。還可以設置警報閾值,當環境參數超過設定值時,上位機會發出警報通知,有助于用戶及時采取行動。
上位機顯示功能通過實時展示溫度、濕度、CO2和甲苯體積分數等多個參數,以直觀的方式幫助用戶了解環境狀況。TCP通信協議確保了可靠的數據傳輸,而豐富的功能和友好的界面提升了用戶體驗和數據分析效果。數據24小時采集圖如圖18所示。
5 結 語
文中研究了基于STM32單片機的衣柜智能檢測裝置,該儀器具有檢測性能穩定、響應速度快、功耗低、體積小等特點,還能根據室外天氣情況進行生活提示,對衣柜內部環境進行控制,使衣柜功能更加豐富。
在后續的研究中,將對檢測設備與上位機之間的數據無線傳輸部分進行優化,進一步提高該檢測設備的智能化、一體化和數字化系統集成能力,并對衣柜內部的衣服進行數量統計和標簽式分類,對穿衣、搭配、喜好進行更加豐富的
提示[12]。
參考文獻
[1]潘澤鍇,陽瓊芳,李泰韜.基于物聯網技術的智能衣柜系統設計與實現[J].研究與開發,2022,41(5):124-130.
[2]王永虹,徐煒,郝立平. STM32系列微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[3]王磐,洪苑乾,黃漢英,等.基于PLC的模糊PID控制器在熱風干燥箱上的應用[J].食品與機械,2016,32(12):100-104.
[4]馬須敬,徐磊.氣體傳感器的研究現狀與發展趨勢[J].傳感器與微系統,2018,37(5):1-4.
[5]劉璋. STM32單片機在室內環境監測系統中的運用研究[J].數字技術與應用,2016,34(2):20.
[6]張琥石,林偉龍.基于ESP8266 WiFi模塊的物聯網體溫監測系統[J].物聯網技術,2020,10(12):32-35.
[7]呂品,邱巍,岳成軍,等.電阻型半導體甲醛傳感器研究進展[J].傳感器與微系統,2016,35(12):1-5.
[8]夏斯權,宋文斌,谷智博.基于自帶智能保護裝置理念的小型家具柜設計[J].包裝工程,2018,39(24):232-236.
[9]王佳權,王皓,陳少勇,等.基于物聯網的智能鞋柜系統設計[J].電子技術應用,2017,43(3):84-87.
[10]魏慶麗,王潔,楊晨,等. GSM網絡的室內空氣質量監測系統設計[J].傳感器與微系統,2016,35(9):69-71.
[11]馬軍,李姣,沈文浩.環境溫/濕度對光催化氧化降解造紙污染氣體影響的研究[J].造紙科學與技術,2018,37(2):85-90.
[12]李志偉,東偉,黃雙成.基于DHT11的農業大棚溫濕度監控系統設計[J].工業儀表與自動化裝置,2021,51(1):39-43.
收稿日期:2023-08-22 修回日期:2023-09-29
基金項目:重慶對外經貿學院基于STM32單片機的衣柜智能交互檢測儀(KYKJ202207);重慶對外經貿學院產教融合視域下學科競賽平臺研究(CYXYKY2022005)
作者簡介:周 杰(1989—),男,碩士,重慶對外經貿學院講師,主要研究方向為嵌入式技術。
黃 波(2000—),男,就職于重慶醫藥集團席勒醫療設備有限公司,主要研究方向為嵌入式技術。