□ 鄧廣球 趙小寒
物聯(lián)網(wǎng)技術(shù)的發(fā)展為掌握無人值守臺(tái)站和重要播出臺(tái)站安防情況提供了新的思路。物聯(lián)網(wǎng)應(yīng)用需要考慮的因素有很多,例如節(jié)點(diǎn)成本、網(wǎng)絡(luò)成本、電池壽命、數(shù)據(jù)傳輸速率(吞吐率)、延遲、移動(dòng)性、網(wǎng)絡(luò)覆蓋范圍以及部署類型等。NB-IoT和LoRa兩種技術(shù)具有不同的技術(shù)和商業(yè)特性,所以在應(yīng)用場(chǎng)景方面會(huì)有不同。NB-IoT可以直接部署于GSM網(wǎng)絡(luò)、UMTS網(wǎng)絡(luò)、LTE網(wǎng)絡(luò),在同樣的頻段下,是一種基于蜂窩的窄帶物聯(lián)網(wǎng)的新興技術(shù),也被稱為“低功耗廣域網(wǎng)”,相對(duì)LoRa采用的是網(wǎng)關(guān)通信,NB-IoT無須另配網(wǎng)關(guān),即可實(shí)現(xiàn)手機(jī)APP端、PC端的管理。從通信費(fèi)用考慮,LoRa通信無需付費(fèi),但是前期部署網(wǎng)關(guān)需要費(fèi)用,適用在節(jié)點(diǎn)密集型地區(qū)使用。NB-IoT在現(xiàn)有的網(wǎng)絡(luò)下,流量包年,以很低的費(fèi)用可以實(shí)現(xiàn)數(shù)據(jù)通信,非常適合在數(shù)據(jù)量比較少的零星節(jié)點(diǎn)使用。綜合考慮,本系統(tǒng)選擇采用NB-IoT實(shí)現(xiàn)低功耗門磁安防系統(tǒng)。
圖1是安防門磁監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖,在需要監(jiān)測(cè)的臺(tái)站門頭內(nèi)側(cè)或者外側(cè)安置NB-IoT門磁,臺(tái)站門磁通信或狀態(tài)數(shù)據(jù)通過NB-IoT基站上傳至門磁服務(wù)器,值班人員或者管理人員可以通過各種終端接入服務(wù)器進(jìn)行數(shù)據(jù)查詢。測(cè)試結(jié)果表明,該系統(tǒng)實(shí)現(xiàn)了傳輸距離遠(yuǎn)、覆蓋范圍廣、功耗低以及能夠?qū)崟r(shí)獲取監(jiān)測(cè)數(shù)據(jù)的設(shè)計(jì)目標(biāo)。
圖1 安防門磁監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖
本文將從硬件設(shè)計(jì)以及服務(wù)端程序開發(fā)等幾部分來介紹。
本設(shè)計(jì)采用低功耗系列芯片STM32L031F6P6作為控制芯片,LPM2100作為通信芯片。STM32L031F6P6非常適合電池供電或者供電來自能量收集的低功耗應(yīng)用場(chǎng)景;LPM2100模塊是上海域格公司開發(fā)的一款多頻段NB-IoT物聯(lián)網(wǎng)無線通信模塊,具有低功耗、高性能、低成本的優(yōu)勢(shì)。
本設(shè)計(jì)采用3.3V電池供電。LPM2100與STM32L031 F6P6采用TTL電平的串口連接,不通信時(shí)STM32L031F6P 6進(jìn)入STOP模式。當(dāng)STM32L031F6P6被定時(shí)器或者外部串口或者外部中斷喚醒時(shí),它根據(jù)設(shè)定時(shí)間間隔,依次讀取干簧管和防拆開關(guān)狀態(tài)。STM32L031F6P6控制LPM2100連接服務(wù)器并發(fā)送狀態(tài)數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通信。當(dāng)門磁模塊在睡眠狀態(tài)時(shí),干簧管或者防拆開關(guān)中有一個(gè)狀態(tài)被改變,則通過中斷喚醒單片機(jī)控制LPM2100連接服務(wù)器并發(fā)送狀態(tài)數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)通信。
門磁模塊電路框圖見圖2。
圖2 NB-IoT門磁模塊電路框圖
圖3是門磁模塊程序流程圖,程序設(shè)計(jì)采用的是KEIL C軟件。系統(tǒng)經(jīng)過RTC和定時(shí)器初始化后進(jìn)入主循環(huán)。如果沒有到定時(shí)器喚醒喂狗的時(shí)間間隔,單片機(jī)進(jìn)入低功耗模式,低功耗模式設(shè)置為RTC、串口和外部中斷3種喚醒模式,RTC喚醒時(shí)間間隔為25秒,系統(tǒng)喚醒后重新進(jìn)行時(shí)鐘設(shè)置和喂狗,防止程序因?yàn)榭撮T狗(IWDG)長(zhǎng)時(shí)間沒喂而復(fù)位。
單片機(jī)低功耗的軟件設(shè)置方法為:在進(jìn)入STOP模式前對(duì)外設(shè)進(jìn)行設(shè)置,未用引腳要設(shè)置成模擬輸入狀態(tài),但用于中斷喚醒的引腳不能設(shè)置為模擬輸入狀態(tài),串口輸入引腳需要設(shè)置為輸入狀態(tài),并且開啟對(duì)應(yīng)的中斷。退出STOP模式后要恢復(fù)時(shí)鐘、恢復(fù)各外設(shè)狀態(tài)。外圍電路設(shè)計(jì)上也要綜合考慮才能使模塊功耗最低。
LPM2100與單片機(jī)之間是通過串口收發(fā)AT指令進(jìn)行數(shù)據(jù)通信,LPM2100與服務(wù)器之間通信協(xié)議是LwM2M,屬于應(yīng)用層協(xié)議,通過UDP方式傳送,協(xié)議數(shù)據(jù)直接采用字符串的形式發(fā)出。LPM2100在通信之前先需要在服務(wù)器上注冊(cè),這樣才能使服務(wù)器唯一識(shí)別設(shè)備。發(fā)送時(shí) UDP流程為:(1)測(cè)試服務(wù)器是否聯(lián)通 ;(2) 創(chuàng) 建 UDP Socket連接;(3)發(fā)送UDP 數(shù)據(jù);(4)關(guān)閉UDPSocket連接。
圖3 主控程序流程圖
服務(wù)器端前端采用JAVA開發(fā),采用B/S結(jié)構(gòu),數(shù)據(jù)庫存儲(chǔ)使用MySQL,通信方式使用的是Socket。
服務(wù)器端數(shù)據(jù)庫主要包含門磁注冊(cè)數(shù)據(jù)表和門狀態(tài)數(shù)據(jù)表。門磁注冊(cè)數(shù)據(jù)庫表包含了MAC值、設(shè)備類型、設(shè)備屬性、創(chuàng)建時(shí)間等幾部分。門狀態(tài)數(shù)據(jù)表記錄設(shè)備編號(hào)、設(shè)備類型、門磁狀態(tài)、事件狀態(tài)、目前電壓值、創(chuàng)建時(shí)間等幾個(gè)字段。
項(xiàng)目歷時(shí)1年完成軟硬件的自主開發(fā)和測(cè)試,在欽州廣播電視發(fā)射臺(tái)半年的實(shí)地測(cè)試中,所有門磁電池供電正常,系統(tǒng)功耗低,待機(jī)電流僅8uA,軟硬件系統(tǒng)運(yùn)行良好,達(dá)到了設(shè)計(jì)要求。本項(xiàng)目在廣播電視發(fā)射臺(tái)站復(fù)雜電磁環(huán)境中能正常工作,為廣播電視臺(tái)站安防監(jiān)控提供了一種新的思路和方案。