張葉茂
(1.南寧職業技術學院機電工程學院,廣西南寧 5300071; 2.電子科技大學繼續教育學院,四川成都 610054)
隨著現代嵌入式和物聯網技術的發展,現代化的大棚蔬菜種植基地對環境參數控制的要求越來越智能化和精度化,主要表現在溫濕度、光照度等參數的智能化控制上。傳統的信息采集系統主要是采用CAN、RS485等有線的傳輸方式,采用的處理平臺一般是8位的處理器(簡稱CPU),存在布線復雜,響應速度不夠優良的缺點;另外,隨著網絡技術的發展,遠程智能控制的要求也對傳統的只有本地控制功能的系統提出了挑戰。因此,本研究設計了一套基于嵌入式和無線網絡傳輸的環境參數智能監控系統。環境參數采集傳感器可以通過基于IEEE802.15.4標準的低功耗局域網協議(ZigBee)節點和主控平臺進行無線通信,將實時結果顯示在工控屏或者遠程全球廣域網(web)端,用戶也可以通過web客戶端對環境現場參數進行測控,實現遠程實時傳輸。
本系統采用溫濕度傳感器和光照度傳感器對蔬菜基地各區域現場的溫濕度和光照信息進行采集;區域終端ZigBee節點和區域路由節點以及中控平臺協調器進行ZigBee無線組網通信。終端節點模塊一方面負責采集環境參數及解析數據,將結果傳輸給中控平臺處理;另一方面須要接收中控平臺發來的指令,解析后控制現場參數調節器。中控平臺一方面將采集的數據通過工控觸摸屏進行現場顯示并通過網絡傳輸發送給遠程的web客戶端,另一方面接收客戶發送過來的指令信息通過無線網絡發送指令給各ZigBee節點。用戶參數的設定主要通過中控平臺連接的工控觸摸屏,也可以通過遠程web客戶端進行參數設定。系統總體設計結構見圖1。
系統的硬件模塊主要包括嵌入式最小系統、工控觸摸屏、網關電路、SD數據存儲器、CC2530節點電路、傳感器電路等。系統以STM32F103ZET6、SDRAM、FLASH以及網關電路、工控觸摸屏、鍵盤電路、電源電路、報警電路等構成中控平臺。STM32F103ZET6作為中控端CPU,該處理器基于32位的核(Cortex-M3)架構,外設總線接口豐富,最大可以在72 MHz工作頻率下運行,適用于要求響應速度快、功耗較低的場合。工控觸摸屏采用廣州大彩光電科技有限公司推出的工業串口屏,該串口屏集薄膜晶體管(簡稱TFT)顯示驅動、圖形用戶界面(GUI)操作及圖片字庫存儲等各種組態控件于一體,開發簡單方便。STM32處理器通過串口0與工控屏進行通信,若需要3.3 V的TTL/COMS串口電平通信,可以直接跳過MAX232電平芯片,將串口屏設置為TTL模式。采用基于CC2530F256的ZigBee網絡傳輸方案,負責協調器、區域路由節點及終端節點無線組網。CC2530F256最小系統擴展存儲器、有機發光半導體(簡稱OLED)顯示器、傳感器、繼電器、鍵盤電路、蜂鳴器等相關硬件構成終端節點。終端節點模塊溫濕度傳感器采用性價比較高的溫濕度傳感器(DHT11),光照度傳感器采用ISL29003集成光傳感器。
無線傳輸網絡的終端節點模塊處理器采用美國德州儀器公司的CC2530F256處理器。CC2530F256結合業界領先的黃金單元ZigBee協議棧(棧),它具有極低的總材料成本建立強大的網絡節點。CC2530F256具有業界標準的增強型51單片機內核,具有領先的RF收發器的優良性能,有8 kb 存儲器(RAM)可編程內存及其他許多強大的功能[1]。CC2530F256具有多種運行模式,超低功耗的模式尤其適合終端節點系統的要求,各種運行模式切換迅速。以CC2530F256為核心,擴展電源電路、傳感器信號輸入接口,按鍵電路及OLED顯示電路等相關硬件,完成監控系統的節點模塊設計。ZigBee網絡節點核心板電路原理如圖2所示。


2.2 信號采集電路設計
在大棚蔬菜場所,主要采集和調控光照度、溫度、濕度這3個重要參數。在這種環境下,光照度和溫濕度的參數范圍屬于正常的生產生活環境值,無須考慮過高或過低的溫度和光照度。一般地,系統的溫度誤差范圍控制在1 ℃,相對濕度控制在3% RH范圍內即可(圖3)。系統溫度和濕度采集的傳感器采用已校準數字信號輸出的復合傳感器DHT11,該傳感器的主要特點是體積較小、響應快速,具有功耗低和很強的抗干擾性的優點。該傳感器分辨率濕度1% RH,溫度1 ℃;量程濕度20%~90% RH,溫度0~50 ℃。采用簡化的單總線和CC2530F256處理器通信,電路中R30為上拉電阻,其作用是為了保證在總線空閑時,總線輸出狀態為高電平[2]。在大棚蔬菜種植基地,需要較高的光照要求精度,系統采用ISL29003 集成光傳感器,該傳感器能夠采集環境光照度, 轉換成數字量之后通過內置標準的集成電路總線(簡稱IIC)接口及整合的模數轉化(簡稱ADC)接口輸出數據信息。該傳感器的整合ADC具有15位分辨率,光照度調節范圍為 1~100 000 lx 之間。光照度傳感電路如圖4所示。


