孫 濤
(1.湖南省高鐵運行安全保障工程技術研究中心,湖南 株洲 412005;2.湖南鐵路科技職業技術學院,湖南 株洲 412005)
隨著鄉村振興的深入推進,基于新技術的智能化產品不斷在農業生產領域中使用,溫室大棚作為種植農業果蔬的主要地點,在我國農業生產體系中發揮著越來越重要的作用[1]。環境監控系統主要對相對密閉環境中的物理環境參數和運行參數,如濕度、溫度、水浸、玻璃破碎等各種環境變量進行實時監測,并對各種超過監測數據的危險信號進行迅速報警。實時監測設備還需要診斷采集的環境數據、處理各種故障和分析相關的數據,從而保證溫室大棚在無人值守的情況下正常運行。
傳統意義上的環境監控系統大都采用分散監控和維護的方式,不僅浪費物力、財力和人力,而且系統的可靠性相對較差[2]。因此,本文提出基于嵌入式技術的智能化農業溫室大棚環境監控系統,不僅降低了系統監控成本,而且使設備維護管理更為便捷,極大地提高了工作效率。
1)遵循GB/T 19165—2003《日光溫室和塑料大棚結構與性能要求》等相關標準[3]。
2)監控系統上位機具有直觀友好的圖形顯示界面,且易于觀察、方便操作。
3)監控系統是完全獨立的,若監控系統發生故障,不會對農業生產設備的正常運行產生影響。
4)監控系統具有實時報警功能,且任何時刻都可以關閉報警。
5)監控系統具有數據回放和數據記錄功能,便于查看歷史數據。
6)監控系統具有各類常見的通信接口,便于與其他設備進行數據交換。
7)監控系統能根據實際情況控制空調、加濕器等設備,對環境進行調節。
8)監控系統除了可應用于本研究中的農業溫室大棚環境中,還適用于不同領域的較密閉的空間中[4]。
本研究主要對農業溫室大棚環境參數、溫度、濕度等進行監測,并設計實現了對空調和加濕器的控制,實現與預設環境參數的匹配,即實現了集監督與控制功能于一體。本監控系統分為上位機子系統和下位機子系統,系統拓撲圖如圖1所示。

圖1 系統拓撲圖
上位機負責對采集到的數據進行處理,然后把結果直觀地顯示在界面上。用戶可通過界面了解環境情況,并進行簡單控制。除此之外,上位機還需實現報警功能、數據記錄功能、數據回放功能。
下位機采集環境的各項數據,采集的數據可由下位機簡單處理或者直接傳到上位機,借助上位機強大的處理能力處理數據。下位機還可接收上位機傳來的控制命令,對空調等設備進行控制,其結構圖如圖2所示。上位機與下位機通過串口或者工業常用的CAN總線進行數據通信。

圖2 下位機結構圖
不同于傳統的采用熱敏電阻的溫度檢測系統,現在越來越多的系統采用專用的溫度傳感器,這類芯片一般輸出數字信號,與熱敏電阻相比,它具有簡單、可靠、精度高等特點[5]。本設計的溫度檢測模塊采用美國達拉斯公司生產的DS18B20溫度傳感器。
3.1.1 溫度模塊硬件設計
DS18B20傳感器(TO-92封裝)只有三個引腳[6]:1-GND、3-VCC、2-DQ。它和單片機只通過DQ引腳連接,通信為單總線通信。單總線在一根信號線上進行數據和時鐘信號的雙向數據傳輸,線路簡單,成本低,還便于擴展。通過單總線傳輸時一般先初始化器件,再識別器件,最后進行數據交換。溫度模塊電路原理如圖3所示。

圖3 溫度模塊電路原理
溫度模塊連接至AVR單片機的PD1引腳,單片機通過對此引腳寫0/1或者讀取此引腳來模擬單總線。通過單總線訪問DS18B20的過程如下:初始化—操作ROM的命令—操作存儲器的命令—傳輸數據。
3.1.2 溫度模塊軟件設計
單片機讀取溫度的函數:U16 readTemperature (void)。此函數不需要傳遞參數,返回值為16位溫度寄存器的值,當返回0xFFFF時,表示讀DS18B20出錯,此數據無效。DS18B20采集溫度需要先發出啟動溫度轉化的命令,然后才能讀取數據,讀取溫度的流程如圖4所示。

圖4 讀取溫度流程
測量濕度的傳感器有很多種,包括濕漲式、電容式、電阻式等,它們是根據空氣中的濕度變化引起其化學或物理性質改變而工作的。其中,電容式濕度傳感器由于具有反應速度快、精確度高、可靠性高、穩定性強等諸多優點而被廣泛采用[7]。本設計采用MHS1101濕敏電容來設計濕度檢測模塊。
3.2.1 濕度模塊硬件設計
MHS1101濕敏電容基于獨特的濕敏分子而設計,可被用于大批量、成本敏感的產品,如工控領域、辦公自動化和家具產品等所有需要濕度檢測的場合。它的工作溫度在-40 ℃~+125 ℃之間,相對濕度測試范圍為0%~100%。
濕敏電容就是對濕度敏感的電容,它的電容會隨著濕度的變化而變化,所以用MHS1101測試濕度,就相應地轉化為了測試電容的大小,然后根據電容大小和MHS1101的濕度/電容變化曲線計算濕度。測電容可以用555振蕩電路,將電容容量的變化轉化為頻率的變化,然后測試頻率。
555芯片用作振蕩器使用時,可以通過兩個外部電阻和電容來控制輸出頻率。用MHS1101做555芯片的外圍電容器件,電容的變化可以反映出輸出頻率。具體的電路設計如圖5所示。這個電路是555穩態電路,MHS1101可變電容一端接地,一端連接THR(6)和TRIG(2)引腳。其中,R23電阻用作內部溫度補償,由它引入的溫度效應來匹配MHS1101的溫度效應。

