夏貴輝,吳燕,丁春發(fā),黎國(guó)強(qiáng),平劍超
(南昌師范學(xué)院,江西南昌, 330032)
水是人類(lèi)所需的第二重要的資源。在當(dāng)人們感覺(jué)到口渴時(shí)其實(shí)已經(jīng)表示人體已經(jīng)處于缺水狀態(tài)了。醫(yī)生建議每天能夠有八杯水的攝入量。因此水對(duì)人們的重要性不言而喻。但是我們喝到健康且有溫度的水很困難,因?yàn)槿藗兒苋菀淄洶磿r(shí)喝水,并不是在當(dāng)你感到口渴時(shí)喝水才是正確的,我們需要在一天內(nèi)喝到足量的水并且在一定的時(shí)間內(nèi)喝水才能更健康。因此,智能水杯的概念也逐漸呈現(xiàn)在人們的視野中[1]。目前市面上已經(jīng)出現(xiàn)了很多可以顯示當(dāng)前水杯內(nèi)水的溫度的保溫杯。能夠顯示當(dāng)前的水溫將為大家?guī)?lái)很多的便利,畢竟不必再冒著被燙傷的風(fēng)險(xiǎn)用舌頭去試水溫了。而我們?cè)O(shè)計(jì)的智能水杯系統(tǒng)將在此基礎(chǔ)上進(jìn)行創(chuàng)新改進(jìn),增加更多的功能,提高它的智能性;并且降低智能水杯的成本,增加它的實(shí)用性,提高它的便利性。在能夠滿足日常生活的同時(shí)滿足用戶(hù)的個(gè)性需求,以便適用于不同的人群。
此系統(tǒng)通過(guò)溫度傳感器獲取當(dāng)前水杯中水的溫度,將數(shù)據(jù)實(shí)時(shí)傳送到STC89C52 單片機(jī)中,并對(duì)數(shù)據(jù)進(jìn)行處理,以判斷是否需要進(jìn)行加熱或降溫。用戶(hù)可通過(guò)按鍵對(duì)水杯進(jìn)行控制;語(yǔ)音模塊可以播報(bào)當(dāng)前的水溫并提醒用戶(hù)及時(shí)喝水,LCD 液晶屏能夠顯示出當(dāng)前水杯的狀態(tài)及水溫[2]。
本系統(tǒng)由溫度檢測(cè)模塊檢測(cè)當(dāng)前水杯中水的溫度,并判斷是否需要進(jìn)行溫度調(diào)控。液晶顯示模塊可顯示出當(dāng)前水溫。按鍵可設(shè)置自己所需水的溫度,同時(shí)按鍵還可以進(jìn)行定時(shí)以及設(shè)置杯蓋的開(kāi)關(guān)。語(yǔ)音模塊可播報(bào)當(dāng)前的水溫。系統(tǒng)框圖如圖1 所示。
圖1 系統(tǒng)框圖
單片機(jī)的最小系統(tǒng)如圖2 所示,由單片機(jī)、復(fù)位電路與晶振電路組成。本系統(tǒng)選用STC89C52 單片機(jī)為核心,控
圖2 單片機(jī)最小系統(tǒng)
制其他的各個(gè)模塊。STC89C52 單片機(jī)是一種低功耗、高性能的CMOS8 位微控制器,具有8K 在系統(tǒng)可編程的Flash存儲(chǔ)器。復(fù)位電路分為上電復(fù)位和按鍵復(fù)位。在上電瞬間,由于電容兩端電壓不能突變,在上電一瞬間電容等效為短路, 因此RESET 的輸入為高電平,電位等于VCC,芯片被復(fù)位。隨后電源通過(guò)電阻R9 對(duì)電容充電,與此同時(shí)電阻上的電壓開(kāi)始減小,最后約等于0,而電容兩端電壓差近似為VCC,芯片開(kāi)始正常工作。并聯(lián)在電容兩端的按鍵為復(fù)位按鍵,當(dāng)復(fù)位按鍵沒(méi)有被按下的時(shí)候電路實(shí)現(xiàn)上電復(fù)位,在芯片正常工作后,可以通過(guò)按下按鍵使RST 管腳出現(xiàn)高電平達(dá)到手動(dòng)復(fù)位的效果。晶振電路可以為單片機(jī)提供一個(gè)穩(wěn)定的時(shí)鐘信號(hào),使單片機(jī)能夠按照一定的時(shí)間序列進(jìn)行工作,本系統(tǒng)采用的晶振頻率為11.0592MHz。
溫度檢測(cè)模塊如圖3 所示。采用的是DS18B20 實(shí)時(shí)溫度檢測(cè)芯片,其檢測(cè)的溫度范圍為:極限溫度域-55℃~125℃;正常使用值大約為-10℃~85℃,此時(shí)測(cè)得的誤差將在±0.4℃。將經(jīng)封裝的DS18B20 實(shí)時(shí)溫度檢測(cè)芯片放入水杯中[3],1 和3 兩個(gè)引腳接電源和地。2 與單片機(jī)的P2.4引腳相連,將收集到的溫度數(shù)據(jù)傳入單片機(jī)進(jìn)行處理。
圖3 溫度檢測(cè)模塊
按鍵模塊如圖4 所示。采用四個(gè)獨(dú)立按鍵對(duì)水杯進(jìn)行控制。K1 按鍵用于主界面與閾值設(shè)置界面切換;在主界面中,K3 按鍵可控制水杯的加熱與降溫,K4 按鍵可控制杯蓋的開(kāi)關(guān)。按下K1按鍵進(jìn)入閾值設(shè)置界面,默認(rèn)以溫度下限位置開(kāi)始閃爍;此時(shí)K2 鍵用于閾值設(shè)置,按下K2 鍵將進(jìn)入溫度上限閃爍,再次按下則進(jìn)入定時(shí)時(shí)間閃爍,如此循環(huán);K3 按鍵可對(duì)數(shù)值進(jìn)行加操作,K4 按鍵可對(duì)數(shù)值進(jìn)行減操作。再次按下K1 按鍵,將回到主界面中。當(dāng)有按鍵按下時(shí),單片機(jī)的P2.0、P2.1、P2.2、P2.3 引腳將會(huì)變成低電平,實(shí)現(xiàn)對(duì)水杯的控制。
圖4 按鍵模塊
LCD1602 顯示模塊如圖5 所示,單片機(jī)P0.0~P0.7分別與LCD 數(shù)據(jù)端相連,P2.5~P2.7 分別與LCD 的RS、RW、E 端相連。實(shí)現(xiàn)顯示當(dāng)前的水溫,設(shè)置水溫的上下限值,定時(shí)時(shí)間,以及杯蓋此時(shí)的開(kāi)關(guān)狀態(tài)。
圖5 LCD 顯示模塊
驅(qū)動(dòng)模塊如圖6 所示??赏ㄟ^(guò)按下按鍵直接改變單片機(jī)P3.4、P3.5、P3.6、P3.7 引腳的電平,控制電機(jī)馬達(dá)的正轉(zhuǎn)與反轉(zhuǎn)來(lái)實(shí)現(xiàn)杯蓋的開(kāi)關(guān)。此外,在定時(shí)結(jié)束時(shí),杯蓋將自動(dòng)打開(kāi)。
圖6 驅(qū)動(dòng)模塊
語(yǔ)音播報(bào)模塊如圖7 所示。本系統(tǒng)采用的是syn6288語(yǔ)音播報(bào)芯片,串口數(shù)據(jù)發(fā)送TXD 接單片機(jī)P3.0 引腳,串口數(shù)據(jù)接收RXD 接單片機(jī)P3.1 引腳。當(dāng)用戶(hù)設(shè)置定時(shí)結(jié)束時(shí),語(yǔ)言開(kāi)始播報(bào)提醒用戶(hù)喝水并播報(bào)當(dāng)前水溫。
圖7 語(yǔ)音模塊
溫度調(diào)控模塊由加熱與制冷兩部分組成,如圖8、圖9所示。本設(shè)計(jì)采用半導(dǎo)體制冷片熱電溫差電子制冷片和PTC小型低壓加熱片實(shí)現(xiàn)加熱和制冷兩個(gè)功能。通過(guò)繼電器和導(dǎo)線與單片機(jī)相連,并由單片機(jī)的P1.2 引腳連接繼電器控制加熱片,單片機(jī)的P1.3 引腳控制制冷片;當(dāng)兩個(gè)引腳為低電平時(shí),開(kāi)始工作。接入一個(gè)小燈泡可用于觀察加熱片與制冷片是否工作。
圖8 加熱模塊
圖9 制冷模塊
軟件設(shè)計(jì)總體流程圖如圖10 所示:先進(jìn)行初始化,設(shè)置溫度上下限,獲取當(dāng)前水溫,在LCD 顯示屏上顯示出各個(gè)數(shù)據(jù),系統(tǒng)自動(dòng)判斷是否需要加熱或降溫;當(dāng)?shù)竭_(dá)加熱或降溫的條件后,開(kāi)始加熱或降溫,直到到達(dá)設(shè)定溫度范圍。在處于定時(shí)模式時(shí),在倒計(jì)時(shí)結(jié)束時(shí),杯蓋將自動(dòng)打開(kāi),同時(shí)語(yǔ)音提醒用戶(hù)喝水。
圖10 主流程圖
按鍵程序流程圖如圖11 所示。按鍵按下然后立即釋放即可完成一次信號(hào)的傳輸。在閉合和分開(kāi)的時(shí)間需要超過(guò)10ms,前沿抖動(dòng)消失后再一次檢測(cè)鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,確認(rèn)為真正有按鍵被按下。
圖11 按鍵模塊流程圖
顯示程序流程圖如圖12 所示。在上電初始化后,通過(guò)單片機(jī)將檢測(cè)到的溫度模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)顯示在液晶顯示屏上。用戶(hù)可通過(guò)外部按鍵來(lái)調(diào)節(jié)當(dāng)前的溫度以及定后會(huì)通過(guò)單片機(jī)進(jìn)行判斷。溫度高于上限將會(huì)進(jìn)行降溫處理;溫度過(guò)低將會(huì)進(jìn)行加熱處理。以達(dá)到溫度調(diào)控的目的。
圖12 顯示模塊流程圖
圖13 語(yǔ)音播報(bào)模塊流程圖
圖14 溫度調(diào)控模塊流程圖
在搭建好硬件模塊后,于Keil軟件內(nèi)編寫(xiě)軟件程序,將編寫(xiě)完成的軟件程序燒錄到單片機(jī)中。系統(tǒng)上電后,等待系統(tǒng)初始化,此時(shí)LCD 顯示屏上顯示的第一行數(shù)據(jù)分別為當(dāng)前溫度,設(shè)置的溫度上下限;第二行數(shù)據(jù)為定時(shí)時(shí)間以及杯蓋狀態(tài)??赏ㄟ^(guò)按鍵來(lái)設(shè)置溫度上下限,定時(shí)時(shí)間以及完成杯蓋的開(kāi)關(guān)。實(shí)物測(cè)試如圖15 所示。
圖15 實(shí)物測(cè)試圖
實(shí)物功能測(cè)試:將感溫棒和加熱、制冷片放入水杯中,開(kāi)機(jī)后設(shè)置溫度上下限,往杯中加入溫度超過(guò)上限的熱水,制冷片開(kāi)始工作,等待制冷片工作燈關(guān)閉;再加入冷水,加熱燈自動(dòng)打開(kāi),加熱片開(kāi)始工作,進(jìn)行加熱。在水溫設(shè)定范圍內(nèi),用戶(hù)可根據(jù)需要手動(dòng)進(jìn)行加熱、制冷或恒溫控制。下一項(xiàng)功能:設(shè)置定時(shí)提醒用時(shí)時(shí)間,以此來(lái)改變顯示屏上的數(shù)值。
語(yǔ)音播報(bào)程序流程圖如圖13 所示。在進(jìn)入定時(shí)后將會(huì)對(duì)當(dāng)前時(shí)間進(jìn)行判斷,當(dāng)定時(shí)倒數(shù)到0時(shí)將會(huì)開(kāi)啟語(yǔ)音播報(bào)功能。
溫度調(diào)控模塊流程圖如圖14 所示。在讀取到當(dāng)前溫度戶(hù)喝水,當(dāng)定時(shí)時(shí)間到達(dá)后,水杯將進(jìn)行語(yǔ)音播報(bào)“主人,喝水時(shí)間到了,當(dāng)前水溫為28 度。”
本設(shè)計(jì)實(shí)現(xiàn)了智能水杯控制系統(tǒng)。使用STC89C52 單片機(jī)為控制核心,通過(guò)溫度探頭采集水溫?cái)?shù)據(jù),再由單片機(jī)將數(shù)據(jù)處理后傳輸至LCD 液晶顯示屏對(duì)水溫實(shí)時(shí)顯示;并通過(guò)繼電器控制水杯加熱和制冷,實(shí)現(xiàn)溫度控制;按鍵設(shè)置定時(shí)來(lái)提醒用戶(hù)喝水[4]。實(shí)際測(cè)試完成成功,證明本智能水杯設(shè)計(jì)已實(shí)現(xiàn)所有預(yù)期功能,且具備良好的實(shí)用價(jià)值,加以外形包裝后,可滿足用戶(hù)的實(shí)際生活需求。