甘緒桐,張厚武,何 勇,鄭九鋒
(貴州大學 計算機科學與技術學院,貴州 貴陽 550025)
隨著人們生活質(zhì)量的提高,人們對自己所處的環(huán)境越來越重視。目前,國內(nèi)有很多環(huán)境監(jiān)測系統(tǒng),如周海鴻等設計的基于ZigBee技術的溫濕度監(jiān)測系統(tǒng)[1];杜克明等設計的農(nóng)業(yè)環(huán)境物聯(lián)網(wǎng)監(jiān)測系統(tǒng)[2];戴春霞設計的豬舍環(huán)境因子的測量系統(tǒng)[3];彭占武等設計的雞舍環(huán)境無線監(jiān)測系統(tǒng)[4]等。但已有測量方法的數(shù)據(jù)可靠性有待提高,功耗有待降低。
文中設計的智能環(huán)境監(jiān)測系統(tǒng)主要通過監(jiān)測應用環(huán)境內(nèi)的主要環(huán)境因子,并且通過通用分組無線服務技術與服務器端進行數(shù)據(jù)交互,從而實時地監(jiān)測環(huán)境信息,并有效解決前人設計的部分問題。應用場景工作人員可根據(jù)觀察可視化顯示界面適當調(diào)節(jié)適宜環(huán)境,為保持一個相對穩(wěn)定適宜的環(huán)境提供方便。
基于STM32[5]的智能環(huán)境監(jiān)測系統(tǒng)[6]的總體框架如圖1所示。
圖1 環(huán)境監(jiān)測系統(tǒng)總體框架
監(jiān)測站各個傳感器采集環(huán)境信息(氨氣濃度、大氣溫度、大氣濕度、光照強度、PM2.5、硫化氫濃度、二氧化碳濃度),采集到的信息通過RS-485總線或I2C總線傳輸?shù)綌?shù)據(jù)采集核心模塊,數(shù)據(jù)采集核心模塊經(jīng)過數(shù)據(jù)的分析處理后將信息通過GPRS[7]或藍牙傳輸?shù)椒掌鞫嘶蚴謾CAPP端,服務器端或手機APP端經(jīng)過第二次的數(shù)據(jù)分析處理進行可視化顯示。
數(shù)據(jù)采集核心模塊是環(huán)境監(jiān)測系統(tǒng)下位機監(jiān)測站的核心部分,主要由MCU、電源電路、保護電路、數(shù)據(jù)存儲備份電路、通信接口電路、傳感器接口電路、節(jié)能控制電路等幾部分組成。整體框架如圖2所示。
圖2 數(shù)據(jù)采集核心模塊框架
2.1.1 主控制器
智能環(huán)境監(jiān)測系統(tǒng)的主控制器選用STM32F103 ZET6芯片,芯片為Cortex-M3[8]系列內(nèi)核,32位處理器,主頻72 M,LQFP144封裝,片內(nèi)Flash容量為512 K,片內(nèi)SRAM容量為64 K,標準外設包括有10個定時器,2個12位1-Msample/s模數(shù)轉(zhuǎn)換器、2個IIC接口、5個USART接口、3個SPI端口、12條DMA通道和1個CRC計算單元。與同系列其他處理器相比,增加了EMT,F(xiàn)SMC總線,SDIO接口和2個I2S接口等。
2.1.2 電源電路
綜合主控制器和傳感器所用電壓類型,數(shù)據(jù)采集模塊中共有12 V、5 V和3.3 V三種電壓,電源電路中共有兩種供電方式,一種是開關電源輸入端接家庭常用的220 V,輸出12 V,12 V的電壓可以給氨氣傳感器和光照傳感器供電,12 V電壓另接一路通過L78S05穩(wěn)壓芯片輸出5 V電壓,5 V電壓可以給PM2.5傳感器供電,5 V另接一路通過AMS1117穩(wěn)壓芯片輸出3.3 V電壓,3.3 V電壓可以給IIC型傳感器供電,3.3 V另接一路給MCU供電。
當家庭電源癱瘓時,可啟用第二種供電方式,太陽能電源系統(tǒng)[9]供電。太陽能電源系統(tǒng)由太陽能電池板、鉛酸蓄電池和太陽能電源控制器組成。太陽能電池板采用50 W單晶硅太陽能電池板,最佳工作電壓為18 V,最佳工作電流為2.86 A;鉛酸蓄電池采用12 V、20 Ah;太陽能電源控制器用來作為電源系統(tǒng)的控制中心,控制電源系統(tǒng)的充、放電過程。電源電路部分還包括電量檢測電路,原理如圖3所示。將L78S05輸出端電壓與鉛酸蓄電池輸出電壓做比例減法,使兩者之間的差值電壓變?yōu)?~2.86 V,然后將差值電壓輸入到主控制器的A/D轉(zhuǎn)換引腳,主控制器進行相關運算后得出蓄電池電量。
圖3 電量檢測電路原理圖
2.1.3 數(shù)據(jù)存儲備份電路
數(shù)據(jù)采集核心模塊上加入鐵電存儲器和TF存儲卡進行數(shù)據(jù)存儲備份和數(shù)據(jù)保護,鐵電存儲器[10]采用FM24CL64,直接用來存儲下位機系統(tǒng)工作信息。鐵電存儲器有8 KB存儲空間,可以保證斷電后數(shù)據(jù)不丟失。當鐵電存儲器中數(shù)據(jù)存放達到4 KB后,這部分數(shù)據(jù)將會自動轉(zhuǎn)存到一張4 GB的TF卡[11]中存儲。
2.1.4 通信接口電路
數(shù)據(jù)采集核心模塊與外界通信的方式有GPRS通信和藍牙通信兩種。STM32F103ZET6的USART1和USART2為通用同/異步串行接口,將USART1與SP3232電路連接,再與GPRS通過串口連接與后臺服務器端進行數(shù)據(jù)交互,通信波特率設為9 600 kbps。USART2作為藍牙通信接口,藍牙與智能手機APP也可實現(xiàn)數(shù)據(jù)交互,通信波特率設為115 200 kbps。
2.1.5 傳感器接口電路
智能環(huán)境監(jiān)測系統(tǒng)有IIC型傳感器和RS-485型傳感器兩種,IIC型傳感器SCL接口對應連接主控制器GPIO口的PB6,SDA接口對應連接GPIO口的PB7。主控制器的USART3、USART4、USART5連接RS-485總線通信接口,通過SP3485作為收發(fā)器來實現(xiàn)這種半雙工通信信號的收與發(fā)。
2.1.6 保護電路
各種應用場景環(huán)境復雜多變,為了避免工作人員誤操作、雷擊等產(chǎn)生電流、電壓異常損害系統(tǒng),保證系統(tǒng)的正常運行,數(shù)據(jù)采集核心模塊還設計了兩種保護電路。一種是在核心電路中加入瞬態(tài)抑制二極管和自恢復保險絲來防止大電流和防浪涌保護;另一種是在電源控制器端,當電池低于過放電壓11 V時,控制器會自動切斷負載,保護電池,當電量回升后自動開啟負載,提供低電壓保護。
2.2.1 IIC型傳感器設計
IIC型傳感器包含大氣溫度傳感器[12]、大氣濕度傳感器和硫化氫濃度傳感器。監(jiān)測系統(tǒng)選擇使用SHT15傳感器來檢測大氣溫濕度,SHT15將傳感器元件和信號處理電路集成在一塊小型電路板上,輸出為標定后的數(shù)字信號,傳感器焊接在一個IIC轉(zhuǎn)接板上,SHT15將一個用能隙材料做成的測溫元件、一個電容性聚合體測濕敏感元件聚合在同一芯片上,芯片連接了14位A/D轉(zhuǎn)換器和IIC接口電路;監(jiān)測系統(tǒng)選擇MQ-135模塊來檢測空氣中硫化氫濃度,將數(shù)字信號輸出直接接在單片機引腳,當MQ-135檢測到硫化氫時,比較器LM393引腳的電壓值,跟硫化氫的濃度成正比,當濃度超過閾值時,會觸發(fā)硬件報警(燈閃和蜂鳴器響)。
2.2.2 RS-485型傳感器設計
RS-485型傳感器包含光照強度傳感器、PM2.5傳感器、氨氣濃度傳感器和二氧化碳濃度傳感器。光照強度傳感器選用BH1750FVI模塊,這種模塊成本較低,但存在一個缺點是BH1750FVI模塊量程小,測量范圍只能達到0~65 535 Lux,但可見光最多可達到十幾萬Lux。該系統(tǒng)所用傳感器通過給BH1750FVI模塊添加一個濾光膜片并在傳感器外側加入透光球罩來達到擴大傳感器量程的目的。光照強度傳感器控制電路的MCU選擇STC15W404AS單片機,BH1750FVI采集到的數(shù)據(jù)先通過IIC通信方式傳輸?shù)絾纹瑱C,單片機通過計算和校正得到真實的光照強度值[13],再通過RS-485通信方式傳輸?shù)綌?shù)據(jù)采集核心模塊主控制器上。PM2.5傳感器模塊選用SDS011模塊,通過激光檢測原理,檢測到空氣中0.3~10微米懸浮顆粒物的濃度,內(nèi)置風扇,場景變換響應時間低于10 s,數(shù)據(jù)穩(wěn)定性高,數(shù)字化輸出;氨氣傳感器模塊選用MQ-137模塊,其所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫,傳感器的電導率隨空氣中氨氣的濃度的增加而增大,輸出信號為數(shù)字信號,但該傳感器模塊需通過標準氨氣傳感器進行標定。PM2.5傳感器和氨氣傳感器控制電路的MCU都選用STC15F2K60S2單片機,傳感器模塊通過串口將數(shù)據(jù)傳輸?shù)絾纹瑱C,單片機將數(shù)據(jù)分析處理后通過RS-485通信方式傳輸?shù)綌?shù)據(jù)采集核心模塊主控制器上。二氧化碳傳感器選用MG811模塊,模塊采用固體電解質(zhì)電池原理,通過電化學反應來達到檢測二氧化碳的目的,但由于這種電解質(zhì)傳感器輸出信號的阻抗非常高,并不能直接測量其輸出信號,在控制電路中通過加入一級阻抗變換電路,阻抗變換運算放大器選擇CA3140,將MG811模塊輸出阻抗降低到方便測量的級別,再將信號輸入到單片機,控制電路的MCU選擇ATmega64單片機,單片機通過RS-485通信方式再傳輸?shù)綌?shù)據(jù)采集核心模塊主控制器上。這四種RS-485型傳感器模塊成本相對較低,但通過控制電路處理后得到的數(shù)據(jù)有效性好,可靠性高。
系統(tǒng)一方面通過主控制器節(jié)能,主控制芯片STM32F103ZET6有2.0~3.6 V的工作電壓兼容主流的電池技術,封裝還設有一個電池工作模式專用引腳Vbat,并通過鋰電池給RTC供電,使系統(tǒng)時鐘能掉電后繼續(xù)運行。系統(tǒng)采用低功耗模式,以72 MHz頻率從閃存執(zhí)行代碼,僅消耗27 mA電流,啟動電路使用STM32F103ZET6內(nèi)部生成的8 MHz信號,將微控制器從停止模式喚醒用時小于6μs。另一方面考慮到短時間類雞舍環(huán)境不會陡然變化,系統(tǒng)通過I/O口控制固態(tài)繼電器H3MB-052D來控制設備的通/斷電,設置系統(tǒng)工作5 s后休眠5 s來實現(xiàn)節(jié)省能耗的目的。
數(shù)據(jù)采集儀和后臺服務器端、手機APP端之間設計了一個通信協(xié)議,數(shù)據(jù)按協(xié)議幀格式串行傳送,傳送單位為字節(jié),字節(jié)的串行傳送格式是1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位。協(xié)議幀格式包括針起始符、地址域、控制域、長度、數(shù)據(jù)域、校驗碼、幀結束符。數(shù)據(jù)域包括傳感器代號、傳感器序號、傳感器數(shù)值、電池剩余電量百分比、實時時間、持續(xù)采集時間等;校驗碼采用CRC-16循環(huán)冗余校驗。字節(jié)存放采用小端模式。數(shù)據(jù)采集核心模塊軟件開發(fā)環(huán)境為MDK5,軟件流程如圖4所示。
圖4 數(shù)據(jù)采集核心模塊軟件流程
首先初始化I/O口、RTC、傳感器等,判斷GPRS是否收到數(shù)據(jù),若收到,判斷數(shù)據(jù)是否有效,若有效,則給后臺服務器返回一幀數(shù)據(jù);若GPRS沒收到數(shù)據(jù),需判斷藍牙端是否收到數(shù)據(jù),若藍牙端收到數(shù)據(jù),判斷數(shù)據(jù)是否有效,若有效,則給手機APP端一幀數(shù)據(jù);若藍牙端和GPRS端都沒收到數(shù)據(jù),則判斷是否到達工作時間,若到達工作時間,主控制器就開始采集傳感器數(shù)據(jù),按設置的采集時間向服務器端自動發(fā)送數(shù)據(jù),等采集數(shù)據(jù)時間到達后按設置的休眠時間定時休眠。
圖5為智能環(huán)境監(jiān)測系統(tǒng)應用在雞舍環(huán)境中的后臺網(wǎng)站顯示界面。后臺服務器接收到數(shù)據(jù)監(jiān)測站的數(shù)據(jù)[14]后,會對接收到的數(shù)據(jù)進行數(shù)據(jù)分析處理,之后再顯示到前端界面。管理員也可從數(shù)據(jù)庫中查詢和導出歷史數(shù)據(jù),方便數(shù)據(jù)分析人員更好地進行數(shù)據(jù)對比。雞舍管理人員可根據(jù)雞舍環(huán)境實時情況對雞舍環(huán)境做相應處理,保證雞群有一個良好的生長環(huán)境。
圖5 雞舍應用場景后臺網(wǎng)站監(jiān)測界面
圖6為智能環(huán)境監(jiān)測系統(tǒng)應用在雞舍環(huán)境中的手機APP顯示主界面。主控制器和手機APP端通過藍牙進行數(shù)據(jù)交互,手機APP可對數(shù)據(jù)采集核心模塊進行配置,可設置傳感器參數(shù),可設定下位機監(jiān)測站工作時間和休眠時間,可設置監(jiān)測站地址,也可主動讀取雞舍實時環(huán)境信息,并可通過柱狀圖和動態(tài)曲線顯示,方便直觀。
圖6 雞舍應用場景手機APP主界面
為了提高監(jiān)測系統(tǒng)的可靠性和穩(wěn)定性,系統(tǒng)軟件設計中加入了時間序列神經(jīng)網(wǎng)絡算法[15]和中值濾波算法[16]。系統(tǒng)采集環(huán)境信息中的一些環(huán)境數(shù)據(jù)存在一定的聯(lián)系,如當大氣溫度升高時,大氣濕度一般會下降,當二氧化碳濃度升高時,氨氣濃度、硫化氫濃度、PM2.5會升高,反之亦然,當光照強度升高時,大氣溫度會升高。系統(tǒng)在實驗室收集數(shù)據(jù)一年,將數(shù)據(jù)通過時間序列神經(jīng)網(wǎng)絡算法模型進行記憶,研究出了氨氣濃度、大氣溫度、大氣濕度、光照強度、PM2.5、硫化氫濃度、二氧化碳濃度等各種數(shù)據(jù)之間存在的潛在關系,通過輸入一些環(huán)境數(shù)據(jù),能預測其他一些環(huán)境數(shù)據(jù)。軟件設計中,將濾除與預測值相差較大的數(shù)據(jù)[17]。由于環(huán)境信息不會突變,系統(tǒng)采集核心模塊每5 s采集一次數(shù)據(jù),采集12次數(shù)據(jù)后,將數(shù)據(jù)按大小排序,取數(shù)據(jù)間均值為有效值,將有效值平均后再傳輸?shù)椒掌鞫嘶蚴謾CAPP端。
設計實現(xiàn)的智能環(huán)境監(jiān)測系統(tǒng)功能完善、續(xù)航能力較強、調(diào)試檢修方便。數(shù)據(jù)采集核心模塊和后臺服務器端接收數(shù)據(jù)后通過智能分析篩選錯誤數(shù)據(jù)后,將有效數(shù)據(jù)顯示在前端界面,保障了監(jiān)測系統(tǒng)的可靠性。該系統(tǒng)已在貴州息烽一大型雞舍正常運行半年左右,雞舍工作人員反饋良好。