方予琪
(第七一五研究所,浙江 杭州 310000)
智能家居是在互聯網影響之下物聯化的體現。智能家居以住宅為平臺通過物聯網技術將家中的各種設備連接到一起,提供家電控制、照明控制、電話遠程控制、室內外遙控、防盜報警、環境監測、暖通控制、紅外轉發以及可編程定時控制等多種功能和手段。與普通家居相比,智能家居不僅具有傳統的居住功能,兼備建筑、網絡通信、信息家電、設備自動化,提升家居的便利性、舒適性、安全性等,甚至為各種能源費用節約資金。
根據智能空調溫度控制系統的設計要求,將其分為五個模塊,如圖1 所示。

圖1 系統硬件構成圖
1.1 主控部分模塊:用MSP430FG4618 單片機完成系統的初始化,控制各模塊工作。
1.2 溫度檢測模塊:用溫度傳感器DS18B20 檢測室內溫度并采集,并與設定溫度作對比,調整室內溫度與設定溫度相同。
1.3 電機驅動模塊:通過單片機控制電機轉動并調節PWM 的占空比從而調節電機轉速。
1.4 按鍵設定模塊:通過此模塊來完成對溫度的設定。
1.5 紅外線檢測模塊:用人體紅外傳感器HC-SR501判斷屋內是否有人,從而決定是否對室內溫度進行采集。
該設計是以MSP430FG4618 單片機為主控制模塊的智能空調溫度控制系統。主要分為三部分,分別為DS18B20 溫度檢測電路、直流小電機電路和HC-SR501紅外線檢測電路。主控模塊完成模塊初始化后,其按鍵用來人為設定空調溫度,有增溫和減溫兩個按鍵。首先HC-SR501 電路檢測附近是不是有人來決定空調機器的開啟與關閉。如果附近有人,那么HC-SR501 傳感器將人體熱源信號經由放大電路傳遞給單片機,設置在板子上的管腳置高,然后人為按鍵設定空調溫度,然后單片機控制溫度檢測電路采集室內溫度需要與設定溫度相比較,室內溫度高于設定溫度,則電機驅動電路驅動電機轉動降溫;反之則升溫。同時根據設定溫度和室內溫度的大小差值來控制電機的轉速,溫差越大,轉速越快,以達到變頻的目的。
MSP430FG4618 單片機CPU 與別的CPU 基本類似,設計上區別于其他CPU 為控制結構和指令系統。其內核中央處理器設計目的為精簡指令和透明性高,采用內核和仿真指令,均基于硬件執行。該操作不僅能增強CPU處理的實時性,還可以提高指令執行速度和效率。
存儲器用于對外圍模塊信息、數據、程序的存儲,分為程序和數據兩類。對前者的代碼以字的形式取得,后者則為字或字節形式。
外圍模塊經由MDB、MAB、中斷服務及請求線與中央處理器相連。該產品系列包含:時鐘模塊,WDTDOG,Timer_A,Timer_B,DMA,Basic Timer,端口,Compare_A,Port0、1,模數、數模轉換,液晶模塊,硬件乘法器等中的各個部分,種類繁多,數目豐富。其原理圖如圖2 所示。

圖2 MSP430FG4618 單片機原理圖
DS18B20 通過1-Wire 總線進行通信,根據定義,只需一條數據線(和地)即可與中央微處理器進行通信。測溫范圍為從-55°C 到+ 125°C,精度為±0.5°C。除此之外,DS18B20 可以直接用數據線對器件進行供電。
64 位ROM 存儲設備的唯一序列碼。便箋式存儲器包含存儲溫度傳感器數字輸出的2 字節溫度寄存器。除此之外,TH 和TL 與配置寄存器(可調節分辨率為9、10、11、12 位)均為一字節,它們均通過暫存器訪問。 TH,TL 和配置寄存器是非易失性(EEPROM),所以它們將在器件斷電時保留數據。并且該器件還有一個優點是不需要外部供電即可正常運行。
PWM 是通過調節開關頻率固定的直流電源電壓的占空比來改變負載兩端電壓的平均值而達到控制要求的一種電壓調整方法。通過改變直流電機的輸出PWM波來調節電機的轉速。設計根據用戶已設定的溫度和實時溫度的差值來設置PWM 來控制直流電機轉速的快慢,其差值越大,電機轉速越快。反之電機轉速就越慢。
從而達到智能控制空調的要求。
人類為恒溫動物,體溫趨于一個穩定的區間內,因此會發射出一種波長在10UM 附近紅外射線,該射線經由HC-SR501 接收到后,首先由菲泥爾濾光片加大光線的強度,使感應更靈敏。然后匯聚到感應源上,感應源采用熱釋電元件,該元件溫度改變后電荷失衡,向外發射電荷,再由后續處理加工后輸出高電平。
主程序的主要功能為:關閉看門狗定時器,防止程序跑飛。配置2MHZ 的時鐘,配置14pf 匹配電容。
對照原理圖選擇P2.3 置為紅外輸入,上升沿捕獲,開啟P2.3 中斷和P2 口總中斷。
中斷P2 為紅外中斷,用IR=1 表示來人,用IR=2 表示人離開。檢測到來人后,IR=1,將P1.2 置為電機輸出口,然后進行液晶初始化,液晶清屏。接著調用測溫函數,將測得的溫度取整作為初始設定溫度。如果初始測得的室溫大于31 度,則初始設定溫度定為30 攝氏度;如果初始測得的室溫小于16 度,則初始設定溫度定為16攝氏度,然后將室溫和設定的溫度顯示出來。檢測到人離開后,IR=2,則關液晶,將P1.2 置為輸入,即將電機關閉,然后將IR 清零,準備下一個周期循環。最后清零中斷標志位,返回斷點處。主程序流程圖如圖3 所示。

