汪東霞 李沙沙 千志科
(黃河交通學院機電工程學院,河南 焦作 454950)
本系統(tǒng)的人機操作界面和主控界面,分別使用了獨立的AT89C52單片機進行控制,每個單片機都實現(xiàn)其各自的功能,并通過串口通信的功能進行數(shù)據(jù)傳輸,將用戶的控制信號及時發(fā)送給主控單片機,并將主控單片機的反饋信號及時地返回給用戶。
控制中心依據(jù)溫度傳感器傳回來的水溫,判斷其是否需要通過加熱器加熱。當儲水罐的水溫因注水急劇下降時,若無光照或陽光的照射強度無法使儲水罐溫度快速提升至設(shè)置值,此時控制中心將通過加熱器對儲水罐的水進行加熱,防止水的溫度過低,影響到用戶的使用。其中,儲水罐的水位也不能低于一定的水平,防止出現(xiàn)儲水罐無水加熱器仍在加熱的危險,因此本設(shè)計配有液位傳感器,實時檢測罐內(nèi)水位。
本系統(tǒng)采用的是PID算法進行溫度控制,根據(jù)溫度傳感器傳回的溫度和液位傳感器傳回的水位,判斷溫度變化的速度,進而可以在溫度降低到一定程度時提前加溫,防止控制滯后,無法達到預期的效果,即當儲水罐的水溫或水位急劇下降時,通過判斷其下降的速度,計算出未來一段時間在注水的情況下,溫度會在多長時間下降至極限值,控制加熱器以不同的加熱程度去加熱,溫度下降過快就以高功率去加熱,其加熱過程是加熱器與太陽能真空管加熱配合著進行的,所有的數(shù)據(jù)都將傳回控制中心進行判斷計算。若出現(xiàn)控制之外的任何異常情況都將以報警的形式通知用戶。
硬件電路為整個電路提供硬件支持,是程序運行和實現(xiàn)的載體,所以硬件電路設(shè)計的好壞會直接影響到程序運行的穩(wěn)定性和最終顯示的效果。本設(shè)計中AT89C52單片機使用的是11.0592MHz的晶振,30pF的瓷片電容,60字節(jié)的空間存儲變量,5K的code空間存儲代碼和不可更改的數(shù)組,6個外部中斷(分別為3個定時器中斷、2個外部中斷、一個串行口中斷,中斷號分別從0-5)[1-3]。
因本系統(tǒng)使用的是外部12V直流電源進行的供電,所以需將12V電壓降至5V,其原理是利用7805芯片,通過內(nèi)部電路的降壓,可以輸出5V的電壓,降壓之后所有的5V設(shè)備都需經(jīng)此供電,所以發(fā)熱比較嚴重,因此在穩(wěn)壓的輸入端和輸出端分別并聯(lián)了電解電容和瓷片電容。在正常光照的情況下,太陽能的電壓是高于12V的,所以太陽能電池會為系統(tǒng)提供電能,若太陽能電池因光照不足或其他原因?qū)е码妷航档?,此時根據(jù)二極管的特性,將選擇12V電源供電[4]。
本設(shè)計使用的核心是安信可的ESP 8266-12F系列的串口WIFI模塊。支持IEEE 802.11b/g/n無線標準,最多可同時支持5個TCP客戶連接,并支持3種工作模式,本設(shè)計使用到的是STA模式,用于連接網(wǎng)絡的終端設(shè)備,ESP8266有多種固件包,用戶可使用模塊內(nèi)部自帶固件包進行開發(fā),使用AT指令進行配置,也可使用官方提供的固件包開發(fā)特定的產(chǎn)品,通過官網(wǎng)配置自己需要的功能,本設(shè)計使用的是官方提供的固件包,其中支持開發(fā)的功能主要包括adc,cjscon,dht,enduser_setup,dile,gpio,hx711,net,node,pwm,tmr,uart,wifi等。在燒錄好固件后,需要在nodemcu編譯平臺下進行下載,Lua腳本語言是c語言的產(chǎn)物,它是20世紀巴西里約熱內(nèi)盧天主教大學開發(fā)的。本設(shè)計使用的是樂鑫基于安信可ESP8266-12F開發(fā)的外部擴展模塊,其原理圖如圖1所示,通過網(wǎng)絡控制GPIO14引腳口,對整個電路進行開關(guān)控制,因WIFI的引腳口輸出電壓僅有3.3V,所以使用了與控制輸出電路同樣的電路設(shè)計,僅是更改了一級三極管和二級三極管之間的電阻值,其中一級三極管使用的是PNP三極管,因為WIFI的引腳口默認為高阻態(tài)。所以在引腳口的輸出端設(shè)計了一個5.6K的下拉電阻,將引腳口電壓拉低,防止上電瞬間電路意外導通。WIFI電路原理圖的兩個按鍵分別為為RST和I0_0,RST為WIFI的復位按鍵,I0_0為燒錄固件時需將此引腳拉為低電平,此引腳高電平時為正常工作模式。其中本設(shè)計的WIFI遠程控制測試,使用的是貝殼物聯(lián)平臺提供的服務器(可根據(jù)自己的要求選擇不同的服務器提供的功能),用戶可以通過遠程登錄自己的服務器賬號,來操作太陽能熱水器,還可通過AI智能設(shè)備進行語音控制。
圖1 WIFI電路
本系統(tǒng)的輸出電路主要包括水泵控制電路的驅(qū)動、加熱棒電路的驅(qū)動、電磁閥電路的驅(qū)動、報警指示燈電路的設(shè)計等。其每個驅(qū)動電路分別由單片機的P1.0、P1.1、P1.2、P1.3引腳進行控制,因每個驅(qū)動設(shè)備的電流和電壓都較高,所以水泵、加熱棒、電磁閥均由繼電器進行控制,并由三極管對單片機的信號進行放大,其原理圖如圖2所示。因單片機的輸出電流較小,是必須進行電流放大的[5]。與單片機引腳口連接的是9012PNP三極管進行的一級放大,在9012的發(fā)射極和9013的基極之間連接有一個電阻,其主要起到限流作用,防止一級三極管輸出電流過大。二級三極管使用的是9013NPN三極管,其集電極與繼電器的電磁線圈連接,其中在繼電器線圈之間并聯(lián)了一個反向接的二極管,主要是考慮到繼電器在斷開后,線圈內(nèi)會存有電量,因此可以通過二極管進行放電,防止繼電器控制的滯后和可能出現(xiàn)的各種問題。在線圈的兩端并聯(lián)了一個和發(fā)光二極管串聯(lián)的電阻,用于指示繼電器的閉合狀態(tài)。針對在一級放大電路使用PNP三極管,主要是因為在單片機的上電復位之后和程序運行之前的這一段時間內(nèi),單片機的輸出引腳口是全部輸出為高電平的,所以使用PNP三極管可以防止在程序運行之前電路會不受控制地導通,這一個小小的錯誤將可能導致一個大的事故。
圖2 控制輸出電路
人機交互操作界面由單獨的AT89C52單片機進行控制,通過與主控單片機的串口進行通訊,時時發(fā)送操作面板的命令和時時反饋主控的命令。
本設(shè)計使用的是帶字庫的并行口通訊的LCD12864液晶顯示屏[6],引腳口如圖3所示,硬件連接圖如圖,液晶顯示屏的19腳、20腳為液晶顯示屏背光板的電源引腳,其通過兩個三極管由單片機的P3.7引腳進行控制,一級三極管使用的是9012PNP三極管,二級三極管使用的是D882NPN三極管,D882三極管可以輸出最大3A的驅(qū)動電流。通過設(shè)置對液晶背光板的控制,可以使背光板在沒有操作的時候,自動關(guān)閉,降低了背光板的大電流消耗和人機操作面板的睡眠期間的功耗。通過任意按鍵可以將其液晶顯示屏進行喚醒,體現(xiàn)了更加人性化的操作。
圖3 液晶顯示屏電路
程序設(shè)計時采用的是模塊化設(shè)計,首先對各個模塊進行獨立的設(shè)計,然后將其進行統(tǒng)一整合,具有耦合度低,內(nèi)聚度高的特點,系統(tǒng)的總程序框架圖如圖4所示。
圖4 總程序框架圖
本設(shè)計的太陽能熱水器測控儀的測試結(jié)果與預期效果基本吻合,在設(shè)計過程中并增加了一些新的功能。其中在調(diào)試過程中,LCD12864液晶顯示屏占用較多AT89C52單片機的存儲空間,導致液晶顯示屏顯示亂碼的問題,阻礙了整個系統(tǒng)的進程,因在顯示屏的顯示頁面中有較多需要更改的數(shù)據(jù),需分別建立變量存儲數(shù)據(jù),導致建立變量過多,顯示屏讀取數(shù)據(jù)出錯,顯示不正常,再經(jīng)過最后的程序優(yōu)化,此問題才得以解決。
系統(tǒng)實現(xiàn)的功能基本達到了預期效果的功能,其中包括溫度和液位檢測、加熱、上水、定時加熱和定時加水。其中,新增加的功能是將本系統(tǒng)接入了網(wǎng)絡,可通過網(wǎng)絡對其控制,并提供了多種控制方式,大大方便了用戶。本系統(tǒng)未完成的任務是沒有完成對水箱內(nèi)的水預測還可以使用多長時間。