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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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