于鐳+崔憲偉
摘 要:針對傳統(tǒng)大棚環(huán)境檢測儀器存在的不足,文中結合大棚實時監(jiān)測的客觀要求,提出了一種基于GPRS網(wǎng)絡和485總線的無線采集器設計方案。該采集器以微處理器STM32和SIM800A為核心,完成了采集器的硬件設計。無線采集器下行通過485總線與傳感器進行通信,上行通過GPRS與OneNet平臺通信。實驗測試結果表明,該采集器工作穩(wěn)定,容易搭建,成本低,可以實現(xiàn)大棚環(huán)境的遠程實時在線監(jiān)測,滿足用戶需求。
關鍵詞:STM32;GPRS;485總線;OneNet
中圖分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2017)06-00-03
0 引 言
長期以來,用戶對大棚數(shù)據(jù)的采集主要通過人工方式進行,不僅浪費了大量人力,還存在采集不及時,誤讀等不足,無法滿足用戶對大棚環(huán)境的及時監(jiān)測要求。如今,實時準確的對大棚環(huán)境進行檢測,對大棚環(huán)境的優(yōu)化控制與提高作物的產(chǎn)能具有重要意義。
本文所設計的采集器是采集系統(tǒng)的核心部件,利用485總線與傳感器通信,實時讀取傳感器數(shù)據(jù),并通過GPRS將數(shù)據(jù)傳送至OneNet云平臺。使得用戶能夠通過手機App或登錄網(wǎng)頁及時準確地了解大棚的環(huán)境情況,既節(jié)約了人力,又提高了采集的準確性與實時性,大大減少了搭建和檢測成本。
1 總體方案
采集器由RS 485采集模塊、電源模塊、液晶屏模塊及GPRS無線通訊模塊組成,系統(tǒng)框圖如圖1所示。首先采集器采用Modbus協(xié)議通過RS 485總線與傳感器進行通訊,采集數(shù)據(jù),再由STM32進行數(shù)據(jù)處理;數(shù)據(jù)經(jīng)處理后由液晶屏顯示并經(jīng)GPRS模塊SIM800A將數(shù)據(jù)傳送至云平臺。終端用戶通過網(wǎng)絡訪問、查詢需要的數(shù)據(jù)。
2 采集器的硬件設計
采集器采用ST公司Cortex-M3內(nèi)核的32位增強型微控STM32F103RCT6作為控制核心,此芯片專為高性能、低成本、低功耗的嵌入式應用設計。Cortex-M3內(nèi)核支持Thumb指令集,具有很高的指令效率。STM32單片機具有很多高性能外設。內(nèi)置64 KBSRAM、512 KB Flash,不僅具有豐富的通信接口I2C,USART、CAN、USB以及以太網(wǎng)等,還具有12位的DAC模塊及DMA控制器。尤其適合高速、大容量的分布式采集系統(tǒng)。以本文的STM32F103RC為例,其具有3個12位的ADC、12位DMA控制器,4個定時器,5個USART、1個USB、1個CAN、2個I2C、2個I2S和3個SPI。STM32F103RC的工作頻率為72 MHz。STM32微控制器的性能高,且價格比32位的ARM處理器和DSP低,完全滿足無線采集器的設計要求。
2.1 RS 485通訊模塊設計
RS 485通信方式具有結構簡單,技術成熟,價格低廉,傳輸距離遠等優(yōu)點,廣泛應用于工業(yè)現(xiàn)場。RS 485總線采用平衡發(fā)送和差動接收方式進行通信,同時使用主帶多從的通信方式,最多可接256個設備,適合一主機多從機的使用場合,因其具有傳輸距離遠,傳輸速率高等優(yōu)點而被廣泛使用。此次使用的傳感器集成了RS 485通信協(xié)議。采集器采用Modbus協(xié)議與RS 485通信方式進行傳感器數(shù)據(jù)的采集。該采集器的RS 485接口電路主要由低功耗單雙工RS 485收發(fā)器MAX485組成,符合RS 485串行協(xié)議的電氣規(guī)范,數(shù)據(jù)傳輸速率可達10 Mb/s。此芯片可使STM32通過USART串口方便接入RS 485串口總線。設計電路圖如圖2所示。其中,485RXD3和485TXD3分別對應STM32單片機USART1的發(fā)送和接收,485DE控制RS 485數(shù)據(jù)通訊的傳輸方向。
2.2 通訊模塊
采集器的通訊模塊采用SIM800A GPRS模塊,該模塊是一款兩頻GSM/GPRS模塊, SMT封裝,性能穩(wěn)定,外觀小巧,性價比高。SIM800A的工作頻率為GSM/GPRS 900/1 800 MHz,可低功耗實現(xiàn)語音、SMS和數(shù)據(jù)信息的傳輸。SIM800A的尺寸為24 mm×24 mm×3 mm,適用于各種緊湊型產(chǎn)品的設計需求。模塊有AT指令集接口,支持文本和PDU模式的短信與嵌入式TCP/UDP協(xié)議。SIM800A串口傳輸速率的范圍為1 200~115 200 b/s。模塊主要由GSM基帶、存儲器、GSM射頻、天線接口等組成。
SIM800A電路圖如圖3所示。
3 軟件設計
無線采集主要有STM32對下行485設備數(shù)據(jù)的采集和對采集的數(shù)據(jù)進行處理并上傳云平臺。
軟件總流程如圖4所示。
STM32通過SIM800A將處理后的數(shù)據(jù)通過GPRS 網(wǎng)絡傳輸?shù)皆破脚_,上位機PC和手機可以隨時隨地遠程監(jiān)控大棚。通信前需要將SIM800A進行軟硬件初始化,之后STM32輪詢下發(fā)采集傳感器的數(shù)據(jù),當遇到采集超時或者幀錯誤時做相應的處理,按照云平臺的設計將采集、處理后的數(shù)據(jù)上傳,循環(huán)執(zhí)行上述步驟。
3.1 Modbus通信協(xié)議和程序設計
RS 485總線只定義了網(wǎng)絡的物理層,本文采用工業(yè)中廣泛使用的Modbus協(xié)議進行STM32與各傳感器通信。Modbus協(xié)議按照主—從方式進行網(wǎng)絡通信,即只有一個主設備,其他設備根據(jù)主設備的指令做出相應的回應。Modbus協(xié)議建立了主設備查詢的格式,即設備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、錯誤檢測域。本文采用單獨與每個從設備通信的方式。Modbus有兩種數(shù)據(jù)傳輸方式(ASCII與RTU),本文中,STM32和傳感器采用RTU傳輸方式。
信息地址包括2個字符(ASCII)或8位(RTU),有效的從機設備地址范圍為0~247(十進制),各從機設備的尋址范圍為1~247。主機把從機地址放入信息幀的地址區(qū),并向從機尋址。從機響應時,把自己的地址放入響應信息的地址區(qū),讓主機識別已作出響應的從機地址。設置傳感器的地址和串口ModbusRTU的通信格式就可以接收STM32的詢問指令,并返回響應。本文中,STM32采用對各傳感器輪詢的方式進行數(shù)據(jù)指令采集,各傳感器判斷地址是否與自己的地址相同,若相同則返回響應,若不相同則不做處理。當STM32遇到采集超時或者幀錯誤時應做相應的處理,接收應答,比較校驗碼,若正確則執(zhí)行信息解析,否則重發(fā)查詢信息。ModbusRTU幀格式見表1所列。
3.2 GPRS通信程序設計
GPRS網(wǎng)絡是實現(xiàn)現(xiàn)場終端與云平臺進行數(shù)據(jù)交換的橋梁。采集器開機后,STM32對SIM800A進行GPRS初始化,其發(fā)送指令如下:
Sim800a_send_cmd("AT","OK",300);
sim800a_send_cmd("AT+CGCLASS=\"B\"","OK、",300);
sim800a_send_cmd("AT+CGDCONT=1,\"IP\",\"CMNET\"","OK",3000);
sim800a_send_cmd("AT+CGATT=1","OK",300);
sim800a_send_cmd("AT+CIPCSGP=1,\"CMNET\"","OK",300);
sim800a_send_cmd("AT+CLPORT=\"TCP\",\"2000\"","OK",300);
sim800a_send_cmd("AT+CIPMODE=1","OK",300);
sim800a_send_cmd(""AT+CIPSTART=\"TCP\",\"183.230.40.39\",\"876\"","CONNECT”,500");//與平臺建立TCP連接
采集器與OneNet云平臺建立連接后,通過EDP協(xié)議方式將采集的數(shù)據(jù)上發(fā)OneNet云平臺。上傳溫度和濕度需發(fā)送如下主要指令:
EdpPacket *send_pkg; send_pkg = PacketConnect1((const int8_t *)"設備ID" (const int8_t *)"設備鑒定");
GPRS初始化結束后,就實現(xiàn)了采集器與OneNet平臺建立ModbusTCP連接。
GPRS與OneNet平臺之間的通信方式為Modbus協(xié)議。OneNet支持的Modbus協(xié)議基于TCP連接,即Modbus over TCP,OneNet作為主機,將數(shù)據(jù)封裝在TCP數(shù)據(jù)中進行數(shù)據(jù)收發(fā),利用DTU的簡單透傳能力,可實現(xiàn)總線設備與平臺的Modbus協(xié)議通信,廣泛應用到使用Modbus協(xié)議的多種行業(yè)中。具有如下功能特點:
(1)長連接協(xié)議。
(2)OneNet平臺作為Modbus主機,周期性下發(fā)主機命令。
(3)通過單條數(shù)據(jù)流的屬性確定單條下發(fā)命令的內(nèi)容及下發(fā)周期。
(4)自動將終端上報的數(shù)據(jù)轉(zhuǎn)化為數(shù)據(jù)流中的數(shù)據(jù)點。
(5)可預先設置處理公式,對數(shù)據(jù)進行初步處理。
采集器與OneNet平臺保持長連接,一方面將OneNet下發(fā)的網(wǎng)絡數(shù)據(jù)轉(zhuǎn)化為總線形式數(shù)據(jù),發(fā)送至總線,另一方面可將總線設備回復的總線數(shù)據(jù)轉(zhuǎn)化為網(wǎng)絡數(shù)據(jù)發(fā)送至平臺,完成平臺對整個總線設備的數(shù)據(jù)采集及控制。采集器與OneNet平臺設備進行連接,以產(chǎn)品ID和建立設備時輸入的號碼、密碼為參數(shù),按以下順序序列化報文,發(fā)送至平臺,建立設備連接。設備連接格式見表2所列。
4 系統(tǒng)測試
該采集器進行遠程監(jiān)測實驗,OneNet平臺的界面如圖5所示。圖5分別展示了一周時間內(nèi)溫度、光照、二氧化碳濃度、溫度的檢測數(shù)據(jù)。從遠程設備訪問OneNet平臺,發(fā)現(xiàn)檢測數(shù)據(jù)與現(xiàn)場數(shù)字485傳感器的檢測結果相同,且監(jiān)測穩(wěn)定,實時性好,數(shù)據(jù)較傳統(tǒng)現(xiàn)場檢測設備的準確性高,滿足了用戶的遠程實時監(jiān)測需求。
5 結 語
本文提出了一種無線采集器設計方法,充分利用STM32豐富的通信接口和高速處理能力,實現(xiàn)485串口轉(zhuǎn)GPRS無線,并且通過免費的OneNet平臺能夠很好地查詢采集到的數(shù)據(jù),降低了開發(fā)和使用成本,可以適應跨區(qū)域、遠距離的設備監(jiān)測,有較高的應用價值。
參考文獻
[1]李敏,王憑,白凱.GPRS在嵌入式數(shù)據(jù)采集系統(tǒng)的應用[J].微計算機信息,2008,24(5):30-32.
[2]梁萬勇,江泳,崔光照.基于GPRS的無線污水監(jiān)測系統(tǒng)[J].微計算機信息,2008, 24(25):173-174.
[3]孫剛,吳文彪,鄭文剛,等.采用MODBUS的灌溉用水遠程自動抄表系統(tǒng)[J].農(nóng)業(yè)工程學報,2008,24(S2): 76-80.
[4]彭道剛, 張浩, 李輝,等.基于Modbus協(xié)議的ARM嵌入式監(jiān)測平臺設計與實現(xiàn)[J]. 電力自動化設備,2009,29(1):115-119.
[5]田晉羽,吳迪,劉建秋.基于RS485的現(xiàn)場總線監(jiān)控系統(tǒng)的設計[J].中國科技博覽,2009(10):105.
[6]管繼剛.物聯(lián)網(wǎng)技術在智能農(nóng)業(yè)中的應用[J].通信管理與技術,2010(3):34-37,52.
[7]王鐵流,馮正乾,周尚.基于SIM900的無線遠程海洋監(jiān)測終端機的設計[J].電子測量技術,2012(12):108-111.
[8]潘良,劉宏立.GPRS技術在智能公交管理系統(tǒng)中的應用與研究[J].計算機工程與科學,2009(11):153-155.
[9]徐利謀,黃長遠.基于GPRS和ZigBee的城市路燈監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].物聯(lián)網(wǎng)技術,2016,6(6):34-35.
[10]劉安厚.基于GPRS的電梯遠程監(jiān)控系統(tǒng)[D].重慶:重慶大學,2009.