唐華
(南京曉莊學院,江蘇南京,211171)
暖箱的出現,為南方人們的工作生活提供了便利,不過當前多數暖箱一般僅能夠依靠硬件來實現自動開關、智能恒溫,功能相對單一,無法很好地滿足人們個性化需求。對此,可以采用軟件和硬件相互結合的方式,依托物聯網技術自動完成暖箱環境內溫度的監測、數據的遠程傳輸、數據的顯示及遠程控制等工作來實現自動、感知、遙控的功能,有效的解決日常生活使用中的若干常見問題,達到溫度上限及下限要求時,能自動通斷電來控制發熱體,從而保證智能控制溫度,通信無需對準,用免費的公共信號2.4G的載波頻段;同時配有振動傳感器,能智能切換安全模式,從而保證熟睡的人的安全;配有壓力傳感器,通過感知是否有人來自動通斷暖箱發熱體,從而保證更節能;采用的發熱體也是24V供電,發熱體可輻射出波長為8-415納米,對身體有益的遠紅外,同時保障安全節能,具有一定的現實意義及實用價值。

圖1 暖箱系統框圖
系統總體包括暖箱和遙控器,暖箱硬件部分采用了CC2530單片機、開關電源、溫度傳感器、壓力傳感器、發熱體等,如圖1所示。
暖箱遙控器硬件部分采用了CC2530單片機、OLED、按鍵等,如圖2所示。

