朱福英,陳文印,吳 婧,林宏河,林陳隆
(福建信息職業技術學院物聯網與人工智能學院,福州 350000)
近年來,互聯網和物聯網技術發展迅猛,相關技術也逐步在農業中得到應用,進一步推動了設施農業的進步[1-2]。設施農業是世界現代化農業的重點發展方向,代表了目前農業的最高水平。設施農業最重要的任務之一是對設施內植物的生長環境進行監測并調控,使設施內的環境始終處于適宜的范圍,保證植物健康成長。其中設施內的溫度和濕度是最重要的兩個參數,尤其是溫度對植物的成長有著舉足輕重的作用。
有線測控法是設施農業中較為常見的溫濕度的監測手段,但該方法存在施工繁瑣、維護不便等缺點,成本也相對較高。若項目需要改建,往往需要對大量的傳感器進行拆除重新安裝,維護升級難度大[3-4]。越來越多的研究人員使用了無線傳輸替代有線通信,常見的無線通信有ZigBee、lora、4G、5G 等[5-7]。無線傳感網絡(wireless sensor networks,WSN)的溫濕度測量控制系統在各方面都有著廣泛的應用前景,例如:農業生產、倉庫管理和工業制造等。
本文以目前應用比較廣泛的ESP32 模塊作為主控模塊,利用開源的物聯網平臺Things-Board 作為云平臺,研發了一套可靠、實用的溫濕度監測系統。ESP32有多個TTL串口通信,加上485外圍電路,能夠實現同時采集多個溫濕度設備的值。ESP32 還可以實現Wi-Fi 通信,加上http通信功能就能將溫濕度實時上報至物聯網云平臺。ThingsBoard開源物聯網平臺能夠支持多種通信協議,包括http和MQTT 通信協議,還支持規則鏈和組態。該系統穩定可靠、搭建簡單,并且部署靈活、擴展性好,現場施工也相對簡單。
溫濕度監控系統可以分為三個部分,第一部分是具有485通信能力的溫濕度傳感器,主要負責采集環境中的溫濕度;第二部分是以ESP32 作為主控模塊的物聯網采集網關,同時具有Wi-Fi 和485 通信能力;第三部分是應用較為廣泛的開源物聯網平臺ThingsBoard,作為系統的云端模塊。系統架構如圖1所示。

圖1 系統架構圖
485的溫濕度設備是最常用的物聯網設備之一,通過485總線可以很容易擴展溫濕度設備數量,系統具有較好的擴展性。設備使用Modbus協議,也可以很容易和其他系統兼容。
加上一些簡易的外圍電路,ESP32同時具備485 通信和Wi-Fi 通信能力。結合485 和Modbus協議,網關通過輪詢的方式,能夠采集多個溫濕度值,然后將這些值暫時存儲在網關中。預先設置好熱點的名稱和密碼,連上Wi-Fi后通過HTTP通信協議將存儲的溫濕度值上報至云平臺。
參考官方文檔,搭建好云平臺后臺,配置好設備通信方式,ThingsBoard 就可以接收數據。接收到數據后,ThingsBoard 會將數據儲存到數據庫,若要更好地查看數據,可以配置數據面板,利用網頁就能查看實時數據和歷史數據。
硬件電路包括ESP32 主控模塊電路、電源模塊電路、指示燈電路、按鍵電路、繼電器模塊電路、開關量輸入電路、485通信電路、溫濕度設備組成,電路結構如圖2所示。

圖2 硬件系統架構圖
(1)ESP32主控模塊
主控模塊采用樂鑫信息科技的ESP32 系列芯片為基礎的模組,該芯片為Wi-Fi加藍牙的雙模雙核芯片,主頻高達240 MHz,支持串口通信、SPI 通信接口、數模轉換、模數轉換接口[4]。模組將引腳引至兩側的排針,可以方便連接到外部電路。
(2)電源模塊
電源模塊采用MIC29302 和HT7533 兩款電源芯片組合設計。市電輸入后被轉為12 V 直流電源,MIC29302 用于12 V 降壓至5 V,HT7533將5 V 電壓降至3.3 V,兩款都是低壓差線性穩壓電路,可以使用較少的外圍元器件就可以達到較好的降壓效果。電源電路如圖3所示。

