盧 淵,李艷麗,馮成龍,李新達(dá)
(荊楚理工學(xué)院 電子信息工程學(xué)院,湖北 荊門 448000)
目前廣泛使用的傳統(tǒng)的手動按壓式產(chǎn)品,因其出液量不固定,極容易造成資源浪費。手動按壓模式容易造成細(xì)菌殘留,增大交叉感染的風(fēng)險。公共場所放置洗手液的場合較多,經(jīng)常出現(xiàn)消殺用品無法及時補(bǔ)充的情況,給用戶帶來不便。利用物聯(lián)網(wǎng)技術(shù)設(shè)計全新的系統(tǒng),實現(xiàn)免接觸式自動泵壓出液、實時數(shù)據(jù)監(jiān)測上傳、遠(yuǎn)程監(jiān)控等功能,具有較高的實用性。
本系統(tǒng)主要由3部分組成。數(shù)據(jù)采集板塊通過超聲波傳感器實現(xiàn)人員距離的檢測,并通過單片機(jī)控制泵壓系統(tǒng)出液;單片機(jī)通過電阻式液位傳感器測量瓶裝液位的信息,并將數(shù)據(jù)通過4G通信模塊將數(shù)據(jù)上傳到物聯(lián)網(wǎng)云平臺[1-2]。產(chǎn)品整體框架如圖1所示。
圖1 產(chǎn)品整體框架
綜合系統(tǒng)的使用環(huán)境與檢測性能,采用HC-SR04型號超聲波傳感器,系統(tǒng)通過2個該型號超聲波傳感器實現(xiàn)精準(zhǔn)測量。超聲波傳感器的觸發(fā)引腳trigger和回波引腳echo均需與單片機(jī)的數(shù)字引腳相連接。其中,trigger引腳必須給予10 μs以上的高電平才能發(fā)射超聲波,需與單片機(jī)可輸出PWM的數(shù)字引腳相連接[3-5]。
本系統(tǒng)通過電阻式傳感器實現(xiàn)對水位的實時監(jiān)測。同電壓下,不同液位高度的電阻不同,電流差異較大,將電阻式液位檢測模塊輸出口與單片機(jī)模擬功能接口連接,從而實現(xiàn)單片機(jī)對液位信息的準(zhǔn)確讀取,后續(xù)通過實驗即可確定液位與采集的數(shù)據(jù)之間的關(guān)系,實現(xiàn)液位的準(zhǔn)確判斷。電阻式液位傳感器原理如圖2所示。
圖2 電阻式液位傳感器原理
結(jié)合傳統(tǒng)裝置弊端,綜合考慮后,本系統(tǒng)采用微型無刷水泵,通過PWM對微型水泵進(jìn)行控制,改變泵出液速度,實現(xiàn)精準(zhǔn)化出液。微型無刷水泵只需將水泵的正極與單片機(jī)實物PWM輸出端口連接,負(fù)極與單片機(jī)共地端連接即可[6]。
本系統(tǒng)可實現(xiàn)遠(yuǎn)程連接,通過4G模塊將相關(guān)數(shù)據(jù)上傳至物聯(lián)網(wǎng)云平臺,4G通信模塊與單片機(jī)之間通過TTL通信方式連接,傳輸單片機(jī)數(shù)據(jù)與4G通信模塊數(shù)據(jù)。通信模塊與單片機(jī)接口電路如圖3所示。
圖3 通信模塊與單片機(jī)接口電路
在使用該模塊時,將串口波特率設(shè)置為115 200,8位數(shù)據(jù),需有1位停止位,無需校驗位。通過固件,將通信模塊設(shè)置為TCP通信模式,通過專用命令,將服務(wù)器的IP和端口更改為建立數(shù)據(jù)庫的服務(wù)器,并設(shè)置通信串口[7]。
本裝置涉及硬件較多,為保障各模塊正常運行,需有良好的硬件設(shè)計,系統(tǒng)整體電路如圖4所示。
圖4 系統(tǒng)整體電路
本系統(tǒng)采用C語言開發(fā),實現(xiàn)人員距離判斷與人員是否使用本產(chǎn)品的判斷,通過PID算法實現(xiàn)對微型無刷水泵轉(zhuǎn)速的控制,實現(xiàn)系統(tǒng)定量出液。當(dāng)液量無法滿足產(chǎn)品正常工作需求時,向客戶端發(fā)送報警信息,提醒工作人員加液,保障產(chǎn)品處于正常工作狀態(tài)。同時,工作人員可通過手機(jī)客戶端對產(chǎn)品剩余液量、工作狀態(tài)進(jìn)行實時查看。程序整體工作流程如圖5所示。
圖5 程序整體工作流程
式中,高電平時間通過單片機(jī)I/O口與定時器結(jié)合實現(xiàn)距離換算。當(dāng)位于系統(tǒng)正面的超聲波傳感器檢測到人員距離系統(tǒng)小于20 cm時,單片機(jī)將進(jìn)行10 ms定時中斷,10 ms內(nèi)產(chǎn)品前方人員距離數(shù)據(jù)變化在誤差范圍之內(nèi),單片機(jī)對中斷內(nèi)容予以執(zhí)行。通過中斷激活下方超聲波傳感器工作,當(dāng)采集到的距離小于30 cm且趨于穩(wěn)定時,系統(tǒng)跳出中斷,繼續(xù)利用正面人員監(jiān)測模塊收集數(shù)據(jù),數(shù)據(jù)無異常后,系統(tǒng)將判定為人員將使用本產(chǎn)品,發(fā)送指令,確定執(zhí)行[8]。
為避免液體浪費,本系統(tǒng)通過PID控制算法與液位檢測模塊共同作用,實現(xiàn)準(zhǔn)確出液。
在本系統(tǒng)中,采用PID閉環(huán)控制算法,閉環(huán)控制具有更高的控制精確度,其中有類似于生物中的反饋調(diào)節(jié),能夠減小系統(tǒng)誤差,提高系統(tǒng)整體精確度。在一套系統(tǒng)中閉環(huán)控制可以通過連接各類傳感器對系統(tǒng)整體進(jìn)行數(shù)據(jù)測量與監(jiān)控,當(dāng)數(shù)據(jù)產(chǎn)生誤差時閉環(huán)控制就會根據(jù)制定的標(biāo)準(zhǔn)對系統(tǒng)進(jìn)行數(shù)據(jù)的反饋糾正。算法如下:
式中:error為產(chǎn)品實際洗手液出量和目標(biāo)洗手液出量的誤差;0.01為系統(tǒng)最小增益系數(shù),用來減小誤差;kP、kI分別表示為P算法和I算法的增益系數(shù)。系統(tǒng)會根據(jù)H1的結(jié)果進(jìn)行調(diào)整,來達(dá)到減小洗手液出量的目的。當(dāng)長時間出液時,D算法會抵消一部分由P算法造成的過度響應(yīng)影響(d(error)/dt=響應(yīng)速度)。H2通過對累計的誤差進(jìn)行積分來降低產(chǎn)品長時間工作造成的累計誤差。PID算法工作流程如圖6所示。
圖6 PID算法工作流程
當(dāng)系統(tǒng)初始化后,系統(tǒng)自動將此刻數(shù)據(jù)記錄為初始值,因本產(chǎn)品使用的PID算法,每次出液量固定,系統(tǒng)自動估算可以使用的次數(shù),每使用一次,數(shù)據(jù)將會上傳到云平臺,顯示系統(tǒng)剩余液量。當(dāng)次數(shù)小于10次時,已無法保證正常運行,系統(tǒng)將通過4G模塊向客戶端發(fā)送報警信息,提醒工作人員及時更換、補(bǔ)充。報警功能程序流程如圖7所示。
圖7 報警功能程序流程
將系統(tǒng)安裝固定于墻面,走到距離系統(tǒng)正面50 cm處,系統(tǒng)不出液。走到距離系統(tǒng)10 cm處,下方檢測處無觸發(fā),裝置無誤出液現(xiàn)象。將手伸入下方檢測裝置大于20 cm處,裝置無誤出液現(xiàn)象。手伸入正常檢測范圍,系統(tǒng)正常出液。系統(tǒng)方案設(shè)計無誤,系統(tǒng)可正常工作。
因涉及遠(yuǎn)程數(shù)據(jù)傳輸,系統(tǒng)使用了云服務(wù)器與通信模塊,前期需確保其配置無誤,否則系統(tǒng)的整體功能無法實現(xiàn)。在本產(chǎn)品第一次對通信模塊進(jìn)行測試時,通信模塊與服務(wù)器無法連接,向服務(wù)器發(fā)送測試信息,正常等待后,無法獲得服務(wù)器返回的數(shù)據(jù),通信系統(tǒng)搭建失敗。檢查系統(tǒng)后,最終鎖定錯誤出現(xiàn)的原因在于通信模塊配置時命令錯誤,給予復(fù)位引腳7 s以上的高電平,成功對通信模塊進(jìn)行了初始化,按照操作手冊重新配置,成功收到服務(wù)器的響應(yīng)數(shù)據(jù),通信線路搭建成功[9]。
本系統(tǒng)為使出液量趨于固定值,采用PID閉環(huán)控制算法,通過PID實現(xiàn)對出液的精準(zhǔn)化控制。PID閉環(huán)控制算法較為抽象,無法直接進(jìn)行現(xiàn)象觀察,本團(tuán)隊通過有、無PID閉環(huán)控制算法設(shè)計對照實驗,通過實驗數(shù)據(jù),確定產(chǎn)品中PID閉環(huán)控制算法是否可以達(dá)到設(shè)計目標(biāo)。實驗數(shù)據(jù)見表1所列。
表1 有無PID閉環(huán)算法對照實驗數(shù)據(jù)
通過表中數(shù)據(jù)可看出,使用PID閉環(huán)控制算法出液平均誤差遠(yuǎn)小于未使用算法的數(shù)據(jù),且使用PID閉環(huán)控制算法能夠使每次出液量更加穩(wěn)定、可靠。軟件中的PID閉環(huán)控制算法發(fā)揮了作用,且效果良好[10]。
本文設(shè)計的基于Arduino NANO單片機(jī)互聯(lián)免接觸式自動泵壓消毒產(chǎn)品克服了傳統(tǒng)公共場所提供給用戶使用的消毒產(chǎn)品浪費嚴(yán)重、重復(fù)利用率不高、無液時無法遠(yuǎn)程提醒的弊端,產(chǎn)品可以自動偵測人員信息,利用雙重檢測避免產(chǎn)品誤碰、誤觸等問題。利用PID閉環(huán)控制算法實現(xiàn)液體準(zhǔn)確出液,利用硬件+云服務(wù)+客戶端的形式,實現(xiàn)數(shù)據(jù)實時查看,缺液及時提醒,降低工作人員的工作強(qiáng)度,提升普通用戶使用體驗。后續(xù)我們將對產(chǎn)品外觀進(jìn)行設(shè)計,力爭實現(xiàn)產(chǎn)品功能的復(fù)用性,為商場、醫(yī)院等公共場合減少開支。