圖2 暖箱遙控器系統框圖
一是單片機模塊,CC2530單片機成本低和功耗低,具備良好性能的同時,還遵循2.4G免費無線通訊頻段的無線通信技術傳遞數據和控制指令,該通訊方式是一種新興的短距離、低速率的無線網絡技術,適應無線傳感器的低花費、低能力、高容錯性等的要求,主要用于近距離無線連接,采用跑單任務程序,不跑系統程序,可以避免系統中由于任務輪詢機制造成的事件處理速度慢,可以自由定義通信握手信號,加快數據傳輸速度,也使AD轉換處理的速度也快;二是溫度傳感器模塊,采用DS18B20溫度傳感器,有體積小,硬件開銷低,抗干擾能力強,精度高的特點,采用單總線接口,測溫范圍是-55℃~+125℃,能精確測量暖箱內溫度,配合繼電器進行恒溫控制;三是振動傳感器和壓力傳感器,振動傳感器采用SW-18010P傳感器,壓力傳感器采用應變片,能智能切換安全模式,從而保證熟睡的人的安全,同時壓力傳感器可以判斷是否有人;四是按鍵模塊,遙控器上擁有按鍵,進行控制,當遙控器找不到的時候可以通過暖箱上的按鍵進行控制;五是OLED顯示模塊,為0.96寸的12864屏,用于顯示暖箱溫度、模式等;六是變送器電路,壓力傳感器輸出的信號微弱,不利于單片機采集,需要增加變送器電路,便于識別;七是發熱體,24V供電,發熱體可輻射出波長為8-415納米,對身體有益的遠紅外[1]。
為了確保單片機內部硬件能夠正常運作,暖箱系統的主程序運行需要延遲100ms,之后對相應功能模塊如按鍵、串口、RF、ADC、DS18B20等進行初始化操作,CC2530的IO口配置我們需要配置PxSEL、PxDIR、PxINP三個寄存器,有一些復雜功能模塊初始化操作不僅要配置IO口,還要配置其它寄存器,例如串口0還需要配置PERCFG、U0CSR、U0GCR、U0BAUD和UT0XIF五個寄存器。編寫while進入無限循環,在循環中,掃描按鍵,采集溫度、壓力、振動數據并進行處理,作出是否需要發熱體工作,需要則驅動繼電器使發熱體工作,同時通過RF通訊傳輸暖箱的狀況。
暖箱遙控器的主程序則需要對OLED液晶屏、RF和按鍵進行初始化操作,對OLED液晶屏的初始化直接移植廠家提供的范例。編寫while進入無限循環,在循環中,掃描按鍵,執行相應的功能,并且通過RF通訊接收暖箱傳遞的數據,并進行顯示。
暖箱實現自動開關,需要獲取壓力傳感器的數據,壓力傳感器輸出微弱的模擬信號,通過變送器放大,在通過自帶的ADC模塊轉換成數字,端口0引腳可以配置為ADC輸入端,依次為AIN0~AIN7,配置ADC操作步驟如下:(1)配置APCFG寄存器:當使用ADC時,端口0的引腳必須配置為ADC模擬輸入。要配置一個端口0引腳為一個ADC輸入,APCFG寄存器中相應的位必須設置為1。這個寄存器的默認值是0,選擇端口0為非模擬輸入,即作為數字I/O端口。(2)配置ADCCON3寄存器:單通道的ADC轉換,只需將控制字寫入ADCCON3寄存器即可。(3)ADC初始化:主要對端口的功能進行選擇,設置其傳輸方向,并將端口設置為模擬輸入。(4)ADC數據采集:首先將ADCIF標志位清0,接著對ADCCON3寄存器設置,該寄存器一旦被寫入,轉換立即開啟;然后等待ADCIF置1,這時候轉換完成,讀取數據即可。
配置完后就可以通過主函數讀取壓力的數據,通過壓力來判斷是否有人,若有人,則讀取溫度傳感器采集到的溫度,根據系統的溫度范圍,判斷是否進行智能恒溫調節,如果一段時間(10分鐘)內沒有人,則停止一系列操作,保障暖箱的使用安全,時間通過定時器累計。
初始化DS18B20傳感器后,主程序一直讀取溫度數據,如果溫度低于設定的下限值,則CC2530的IO口輸出低電平,控制驅動電路驅動繼電器,實現發熱體的通電,進行加熱升溫,如果溫度高于設定的上限值,則CC2530的IO口輸出高電平,控制驅動電路驅動繼電器,實現發熱體的斷電,不進行加熱。例如用戶設定的溫度最小值為28℃,溫度最大值為40℃,幅度為2℃,暖箱開始溫度為20℃,則暖箱控制發熱體工作,升到42℃(溫度最大值+幅度)后,發熱體不工作,暖箱溫度降到26℃(溫度最小值-幅度),發熱體繼續工作,一直循環[2]。
振動傳感器輸出數字信號,檢測到壓力的同時且一段時間(10分鐘)沒有到振動,則可認為用戶睡著,自動切換到人體最適溫度范圍。
使用CC2530自身的RF通訊,和遙控器進行組網,不需要外接任何無線模塊,也不需類似紅外,點對點進行通訊,非常的方便,也是系統采用該CPU最主要的原因之一,RF通訊的初始化需要設置TXPOWER、CCACTRL0、FRMFILT0、FSCAL1、TXFILTCFG、AGCCTRL1、AGCCTRL2、FREQCTRL、RFIRQM0、IEN2、RFST 十 一個寄存器,部分寄存器的值推薦通過SmartRF軟件生成[3]。
本文基于CC2530單片機,對自動感知遙控暖箱系統進行了設計,通過相應的軟件程序,實現了硬件模塊的有機聯系,可以在遙控器的屏幕上對暖箱溫度、模式等進行顯示,通過暖箱上自帶的按鍵或遙控器調節溫度范圍、模式,通過振動傳感器判斷人是否入睡,并且采用低電壓,更安全、節能、環保。經調研和問卷調查,暖箱的智能性、安全性和環保性得到了充分肯定,用戶也提出了一些富有建設性的意見,如提升發熱體的發熱效率、加熱時間等,可以更進一步的提升暖箱的智能化程度。
[1]張同翰,王正彥,袁雙,等.基于CC2530的ZigBee的智能家居設計[J].工業控制計算機,2015,28(4):75-76.
[2]王江紅,朱麗君,孫學用.基于DS18B20恒溫監控系統的設計與實現[J].湖北農業科學,2013,52(8):1947-1949.
[3]張毅,徐菲菲,雷景生,等.基于CC2530和ZigBee技術智能家居系統的設計與研究[J].上海電力學院學報,2017,33(2):191-195.