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