以太網模塊是智能化監控系統的重要組成部分,STM32F103ZET6本身不帶有網絡接口,因此須要對其進行硬件單元擴展。該功能模塊使用單芯片快速以太網MAC控制器(簡稱DM9000)以太網芯片和輕量級的IP協議(簡稱Lwip)TCP/IP協議棧設計。DM9000是一款集成有通用處理器接口的以太網控制器,其特點是完全集成化、傳輸速度快、性價比高。DM9000協議層接口對10 MB以下的3、4、5類非屏蔽雙絞線和100 MB以下5類非屏蔽雙絞線完全支持[3]。DM9000有多種型號,有100、48引腳的,本模塊設計選擇的是48引腳的DM9000,型號為DM9000CEP。DM9000的第34腳無中斷輸出時為低電平,當有中斷輸出時,此引腳為高電平有效??梢酝ㄟ^設置DM9000的20(EECK)引腳來改變INT的有效電平,當EECK拉高以后,INT低電平有效,否則的話INT是高電平有效。電路模塊中的R66為第20腳的上拉電阻,所以本模塊DM9000的INT引腳是低電平有效。
另外,DM9000的第21腳是設置數據位寬,模塊的R65為EECS的上拉電阻,因此為8位數據寬度。如果去除R65,模塊為16位數據寬度。DM9000網絡模塊電路原理如圖5所示。

系統軟件總體設計主要有主控平臺軟件設計、工控觸摸屏軟件設計、ZigBee網絡軟件設計、傳感器采集終端節點軟件設計、web遠程網絡軟件設計5個部分。
將Ucos_Ⅲ移植到系統之后,建立任務0函數[Task0()]主要對系統硬件資源和時鐘初始化以及創建其他的任務。任務Task1()主要用于處理工控觸摸屏事件。中控平臺和工控觸摸屏采用串口0(Usart0)通信,通過串口中斷,將接收到的工控屏發送過來的數據存儲在先進先出(FIFO)中。任務Task2()用于外設按鍵信號處理,Task3()用于系統報警信號處理,Task4()用于遠程監控信號處理,各任務之間采用靈活的消息隊列及信號量進行資源共享及數據傳遞。系統啟動后,Ucos_Ⅲ操作系統和硬件資源開始初始化后,用戶可以通過工控觸摸屏設定蔬菜棚里的溫濕度和光照度等參數的上下限值、采集數據及時間周期等參數設定,中控端主函數調用Usart0_send()函數向協調器發送帶設備地址的指令到相關區域的路由節點及終端節點后,終端節點處理器CC2530F256通過調用溫度控制子函數Tem_Con()、濕度控制子函數 Hum_Con()及光照度控制子函數Led_Con()進行參數設定[4]。當用戶須要查詢參數指標時,通過工控觸摸屏發送按鍵查詢指令,協調器接收到查詢指令后即解析指令的設備地址信息,通過ZigBee網絡發送到對應的區域路由節點,準確發送到相應的終端節點。終端節點的處理器CC2530F256模塊通過采集傳感器的實時數據進行濾波及正確性分析,打包通過ZigBee網絡發送到中控平臺,并在工控屏上顯示出來。中控臺整體軟件設計流程如圖6所示。
利用VisualTFT軟件進行工控觸摸屏人機界面設計時,須要預先裁剪好美工圖片,并進行合適的排版及控件的布局。串口屏處理器會對TFT工程的所有控件、圖片及畫面各分配1個唯一的ID號,當STM32處理器串口0接收到設備上傳的ID值,就可以判斷當前的按鈕值,并發送相應的指令更新畫面顯示或者通過串口1發送指令給協調器節點,無線發給終端節點控制電機、繼電器等。另外可以將采集的信息通過文本和圖片進行顯示,還可以通過指令實現曲線顯示和數據存儲功能[5]。

