基于物聯(lián)網(wǎng)的空調(diào)溫度智能控制裝置的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
建筑節(jié)能已成為“十二五”節(jié)能減排的重要一環(huán),而空調(diào) 系統(tǒng)的能耗占建筑總能耗的50%以上,由此可以看出,空調(diào) 系統(tǒng)的節(jié)能對(duì)于整個(gè)建筑的節(jié)能以及經(jīng)濟(jì)性具有十分重要的 意義。據(jù)美國(guó)國(guó)家標(biāo)準(zhǔn)局統(tǒng)計(jì)資料顯示,如果在夏季將空調(diào)溫 度下調(diào)1 °C,將會(huì)增加9%的能耗,在冬季將空調(diào)溫度上調(diào)1 °C,將增加12%的能耗。因此,將室內(nèi)溫度控制在設(shè)定值精 度范圍內(nèi)是空調(diào)節(jié)能的有效措施。室內(nèi)溫度為22~27 C,相對(duì) 濕度為30%?70%,被普遍認(rèn)為是舒適區(qū)。目前,人們?cè)谑?用空調(diào)時(shí)過(guò)于追求舒適度,夏天制冷時(shí)將溫度設(shè)得過(guò)低,冬 天制熱時(shí)將溫度設(shè)得過(guò)高,從而造成大量沒(méi)必要的能耗。根據(jù)有關(guān)文獻(xiàn)中的實(shí)驗(yàn)表明:夏天制冷時(shí),設(shè)定溫度為26~28 C;冬天制熱時(shí),設(shè)定溫度為20~24 C;則人體感覺(jué)較為舒適, 而且有利于節(jié)能。
針對(duì)這種情況,本文提出了一種基于嵌入式的空調(diào)溫度遠(yuǎn) 程智能控制裝置,以對(duì)空調(diào)溫度進(jìn)行實(shí)時(shí)監(jiān)控。如果溫度超出 設(shè)定的范圍(制冷時(shí)不能低于26 C,制熱時(shí)不能高于24 C ), 就自動(dòng)發(fā)出指令通過(guò)ZigBee模塊傳送到現(xiàn)場(chǎng),而系統(tǒng)中的溫 度控制器在接收到指令后,將模仿空調(diào)遙控器發(fā)出指令,并將 空調(diào)溫度強(qiáng)制設(shè)定到規(guī)定的范圍內(nèi)。
1系統(tǒng)硬件設(shè)計(jì)
嵌入式空調(diào)溫度遠(yuǎn)程智能控制裝置的主芯片采用三星公司型 號(hào)為S3C2440A的芯片 該芯片采用ARM920T內(nèi)核,0.13呻的 CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)單元,具有獨(dú)立的16 KB指令Cache和 16 KB數(shù)據(jù)Cache,并擁有130個(gè)通用I/O 口和60個(gè)中斷源,其 中包括24通道的外部中斷源以及8通道多路利用的ADC。主處
理器采用三星公司的32位RISC微處理器,系統(tǒng)總線采用AMBA 總線,而且外圍擴(kuò)展有RS 232串行接口網(wǎng)絡(luò)接口鍵盤以及 LCD觸摸屏等。其硬件設(shè)計(jì)結(jié)構(gòu)圖如圖1所示。
圖1嵌入式空調(diào)溫度遠(yuǎn)程智能控制裝置硬件結(jié)構(gòu)圖
1.1溫度傳感器
溫度傳感器采用Dallas公司生產(chǎn)的數(shù)字溫度傳感器,型 號(hào)為DS18B20。該溫度傳感器體積小,適用電壓寬且價(jià)格比 較便宜。工作電壓為3~5.5 V,支持單總線接口,測(cè)溫范圍 為-55~+125笆,精確度達(dá)±0.5莒。芯片有電源線、地線及 數(shù)據(jù)線共三根引腳線,在與微處理器連接時(shí),僅需要一條口線 即可實(shí)現(xiàn)與微處理器的雙向通訊,并支持多點(diǎn)組網(wǎng)功能,多 個(gè)DS18B20可以并聯(lián)在同一個(gè)三線總線上實(shí)現(xiàn)多點(diǎn)測(cè)溫[2]?
DS18B20內(nèi)部結(jié)構(gòu)中的光刻ROM中有64位序列號(hào)是出 廠前就被刻錄好的,它是DS18B20的地址序列號(hào),就如同居 民身份證一樣,每一個(gè)DS18B20溫度傳感器都各不相同,這 樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20,從而可以很方 便地對(duì)現(xiàn)場(chǎng)溫度進(jìn)行多點(diǎn)測(cè)控,提高溫度監(jiān)控的準(zhǔn)確性。
DS18B20可通過(guò)三根線與外部相連,這三根線分別為 GND電源地、I/O數(shù)字信號(hào)輸入/輸出端、VDD外接電源輸 入端。
1.2溫度控制模塊
該裝置的溫度控制模塊主要由兩部分組成:?jiǎn)纹瑱C(jī)和紅 外遙控發(fā)射器。本系統(tǒng)采用的STC11/10xx系列單片機(jī)抗干擾 能力強(qiáng),同時(shí)還具有抗靜電的能力,其擁有的40個(gè)I/O 口 足以滿足本裝置的需求。系統(tǒng)由紅外遙控發(fā)射器模仿空調(diào)遙 控器發(fā)射指令來(lái)控制空調(diào)溫度。下面以某常用品牌空調(diào)的紅外 遙控器編碼方式為例來(lái)說(shuō)明紅外遙控的編碼方式叫
系統(tǒng)的載波波形使用455 kHz晶體,經(jīng)內(nèi)部分頻電路, 信號(hào)被調(diào)制在37.91 kHz,占空比為1/3,調(diào)制頻率為:
數(shù)據(jù)格式包括引導(dǎo)碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)碼反碼, 編碼總共占32位。數(shù)據(jù)反碼是數(shù)據(jù)碼反相后的編碼,編碼時(shí) 可用于對(duì)數(shù)據(jù)的糾錯(cuò)。編碼格式如圖2所示。
位定義:用戶碼或數(shù)據(jù)碼中的每一個(gè)位可以是位“1”, 也可以是位“0”。區(qū)分“0”或“ 1”是用脈沖的時(shí)間間隔,圖 3所示就是其位定義圖。
按鍵輸出波形:按鍵輸出有兩種方式。一種是每次鍵下 都有完整的一幀數(shù)據(jù);另一種是按下相同的按鍵后每發(fā)送完 整的一幀數(shù)據(jù)后,再發(fā)送重復(fù)碼,直到按鍵被松開(kāi),其按鍵 波形如圖4所示。
1.3 ZigBee 模塊
ZigBee是IEE0.E 802.15.4協(xié)議的代名詞。這個(gè)協(xié)議規(guī)定的 技術(shù)是一種短距離、低功耗的無(wú)線通信技術(shù),其特點(diǎn)是傳輸距 離較近、復(fù)雜度低、自組織、低功耗、數(shù)據(jù)傳輸速率不高,主要 適合于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備叫采用型 號(hào)為DRF1605H的ZigBee模塊時(shí),其傳輸距離為1.6 km。用 ZigBee作為無(wú)線傳輸工具的最大優(yōu)點(diǎn)是可以自動(dòng)組網(wǎng),所有 的模塊上電后可以自動(dòng)完成組網(wǎng),還具有自動(dòng)修復(fù)功能,即使 網(wǎng)絡(luò)內(nèi)有模塊掉電,也不會(huì)影響整個(gè)網(wǎng)絡(luò)的通訊。該型號(hào)還 可以配合RS 232底板使用,只需將DRF1605H的UART 口轉(zhuǎn) 換成標(biāo)準(zhǔn)的半雙工RS 232接口,就可以與串口直接通訊,使 用方便且效率高。
2系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)是基于Red Hat Linux5.0的操作系統(tǒng),并可在此 基礎(chǔ)上構(gòu)建嵌入式開(kāi)發(fā)環(huán)境。本系統(tǒng)的內(nèi)核采用Linux 2.6.29 版本,根文件系統(tǒng)采用YAFFS。采用arm-linux-gcc交叉編譯 工具可對(duì)程序進(jìn)行交叉編譯,圖形界面程序開(kāi)發(fā)采用QT3嵌 入式圖形界面開(kāi)發(fā)工具,宿主機(jī)與開(kāi)發(fā)板之間的通信可通過(guò)串 口或USB接口來(lái)完成;本系統(tǒng)的軟件開(kāi)發(fā)主要包括Linux系 統(tǒng)的移植、驅(qū)動(dòng)程序及圖形界面應(yīng)用程序三個(gè)部分。
2.1 Linux 移植
Linux系統(tǒng)移植主要包括三個(gè)部分:Bootloader的編寫
和移植、Linux的配置與構(gòu)建及Linux文件創(chuàng)建叫在進(jìn)行系 統(tǒng)移植之前要建立交叉編譯環(huán)境及準(zhǔn)備必要的工具包(arm- linux-gcc、busybox及mkyaffs2image工具包)并進(jìn)行正確安裝。 本次移植的Bootloader采用三星公司生產(chǎn)的bootloader(vivi), 在存放vivi的目錄下執(zhí)行命令#make menuconfig。為了按照 缺省配置自動(dòng)生成頭文件,在出現(xiàn)配制界面后,可以不作任何 修改而直接保護(hù)退出,然后執(zhí)行命令#make開(kāi)始編譯,編譯 結(jié)束后,會(huì)在當(dāng)前目錄下生成需要的Bootloader,即vivi ;然 后再采用缺省內(nèi)核配置文件配置Linux內(nèi)核,在Linux2.6.29 目錄下執(zhí)行命令#make menuconfig,出現(xiàn)配置界面后,選擇 需要的選項(xiàng),在對(duì)應(yīng)選項(xiàng)上按空格選擇為M(表示選中),再 執(zhí)行命令#make zImage對(duì)內(nèi)核進(jìn)行編譯,編譯完成后會(huì)生成 zImage文件;Linux的文件創(chuàng)建只需在存放root_qtopia的目 錄下執(zhí)行命令 #mkyaffs2image root_qtopia root_qtopia.img, 只要生成相應(yīng)的映像文件即可[6]。最后分別將vivi、zImage、 root_qtopia.img下載到開(kāi)發(fā)板的Nand Flash中,然后重啟系統(tǒng), 如果系統(tǒng)正常啟動(dòng),說(shuō)明系統(tǒng)移植成功了,否則,應(yīng)當(dāng)重復(fù)上 面三個(gè)步驟,直到能正常啟動(dòng)為止。
2.2設(shè)備驅(qū)動(dòng)程序
驅(qū)動(dòng)程序是Linux系統(tǒng)內(nèi)核的重要組成部分,它與內(nèi)核 結(jié)合有兩種方式:一種是靜態(tài)編譯,作為內(nèi)核的一部分,直 接編譯到內(nèi)核中;另一種是動(dòng)態(tài)連接,即單獨(dú)作為一個(gè)模塊 編譯,在需要時(shí)動(dòng)態(tài)地加載到內(nèi)核中,不需要時(shí)又可以直接從 內(nèi)核中裁剪出去[7]。本文使用動(dòng)態(tài)連接方式。本裝置的驅(qū)動(dòng) 程序主要是DS18B20溫度傳感器的驅(qū)動(dòng);另外,網(wǎng)絡(luò)、觸摸屏、 串口等的驅(qū)動(dòng)已包含在移植的Linux系統(tǒng)中。該溫度傳感器在 單片機(jī)中的應(yīng)用技術(shù)已經(jīng)非常成熟,因此,基于單片機(jī)的驅(qū)動(dòng) 程序的開(kāi)發(fā)在此不作介紹,這里主要介紹一下基于S3C2440 開(kāi)發(fā)板中的驅(qū)動(dòng)程序的編寫情況。DS18B20溫度傳感器的工 作流程如圖5所示。
圖5工作流程圖
根據(jù)DS18B20的內(nèi)部通訊協(xié)議,主機(jī)控制DS18B20完 成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:第一,每一次讀寫之前都要 對(duì)其進(jìn)行復(fù)位操作;第二,復(fù)位成功后發(fā)送一條ROM指令; 第三是在其后發(fā)送RAM指令,這樣才能對(duì)它進(jìn)行相關(guān)的操作。 對(duì)DS18B20的驅(qū)動(dòng)主要是對(duì)其進(jìn)行復(fù)位,要求主CPU將數(shù) 據(jù)線下拉500 us,然后釋放。當(dāng)DS18B20收到信號(hào)后,等待 16?60us,再發(fā)出60?240us的存在低脈沖,主CPU收到 此信號(hào)表示復(fù)位成功。復(fù)位程序的主要代碼[8]如下:
#define IO S3C2440_GPB1/* 定義引腳宏,以更改 GPIO 口 */
#define IO_INPUT S3C2440_GPB1_INP /* 定義輸入引腳 */
#define IO_OUTP S3C2440_GPB1_OUTP/* 定義輸出引 腳*/
void reset(void)
{do {
s3c2440_gpio_cfgpin(IO, IO_OUTP);/* 設(shè)置輸出引腳 */ s3c2440_gpio_setpin(IO,1);
udelay(1);
s3c2440_gpio_setpin(IO, 0);/* 產(chǎn)生下降沿 */ udelay(600); /*MCU 發(fā)出 600 s 低電平 */ s3c2440_gpio_setpin(IO,1); /* 拉回為高電平 */ udelay(60);} s3c2440_gpio_setpin(IO,0);
udelay(240);
while((s3c2440_gpio_getpin(IO))!=0); /* 檢測(cè)是否收到低 電平*/
while((s3c2440_gpio_getpin(IO))= =0); /* 等待低電平結(jié) 束*/
}
2.3 QT與UART的串口通訊
QT/Embedded是由Trolltech公司開(kāi)發(fā)的一款面向嵌入 式可視化編程的軟件,具有豐富的控件資源,類庫(kù)完全采用 C++技術(shù)封裝且可移植性好,工業(yè)控制中的嵌入式操作界面 幾乎都是采用QT類庫(kù)開(kāi)發(fā)的[9]??刂贫伺c設(shè)備之間一般都是 通過(guò)串口通信,但在QT類庫(kù)中卻沒(méi)有串口的基礎(chǔ)類,這樣, 操作界面就無(wú)法直接與設(shè)備通信。這里,我們用到一個(gè)跨平 臺(tái)的串口類Qextserialport,在QT中加上這個(gè)類就可以很方 便地對(duì)串口進(jìn)行讀寫操作,它是一個(gè)開(kāi)源類,下載地址為: http : //sourceforge.net/projects/qextserialport/files。
界面制作可采用Qt3 designer軟件,并利用信號(hào)與槽的 原理建立連接關(guān)系,添加Qextserialport類的四個(gè)文件
qextserialbase.cpp、qextserialbase.h、posix_qextserialport.cpp 及 posix_qextserialport.cppo設(shè) 計(jì)好操 作界面 wendu.ui 后, 應(yīng)對(duì)界面進(jìn)行交叉編譯,使其能在硬件平臺(tái)上工作。具體步驟 是:在存放界面目錄下執(zhí)行命令#uic -o wendu.h wendu.ui生 成 *.h 文件;然后執(zhí)行命令 #uic -o wendu.cpp -impl wendu.h wendu.ui生成*.cpp文件,并修改*.cpp文件:添加相關(guān)功能 函數(shù)與posix_qextserialport.cpp文件并實(shí)現(xiàn)互相調(diào)用,同時(shí)添 加構(gòu)造函數(shù)完成對(duì)串口的相關(guān)設(shè)置[11];再編寫*.pro工程文件, 執(zhí)行#make命令,生成可執(zhí)行文件,同時(shí)編寫wendu.desktop 文件。最后將可執(zhí)行文件與wendu.desktop文件下載到開(kāi)發(fā)板 對(duì)應(yīng)的目錄下,并重啟系統(tǒng)。其具體操作界面如圖6所示。
圖6 用戶操作界面
3結(jié)語(yǔ)
基于物聯(lián)網(wǎng)的嵌入式空調(diào)溫度遠(yuǎn)程智能控制裝置可用于 實(shí)現(xiàn)對(duì)空調(diào)溫度實(shí)時(shí)監(jiān)控的目的,通過(guò)遠(yuǎn)程控制使空調(diào)溫度處在一個(gè)既不影響人體舒適度,又能有效降低能耗的溫度范圍內(nèi)。通過(guò)人機(jī)交互界面,能實(shí)時(shí)掌控空調(diào)溫度,而且操作方便、控制精確,能滿足時(shí)下節(jié)能減排的需要。另外,本裝置不僅能做到對(duì)一臺(tái)空調(diào)溫度的精確控制,而且能推廣到對(duì)一棟樓的空調(diào)甚至是整個(gè)空調(diào)系統(tǒng)的空調(diào)溫度實(shí)現(xiàn)精確控制,同時(shí)本裝置維護(hù)簡(jiǎn)單、開(kāi)發(fā)成本低,因而應(yīng)用前景十分廣闊。
20210917_61436c977d1d0__基于物聯(lián)網(wǎng)的空調(diào)溫度智能控制裝置的設(shè)計(jì)