夏貴輝,吳燕,丁春發,黎國強,平劍超
(南昌師范學院,江西南昌, 330032)
水是人類所需的第二重要的資源。在當人們感覺到口渴時其實已經表示人體已經處于缺水狀態了。醫生建議每天能夠有八杯水的攝入量。因此水對人們的重要性不言而喻。但是我們喝到健康且有溫度的水很困難,因為人們很容易忘記按時喝水,并不是在當你感到口渴時喝水才是正確的,我們需要在一天內喝到足量的水并且在一定的時間內喝水才能更健康。因此,智能水杯的概念也逐漸呈現在人們的視野中[1]。目前市面上已經出現了很多可以顯示當前水杯內水的溫度的保溫杯。能夠顯示當前的水溫將為大家帶來很多的便利,畢竟不必再冒著被燙傷的風險用舌頭去試水溫了。而我們設計的智能水杯系統將在此基礎上進行創新改進,增加更多的功能,提高它的智能性;并且降低智能水杯的成本,增加它的實用性,提高它的便利性。在能夠滿足日常生活的同時滿足用戶的個性需求,以便適用于不同的人群。
此系統通過溫度傳感器獲取當前水杯中水的溫度,將數據實時傳送到STC89C52 單片機中,并對數據進行處理,以判斷是否需要進行加熱或降溫。用戶可通過按鍵對水杯進行控制;語音模塊可以播報當前的水溫并提醒用戶及時喝水,LCD 液晶屏能夠顯示出當前水杯的狀態及水溫[2]。
本系統由溫度檢測模塊檢測當前水杯中水的溫度,并判斷是否需要進行溫度調控。液晶顯示模塊可顯示出當前水溫。按鍵可設置自己所需水的溫度,同時按鍵還可以進行定時以及設置杯蓋的開關。語音模塊可播報當前的水溫。系統框圖如圖1 所示。

圖1 系統框圖
單片機的最小系統如圖2 所示,由單片機、復位電路與晶振電路組成。本系統選用STC89C52 單片機為核心,控

圖2 單片機最小系統
制其他的各個模塊。STC89C52 單片機是一種低功耗、高性能的CMOS8 位微控制器,具有8K 在系統可編程的Flash存儲器。復位電路分為上電復位和按鍵復位。在上電瞬間,由于電容兩端電壓不能突變,在上電一瞬間電容等效為短路, 因此RESET 的輸入為高電平,電位等于VCC,芯片被復位。隨后電源通過電阻R9 對電容充電,與此同時電阻上的電壓開始減小,最后約等于0,而電容兩端電壓差近似為VCC,芯片開始正常工作。并聯在電容兩端的按鍵為復位按鍵,當復位按鍵沒有被按下的時候電路實現上電復位,在芯片正常工作后,可以通過按下按鍵使RST 管腳出現高電平達到手動復位的效果。晶振電路可以為單片機提供一個穩定的時鐘信號,使單片機能夠按照一定的時間序列進行工作,本系統采用的晶振頻率為11.0592MHz。
溫度檢測模塊如圖3 所示。采用的是DS18B20 實時溫度檢測芯片,其檢測的溫度范圍為:極限溫度域-55℃~125℃;正常使用值大約為-10℃~85℃,此時測得的誤差將在±0.4℃。將經封裝的DS18B20 實時溫度檢測芯片放入水杯中[3],1 和3 兩個引腳接電源和地。2 與單片機的P2.4引腳相連,將收集到的溫度數據傳入單片機進行處理。

圖3 溫度檢測模塊
按鍵模塊如圖4 所示。采用四個獨立按鍵對水杯進行控制。K1 按鍵用于主界面與閾值設置界面切換;在主界面中,K3 按鍵可控制水杯的加熱與降溫,K4 按鍵可控制杯蓋的開關。按下K1按鍵進入閾值設置界面,默認以溫度下限位置開始閃爍;此時K2 鍵用于閾值設置,按下K2 鍵將進入溫度上限閃爍,再次按下則進入定時時間閃爍,如此循環;K3 按鍵可對數值進行加操作,K4 按鍵可對數值進行減操作。再次按下K1 按鍵,將回到主界面中。當有按鍵按下時,單片機的P2.0、P2.1、P2.2、P2.3 引腳將會變成低電平,實現對水杯的控制。