ZigBee網絡拓撲結構主要有網型網絡結構和星形網絡結構。不同的應用領域應采用不同的網絡拓撲結構,ZigBee節點可以根據配置文件設置成協調器、路由節點及終端節點,采用不同的網絡拓撲結構對節點的配置也不一樣[6]。系統采用TI公司的Z-Stack協議棧進行無線組網,實現網絡節點的無線通信。每個區域可以包括很多個終端節點,執行具體的任務如信息采集等,并與協調器或者路由節點關聯,每個區域分別設置路由節點,為ZigBee網絡通信提供中繼和路由。設備類型是由Z-Stack的不同編譯選項來選擇的,系統上電后,ZigBee協調器首先進行初始化工作,初始化完成后協調器調用Z_Stack協議棧中的ZDApp_NetworkInit函數進行網絡的建立及其初始化工作,組網成功后,終端節點將采集的數據通過afStatus_t AF_DataRequest()發送數據給路由節點,當星型網絡組建成功之后,終端節點將采集得到的實時數據通過函數AF_DataRequest()發送到協調器,終端節點發送的數據經判斷后通過USART0發送到STM32F103ZET6進行顯示;同時,協調器將STM32F103ZET6給它的控制信號通過廣播的形式發送到各個終端,終端將控制信號作判斷后執行控制。無線網絡組網件設計流程如圖7所示。
傳感器終端節點上電以后,終端節點開始進行ZigBee組網,與路由節點組網成功后,CC2530F256單片機開始初始化內部資源,包括IO口、串口、定時器、總線等的初始化。處理器啟動定時器0和定時器1,定時器0主要負責定時1 s的環境參數周期采樣中斷,定時器1負責網絡異常時間監測。終端節點每隔1 s對溫濕度傳感器和光照度傳感器進行參數采集,一方面將采集的結果經軟件濾波和數據長度分析判斷之后,在終端節點模塊的OLED屏上顯示出來;另一方面, 系統將采集的參數信息打包發給區域路由節點,路由節點發送給協調器之后,主控CPU發出應答信號。在接收到主控器件發送過來的數據之前,終端節點工作在自控模式,當協調器通過ZigBee網絡發送指令給終端節點時,終端節點進行數據采集的同時,還須根據接收到的ZigBee中斷數據進行處理,此時終端節點工作在主控模式。終端節點在主控模式下,若網絡穩定性異常,將報警數據發送給協調器,而協調器超過30 s未發送控制指令,則終端節點恢復到自控模式進行預設定的異常處理[7]。傳感器終端節點軟件設計流程如圖8所示。


Lwip是輕量級的IP協議,系統首先須要將Lwip移植到STM32F103ZET6上,并修改cc.h、lwipopts.h、sys_arch.h、dm9000.c、ethernetif.c、lwip_comm.c等6個頭文件,DM9000ReadReg()和DM9000_WriteReg這2個函數為讀寫DM9000內部寄存器的函數, DM9000_PHY_ReadReg ()和
DM9000_PHY_WriteReg()為讀寫DM9000內部PHY寄存器的函數。DM9000_SendPacket()函數為數據發送函數,將指定的pbuf結構體的數據通過DM9000發送到網絡中,Lwip中用pbuf結構體來表示數據包[8]。在發送數據包之前,須要先關閉DM9000的中斷,等發送完成以后再打開中斷。發送數據時可以按下面的步驟進行:首先向發送靜態隨機存取存儲器(簡稱TX_SRAM)中寫入要發送的數據,然后向寄存器TXPLL和TXPLE寫入要發送的數據的長度,最后將TCR寄存器的bit0置1,啟動發送即可。
基于ZigBee無線傳感網絡和嵌入式的大棚蔬菜環境參數監控系統已經通過試驗場所的測試,系統操作簡單方便,數據采集精度較高,信號傳輸穩定可靠。既可以通過工控觸摸屏進行溫濕度和光照度參數的采集和設定,也可以通過web網遠程進行傳感器數據采集和參數設定。該系統可以廣泛應用在現代農業大棚蔬菜基地等場合,有很好的性價比和可操作性。
[1]李 宇,王衛星,陳潤澤. 基于ZigBee的物聯網智能家居系統[J]. 電子測試,2016(3):71-75.
[2]蘇 揚,劉 亮. 基于ZigBee和嵌入式系統的養殖場環境智能監控系統[J]. 中國農機化學報,2016,37(5):76-80.
[3]李立新,李艷文,蔡剛毅,等. 基于物聯網技術的智能家居安防系統的研究與開發[J]. 控制工程,2015(5):1001-1005.
[4]李征明,張世剛,孫華英. 基于UcosⅡ系統的無線手持數據監控系統的研究[J]. 農機化研究,2016(1):152-152.
[5]張葉茂. 基于串口屏和LPC1752的通用工控平臺設計[J]. 輕工科技,2015(12):109-110.
[6]郭國法,許 萌,張開生. 基于ZigBee無線傳感器網絡的智能節水灌溉系統設計[J]. 江蘇農業科學,2015,43(11):513-518.
[7]武興華,徐曉輝,宋 濤,等. 基于嵌入式的智能溫室監控系統[J]. 中國農機化學報,2016,37(6):234-237.
[8]趙富強,王長坤,李 露,等. 基于STM32、以太網和ZigBee技術的智能家居系統的設計[J]. 測控技術,2016,35(4):94-97.