圖3 電源電路
(3)指示燈和按鍵
指示燈和按鍵用于用戶交互,通過指示燈可以判斷是否電源和模組工作正常,按鍵可以用于切換模組的工作狀態。按鍵和指示燈電路如圖4所示。

圖4 按鍵和指示燈電路
(4)485通信
系統采用SP3485 作為TTL 和485 轉換芯片,該芯片滿足RS-485 標準,最高速度可以達10 Mbps。最大支持32 個擴展芯片,滿足系統應用需求。485電路如圖5所示。

圖5 485電路
(5)溫濕度設備
溫濕度設備選用的是具有485通信的數字式溫濕度傳感器,該設備采用的傳感器是SHT20,該傳感器有著0~100%的濕度測量范圍,3%的精度,溫度測量范圍是-40℃~125℃,精度為0.5℃。溫濕度設備接線如圖6所示。

圖6 溫濕度接線圖
ThingsBoard 是目前Github 上最流行的開源物聯網平臺之一,該開源平臺能夠實現物聯網設備的接入并提供綜合物聯網解決方案,功能眾多,分別是海量連接、在線監控和數據存儲等[7]。
ThingsBoard 是一個基于物聯網和產業特點應運而生的開放平臺,不僅適用于各種網絡環境及協議類型,還可以為各類傳感器和智能硬件提供快速接入與大數據服務等[8]。利用該開源平臺可以快速實現物聯網項目。ThingsBoard云平臺還支持多種協議接入,包括COAP 協議、MQTT 協議以及HTTP 協議[9]。
ThingsBoard 平臺可以運行在Linux 環境中,本文所用的Linux 發行版本是Ubuntu 18.04 桌面版,該版本的操作系統比較穩定。
基于ThingsBoard 進行設計的遠程物聯網平臺能夠實現植物工廠環境數據的可視化處理以及用戶遠程操控,完成數據的接收、存儲以及指令下發等功能。用戶只要通過移動設備或個人電腦登錄遠程云平臺就能夠實時監控植物工廠生長環境[6]。
在使用ThingsBoard 服務器之前,要先對其進行安裝,詳細的安裝教程可參考ThingsBoard官方網站的教程。
進入Ubuntu 命令操作界面后,輸入“sudo service thingsboard start”的指令,會彈出輸入密碼的指令,輸入正確密碼之后,若是沒有出現報錯行為,則表示ThingsBoard服務器啟動成功。接下來,查詢當前IP 地址。在終端輸“ifconfig”,彈出的信息中inet 后面的IP 地址就是平臺的IP地址。
獲得IP 地址后,打開瀏覽器,在地址欄輸入“IP:8080/login”,就可以進入ThingsBoard 平臺的登入界面,如圖7所示。

圖7 ThingsBoard平臺的登入界面
登入賬號,進入租戶界面,如圖8所示。

圖8 ThingsBoard平臺的租戶界面
在ThingsBoard 平臺上,需要對設備和儀表板庫這兩部分模塊進行配置,一是方便HTTP的連接,二是將數據進行可視化操作。首先對設備管理模塊進行配置,在首界面中首先點擊“設備”功能,然后在彈出的界面上點擊“添加設備”,最后在彈框中輸入設備名稱即可成功添加設備。
其次,對看板進行配置。在儀表板庫中添加儀表板,添加步驟與添加設備類似。儀表板添加成功后,打開該儀表板,點擊右下角的圓形編輯標志,進入編輯模式。進入之后,點擊添加新的部件,選擇創建新部件。在選擇部件包中選擇“Charts” 中的“Timeseries Line Chart”,點擊該部件,添加溫度和濕度兩個數據源,再點擊完成應用更改。至此,ThingsBoard平臺搭建完成。設備上傳數據,用戶就可以隨時查看溫度和濕度數據的波動情況,如圖9所示。

