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