一種短信控制的水浸報(bào)警系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了滿足在一些場所的溢水監(jiān)測需求,利用GSM網(wǎng)絡(luò)的短信業(yè)務(wù)實(shí)現(xiàn)水浸報(bào)警并采用一種算術(shù)平均值濾波的軟件數(shù)字濾波方法抑制電磁干擾。硬件設(shè)計(jì)中,系統(tǒng)以MSP430單片機(jī)為控制器核心,以TC35模塊為短信無線收發(fā)器,并與水浸檢測模塊構(gòu)成了系統(tǒng)的硬件平臺(tái)。軟件設(shè)計(jì)中,單片機(jī)通過UART串口向TC35模塊配置AT指令來控制短信的接收與發(fā)送,采集水浸檢測模塊的電壓值并存儲(chǔ)到單片機(jī)寄存器中作為觸發(fā)報(bào)警的條件。實(shí)現(xiàn)了短信方式的水浸報(bào)警,控制系統(tǒng)的水浸靈敏度調(diào)節(jié),添加或刪除用戶手機(jī)號(hào)碼,以及自定義報(bào)警提示內(nèi)容。系統(tǒng)滿足了溢水情況的短信報(bào)警需求,具有控制靈活、遠(yuǎn)程報(bào)警的特點(diǎn)。
關(guān)鍵詞:GSM;水浸報(bào)警;MSP430;軟件濾波
0 引言
水浸報(bào)警系統(tǒng)多用在倉庫、圖書館、住宅等需要在有積水時(shí)報(bào)警的場所。如在待檢測的液體不同等一些特殊的應(yīng)用上,則需要有可調(diào)節(jié)靈敏度的報(bào)警系統(tǒng);有的報(bào)警系統(tǒng)既要滿足現(xiàn)場報(bào)警又要滿足遠(yuǎn)程無線報(bào)警。
GSM(Global System for Mobile Communications)網(wǎng)絡(luò)的應(yīng)用多集中在GSM手機(jī)通話和短信業(yè)務(wù),短信息服務(wù)作為GSM網(wǎng)絡(luò)的一種基本業(yè)務(wù),能夠在移動(dòng)終端問發(fā)送和接收短消息,已得到越來越多的系統(tǒng)運(yùn)營商和系統(tǒng)開發(fā)商的重視。現(xiàn)在越來越多的應(yīng)用產(chǎn)品縮短了人與物之間溝通的距離,對現(xiàn)場的感知能力得到了極大的延伸。無論信道是否擁塞,短信業(yè)務(wù)提供了穩(wěn)定的信息傳輸,因此保證了報(bào)警系統(tǒng)的穩(wěn)定可靠。
本文設(shè)計(jì)的報(bào)警系統(tǒng)應(yīng)用于生物實(shí)驗(yàn)室的溶液溢出檢測,實(shí)驗(yàn)人員可以通過短信控制報(bào)警系統(tǒng)的啟動(dòng)與停用,配置濾波模式,添加新用戶以及自定義報(bào)警短信內(nèi)容。當(dāng)溶液溢出時(shí),報(bào)警系統(tǒng)可以及時(shí)發(fā)送報(bào)警短信告知指定的實(shí)驗(yàn)人員。短信控制方式充分利用GSM網(wǎng)絡(luò)的便利從而節(jié)省了系統(tǒng)的硬件資源,滿足了實(shí)驗(yàn)室對于系統(tǒng)的低功耗、體積小等需求。
1 系統(tǒng)硬件結(jié)構(gòu)
1.1 系統(tǒng)結(jié)構(gòu)
報(bào)警系統(tǒng)如圖1所示,主要由單片機(jī)系統(tǒng)模塊,GSM模塊以及檢測模塊3部分組成。單片機(jī)采用TI公司的MSP430F5438;GSM模塊采用西門子公司的TC35;檢測模塊采用自制的電路板。
1.2 TC35模塊
TC35模塊是一款雙頻900 MHz/1 800 MHz的GSM網(wǎng)絡(luò)調(diào)制解調(diào)器。TC35模塊與外部處理器之間用RS 232串口連接,可以實(shí)現(xiàn)在GSM網(wǎng)絡(luò)應(yīng)用平臺(tái)的語音和數(shù)據(jù)的無線傳輸。TC35模塊的工作電壓在3.3~5.5 V之間,發(fā)射功率1~2 W。TC35處理器包含了全部GSM協(xié)議棧,以UART接口方式與終端設(shè)備通信。應(yīng)用TC35模塊開發(fā)的系統(tǒng)使用AT指令控制。
1.3 MSP430F5438單片機(jī)
MSP430系列單片機(jī)是美國德州儀器(TI)公司推出的16位超低功耗單片機(jī),采用精簡指令集(RISC)結(jié)構(gòu),電源電壓1.8~3.6 V供電。芯片內(nèi)集成了豐富的外設(shè),如定時(shí)器、比較器、ADC和大量的接口單元,便于應(yīng)用產(chǎn)品的設(shè)計(jì)開發(fā)。本文采用的MSP430F5438型號(hào)單片機(jī),程序存儲(chǔ)空間256 KB,16 KB SRAM,工作于16 MHz外部時(shí)鐘,83個(gè)I/O,4個(gè)可配置USART以及16通道的12位ADC片內(nèi)外設(shè)。
1.4 浸水檢測模塊設(shè)計(jì)
將檢測模塊的兩根導(dǎo)線置于待檢測水浸的區(qū)域中,如圖2所示,點(diǎn)A與ADC的輸人端相連,導(dǎo)線在垂直方向的相對高度不同,可以檢測不同高度的水位進(jìn)行報(bào)警。當(dāng)出現(xiàn)水浸時(shí)導(dǎo)線浸沒在水中形成通路導(dǎo)電,R2為水浸等效電阻。R1的選取應(yīng)遵循幾個(gè)原則:首先,保證R1的分壓要高于環(huán)境干擾電壓和ADC采樣精度。
實(shí)測自來水等效電阻R2為300 kΩ,ADC參考電壓2.5 V,采樣精度為0.6 mV,環(huán)境噪聲干擾大約10 mV,因此R2的分壓應(yīng)大于10 mV,可以得出R1的選取阻值應(yīng)大于400 Ω。其次,應(yīng)保證ADC輸入電阻不要太大。電阻R1//R2越大,ADC采樣時(shí)間越長,采樣時(shí)間滿足:
tsample>(Rs+2 kΩ)ln213×40 pF+800 ns (1)
式中Rs為輸入電阻,當(dāng)R1等于100 kΩ時(shí),tsample>36μs。
2 軟件設(shè)計(jì)
2.1 軟件流程
軟件流程如圖3所示,主要分為以下幾部分:單片機(jī)及TC35初始化,濾波檢測,發(fā)送報(bào)警短信,接收短信并解碼處理,低功耗模式。
2.2 AT指令集
AT指令集是GSM模塊與外部處理器之間的通信協(xié)議。用戶可以通過AT指令進(jìn)行呼叫、短信、電話本、數(shù)據(jù)業(yè)務(wù)、傳真等方面的控制。所有單片機(jī)對TC35的控制都是通過UART串口發(fā)送AT指令完成的,AT指令的發(fā)送要按照規(guī)定的語法格式,每一個(gè)命令行的開始都要以AT(或at)開頭,結(jié)尾要以<CR>結(jié)束。發(fā)送AT指令后通常會(huì)受到返回字符,字符格式為<CR><LF><返回字符><CR><LF>。<CR>是回車字符(ASCII碼為16進(jìn)制0d,即0x0d),<LF>是換行字符(ASCII碼為16進(jìn)制0a,即0x0a)。系統(tǒng)用到的AT指令見表1。
2.3 初始化過程
初始化過程分為單片機(jī)初始化和TC35初始化。單片機(jī)初始化包括關(guān)閉看門狗,系統(tǒng)時(shí)鐘初始化,端口(Port)初始化,UART串口初始化和ADC模塊初始化;TC35初始化包括發(fā)送AT指令“AT&F”,“AT+CMGF=1”,“AT+CNMI=3,1,0,2”,“AT+CMGD=1”。
單片機(jī)的初始化系統(tǒng)時(shí)鐘為16 MHz,采用外部時(shí)鐘源。端口初始化包括I/O的輸入輸出方向配置,初始化端口值配置。當(dāng)從單片機(jī)系統(tǒng)接收串口數(shù)據(jù)時(shí),TC35模塊可以從300 b/s~115 Kb/s自適應(yīng)傳輸速率。但是,單片機(jī)系統(tǒng)不能自適應(yīng)TC35的串口速率。因此,單片機(jī)與TC35模塊應(yīng)設(shè)置同一傳輸速率,如單片機(jī)系統(tǒng)的UART串口設(shè)置9 600 b/s。UART串口選擇移位寄存器低位優(yōu)先(LSB first),8位數(shù)據(jù)位,1位停止位,UART同步模式,傳輸速率為9 600 b/s。ADC參考電壓選擇2.5 V。TC35初始化在單片機(jī)與TC35模塊之間要通過AT指令進(jìn)行配置,發(fā)送“AT+CMGF=1”設(shè)置短信格式為TEXT,發(fā)送“AT+CNMI=3,1,0,2”設(shè)置新短信提示,當(dāng)TC35收到新短信后主動(dòng)向單片機(jī)報(bào)告并顯示存儲(chǔ)地址,如“+CMTI:“SM”,1”。發(fā)送“AT+CMGD=1”刪除地址1的短信,每次TC35使用時(shí)都要清空地址1的短信,當(dāng)接收到新短信時(shí),可以將短信存儲(chǔ)到地址1的位置,解碼短信后也要執(zhí)行刪除短信的命令。需要說明的是,一個(gè)已注冊網(wǎng)關(guān)的SIM卡不需要設(shè)置短信中心號(hào)碼。
2.4 接收短信并解碼
TC35初始化完成后,用戶可以發(fā)送手機(jī)短信到報(bào)警系統(tǒng)的SIM卡號(hào)碼。配置系統(tǒng)的狀態(tài)以控制報(bào)警器處于啟動(dòng)和停止;配置軟件濾波模式以調(diào)節(jié)報(bào)警靈敏度;更新用戶列表將報(bào)警短信發(fā)送給不同用戶;自定義報(bào)警短信內(nèi)容,用戶可以根據(jù)實(shí)際情況定義報(bào)警提示短信。用戶通過手機(jī)發(fā)送短信改變報(bào)警系統(tǒng)相關(guān)配置,當(dāng)GSM模塊接收到短信后,向單片機(jī)發(fā)送“+CMTI:“SM”,1”,單片機(jī)接收后向GSM模塊發(fā)送讀短信指令“AT+CMGR=1”,1為GSM模塊存放短信的地址。GSM隨后將接收到的用戶短信發(fā)送給單片機(jī)解碼,接收格式為:
“<C><LF>+CMGR:”REC UNREAD“,”+86138xKXXXXXX“,,”11/11/14,08:46:41+32“<CR><LF>F1<CR><LF>OK”。
單片機(jī)程序通過查找“OK”判斷短信已經(jīng)接收完畢,接下來可以通過檢索引號(hào)的個(gè)數(shù)確定短信內(nèi)容的位置并將短信息“F1”讀到寄存器read_sm中,F(xiàn)后面的16進(jìn)制數(shù)值作為相應(yīng)的濾波模式使能。
本文中報(bào)警系統(tǒng)與用戶的協(xié)議規(guī)定:所有發(fā)送短信要確保只有大寫英文字母A~Z,阿拉伯?dāng)?shù)字0~9,及空格組成。用戶可以通過手機(jī)發(fā)送短信改變報(bào)警系統(tǒng)的濾波模式,添加新用戶手機(jī)號(hào)碼以及自定義報(bào)警短信內(nèi)容。如發(fā)送“1M138xxxxxxxx”到報(bào)警系統(tǒng)的SIM卡號(hào)碼中,即可設(shè)置一個(gè)新用戶手機(jī)號(hào)碼。要添加第二條用戶手機(jī)號(hào)碼可以發(fā)送“2M132xxxxxxxx”。GSM模塊接收到短信后,通過單片機(jī)向GSM模塊發(fā)送相應(yīng)的AT指令,即可將短信讀入到單片機(jī)的寄存器中,通過短信解碼,判斷用戶想實(shí)現(xiàn)哪種功能后,如果判斷是“1M”,將號(hào)碼存儲(chǔ)到發(fā)送短信的目標(biāo)號(hào)碼表中,當(dāng)下一次發(fā)生水浸時(shí),則發(fā)送報(bào)警短信到全部目標(biāo)用戶手機(jī)號(hào)碼中,實(shí)現(xiàn)短信群發(fā)報(bào)警;如果判斷是“C”,則將其后的
字符作為自定義報(bào)警短信的內(nèi)容;如果判斷是“S”,則將其后的字符做為系統(tǒng)狀態(tài)的啟動(dòng)或停止使能,解碼流程如圖4所示。
2.5 濾波檢測
ADC模塊集成在MSP430單片機(jī)中,按一定的周期采集導(dǎo)線兩端的電壓值,轉(zhuǎn)換后的數(shù)字信號(hào)經(jīng)過軟件濾波后判斷是否達(dá)到觸發(fā)電壓下限,系統(tǒng)采用算術(shù)平均值濾波,將N次的采樣值求和后除以采樣次數(shù),得到的結(jié)果與系統(tǒng)設(shè)定的觸發(fā)電壓下限進(jìn)行比較,如果濾波后達(dá)到觸發(fā)電壓下限則觸發(fā)報(bào)警,否則繼續(xù)采集電壓并濾波。用戶可根據(jù)實(shí)際的情況通過發(fā)送手機(jī)短信改變?yōu)V波參數(shù),如觸發(fā)電壓下限值,采樣周期和采樣次數(shù)。為了便于用戶操作,將濾波參數(shù)定義為16中不同的模式,見表2。
2.6 發(fā)送報(bào)警短信
GSM模塊中應(yīng)插入已經(jīng)注冊的SIM卡。水浸發(fā)生后,觸發(fā)蜂鳴器聲響報(bào)警和短信報(bào)警,TC35初始化成功后,發(fā)送報(bào)警短信需要3個(gè)步驟:首先,單片機(jī)發(fā)送配置目標(biāo)手機(jī)號(hào)碼“AT+CMGS=138xxxxxxxx”;然后,發(fā)送TEXT格式的文本信息“WARNING”,最后,發(fā)送16進(jìn)制數(shù)1a。通過這三個(gè)步驟可以將“WARNING”發(fā)送給用戶手機(jī)。
單片機(jī)發(fā)送AT指令后TC35模塊會(huì)返回響應(yīng)字符,以配置目標(biāo)號(hào)碼為例,說明如何實(shí)現(xiàn)軟件設(shè)計(jì)。單片機(jī)發(fā)送“AT+CMGS=138xxxxxxxx”后,TC35模塊收到后返回“>”字符表明目標(biāo)號(hào)碼配置成功,單片機(jī)程序判斷是否收到“>”字符決定發(fā)送TEXT文本。為了在配置失敗時(shí)不至于讓程序死循環(huán),需要設(shè)置一個(gè)計(jì)數(shù)器讓程序跳出。
發(fā)送報(bào)警短信程序:
3 測試結(jié)果
向RS 232串口發(fā)送“AT&F<CR><LF>”指令,ASCII碼16進(jìn)制表示為::‘41’,‘54’,‘26’,‘46’,‘0D’,‘0A’,由于RS 232電平為負(fù)邏輯,轉(zhuǎn)換為二進(jìn)制反碼為:1011_1110,1010_1011,…。如圖5所示,示波器水平方向代表時(shí)間(單位:μs),每格代表100 μs;垂直方向代表電壓值(單位:mV),每格代表2 000 mV。顯示第一個(gè)高電平和最后一個(gè)低電平分別是起始位和停止位,之間為8位數(shù)據(jù)0111_1101,由于串口為低位優(yōu)先(LSB),所以對于第一個(gè)二進(jìn)制數(shù)據(jù)為1011_1110,與發(fā)送的串口指令相符。
為了比較直觀地調(diào)試驗(yàn)證報(bào)警系統(tǒng)的功能,設(shè)計(jì)時(shí)充分利用了單片機(jī)系統(tǒng)模塊的8位數(shù)碼管。如圖6所示,“3111”指示程序運(yùn)行情況正常,右起前兩位“05”指示當(dāng)前濾波模式為05,右起第3位“1”指示當(dāng)前已接收到新短信共1條,右起第4位“2”指示當(dāng)前已發(fā)送報(bào)警短信2條。
4 結(jié)語
文中的報(bào)警系統(tǒng),以GSM為網(wǎng)絡(luò)核心,以低功耗的單片機(jī)芯片MSP430為處理器核心,設(shè)計(jì)了一款用于水浸檢測的報(bào)警系統(tǒng)。通過生物實(shí)驗(yàn)室的測試,系統(tǒng)在實(shí)驗(yàn)室環(huán)境中實(shí)現(xiàn)了遠(yuǎn)程監(jiān)測和靈活配置水浸靈敏度。在本系統(tǒng)的基礎(chǔ)上增加短距無線通信功能并設(shè)計(jì)多節(jié)點(diǎn)的無線通信協(xié)議,將使系統(tǒng)具有更廣闊的應(yīng)用空間。