圖5 濕度測量模塊電路設計
濕度模塊連接到AT90CAN128的PD2引腳,此引腳可作普通輸入輸出端口,也可以作外部中斷引腳。由于本設計的下位機同時采集環境溫度,所以可以用采集到的溫度對濕度進行修正,使采集的濕度數據更加準確。
3.2.2 濕度模塊軟件設計
濕度檢測模塊與單片機的連接只有一個頻率輸出線,AT90CAN128可以通過PD2引腳采集濕度模塊輸出的頻率,由此計算濕度值。PD2引腳可以用作外部中斷(外部中斷2),也可用作普通輸入輸出,采集信號頻率時用中斷方式比較合適。配置外部中斷2為下降沿或者上升沿觸發,一個振蕩周期產生一次中斷,單位時間內中斷發生的次數就是頻率。本設計讀取頻率的方式是:用單片機的定時器1定時1 s,用外部中斷采集振蕩的輸出頻率。
單片機讀取濕度的函數:U16 readHs1101Fre(void)。此函數不需要傳遞參數,返回值為16位頻率值,當返回0xFFFF時,表示此次采集頻率出錯,數據無效。此函數讀一次濕度大概用時1 s,函數流程如圖6所示。

圖6 讀取濕度頻率的函數流程
在讀函數的過程中,首先設置外部中斷2為下降沿中斷,打開外部中斷,為了防止其他中斷干擾,可關閉其他外部中斷。由于限定讀取1 s由定時器1實現,所以還要打開定時器1的溢出中斷。然后,初始化定時器1的初始值、時鐘源,再讓定時器開始計時。此時,讀函數進入死循環,直到發生定時器溢出中斷。最后,當計時1 s后,讀出頻率變量中存儲的頻率值。可以根據頻率值查找頻率/濕度對照表,從表中查到對應的濕度值。若濕度值超出允許范圍則報警,否則,函數返回當前的濕度值。
在外部中斷2的中斷函數中,只需要把頻率變量增加1即可。在定時器1的溢出中斷中,需要關閉定時器的溢出中斷,并且關閉外部中斷2,最后設置定時器溢出標志變量,從而使讀函數從死循環中跳出。
本研究基于QT Designer[8]開發上位機人機界面,上位機界面屬于上層應用程序,它不需關心底層的硬件實現,只需要通過設備文件的操作來收發CAN總線的數據即可。根據驅動部分的設計,控制設備文件的步驟如下:
1)調用open( )函數打開設備,此時會初始化SJA1000。
2)調用read( )函數讀出收到的總線數據包。
3)通過write( )函數向總線發送數據。
4)最終調用close( )函數關閉設備驅動文件。
界面應用程序初始化時,首先,繪制背景(包括文字等)和組件(按鈕等),繪制完成后啟動一個定時器(定時刷新界面用)。然后,主程序進入循環。在定時器函數中,程序會讀取CAN總線收到的數據,然后根據讀到的溫度、濕度等數據值刷新界面。
CAN總線的驅動電路如圖7所示,由于SJA1000芯片沒有集成總線驅動器,所以需要通過PC82C250芯片擴展[9],PC82C250的1腳為TX發送引腳,4腳為RX接收引腳,6腳為CANL,7腳為CANH,CANH、CANL經過5 Ω電路接到總線,并且用30 pF電容過濾高頻干擾。

圖7 總線驅動電路
溫度傳感器DS18B20采用單總線和單片機通信,單總線對時序的要求是很精確的。Saleae中可以放大采集到的數據時序,并觀察通過串口上傳的溫度數據。從波形上可以看到,主機最后發出的命令字節為0xBE(讀溫度值),隨后總線上傳遞出溫度寄存器的值0x6D和0x01,與串口收到的數據一致。按照程序設計部分介紹的計算方法,此時的溫度值應為正值,T=0x16D×0.062 5=22.812 5 ℃。
濕度采集模塊輸出頻率,測試頻率是用單片機的定時器定時1 s[10],用外部中斷的方式記脈沖下降沿的個數,最終得出頻率。測試過程中可以用串口接收濕度數據,用Saleae采集輸出的波形,濕度模塊采集到的數據如圖8所示。

圖8 濕度模塊采集到的數據
界面的調試主要是測試界面的顯示效果和各項功能,以隨機24 h內溫度、濕度數據回放的畫面為例,如圖9所示。在畫面中,大棚濕度以圖像上部黃色曲線配合右側數值顯示,溫度以圖像下部綠色曲線配合左側數值顯示,當前時間以倒三角形式紅色線條指出。

圖9 數據回放圖
本文詳細分析了農業溫室大棚環境監控系統的溫度、濕度信號采集模塊硬件電路設計和程序設計,并對上位機擴展CAN總線做了介紹,在上位機上實現了功能強大的用戶界面。仿真結果表明,基于嵌入式技術的農業溫室大棚環境監控系統實現了以下功能:
1)采用帶Linux操作系統的上位機,功能非常強大。
2)上位機界面非常友好、直觀,方便了用戶進行人機交互。
3)監控系統的上位機和下位機功能獨立。下位機既可以獨立工作,也可以組成監控網絡,并且監控網絡中一個下位機節點損壞不會影響其他節點。
4)監控網絡中可以有多個下位機,也可以有多個上位機,便于大范圍監控和分級監視。
5)采用流行的總線通信技術,并制定了應用層的通信協議,與遵循相同協議的產品可互連。
6)下位機預留了擴展接口,便于以后擴展其他模塊。
7)監控系統應用范圍廣,適用于所有需要環境監控的地方。