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