圖9 ThingsBoard平臺儀表板界面
嵌入式代碼是基于Visual Studio Code 中的PlatformIO 集成開發環境下進行的代碼編寫,采用模塊化編程的設計思想,將各個功能拆分為多個程序模塊,再將各個模塊銜接在一起,用C/C++語言編程實現。程序流程如圖10所示。

圖10 程序流程
本系統的嵌入式軟件設計及平臺連接主要是通過ESP32 的程序設計進行實現。該程序主要包含了Wi-Fi通信驅動、數據采集和平臺連接三個模塊。
Wi-Fi 通信程序設計主要負責設置Wi-Fi 連接模式,確認連接的Wi-Fi名稱和密碼,然后初始化Wi-Fi,與ThingsBoard 處于同一個Wi-Fi 站點下。
數據采集程序設計主要利用Modbus 協議并通過串口下發指令,采集到溫濕度數據后將數據打包。
平臺連接程序設計主要處理HTTP 協議代碼,利用該協議與ThingsBoard 進行連接以及數據傳輸。
Wi-Fi 是使用率最多的無線通信網絡之一,而Wi-Fi 的技術研發門檻和產品成本都相對較低,技術開發難度也小,并且許多設備都支持Wi-Fi 連接[10]。因此本系統采用Wi-Fi 作為無線通信網絡。
其主要的Wi-Fi功能代碼如下:

溫濕度數據的采集程序,主要實現對溫濕度信息的處理和收集。程序邏輯結構如下:首先對ESP32 的串口進行初始化配置,調整串口參數,與傳感器串口通信參數保持一致。初始化完成后,串口發送指令至傳感器,將返回的數據保存至數組中,利用中間參數獲取溫濕度的值。
參考代碼如下:

平臺連接采用HTTP 協議來實現。HTTP 協議屬于應用層協議,通過TCP/IP 協議簇傳遞數據,可分為客戶端和服務端兩個部分。客戶端主要通過HTTP向服務端請求資源,若是服務端接收到請求,則會響應客戶端[11]。
系統使用的是HTTP客戶端。該程序設計邏輯如下:首先,聲明一個HTTP客戶端對象,對其進行初始化。其次,查詢設備的訪問令牌,以便確認上傳數據的路徑[12]。接著設置HTTP的請求方式,請求頭文本類型和文本數據。最后設置HTTP 客戶端斷開連接,防止長時間不響應的情況。
參考代碼如下:

硬件電路焊接后,需要檢查是否存在虛焊的情況,排查接線情況,然后通電后查看電路是否有異常,例如有無冒煙和發燙。若上電后沒有問題,下載代碼運行,查看指示燈是否按照預期閃爍,然后通過路由器檢查是否有設備連接,若有說明ESP32 運行正常。硬件設備如圖11所示。

圖11 硬件實物圖
硬件設備沒有問題后,就要跟平臺進行聯合調試,本系統采用模塊化編程,在調試的過程中可以對各個模塊進行分別測試,提高調試效率。
連接平臺后進入面板查看數據,出現溫濕度數據后,查看溫濕度上報的時間和頻率。然后可以用手捂住溫濕度設備,讓溫度和濕度都發生變化,再在平臺觀察數據變化情況,若溫濕度發生變化,則系統運行正常。溫濕度上報后,數據面板結果如圖12所示。

圖12 Thingsboard面板界面
本文提出并設計了一套植物工廠無線溫濕度采集系統,結合了電子技術和通信技術。溫濕度設備采用485傳感器來監測植物工廠環境內的溫濕度,同時使用了ESP32、MIC29302WU線性穩壓器等硬件模塊,組成了該系統的硬件電路部分。該電路設計合理、價格低廉,操作較簡單。
在軟件開發上,使用C/C++語言,簡單明了。本系統實現了溫濕度數據的采集,并通過無線傳輸功能將采集到的數據上報到Things-Board 平臺,從而解決了植物工廠環境中溫濕度參數遠程控制監測的問題。該系統操作簡單、使用方便,還具有準確性高、高能效的優點。