方予琪
(第七一五研究所,浙江 杭州 310000)
智能家居是在互聯(lián)網(wǎng)影響之下物聯(lián)化的體現(xiàn)。智能家居以住宅為平臺(tái)通過物聯(lián)網(wǎng)技術(shù)將家中的各種設(shè)備連接到一起,提供家電控制、照明控制、電話遠(yuǎn)程控制、室內(nèi)外遙控、防盜報(bào)警、環(huán)境監(jiān)測(cè)、暖通控制、紅外轉(zhuǎn)發(fā)以及可編程定時(shí)控制等多種功能和手段。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,兼?zhèn)浣ㄖ?、網(wǎng)絡(luò)通信、信息家電、設(shè)備自動(dòng)化,提升家居的便利性、舒適性、安全性等,甚至為各種能源費(fèi)用節(jié)約資金。
根據(jù)智能空調(diào)溫度控制系統(tǒng)的設(shè)計(jì)要求,將其分為五個(gè)模塊,如圖1 所示。
圖1 系統(tǒng)硬件構(gòu)成圖
1.1 主控部分模塊:用MSP430FG4618 單片機(jī)完成系統(tǒng)的初始化,控制各模塊工作。
1.2 溫度檢測(cè)模塊:用溫度傳感器DS18B20 檢測(cè)室內(nèi)溫度并采集,并與設(shè)定溫度作對(duì)比,調(diào)整室內(nèi)溫度與設(shè)定溫度相同。
1.3 電機(jī)驅(qū)動(dòng)模塊:通過單片機(jī)控制電機(jī)轉(zhuǎn)動(dòng)并調(diào)節(jié)PWM 的占空比從而調(diào)節(jié)電機(jī)轉(zhuǎn)速。
1.4 按鍵設(shè)定模塊:通過此模塊來完成對(duì)溫度的設(shè)定。
1.5 紅外線檢測(cè)模塊:用人體紅外傳感器HC-SR501判斷屋內(nèi)是否有人,從而決定是否對(duì)室內(nèi)溫度進(jìn)行采集。
該設(shè)計(jì)是以MSP430FG4618 單片機(jī)為主控制模塊的智能空調(diào)溫度控制系統(tǒng)。主要分為三部分,分別為DS18B20 溫度檢測(cè)電路、直流小電機(jī)電路和HC-SR501紅外線檢測(cè)電路。主控模塊完成模塊初始化后,其按鍵用來人為設(shè)定空調(diào)溫度,有增溫和減溫兩個(gè)按鍵。首先HC-SR501 電路檢測(cè)附近是不是有人來決定空調(diào)機(jī)器的開啟與關(guān)閉。如果附近有人,那么HC-SR501 傳感器將人體熱源信號(hào)經(jīng)由放大電路傳遞給單片機(jī),設(shè)置在板子上的管腳置高,然后人為按鍵設(shè)定空調(diào)溫度,然后單片機(jī)控制溫度檢測(cè)電路采集室內(nèi)溫度需要與設(shè)定溫度相比較,室內(nèi)溫度高于設(shè)定溫度,則電機(jī)驅(qū)動(dòng)電路驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)降溫;反之則升溫。同時(shí)根據(jù)設(shè)定溫度和室內(nèi)溫度的大小差值來控制電機(jī)的轉(zhuǎn)速,溫差越大,轉(zhuǎn)速越快,以達(dá)到變頻的目的。
MSP430FG4618 單片機(jī)CPU 與別的CPU 基本類似,設(shè)計(jì)上區(qū)別于其他CPU 為控制結(jié)構(gòu)和指令系統(tǒng)。其內(nèi)核中央處理器設(shè)計(jì)目的為精簡指令和透明性高,采用內(nèi)核和仿真指令,均基于硬件執(zhí)行。該操作不僅能增強(qiáng)CPU處理的實(shí)時(shí)性,還可以提高指令執(zhí)行速度和效率。
存儲(chǔ)器用于對(duì)外圍模塊信息、數(shù)據(jù)、程序的存儲(chǔ),分為程序和數(shù)據(jù)兩類。對(duì)前者的代碼以字的形式取得,后者則為字或字節(jié)形式。
外圍模塊經(jīng)由MDB、MAB、中斷服務(wù)及請(qǐng)求線與中央處理器相連。該產(chǎn)品系列包含:時(shí)鐘模塊,WDTDOG,Timer_A,Timer_B,DMA,Basic Timer,端口,Compare_A,Port0、1,模數(shù)、數(shù)模轉(zhuǎn)換,液晶模塊,硬件乘法器等中的各個(gè)部分,種類繁多,數(shù)目豐富。其原理圖如圖2 所示。
圖2 MSP430FG4618 單片機(jī)原理圖
DS18B20 通過1-Wire 總線進(jìn)行通信,根據(jù)定義,只需一條數(shù)據(jù)線(和地)即可與中央微處理器進(jìn)行通信。測(cè)溫范圍為從-55°C 到+ 125°C,精度為±0.5°C。除此之外,DS18B20 可以直接用數(shù)據(jù)線對(duì)器件進(jìn)行供電。
64 位ROM 存儲(chǔ)設(shè)備的唯一序列碼。便箋式存儲(chǔ)器包含存儲(chǔ)溫度傳感器數(shù)字輸出的2 字節(jié)溫度寄存器。除此之外,TH 和TL 與配置寄存器(可調(diào)節(jié)分辨率為9、10、11、12 位)均為一字節(jié),它們均通過暫存器訪問。 TH,TL 和配置寄存器是非易失性(EEPROM),所以它們將在器件斷電時(shí)保留數(shù)據(jù)。并且該器件還有一個(gè)優(yōu)點(diǎn)是不需要外部供電即可正常運(yùn)行。
PWM 是通過調(diào)節(jié)開關(guān)頻率固定的直流電源電壓的占空比來改變負(fù)載兩端電壓的平均值而達(dá)到控制要求的一種電壓調(diào)整方法。通過改變直流電機(jī)的輸出PWM波來調(diào)節(jié)電機(jī)的轉(zhuǎn)速。設(shè)計(jì)根據(jù)用戶已設(shè)定的溫度和實(shí)時(shí)溫度的差值來設(shè)置PWM 來控制直流電機(jī)轉(zhuǎn)速的快慢,其差值越大,電機(jī)轉(zhuǎn)速越快。反之電機(jī)轉(zhuǎn)速就越慢。
從而達(dá)到智能控制空調(diào)的要求。
人類為恒溫動(dòng)物,體溫趨于一個(gè)穩(wěn)定的區(qū)間內(nèi),因此會(huì)發(fā)射出一種波長在10UM 附近紅外射線,該射線經(jīng)由HC-SR501 接收到后,首先由菲泥爾濾光片加大光線的強(qiáng)度,使感應(yīng)更靈敏。然后匯聚到感應(yīng)源上,感應(yīng)源采用熱釋電元件,該元件溫度改變后電荷失衡,向外發(fā)射電荷,再由后續(xù)處理加工后輸出高電平。
主程序的主要功能為:關(guān)閉看門狗定時(shí)器,防止程序跑飛。配置2MHZ 的時(shí)鐘,配置14pf 匹配電容。
對(duì)照原理圖選擇P2.3 置為紅外輸入,上升沿捕獲,開啟P2.3 中斷和P2 口總中斷。
中斷P2 為紅外中斷,用IR=1 表示來人,用IR=2 表示人離開。檢測(cè)到來人后,IR=1,將P1.2 置為電機(jī)輸出口,然后進(jìn)行液晶初始化,液晶清屏。接著調(diào)用測(cè)溫函數(shù),將測(cè)得的溫度取整作為初始設(shè)定溫度。如果初始測(cè)得的室溫大于31 度,則初始設(shè)定溫度定為30 攝氏度;如果初始測(cè)得的室溫小于16 度,則初始設(shè)定溫度定為16攝氏度,然后將室溫和設(shè)定的溫度顯示出來。檢測(cè)到人離開后,IR=2,則關(guān)液晶,將P1.2 置為輸入,即將電機(jī)關(guān)閉,然后將IR 清零,準(zhǔn)備下一個(gè)周期循環(huán)。最后清零中斷標(biāo)志位,返回?cái)帱c(diǎn)處。主程序流程圖如圖3 所示。
圖3 主程序流程圖
溫度檢測(cè)程序設(shè)計(jì)的核心部件為DS18B20,因?yàn)镈S18B20 為單總線結(jié)構(gòu),故對(duì)時(shí)隙的要求十分嚴(yán)格,因此讀寫時(shí)序十分重要,MSP430 對(duì)DS1820 的處理必須完全按照時(shí)序概念來進(jìn)行。為使讀出的溫度更加準(zhǔn)確,在程序設(shè)計(jì)中進(jìn)行了五次讀取,并且去除最大值和最小值,再對(duì)剩下的三個(gè)數(shù)值取平均作為返回值。
首先引用了全局變量室溫和設(shè)定溫度,接著對(duì)電機(jī)進(jìn)行初始化:將P1.2 選擇為第二功能,將TA 定時(shí)器設(shè)為增量計(jì)數(shù)模式,選擇ACLK 作為時(shí)鐘源,選擇高電平PWM 輸出,周期定為328,即100HZ。然后判斷室溫和設(shè)定溫度的大小,溫差越大,電機(jī)輸出占空比越大。
定義一個(gè)液晶專用延時(shí)函數(shù),用于完成液晶初始化。將P5.4、P5.3、P5.2 選擇為第二功能并置為輸出。將液晶頻率進(jìn)行128 分頻。選擇4 工作模式。打開液晶總開關(guān)和液晶管腳開關(guān)。在液晶.h 文件中,查閱了MSP430 相關(guān)型號(hào)的數(shù)據(jù)手冊(cè),對(duì)液晶顯示段腳進(jìn)行了規(guī)范的定義,并且將數(shù)字0-9 也用段腳表示出來,存放在數(shù)組中。
首先檢查各個(gè)模塊完整性,然后對(duì)照各模塊數(shù)據(jù)手冊(cè)進(jìn)行接線焊接,然后對(duì)各個(gè)模塊進(jìn)行功能性測(cè)試。發(fā)現(xiàn)問題后對(duì)照原理圖或數(shù)據(jù)手冊(cè)繼續(xù)排查問題,重新進(jìn)行接線焊接,直至功能性測(cè)試完成。
問題一:無人情況下完整硬件電路調(diào)試
問題描述:左邊為主控部分模塊,右邊最下方為紅外感應(yīng)模塊,中間為溫控模塊,最上面為電機(jī)模塊,實(shí)際測(cè)試結(jié)果如圖4 所示。測(cè)試結(jié)果:無人情況下,紅外模塊未感應(yīng),單片機(jī)上液晶顯示屏未顯示室溫和設(shè)定溫度,溫控模塊未測(cè)定溫度,同時(shí)電機(jī)未驅(qū)動(dòng)。
圖4 無人完整硬件電路調(diào)試圖
問題二:有人情況下完整硬件電路測(cè)試
問題描述:實(shí)際測(cè)試結(jié)果如圖5 所示。
圖5 有人完整硬件電路調(diào)試圖
測(cè)試結(jié)果:紅外模塊檢測(cè)到人存在,溫控模塊測(cè)溫后通過液晶模塊顯示出來,圖中顯示兩個(gè)數(shù)字:左邊為測(cè)得的室溫,右邊為初始設(shè)定溫度定為室溫的整數(shù)部分。電機(jī)根據(jù)溫差選擇轉(zhuǎn)速轉(zhuǎn)動(dòng)。
問題三:有人情況下調(diào)溫電機(jī)轉(zhuǎn)速調(diào)試
問題描述:在完成問題二調(diào)試情況下,通過按鍵改變?cè)O(shè)定溫度并通過液晶顯示屏顯示,然后觀察電機(jī)轉(zhuǎn)速變化。測(cè)試結(jié)果:為保證調(diào)試效果明顯,將設(shè)定溫度與室溫溫差調(diào)至五度以上,發(fā)現(xiàn)電機(jī)轉(zhuǎn)速明顯加快。
基于MSP430FG4618 單片機(jī)的智能空調(diào)溫度變頻控制系統(tǒng)設(shè)計(jì),先用人體紅外傳感器HC-SR501 檢測(cè)是否有人進(jìn)出家門,然后將MSP430 內(nèi)按鍵模塊輸入的溫度值與DS18B20 溫度傳感器測(cè)得的室內(nèi)溫度相比較,按鍵模塊輸入的溫度值可以通過液晶顯示模塊顯示出來并修改,同時(shí)實(shí)時(shí)顯示室溫。根據(jù)輸入的溫度值與室溫差值的大小來設(shè)置不同的PWM 的占空比,從而控制直流電機(jī)的轉(zhuǎn)速。據(jù)此達(dá)到對(duì)空調(diào)溫度變頻智能控制的目的。