陶衛(wèi)平黎遠洋羅 孟(.欽州學院電子與信息工程學院,廣西 欽州 535000;.欽州學院,廣西 欽州 535000)
基于GSM的智能熱水器控制系統(tǒng)設計
陶衛(wèi)平1黎遠洋1羅 孟2
(1.欽州學院電子與信息工程學院,廣西 欽州 535000;2.欽州學院,廣西 欽州 535000)
文章研究利用現(xiàn)有的GSM網(wǎng)絡,設計一種基于GSM的熱水器遠程控制系統(tǒng)實現(xiàn)對家庭熱水器的遠程控制。
AT89C52單片機;DS18B20;GSM模塊;溫度檢測
目前生活中,很多熱水器都是手動控制,不能進行遠程控制。本系統(tǒng)主要研究通過GSM網(wǎng)絡和單片機的控制,完成在遠程終端對家庭熱水器進行智能化控制操作,使人們在不在現(xiàn)場的情況下開啟熱水器,既避免了等待,又減少了能源過多消耗的浪費,方便了人們的生活。GSM網(wǎng)絡實現(xiàn)遠程控制成本、信號穩(wěn)定性、使用便利性和維護等方面都具有很大的優(yōu)勢,有很大的發(fā)展前景。
1.1 GSM模塊
本設計用單片機控制GSM模塊控制遠程加熱器,整個系統(tǒng)由GSM模塊、微處理器模塊、加熱模塊、電源模塊和外圍模塊組成。
1.2 無線通信模塊
系統(tǒng)的前提是使用短信方式,簡單、經(jīng)濟、方便使用的實用性系統(tǒng),而不是需要聯(lián)網(wǎng)才能進行使用的GPRS通信模塊,如SIM300T和MC35等系列模塊。綜合使用價值、經(jīng)濟實用等方面原因,本系統(tǒng)選擇TC35作為系統(tǒng)的無線通信模塊。
1.3 控制單元模塊的選擇
基于成本和性能等方面的考慮,本系統(tǒng)選擇 STC89C52模塊。
1.4 系統(tǒng)總體框架
系統(tǒng)的實現(xiàn)只要是,利用STC89C52控制TC35無線模塊進行遠程通信。手機通過讀取TC35接收到的短信內(nèi)容從而在通過信息數(shù)據(jù)控制相應的外部繼電器進行工作,達到控制加熱器的目的。
圖1所示為系統(tǒng)遠程端系統(tǒng)框圖:
圖1 系統(tǒng)遠程端框圖
系統(tǒng)由STC89C52單片機主控,TC35作為無線通信模塊,繼電器組控制加熱器,DS18B20溫度傳感器作為溫度采集,電源模塊提供模塊的電源供應。
硬件系統(tǒng)包括單片機模塊、電源模塊、DS18B20溫度傳感器模塊、GSM模塊?,F(xiàn)對其中的部分電路進行介紹。
2.1 指示燈電路
TC35有一個同步信號腳SYNC,該腳是一個同步信號輸出端,該腳輸出的信號,反應了模塊的工作情況。本系統(tǒng)在該端通過一個三級管接入 LED 燈,接法如圖 2所示。LED燈受到該腳信號控制,可以顯示TC35模塊運行的狀態(tài)。
圖2 指示燈電路
(1)LED 燈熄滅時:表示TC35處于關閉、休眠、報警或者充電狀態(tài)二;
(2)LED燈600ms亮/600ms暗:表示SIM卡沒有插入,或者正在搜索網(wǎng)絡,或者正在認證用戶,或者正在注冊網(wǎng)絡;
(3)LED燈75ms亮/3S暗:表示已經(jīng)注冊上網(wǎng),處于待機狀態(tài)二;
(4)LED燈75ms亮/75ms暗/75ms亮/3S暗:表示一個或多個GPRS文件被激活二;
(5)LED 燈閃爍:表示 GPRS 的數(shù)據(jù)傳輸,當GPRS數(shù)據(jù)傳輸時,在交換一個數(shù)據(jù)包后,LED燈將會在一秒內(nèi)點亮。閃爍的持續(xù)時間約為0.5秒。
2.2 SIM卡電路
TC35模塊的SIM卡座采用的是Molex座,該座有8個管腳,而TC35模塊的SIM管腳只有6個管腳。其它的接口分別對應于TC35的5個管腳,SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通過SIM卡閱讀器與TC35的同名端直接相連。
圖3 SIM座接口電路圖
系統(tǒng)的軟件主要包括串口程序、短消息程序、水溫采集程序和加熱程序。本系統(tǒng)軟件采用了前后臺的設計方式,前臺系統(tǒng)是主程序,后臺是由所有的中斷服務程序,如串口接收中斷服務程序,定時器中斷服務程序等功能模塊組成。程序主要由三部分代碼組成:啟動與初始化、水溫監(jiān)控、遠程開啟與控制。
3.1 串口程序設計在本系統(tǒng)中,串口與GSM模塊接口,串口程序主要包括初始化和中斷服務程序兩個部分。
3.1.1 串口初始化程序
串口初始化程序主要包括初始化和中斷服務程序兩個部分。下面為初始化程序。
Ini_UART(void)//串口初始化、定時器初始化
{
SCON = 0x50 ; //SCON∶ serail mode 1, 8-bit UART, enable ucvr
//UART為模式1,8位數(shù)據(jù),允許接收
TMOD |= 0x21; //TMOD∶ timer 1, mode 2, 8-bit reload
//定時器1為模式2,8位自動重裝
PCON |= 0x80 ; //SMOD=1;
TH1=0xFA ; //Baud∶19200 fosc="11".0592MHz
TL1=0xFA;
TH0=(65536-50000)/256; //(65536-50000)/256,50ms定時
TL0=(65536-50000)%256;
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TR0=0; //開啟T0定時器
ET0=1; //允許T0定時器中斷
EA=1;
TI=1;
ES=1;
}
通過上面的程序可以看出,只要設置相應的寄存器就可以設置串口工作的參數(shù)。在上面的程序中,串口的通信率為19200波特/秒。
3.1.2 中斷服務程序
串口進行數(shù)據(jù)的發(fā)送和接收處理時,采用中斷服務程序來實現(xiàn),下面為具體的中斷服務程序。
void ser() interrupt 4
{
if(RI==1)
{
aa[j]=SBUF;//命令存到命令數(shù)組RI=0; //軟件清除接收中斷
j++;
}
}
在上面的中斷服務程序中,為了與其他程序進行數(shù)據(jù)交互,使用全局緩沖區(qū)來實現(xiàn),例如“aa[j]”等。
3.2 短消息程序設計
在本系統(tǒng)中,單片機通過串口向 GSM模塊發(fā)送相應的
AT命令來實現(xiàn)短消息的發(fā)送和接收。
短消息可以是按照TEXT模式或者PDU模式發(fā)送,具體采用哪種模式發(fā)送短消息,需要根據(jù)系統(tǒng)的需要來決定。
基于TEXT模式的發(fā)短信代碼簡單,實現(xiàn)十分容易,只要把電話號碼和發(fā)送內(nèi)容封裝好就可以,但是最大的缺點就是不能發(fā)送中文短信;而PDU模式不僅支持英文內(nèi)容,也可以發(fā)送中文短信?;赑DU模式的實現(xiàn)要稍微復雜一點,由于PDU數(shù)據(jù)包有具體的幀結(jié)構,因此必須按照PDU的數(shù)據(jù)包格式進行封裝數(shù)據(jù)[4]。
在PDU數(shù)據(jù)包的幀結(jié)構中,“SMSC”字段為短消息中心的地址;“PDU類型”指明數(shù)據(jù)包的類型;“MR”協(xié)議識別號;“DCS”為短消息的編碼格式。對于數(shù)字或者字符采用編碼值為“00”,如果內(nèi)容是漢字,則采用的編碼值為“08”,采用的是“UNICODE”編碼方式。在該系統(tǒng)中采用的字符編碼方式為:“VP”表示短消息的有效時間;“UDL”表示數(shù)據(jù)內(nèi)容的長度;“UD”為具體的短消息的內(nèi)容,在 PDU數(shù)據(jù)包里面,所有的數(shù)字是以字符形式發(fā)送的。
3.3 溫度采集程序設計
本系統(tǒng)使用DS18B20進行溫度采集,其代碼如下:void read_temperture()
{
DS18B20_Reset(); //設備復位
DS18B20_Writeuchar(0xCC); //跳過ROM命令
DS18B20_Writeuchar(0x44); //開始轉(zhuǎn)換命令
while (!DQ); //等待轉(zhuǎn)換完成
DS18B20_Reset(); //設備復位
DS18B20_Writeuchar(0xCC); //跳過ROM命令
DS18B20_Writeuchar(0xBE); //讀暫存存儲器命令
TPL = DS18B20_Readuchar(); //讀溫度低字節(jié)
TPH = DS18B20_Readuchar(); //讀溫度高字節(jié)
symbol=TPH&0xf8; //判定符號
temp=(TPH&0x07)*256+TPL;
temp=temp*0.0625*100;
}
3.4 加熱程序設計
本系統(tǒng)使用三極管控制續(xù)電器控制加熱,其代碼如下:
if(temp>5500) //如果溫度大于55度,繼電器關,發(fā)短信一次
{
JIDIANQI=1;
if(flag0==1)
{
write_str( 3,0, "中文短信【..】") ;
send_pdu();
write_str( 3,0, "中文短信【OK】") ;
flag0=0;
flag1=1;
}
}else //循環(huán)保溫狀態(tài)
{
if(flag1==1)
{
JIDIANQI=0;
}
}
從程序中可以看到,當溫度達到55度之后停止加熱。
4.1 操作說明
連接好硬件以把SIM卡插入到GSM的卡槽上,打開電源開關,單片機液晶上顯示GSM初始化過程,稍等待初始化成功,可以進行一下操作。
(1)通過打電話或者發(fā)送K1短信內(nèi)容給GSM模塊,熱水器系統(tǒng)進行加熱。
(2)發(fā)送K0短信內(nèi)容給GSM模塊,熱水器系統(tǒng)停止加熱。
(3)當溫度達到55℃時,熱水器系統(tǒng)停止加熱,并發(fā)送短信內(nèi)容到手機上。
4.2 實物測試測試儀器:手機一部,SIM卡兩張熱水器系統(tǒng)的測試結(jié)果如表1所示。
表1 熱水器系統(tǒng)的測試記錄表
由上表格數(shù)據(jù)可以知道該系統(tǒng)能正常工作。
[1] 徐文斌,孫廣大,黃健,等.基于單片機的智能家居遠程控制系統(tǒng)的設計與實現(xiàn)[J].電腦知識與技術,2012(2)∶473-475.
[2] 劉鳴,車立新,陳興梧,等.溫度傳感器DS18B20的特性及程序設計方法[J].電測與儀表,2001(10)∶47-51.
[3] 張軍.智能溫度傳感器 DS18B20及其應用[J].儀表技術, 2010(4)∶68-70.
[4] 吳玉田,王瑞光,鄭喜鳳,等.GSM 模塊 TC35及其應用[J].計算機自動測量與控制,2002(8)∶557-560.
[5] 李海生.基于 GSM短消息的遠程監(jiān)測系統(tǒng)[D].秦皇島∶燕山大學,2005.
[6] 杜婷.基于 GSM 的遠程溫度控制系統(tǒng)的設計[D].呼和浩特∶內(nèi)蒙古大學,2013.
[7] 張華,高需.基于 TC35模塊實現(xiàn)短消息收發(fā)[J].電腦知識與技術,2010(17)∶4817-4819,4821.
[8] 劉濤,張春業(yè),韓旭東,等.基于手機模塊 TC35的單片機短消息收發(fā)系統(tǒng)[J].電子技術,2003(3)∶36-38.
[9] 趙大成,賈海燕.手機短信收發(fā)的 AT指令控制[J].信息工程大學學報,2004(2)∶90-92.
GSM -based control system of the water heater
Based on the existing GSM network, this paper designs a kind of remote control system of water heater based on GSM.
AT89C52 MCU; Ds18B20; GSM module; temperature detection
TP924;TP18
A
1008-1151(2016)10-0015-03
2016-09-10
2015年度廣西高等教育本科教學改革工程項目(2015JGA371);2015年度國家級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(201411607003)。
陶衛(wèi)平(1981-),女(壯族),廣西欽州人,欽州學院電子與信息工程學院講師,工程碩士,研究方向為信息化教學技術、多媒體技術。