引言
長期以來,中國農業發展較為落后,科學技術對農業生產的貢獻率較低。隨著物聯網技術的發展,農業智能化時代逐步到來。經過對陜西省蒲城縣等農業基地的多次實地考察,發現存在著農業自動化程度低、無法遠程監控、增產因素難以把控等問題,因此對大棚內作物的生長狀況進行實時監控十分必要。本系統以分布式傳感器節點、NB-IoT數據鏈、云端服務器為關鍵組分,設計了具有遠端監控作物生長狀態,調節環境參數等功能的智能農業輔助控制系統。
1 系統設計
本系統整體可分為4部分:第1部分是以單片機(MCU)和NB-IoT模塊為核心的節點主體;第2部分是以透傳云、服務器為核心的遠程分析及數據傳輸系統;第3部分是包括DHT11溫濕度傳感器、CCS811二氧化碳傳感器、BH1750光照度傳感器等定制化外置傳感器和繼電器、電磁閥等控制器;第4部分是樹莓派微型電腦和NB-IoT模塊節點以及攝像頭等數據量較大的傳感器。樹莓派上可讀取攝像頭拍攝畫面,運行本地分析程序,將分析結果通過NB-IoT上傳至透傳云。整體系統框架圖見圖1。
通過引入視覺分析,使用動態閾值離散化和FCN(全卷積神經網絡)等語義分割技術對棚區木耳的長勢進行動態追蹤,有效解決了當前采摘效率較低的問題。將傳感器和中心節點模塊化,用戶也可通過選裝相關配件、傳感器來選擇相關服務。通過對農作物生長狀況歷史記錄分析,系統可半監督學習作物生長全過程的最優環境參數,對整個生長周期有更全面的了解和調整,從而有效實時地監測大棚內作物的生長狀況,并自動作出相應調整,真正實現智能農業生產。
1.1 系統控制算法
系統在安裝后,節點向服務器進行注冊,發送安裝的傳感器和控制器的種類和個數。接著初始化用戶界面,顯示各個傳感器和控制器的狀態,儲存各傳感器的歷史數據表格,以供用戶在圖形化界面上選擇自動控制的流程和條件。服務器根據各節點的運算能力及接入的傳感器和控制器,將每個控制流程平均分布加載到各節點。最后對NB-IoT兩次喚醒之間的休眠間隔進行配置,并使之實現同步喚醒。當NB-IoT休眠時,不進行通訊,各節點和服務器獨立運行。需要發送的數據自動存入緩沖區,等待NB-IoT喚醒后再進行發送。設定控制算法流程示意圖見圖2。
1.2 系統工作過程
節點將接收到的傳感器數據輸入到控制中進行計算,得出控制指令,并將得出的控制指令存入緩沖區等待發送。再讀取各個傳感器,將數據儲存至緩沖區等待上傳。若數據超過報警上下限則強制喚醒NB-IoT,向服務器發送報警信息;反之則進入低功耗模式,等待NB-IoT模塊定時喚醒,以減小功耗。
服務器通過分析歷史數據,結合基地中心上傳的長勢數據,得出目前狀態的種植方案,更新控制過程的各個參數。待節點的NB-IoT喚醒后,各節點向服務器上傳最新傳感器數據,在服務器上更新控制參數,進而向其他節點發送控制指令(或接收其他節點發來的控制指令)。從其他節點接收本節點內控制算法所需要的數據。最后結束一次工作循環,使NB-IoT休眠。
2 系統功能實現
2.1 硬件部分
2.1.1 節點探針模塊
采用STM32F103C8T6作為微控制器(MCU),其功能強大且價格低廉。將每塊單片機封裝成一個監測“探針”,置于大棚中的監測點處,實現對大棚內的空氣溫濕度、光照強度和二氧化碳濃度的實時記錄,并將數據上傳至上位機,以便農業工作人員依據實地情況及時作出處理。
2.1.2 溫濕度檢測模塊
溫濕度測量采用數字傳感器DHT11,該傳感器依靠單總線協議與MCU(單片機)進行通信。在未接收主機發送的開始信號時,傳感器處于超低能耗狀態,盡可能地節省消耗。同時它應用了專用的數字模塊采集技術和溫濕度傳感技術,可確保高的測量可靠性與長期穩定性。DHT11單總線協議時序圖見圖3。
2.1.3 光照強度檢測模塊
光照強度測量采用數字型光強度傳感器BH1750,它具有較高的分辨率,利用它可探測到變化范圍在1~65535 lx內的光強數據。傳感器有6種分辨率模式可供選擇,基于對實際情況的分析,采用了連續H分辨率模式,該模式工作在11 lx分辨率下,一次測量時長約為120 ms。依照芯片對應的通信時序圖,我們編寫了基于I 2 C通信協議的使用程序。I 2 C協議時序圖見圖4。
2.1.4 二氧化碳濃度檢測模塊
二氧化碳濃度是農業生產中一項較為重要的參數,在考慮了工作性能、實際需求、傳感器體積、成本等多個方面之后,最終確定使用Cambridge CMOS Sensors公司生產的超低功耗微型氣體傳感器CCS811。
2.2 軟件部分
2.2.1 服務器搭建
本系統通過租用云服務器將NB-IoT采集的數據保存下來,進行數據管理。通過瀏覽器打開我們的web端界面,輸入對應的NB-IoT設備ID,可實現web端與NB-IoT設備的連接。web端程序監測NB-IoT的實時情況,一旦NB-IoT采集的數據更新,即可立即獲取最新的大棚數據。這里同樣通過程序連接NB-IoT模塊,利用自定義函數來獲取賬號下的大棚數據信息。獲取的數據分別對應著大棚號、節點號、棚內溫度(℃),空氣濕度(%)、光照強度(lx)以及二氧化碳濃度。
為了方便數據的管理,我們使用關系型數據庫管理系統MySQL,存儲數據信息。通過建立獨立數據庫,在庫內為每個大棚單獨建表,各自存儲對應的數據,表的數量可根據當前狀況進行增添或刪減,利于后期項目管理。當節點有需要時,服務器可回歸分析歷史記錄,得出對當前情況最有利的參數值。
在ODBC驅動的輔助下,實現了JavaScript和MySQL數據庫的連接,當JavaScript獲取NB-IoT更新的數據時,數據即可有序存入庫中。
2.2.2 用戶界面實現
為了實現直觀顯示用戶所有設備狀態及關鍵數據,遠程控制大棚設備運作等功能,界面每個賬戶下的設備在首頁以卡片形式展示,用戶可看到各個設備所監測指標的數值及當前設備的在線狀態。用戶在界面點擊單個卡片便可進入詳情頁面,查看該設備上的具體數據及圖表化形象展示。
配置適配器MyFragmentPagerAdapter,創建ViewHolder 并定義item點擊回調接口。用TabLayout控件,設置監聽并重寫onTabSelected方法。利用Adapter實現各個Fragment切換,并用RecyclerView來實現在頁面中添加列表式的item,同樣需要配置適配器RvAdapter。每個item配置但單獨的xml文件。各個item點擊的效果由item_selector.xml來實現。
利用Android下的廣播機制,通過自定義的UsrCloudClient、UsrCloudClientService等Java類,來連接NB-IoT設備并進行實時數據更新與獲取。
2.2.3 作物長勢分析系統實現
本系統通過網絡攝像頭對圖像進行采集后,先對圖像進行語義分割。進而采用FCN(全卷積網絡)對語義進 行分割,通過預先劃分區域的圖像數據集訓練后,可對任意場景和角度將作物區域進行分割。相比傳統的(Mask)蒙版劃分適應性更強,可靠性更高。典型FCN網絡架構見圖5。
-
單片機
+關注
關注
6067文章
44969瀏覽量
649703 -
控制系統
+關注
關注
41文章
6776瀏覽量
112059 -
NB-IoT
+關注
關注
413文章
1452瀏覽量
186573
發布評論請先 登錄
評論