圖3 主程序流程圖
溫度檢測程序設計的核心部件為DS18B20,因為DS18B20 為單總線結構,故對時隙的要求十分嚴格,因此讀寫時序十分重要,MSP430 對DS1820 的處理必須完全按照時序概念來進行。為使讀出的溫度更加準確,在程序設計中進行了五次讀取,并且去除最大值和最小值,再對剩下的三個數值取平均作為返回值。
首先引用了全局變量室溫和設定溫度,接著對電機進行初始化:將P1.2 選擇為第二功能,將TA 定時器設為增量計數模式,選擇ACLK 作為時鐘源,選擇高電平PWM 輸出,周期定為328,即100HZ。然后判斷室溫和設定溫度的大小,溫差越大,電機輸出占空比越大。
定義一個液晶專用延時函數,用于完成液晶初始化。將P5.4、P5.3、P5.2 選擇為第二功能并置為輸出。將液晶頻率進行128 分頻。選擇4 工作模式。打開液晶總開關和液晶管腳開關。在液晶.h 文件中,查閱了MSP430 相關型號的數據手冊,對液晶顯示段腳進行了規范的定義,并且將數字0-9 也用段腳表示出來,存放在數組中。
首先檢查各個模塊完整性,然后對照各模塊數據手冊進行接線焊接,然后對各個模塊進行功能性測試。發現問題后對照原理圖或數據手冊繼續排查問題,重新進行接線焊接,直至功能性測試完成。
問題一:無人情況下完整硬件電路調試
問題描述:左邊為主控部分模塊,右邊最下方為紅外感應模塊,中間為溫控模塊,最上面為電機模塊,實際測試結果如圖4 所示。測試結果:無人情況下,紅外模塊未感應,單片機上液晶顯示屏未顯示室溫和設定溫度,溫控模塊未測定溫度,同時電機未驅動。

圖4 無人完整硬件電路調試圖
問題二:有人情況下完整硬件電路測試
問題描述:實際測試結果如圖5 所示。

圖5 有人完整硬件電路調試圖
測試結果:紅外模塊檢測到人存在,溫控模塊測溫后通過液晶模塊顯示出來,圖中顯示兩個數字:左邊為測得的室溫,右邊為初始設定溫度定為室溫的整數部分。電機根據溫差選擇轉速轉動。
問題三:有人情況下調溫電機轉速調試
問題描述:在完成問題二調試情況下,通過按鍵改變設定溫度并通過液晶顯示屏顯示,然后觀察電機轉速變化。測試結果:為保證調試效果明顯,將設定溫度與室溫溫差調至五度以上,發現電機轉速明顯加快。
基于MSP430FG4618 單片機的智能空調溫度變頻控制系統設計,先用人體紅外傳感器HC-SR501 檢測是否有人進出家門,然后將MSP430 內按鍵模塊輸入的溫度值與DS18B20 溫度傳感器測得的室內溫度相比較,按鍵模塊輸入的溫度值可以通過液晶顯示模塊顯示出來并修改,同時實時顯示室溫。根據輸入的溫度值與室溫差值的大小來設置不同的PWM 的占空比,從而控制直流電機的轉速。據此達到對空調溫度變頻智能控制的目的。