何金枝,毛海燕,周?chē)?guó)運(yùn)
(1.南陽(yáng)理工學(xué)院,南陽(yáng) 473000;2.河南天工建設(shè)集團(tuán)有限公司,南陽(yáng) 473000)
隨著科技的發(fā)展和自動(dòng)化水平的不斷提高,溫度控制在國(guó)民生產(chǎn)和日常生活中起著越來(lái)越重要的作用[1~3]。隨著全球移動(dòng)通信技術(shù)的不斷發(fā)展,短消息通信作為GSM系統(tǒng)中最基本的通信方式,已被廣泛應(yīng)用[4,5]。本設(shè)計(jì)介紹如何利用單片機(jī)和現(xiàn)有的GSM網(wǎng)絡(luò)實(shí)現(xiàn)較理想的遠(yuǎn)程溫度控制,該設(shè)計(jì)具有結(jié)構(gòu)簡(jiǎn)單,操作方便、可靠性高、成本低等特點(diǎn),具有廣闊的應(yīng)用前景。
基于單片機(jī)的GSM遠(yuǎn)程溫度控制器以STC89C52單片機(jī)作為系統(tǒng)控制單元, 外配11.0592MHz晶振、復(fù)位電路、按鍵電路、LED數(shù)碼顯示電路構(gòu)成單片機(jī)小系統(tǒng);單片機(jī)通過(guò)ULN2803A驅(qū)動(dòng)風(fēng)扇電機(jī)和加熱電源,以電熱杯為控制對(duì)象;通過(guò)數(shù)字溫度傳感器DS18B20采集溫度信息, 實(shí)現(xiàn)溫度異常報(bào)警; 單片機(jī)通過(guò)串行口與PIML-900/1800 GSM模塊通信。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)框圖
STC89C52單片機(jī)是控制器的核心部分[6,7],該單片機(jī)是一種低功耗、高性能CMOS 8位微控制器,具有 8K可編程Flash 存儲(chǔ)器,256字節(jié)RAM, 32位I/O 口線(xiàn),看門(mén)狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,6個(gè)中斷源,全雙工串行口。主控電路原理圖如圖2所示。
溫度檢測(cè)電路采用的是美國(guó)Dallas生產(chǎn)的單線(xiàn)數(shù)字溫度傳感器DS18B20,它是一種新型的小體積、寬電壓、與微處理器接口簡(jiǎn)單的數(shù)字化溫度傳感器[8,9]。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測(cè)溫度轉(zhuǎn)化成串行口數(shù)字信號(hào),以供單片機(jī)處理,它還具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn)[10,11]。DS18B20的2引腳與單片機(jī)的P3.4端口連接,采用外部供電方式1、3引腳分別接電源+、電源地。
本設(shè)計(jì)使用的GSM模塊是PIML-900/1800,該電路主要由兩部分組成:SIM卡與PIML模塊連接電路,PIML模塊的啟動(dòng)和復(fù)位電路,如圖3所示。
我們使用一個(gè)1升的電熱杯為溫度控制設(shè)備,電熱杯的電源線(xiàn)接通220V交流電就加熱,斷開(kāi)交流電停止加熱,用5V繼電器控制220V電源的接通與斷開(kāi),繼電器用ULN2803A驅(qū)動(dòng)控制,因其內(nèi)部有對(duì)輸出引腳續(xù)流保護(hù)功能,不需要接續(xù)流二極管。為了加快降溫,在電熱杯旁邊安裝5V直流電風(fēng)扇,電扇的運(yùn)行用ULN2803A驅(qū)動(dòng)控制。由于ULN2803A的輸出灌電流達(dá)500mA,能夠輕松驅(qū)動(dòng)繼電器和風(fēng)扇。ULN2803A的輸入端接單片機(jī)的P2口,用P2.1、P2.0分別控制電熱杯繼電器和散熱電扇。
圖2 系統(tǒng)主控電路圖
圖3 GSM模塊與單片機(jī)連接電路
顯示電路采用7段共陰極數(shù)碼管動(dòng)態(tài)掃描電路,節(jié)約了單片機(jī)的輸出端口。使用單片機(jī)的P0.0~P0.7控制數(shù)碼管的段碼顯示,P2.3~P2.6控制數(shù)碼管的位碼顯示,用ULN2803A芯片做位驅(qū)動(dòng)。
鍵盤(pán)采用3×5矩陣式設(shè)計(jì)方案,分別由單片機(jī)的P1.0~P1.7端口控制。系統(tǒng)電路供電使用USB口供電,USB口在系統(tǒng)還有下載程序的功能,PIML模塊的工作電壓為3.3~4.2V,不能使用5V直接供電,需要一個(gè)電源轉(zhuǎn)換電路,本系統(tǒng)使用3.8V供電給GSM模塊。
本系統(tǒng)采用C51程序設(shè)計(jì)語(yǔ)言進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì),實(shí)現(xiàn)溫度的測(cè)量與控制,溫度的顯示,鍵盤(pán)的掃描,與手機(jī)終端的通信等功能。
根據(jù)DS18B20的通訊協(xié)議,單片機(jī)對(duì)DS18B20操作必須經(jīng)過(guò)3個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位;復(fù)位成功后發(fā)送ROM尋址命令、啟動(dòng)轉(zhuǎn)換命令;延時(shí)1s后再發(fā)送RAM讀數(shù)據(jù)指令。單片機(jī)啟動(dòng)溫度轉(zhuǎn)換及讀取溫度數(shù)值程序的流程如圖4所示。
控制的對(duì)象是溫度,通過(guò)控制加熱電源的通、斷來(lái)加熱和停止加熱,控制風(fēng)扇接通降溫。對(duì)單片機(jī)的P2口的低兩位寫(xiě)“0x00”停止加熱、風(fēng)扇停轉(zhuǎn);寫(xiě)“0x01”停止加熱、風(fēng)扇啟動(dòng);寫(xiě)“0x02”啟動(dòng)加熱、風(fēng)扇停轉(zhuǎn)。單片機(jī)實(shí)現(xiàn)溫度控制的流程如圖5所示。
圖4 DS18B20操作流程圖
圖5 溫度控制流程圖
在短消息處理中常使用到的功能就是讀取短信、發(fā)送短信和刪除短信[12],本系統(tǒng)采用串口接受手機(jī)發(fā)來(lái)的短信和發(fā)送短信到手機(jī),設(shè)置波特率為9600bit/s,使用定時(shí)器T1工作在方式2作為波特率發(fā)生器,初值設(shè)置為0xfd。使用printf()函數(shù)發(fā)送命令和scanf()函數(shù)接收內(nèi)容,在使用這兩函數(shù)之前必須關(guān)閉串行口中斷。讀取和刪除短信采用只對(duì)存儲(chǔ)器中索引為“1”的地址進(jìn)行操作,命令為“AT+CMGR=1” 和“AT+CMGD=1”。 單片機(jī)接收到手機(jī)發(fā)來(lái)的短消息,從短消息的內(nèi)容,或設(shè)置加熱器的溫度,或向手機(jī)傳送當(dāng)前溫度值。根據(jù)短消息的處理包括讀取短消息、發(fā)送短消息、刪除短消息三個(gè)操作,三個(gè)操作的流程如圖6所示。
圖6 單片機(jī)處理短消息流程圖
數(shù)碼管顯示采用定時(shí)器T0,每隔定時(shí)2.5ms中斷一次讀取顯示緩沖區(qū)中的數(shù)據(jù),逐位點(diǎn)亮數(shù)碼管,由于視覺(jué)暫留效應(yīng),使人看到的是整體顯示。定時(shí)器T0工作在方式1,利用下面公式:定時(shí)時(shí)間=(216-定時(shí)初值)×振蕩周期×12,得T0定時(shí)初值為0xf700。
本系統(tǒng)設(shè)計(jì)了15個(gè)按鍵,采用3行×5列的矩陣式排列方式,使用行掃描法掃描鍵盤(pán)。鍵盤(pán)掃描程序流程如圖7所示。
圖7 鍵盤(pán)掃描流程圖
本文對(duì)基于單片機(jī)的GSM遠(yuǎn)程溫度控制器的軟、硬件設(shè)計(jì)進(jìn)行詳細(xì)的說(shuō)明。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)可以接收短信,并使單片機(jī)控制風(fēng)扇及加熱電源的開(kāi)關(guān);實(shí)現(xiàn)手機(jī)查詢(xún)、設(shè)置溫度等功能。該系統(tǒng)的設(shè)計(jì)方法,可以推廣應(yīng)用到其他設(shè)備中,如遠(yuǎn)程控制系統(tǒng)、溫度控制系統(tǒng)等。
[1]李洪超.基于A(yíng)T89C51的溫度控制系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息, 2010, 26(12-2): 87-88.
[2]金凱鵬, 胡即明.基于模糊PID算法遠(yuǎn)程溫度控制系統(tǒng)的實(shí)現(xiàn)[J].微計(jì)算信息, 2006, 22(12-1): 70-71, 94.
[3]趙小強(qiáng), 李晶.基于PC機(jī)的多點(diǎn)遠(yuǎn)程溫度控制系統(tǒng)設(shè)計(jì)[J].儀器儀表學(xué)報(bào), 2008, 29(4): 468-470.
[4]周?chē)?guó)運(yùn), 呂鸝.基于GSM的遠(yuǎn)程LED點(diǎn)陣顯示系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī), 2008, (5): 78-79.
[5]薛慶吉, 周?chē)?guó)運(yùn).基于GSM/GPRS網(wǎng)絡(luò)遠(yuǎn)程無(wú)線(xiàn)控制系統(tǒng)應(yīng)用研究[J].福建電腦, 2008, (3): 17-18.
[6]李文濤, 余福兵.基于STM32單片機(jī)的電阻爐智能溫度控制器的設(shè)計(jì)[J].化工自動(dòng)化及儀表, 2011, 39(1): 89-91.
[7]晁陽(yáng), 張爭(zhēng)剛, 熊剛.基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì)[J].楊凌職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2011, 10(1): 51-53.
[8]李鑫, 曾光, 廖榮輝.基于A(yíng)T89C52智能溫度控制器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù), 2006, (2): 931-96.
[9]唐燕妮, 戴衛(wèi)軍, 陶影.基于A(yíng)tmega8單片機(jī)的溫度控制器設(shè)計(jì)[J].科技信息, 2009, (20): 166.
[10]王建勛, 周青云.基于DS18B20和LabVIEW的溫度監(jiān)測(cè)系統(tǒng)[J].實(shí)驗(yàn)室研究與探索, 2012, 31(3): 48-50.
[11]劉海萍, 蘇世彬.基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)[J].科技信息, 2009(11): 26, 29.
[12]鄭娟毅.基于ZigBee技術(shù)的家庭WSN及遠(yuǎn)程控制研究[J].電視技術(shù), 2010, 34(04): 67-69.