圖4 按鍵模塊
LCD1602 顯示模塊如圖5 所示,單片機P0.0~P0.7分別與LCD 數據端相連,P2.5~P2.7 分別與LCD 的RS、RW、E 端相連。實現顯示當前的水溫,設置水溫的上下限值,定時時間,以及杯蓋此時的開關狀態。

圖5 LCD 顯示模塊
驅動模塊如圖6 所示。可通過按下按鍵直接改變單片機P3.4、P3.5、P3.6、P3.7 引腳的電平,控制電機馬達的正轉與反轉來實現杯蓋的開關。此外,在定時結束時,杯蓋將自動打開。

圖6 驅動模塊
語音播報模塊如圖7 所示。本系統采用的是syn6288語音播報芯片,串口數據發送TXD 接單片機P3.0 引腳,串口數據接收RXD 接單片機P3.1 引腳。當用戶設置定時結束時,語言開始播報提醒用戶喝水并播報當前水溫。

圖7 語音模塊
溫度調控模塊由加熱與制冷兩部分組成,如圖8、圖9所示。本設計采用半導體制冷片熱電溫差電子制冷片和PTC小型低壓加熱片實現加熱和制冷兩個功能。通過繼電器和導線與單片機相連,并由單片機的P1.2 引腳連接繼電器控制加熱片,單片機的P1.3 引腳控制制冷片;當兩個引腳為低電平時,開始工作。接入一個小燈泡可用于觀察加熱片與制冷片是否工作。

圖8 加熱模塊

圖9 制冷模塊
軟件設計總體流程圖如圖10 所示:先進行初始化,設置溫度上下限,獲取當前水溫,在LCD 顯示屏上顯示出各個數據,系統自動判斷是否需要加熱或降溫;當到達加熱或降溫的條件后,開始加熱或降溫,直到到達設定溫度范圍。在處于定時模式時,在倒計時結束時,杯蓋將自動打開,同時語音提醒用戶喝水。

圖10 主流程圖
按鍵程序流程圖如圖11 所示。按鍵按下然后立即釋放即可完成一次信號的傳輸。在閉合和分開的時間需要超過10ms,前沿抖動消失后再一次檢測鍵的狀態,如果仍保持閉合狀態電平,確認為真正有按鍵被按下。

圖11 按鍵模塊流程圖
顯示程序流程圖如圖12 所示。在上電初始化后,通過單片機將檢測到的溫度模擬信號轉換為數字信號顯示在液晶顯示屏上。用戶可通過外部按鍵來調節當前的溫度以及定后會通過單片機進行判斷。溫度高于上限將會進行降溫處理;溫度過低將會進行加熱處理。以達到溫度調控的目的。

圖12 顯示模塊流程圖

圖13 語音播報模塊流程圖

圖14 溫度調控模塊流程圖
在搭建好硬件模塊后,于Keil軟件內編寫軟件程序,將編寫完成的軟件程序燒錄到單片機中。系統上電后,等待系統初始化,此時LCD 顯示屏上顯示的第一行數據分別為當前溫度,設置的溫度上下限;第二行數據為定時時間以及杯蓋狀態。可通過按鍵來設置溫度上下限,定時時間以及完成杯蓋的開關。實物測試如圖15 所示。

圖15 實物測試圖
實物功能測試:將感溫棒和加熱、制冷片放入水杯中,開機后設置溫度上下限,往杯中加入溫度超過上限的熱水,制冷片開始工作,等待制冷片工作燈關閉;再加入冷水,加熱燈自動打開,加熱片開始工作,進行加熱。在水溫設定范圍內,用戶可根據需要手動進行加熱、制冷或恒溫控制。下一項功能:設置定時提醒用時時間,以此來改變顯示屏上的數值。
語音播報程序流程圖如圖13 所示。在進入定時后將會對當前時間進行判斷,當定時倒數到0時將會開啟語音播報功能。
溫度調控模塊流程圖如圖14 所示。在讀取到當前溫度戶喝水,當定時時間到達后,水杯將進行語音播報“主人,喝水時間到了,當前水溫為28 度。”
本設計實現了智能水杯控制系統。使用STC89C52 單片機為控制核心,通過溫度探頭采集水溫數據,再由單片機將數據處理后傳輸至LCD 液晶顯示屏對水溫實時顯示;并通過繼電器控制水杯加熱和制冷,實現溫度控制;按鍵設置定時來提醒用戶喝水[4]。實際測試完成成功,證明本智能水杯設計已實現所有預期功能,且具備良好的實用價值,加以外形包裝后,可滿足用戶的實際生活需求。