汪思德,陳乙鑫
(西華大學計算機與軟件工程學院,成都 610039)
物聯網技術目前已經覆蓋到生活的各個方面,是當前信息時代的主要技術之一。本創新設計正是運用了物聯網技術,主要針對工業或現代農業的周邊環境參數進行實時監測和控制,以達到環境保護和農業生產現場環境控制的目的。本設計主要以ARM 微處理器STM32 為基礎構建數據處理模塊,基于物聯網技術,結合無線傳感技術通過網絡傳輸實現對農業的環境監測,建立智慧化、精準化的現代環境監測系統。準確、遠程、自動、實時監測環境,滿足精準對環境監測的要求。
本系統主要包括三個層次。感知層:即數據采集層,利用STM32F103 系列微處理器整合各種傳感器(溫濕度傳感器、土壤溫濕度傳感器、光照強度傳感器、CO2濃度傳感器)構建數據采集和處理終端,負者采集和處理農作物生長環境參數。傳輸層:感知層所采集到的農作物生長環境因素參數通過無線網絡傳輸到云服務器數據庫。應用層:即用戶端,Web 網頁從數據獲取環境的溫濕度、土壤溫濕度、光照強度、CO2濃度信息,并且以圖表形式實時顯示。同時,可根據獲取的各類信息進行灌溉、升溫降溫等控制[1]。
如圖1 硬件框圖所示,本系統硬件電路以STM32F103 系列單片機為核心搭建數據采集和處理電路,整合溫濕度傳感器、光照強度傳感器、二氧化碳濃度傳感器,PM2.5 濃度和PM10 濃度,采用Wi-Fi 通信模塊進行數據傳輸[2]。
本系統中,CPU 需要對多個傳感器數據進行采集和處理,因此對CPU 的處理性能、存儲容量和資源接口都有較高要求[3]。本次設計選用STM32F103 系列單片機。經過評估STM32F103RCT6 滿足本設計對CPU的需求。
MCU 最小系統電路包含了時鐘電路、復位電路、配置電路、狀態燈、調試接口和去耦電容。在圖2 中,C9、C10、X1 構成了時鐘電路,X1 為 8M 晶振,經過CPU 內部的PLL 鎖相環進行倍頻后達到72M 為CPU提供時鐘信號,C9、C10 為起振電容。R3、C11、K1 構成了復位電路,STM32 系列單片機為低電平復位。上電時,單片機復位,單片機正常工作時復位引腳NRST 被上拉,保持高電平。若需要手動復位,按下復位按鍵K1,單片機復位引腳NRST 被拉低,單片機復位。R4-R7 四個電阻構成了啟動模式配置電路,R4、R5 為上拉電阻,R6、R7 為下拉電阻。本電路中,R4、R5 默認 NC,單片機 BOOT0 和 BOOT1 被下拉,當 BOOT1=x BOOT0=0 從用戶閃存啟動,這是正常的工作模式。當需要改變單片機啟動模式時,可以通過改變R4-R7 四個電阻的焊接狀態來改變BOOT0 和BOOT1 的電平狀態,從而改變單片機啟動模式。R1、LED1 構成了狀態燈電路連接到單片機PA0 口,當PA0 輸出低時綠色LED 被點亮。可在軟件中讓PA0 口以一定頻率改變狀態,當單片機正常工作,程序正常運行時,LED 會以一定頻率閃爍。通過狀態燈能方便判斷單片機是否在正常工作,利于調試。CN2 是串口調試接口和JTAG調試接口。C12—C17 六個電容是MCU 電源去耦電容,PCB 布局時緊靠在MCU 電源引腳,保證MCU 供電穩定。

圖1 硬件平臺功能框圖
(1)溫濕度傳感器
溫濕度傳感器負責采集農作物生長環境中溫度和濕度信息,本設計運用DHT11 作為溫濕度傳感器。DHT11 數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器,它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性和卓越的長期穩定性。其電路圖如圖3 所示。

圖2 MCU最小系統原理圖

圖3 DHT11模塊電路
(2)光照強度傳感器
光照強度傳感器負責采集農作物生長環境中的光照強度參數,本設計運用數字式光照傳傳感器模塊GY-30 作為光照強度傳感器。GY-30 是一種通用的光照度檢測模塊,內置模數轉換電路,直接數字輸出。采用 ROHM 原裝 BH1750FVI 芯片,內置 16bit AD 轉換器直接數字輸出,省略復雜的計算,省略標定,不區分環境光源,接近于視覺靈敏度的分光特性。其電路圖如圖4 所示。
(3)CO2濃度傳感器
二氧化碳濃度傳感器負責采集農作物生長環境中二氧化碳濃度信息,本設計運用T6603-5 作為溫濕度傳感器。T6603-5 是美國GE 公司研發的一款基于紅外光學原理的氣體二氧化碳濃度傳感器,比敏感體化學材料更具氣體選擇性。其電路圖如圖5 所示。

