韓凱 宋海明
摘 ?要:為滿足水產(chǎn)養(yǎng)殖過程中對水環(huán)境實(shí)時(shí)準(zhǔn)確遠(yuǎn)程監(jiān)測的的需求,本文設(shè)計(jì)了一套基于物聯(lián)網(wǎng)技術(shù)的水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測系統(tǒng)。通過分析系統(tǒng)的功能需求,設(shè)計(jì)了以STM32為核心的現(xiàn)場采集單元和搭載Linux系統(tǒng)的Raspberry Pi遠(yuǎn)程監(jiān)測中心,能夠便捷的、實(shí)時(shí)的、遠(yuǎn)程的、多終端的監(jiān)測水產(chǎn)養(yǎng)殖環(huán)境信息,推進(jìn)水產(chǎn)養(yǎng)殖業(yè)信息化發(fā)展。
關(guān)鍵詞:水產(chǎn)養(yǎng)殖;物聯(lián)網(wǎng);STM32;環(huán)境監(jiān)測;Linux系統(tǒng)
引言
近些年,農(nóng)業(yè)信息化越來越受到國家的重視,其中農(nóng)業(yè)部專門針對水產(chǎn)養(yǎng)殖業(yè)提出了“信息化全面支撐現(xiàn)代水產(chǎn)養(yǎng)殖業(yè)轉(zhuǎn)型升級”的指導(dǎo)意見。
據(jù)統(tǒng)計(jì)數(shù)據(jù)顯示,自2009年起國內(nèi)水產(chǎn)人工養(yǎng)殖比例逐年增加,至2019年我國養(yǎng)捕比達(dá)到78:22。水產(chǎn)養(yǎng)殖的關(guān)鍵就是對PH、濁度、溶解氧、電導(dǎo)率、水溫、水流、光照、投飼、吸污、消毒等進(jìn)行監(jiān)測控制。目前在我國,養(yǎng)殖業(yè)多為粗放式經(jīng)營,多采用現(xiàn)場人工監(jiān)測的方法,需要投入大量的時(shí)間、物力、人力。
本文旨在開發(fā)一套結(jié)合物聯(lián)網(wǎng)技術(shù)和傳感技術(shù)的水產(chǎn)養(yǎng)殖環(huán)境監(jiān)控系統(tǒng),能夠便捷的、實(shí)時(shí)的、遠(yuǎn)程的監(jiān)控水產(chǎn)養(yǎng)殖環(huán)境信息。
1 系統(tǒng)整體設(shè)計(jì)
系統(tǒng)整體功能是要對上述水環(huán)境信息進(jìn)行實(shí)時(shí)采集與監(jiān)測,監(jiān)測的頻度和范圍都要符合相關(guān)標(biāo)準(zhǔn),各個(gè)監(jiān)測點(diǎn)信息數(shù)據(jù)能在遠(yuǎn)程監(jiān)測中心進(jìn)行顯示、存儲、處理。
在完成上述功能的同時(shí),也要考慮系統(tǒng)的性能需具備現(xiàn)場采集單元能耗低、系統(tǒng)成本低、數(shù)據(jù)精確性高、操作簡單易上手等特點(diǎn)。
如圖1所示,系統(tǒng)主要分為現(xiàn)場采集單元和遠(yuǎn)程監(jiān)測中心。現(xiàn)場采集單元實(shí)現(xiàn)各傳感器數(shù)據(jù)的采集,并以無線通信的方式將數(shù)據(jù)傳輸?shù)竭h(yuǎn)程監(jiān)測中心。遠(yuǎn)程監(jiān)測中心將傳輸來的數(shù)據(jù)進(jìn)行存儲和處理,實(shí)時(shí)了解各項(xiàng)環(huán)境參數(shù)。
2 硬件設(shè)計(jì)
現(xiàn)場采集單元采用蓄電池加太陽能板的持續(xù)供電方案,選用大容量的12V,8AH鉛蓄電池彌補(bǔ)陰雨天太陽板供電不足,用STM32F103VET6微處理器,具有低成本、高性能、低功耗、豐富的外設(shè)等優(yōu)點(diǎn),滿足系統(tǒng)開發(fā)的需要。
按Modbus協(xié)議采集各從站傳感器數(shù)據(jù),使用微處理器USART接口外接MAX485/MAX232低功耗收發(fā)器,實(shí)現(xiàn)硬件通信。使用微處理器的USART接口實(shí)現(xiàn)與GPRS模塊無線通信的數(shù)據(jù)交互。從站傳感器選用基于RS-485的Modbus RTU傳輸協(xié)議的電化學(xué)傳感器,實(shí)現(xiàn)對PH、濁度、溶解氧、電導(dǎo)率等參數(shù)的測量。
為了降低系統(tǒng)成本,本文選用Raspberry Pi作為遠(yuǎn)程監(jiān)測中心的工作臺終端,基于Linux系統(tǒng)進(jìn)行了相應(yīng)的軟件開發(fā)。
3 軟件設(shè)計(jì)
系統(tǒng)設(shè)計(jì)采用Modbus協(xié)議的單播模式,以RTU傳輸進(jìn)行設(shè)計(jì)。主站程序設(shè)計(jì)采用周期輪詢模式,以定時(shí)器和串口模塊配合使用,實(shí)現(xiàn)Modbus主站對從站傳感器的輪詢。
采集單元設(shè)備注冊到服務(wù)器后,在一個(gè)定時(shí)周期內(nèi),將采集到的實(shí)時(shí)數(shù)據(jù)進(jìn)行應(yīng)用層協(xié)議封裝后生成上報(bào)數(shù)據(jù)幀,其設(shè)計(jì)是基于字節(jié)流的TCP協(xié)議數(shù)據(jù)格式,通過串口發(fā)送到GPRS模塊將數(shù)據(jù)打包上傳。現(xiàn)場采集單元將數(shù)據(jù)幀以串口中斷模式發(fā)送給GPRS模塊,若發(fā)送過程中接收中斷觸發(fā),不予處理,直到數(shù)據(jù)幀發(fā)送完成后處理接收中斷,這樣可以避免數(shù)據(jù)被分包發(fā)送到服務(wù)器,出現(xiàn)接收處理錯(cuò)誤。
在TCP服務(wù)器中,實(shí)現(xiàn)C/S架構(gòu)中的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,負(fù)責(zé)采集單元的連接處理以及之間的雙向通信功能;需要將長久保存的數(shù)據(jù)實(shí)時(shí)寫入數(shù)據(jù)庫進(jìn)行查詢與修改;TCP服務(wù)器還要與用戶界面(UI)進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)數(shù)據(jù)信息的可視化管理。
在Linux系統(tǒng)中創(chuàng)建數(shù)據(jù)庫存儲發(fā)來的數(shù)據(jù)。
[mysql]> CREATE TABLE Area_Binding(AreaId TINYINT PRIMARY KEY,AreaName CHAR(10),DeviceId INT,DeviceStatus BIT,Breed CHAR(15),SensorCount TINYINT,SensorStaId TINYINT);
在Raspberry Pi中安裝Qt運(yùn)行環(huán)境開發(fā)支持多線程的TCP服務(wù)器。
$ sudo apt-get install gcc g++ qt5-default qtcreator
搭建服務(wù)器的主要操作如下:
定義Server類,公有繼承QTcpServer類;
定義serverThread類,公有繼承QThread類;
定義MySocket類,公有繼承QTcpSocket類;
數(shù)據(jù)庫調(diào)用使用Qt封裝的數(shù)據(jù)庫相關(guān)類實(shí)現(xiàn)。
UI實(shí)現(xiàn)的系統(tǒng)架構(gòu)圖如圖5(b)所示,其元素由QML實(shí)現(xiàn),包括文本、圖片、按鈕、菜單、表格等元素;QML Application負(fù)責(zé)動態(tài)加載QML文件,與業(yè)務(wù)邏輯(Biz)層交互;Biz層負(fù)責(zé)業(yè)務(wù)邏輯和復(fù)雜的運(yùn)算,并協(xié)調(diào)上層和下層的調(diào)用和轉(zhuǎn)換;開放式圖形庫OpenGL用于渲染2D、3D矢量圖形的跨語言、跨平臺的應(yīng)用程序編程接口(API);DirectFB是一個(gè)提供輕量級硬件圖形加速、輸入設(shè)備處理的抽象的圖形庫;System(DB,Kernel)提供與系統(tǒng)底層相關(guān)的支持。
4 結(jié)論
本文為滿足水產(chǎn)養(yǎng)殖過程中對于環(huán)境自動監(jiān)測的需求,在綜合考慮功能和性能的基礎(chǔ)上,結(jié)合物聯(lián)網(wǎng)技術(shù)和傳感技術(shù)從硬件設(shè)計(jì)和軟件實(shí)現(xiàn)兩方面方面開發(fā)了一套水環(huán)境監(jiān)測系統(tǒng),以達(dá)到降低工作人員的勞動強(qiáng)度,提高水產(chǎn)品產(chǎn)量的目標(biāo)。
參考文獻(xiàn)
[1] ?王莎. 2016年全國漁業(yè)經(jīng)濟(jì)統(tǒng)計(jì)公報(bào)[J]. 中國水產(chǎn),2017(07):23-24.
[2] ?顏波,石平. 基于物聯(lián)網(wǎng)的水產(chǎn)養(yǎng)殖智能化監(jiān)控系統(tǒng)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào),2014,45(1):259-265.
[3] ?李卓然. 基于嵌入式Linux的水產(chǎn)養(yǎng)殖物聯(lián)網(wǎng)監(jiān)測系統(tǒng)設(shè)計(jì)[J]. 農(nóng)機(jī)化研究,2019,41(11):235-239.
[4] ?孟一飛,謝堂健,楊文慧,等. 基于ZigBee與Modbus的智能農(nóng)業(yè)灌溉系統(tǒng)[J]. 物聯(lián)網(wǎng)技術(shù),2017,007(010):91-96.
[5] ?王明磊. 基于無線終端的水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測與控制系統(tǒng)研究與設(shè)計(jì)[D].