基于SIM900A的物聯(lián)網(wǎng)短信報(bào)警系統(tǒng)
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)方面包括基于SIM900A利用AT指令進(jìn)行自動(dòng)短信收發(fā)和解析,物聯(lián)網(wǎng)報(bào)警網(wǎng)關(guān)的軟件流程設(shè)計(jì)。
3.1 AT指令介紹
AT指令是指終端設(shè)備TE和終端適配器TA之間以及數(shù)據(jù)終端設(shè)備DTE和數(shù)據(jù)電路終端設(shè)備DCE之間的接口標(biāo)準(zhǔn)。20世紀(jì)90年代初,AT指令僅被用于Modem的操作,在經(jīng)歷了一系列演化后,AT指令被加入GSM07.05標(biāo)準(zhǔn)。SIM900A的AT命令接口默認(rèn)使用IRA字符集,除此之外還支持GSM07.07格式,UCS2,HEX,PCCP,PCDN,8859-1字符集。用于短信收發(fā)的AT指令如表1所示。本文引用地址:http://www.ex-cimer.com/article/160429.htm
3.2 短信編碼
短消息的收發(fā)共有三種方式:Block方式、Text方式、PDU方式。Block方式目前很少用;Text方式為純文本方式,可使用不同的字符集,從技術(shù)說可用于發(fā)送中文短消息,但國(guó)內(nèi)手機(jī)基本不支持,主要用于歐美地區(qū);PDU方式被所有手機(jī)支持,可以使用任何字符集,也是手機(jī)默認(rèn)的編碼方式。
在PDU方式下可以采用三種編碼發(fā)送短信息:7-bit編碼、8-bit編碼和UCS2編碼。7-bit方式容量大但是其碼制轉(zhuǎn)換較復(fù)雜,由于本系統(tǒng)內(nèi)所用短信內(nèi)容較短,本文采用UCS2編碼方式進(jìn)行短信編碼和解析,UCS2編碼方式中應(yīng)用的為Unicode字符集。一般的PDU編碼由A,B,C,D,E,F(xiàn),G,H,I,J,K,I,M共13項(xiàng)構(gòu)成。
下面結(jié)合本系統(tǒng)介紹UCS2編碼發(fā)短信的原理:網(wǎng)關(guān)根據(jù)報(bào)警條件與當(dāng)前環(huán)境參數(shù)進(jìn)行比較,若環(huán)境參數(shù)超過用戶設(shè)定閾值,則根據(jù)環(huán)境參數(shù)類型及超限類型給用戶發(fā)送報(bào)警短信,短信內(nèi)容事先寫入網(wǎng)關(guān)硬件FLASH內(nèi),在代碼中結(jié)合Switch語句決定信息內(nèi)容。若1號(hào)溫室內(nèi)溫度參數(shù)超過用戶設(shè)定的上限,則系統(tǒng)給用戶手機(jī)15212345678(虛擬號(hào)碼)發(fā)送短信內(nèi)容:
1號(hào)溫室內(nèi)空氣溫度超過設(shè)定閾值
對(duì)于UCS2短信編碼字符串為:
0011+00+0D+91+68+5112325476F8+0008+04+2D+0031(1)53F7(號(hào))6E29(溫)5BA4(室)5185(內(nèi))7A7A(空)6C14(氣)6E29(溫)5EA6(度)8D85(超)8FC7(過)8BBE(設(shè))589A(定)9608(閾)503C(值)
(此處為易讀而注“+”,實(shí)際發(fā)送中不存在,漢字要發(fā)送其Unicode碼格式,括號(hào)內(nèi)為Unicode碼對(duì)應(yīng)其漢字,實(shí)際發(fā)送中不存在)
其中:0D指目的號(hào)碼長(zhǎng)度(+86 15212345678);5112325476F8指目的號(hào)碼(15212345678F,補(bǔ)F后兩位一反);04指有效期,2D為短信長(zhǎng)度;003153F…08803為短信內(nèi)容(1號(hào)溫室內(nèi)空氣溫度超過設(shè)定閾值)。
結(jié)合AT指令,當(dāng)1號(hào)溫室空氣溫度超閾值,進(jìn)行短信報(bào)警的具體操作過程為:
(1)發(fā)送AT+CMGF=0//PDU方式發(fā)送短信。
(2)發(fā)送AT+CSCS=“UCS2”//短信編碼方式為UCS2。
(3)發(fā)送AT+CMGS=2D//短信長(zhǎng)度。
(4)識(shí)別返回>后發(fā)送下列字符串:
0011000D91685112325476F80008042D003153F76E295BA451857A7A6C146E295EA68D858FC78BBE5B9A9608503C.
同樣,系統(tǒng)定期檢查設(shè)備內(nèi)SIM卡的余額,當(dāng)余額少于設(shè)定余額的時(shí)候進(jìn)行報(bào)警提醒,利用中國(guó)移動(dòng)短信余額查詢功能,按照上述短信編碼方式即可完成短信余額查詢功能。具體可通過向10086發(fā)送字母“YE”(Unicode碼為00590045)來實(shí)現(xiàn)(北京地區(qū),地區(qū)不同字母組合有差異)。編碼字符串為:0011000791680180F60008040400590045。
3.3 物聯(lián)網(wǎng)報(bào)警網(wǎng)關(guān)軟件流程設(shè)計(jì)
物聯(lián)網(wǎng)報(bào)警網(wǎng)關(guān)的軟件設(shè)計(jì)流程如圖5所示,網(wǎng)關(guān)時(shí)刻監(jiān)聽是否收到數(shù)據(jù)包,若收到數(shù)據(jù)包則判斷是WSN內(nèi)溫濕度節(jié)點(diǎn)數(shù)據(jù)包還是用戶閾值設(shè)定數(shù)據(jù)包,分情況進(jìn)行相應(yīng)處理。由于系統(tǒng)所測(cè)環(huán)境參數(shù)均為緩變量,當(dāng)用戶啟動(dòng)短信報(bào)警功能后,本系統(tǒng)采集周期最短可設(shè)置為5 mi n,否則若采集周期過短,當(dāng)環(huán)境參量超過閾值時(shí),系統(tǒng)不斷發(fā)送報(bào)警信息,不僅增加系統(tǒng)負(fù)擔(dān)而且給用戶造成不必要的資費(fèi)浪費(fèi)。
評(píng)論