圖4 GY-30模塊電路

圖5 T6603-5模塊電路
本系統通信模塊采用ALIENTEK 推出的一款高性價比 UART-WIFI(串口-無線)模塊 ATK-ESP8266,該模塊板載ai-thinker 公司的ESP8266 模塊。
ATK-ESP8266 模塊采用串口(LVTTL)與 MCU(或其他串口設備)通信,內置TCP/IP 協議棧,能夠實現串口與Wi-Fi 之間的轉換。通過ATK-ESP8266 模塊,傳統的串口設備只是需要簡單的串口配置,即可通過網絡(Wi-Fi)傳輸自己的數據[4]。ATK-ESP8266 模塊支持LVTTL 串口,兼容3.3V 和5V 單片機系統。模塊支持串口轉Wi-Fi STA、串口轉AP 和Wi-Fi STA+Wi-Fi AP 的模式,從而快速構建串口-Wi-Fi 數據傳輸方案,方便設備使用互聯網傳輸數據。
ATK-ESP8266 模塊支持LVTTL 串口,兼容3.3V和5V 單片機系統,可以很方便地與單片機進行連接。本設計中為ATK-ESP8266 模塊供電3.3V,模塊串口I/O 電平為:Voh(min)1.44V、Vol(max)0.18V、Vih(min)1.35V、Vil(max)0.45V,可直接與單片機 I/O 相連。電路的模塊接收數據TXD 引腳與單片機USART2_RXD(PA3)相連,模塊發送數據 RXD 引腳與單片機USART2_TXD(PA2)相連,模塊復位 RST 引腳與單片機PA1 相連。
軟件系統分為數據采集、數據傳輸、控制輸出三大部分,各部分采用多個進程協同完成功能,每個進程職責單一。通過Contiki 嵌入式操作系統進行各部分任務進程的調度[5]。系統主程序結構如圖6 所示。

圖6 系統主程序結構圖
數據采集主要是指對各個傳感器輸出數字信號的讀取,并存入FIFO 隊列進行數據緩存,等待數據傳輸流程提取數據的過程。其中包括溫濕度傳感器串行數據讀取,二氧化碳濃度UART 串口數據的讀取,土壤溫濕度和光照強度I2C 串行總線數字信號的讀取。
數據傳輸流程主要指的是從FIFO 隊列提取各傳感器數據按照JSON 格式打包后利用串口通過Wi-Fi傳輸數據的過程。詳細流程:感知層傳感器數據字節流→字節轉FIFO 節點結構體→放入接收FIFO 緩存隊列→從接收緩存中依次讀取字節→判斷協議包頭相等→讀取整個首部→校驗首部→讀取數據域→校驗數據和→存入協議包PackBlock 結構體→存入接收包緩沖隊列→從接收包緩存中取出協議包→判斷包目標地址→刪除應答包→發送回應包→處理包。
輸出控制流程是指Web 運用層發出控制信號到感知層下位機收到數據包后解析數據包并做出相應控制的過程。詳細流程:應用層產生控制消息→cJSON封裝消息→cJSON 獲取JSON 字符串→生成協議包PackBlock 結構體→轉為待發送的字符流→字符流添加到未發送緩沖隊列→從未發送隊列取出字符流包→指定通道發送字符流包→獲取字符流包→解析字符流包→做出相應控制。
本設計基本實現了預期功能,能實現遠程檢測農作物生長環境中的溫濕度、土壤溫濕度、光照強度、CO2濃度參數。本設計具有一定的實際應用價值,運用于現代農業生產中能準確獲取農作物生長過程所需的環境參數,有利于節約人力,降低成本,提高農作物質量。同時具有一定擴展性,不僅能運用于農業環境監控,也可適用于其他環境,例如將傳感器換成PM2.5 傳感器和有害氣體傳感器本系統就可運用于遠程空氣質量檢測。但本設計還有很多不足之處,最大的不足之處在于控制部分不夠完善,由于對農業大棚中灌溉和升降溫等控制方式并不了解,而且基于成本限制,本設計的控制部分還只是理論的設計,并沒有實際運用。同時,本設計通信是基于2.4G 的Wi-Fi 通信,這要求農業大棚內需要覆蓋Wi-Fi 網絡,且Wi-Fi 傳輸距離有限,并且沒有做多點監控的組網,后續需要做較大改進。設計之初電源部分考慮的是利用太陽能加電池的方案。由于成本和時間限制,最終改為從AC220V 市電供電。后續改進時可優化電源設計。