鄭祥明,潘祖榮,武明西,圣光磊
(亳州學(xué)院 電子與信息工程系,安徽 亳州 236800)
食用菌不僅含有豐富的蛋白質(zhì),而且含有賴氨酸、精氨酸和甲硫氨酸等8種人體必需的氨基酸,被人們稱為餐桌的“山珍”[1]。食用菌菌種的生長(zhǎng)發(fā)育與環(huán)境條件密切相關(guān),影響菌種生長(zhǎng)的環(huán)境因子主要有溫濕度、二氧化碳濃度、光照強(qiáng)度和酸堿度等。其中空氣相對(duì)濕度是影響食用菌菌種的生長(zhǎng)發(fā)育的關(guān)鍵因子,在適宜的濕度環(huán)境下,菌絲會(huì)健康生長(zhǎng)。反之,當(dāng)濕度過高時(shí)會(huì)造成菌種袋內(nèi)氧氣不足影響菌絲生長(zhǎng),當(dāng)濕度過低時(shí)會(huì)造成菌種水分流失,導(dǎo)致菌絲生長(zhǎng)緩慢甚至死亡[2-3]。針對(duì)食用菌菌種生長(zhǎng)環(huán)境難以調(diào)控的特點(diǎn),系統(tǒng)選用高性能微處理器STM32[4],并結(jié)合其自帶的Controller Area Network(CAN)接口提出基于CAN總線的菌類溫室智能化監(jiān)控方案。該系統(tǒng)利用CAN的特點(diǎn)實(shí)行多主控制并且根據(jù)溫室的實(shí)際情況可以直接增減控制節(jié)點(diǎn),具有高可靠性、速度快和低功耗等優(yōu)勢(shì),可以實(shí)時(shí)監(jiān)控食用菌溫室的溫濕度、二氧化碳和光照等環(huán)境因子,確保菌種的健康成長(zhǎng)。
食用菌的成長(zhǎng)會(huì)受到溫度的影響,在可以承受的溫度界限,食用菌的代謝速率和生長(zhǎng)與溫度成正比,當(dāng)溫度慢慢超出可承受的范圍時(shí),食用菌的生命活動(dòng)狀態(tài)開始受到不良影響,如果溫度不斷上升,食用菌體內(nèi)的細(xì)胞活性下降,甚至出現(xiàn)死亡現(xiàn)象。因此,食用菌種植時(shí)需要將食用菌溫室的溫度調(diào)節(jié)到最適溫度區(qū)間,如表1[5-8]所示。根據(jù)食用菌發(fā)展特點(diǎn),可以分為不同的發(fā)展階段,而在食用菌生殖發(fā)展階段,溫度的變化能夠直接影響食用菌子實(shí)體的成長(zhǎng)快慢程度和質(zhì)量,在這個(gè)關(guān)鍵時(shí)期,如果忽略了溫度的變化就會(huì)給食用菌的生長(zhǎng)造成嚴(yán)重的影響[5]。所以,在食用菌生長(zhǎng)的過程中,食用菌種植農(nóng)戶可以進(jìn)行溫度調(diào)控來提高食用菌的生長(zhǎng)發(fā)育,以提高食用菌的穩(wěn)產(chǎn)高產(chǎn)。
表1 幾種常見食用菌對(duì)溫濕度的要求
水分是食用菌細(xì)胞的主要成分,大約90%的含水量產(chǎn)生在菌絲體中,食用菌的表面積大,內(nèi)部水分會(huì)發(fā)生蒸騰作用,而發(fā)生蒸騰作用的程度會(huì)受到濕度的影響[6]。通常食用菌菌絲在生長(zhǎng)發(fā)育時(shí)所要求的室內(nèi)空氣濕度占比為80%到90%之間,而一旦菇房的室內(nèi)空氣濕度占比降到了百分之六十,平菇等子實(shí)物就會(huì)停滯生長(zhǎng)發(fā)育,當(dāng)菇房?jī)?nèi)空氣濕度占比降低到40%到45%之間時(shí),子實(shí)體就不再分離了,已分離的幼菇干枯或死去,同時(shí)菇房?jī)?nèi)的空氣濕度不能高于90%[7],如表1所示整理了部分常用菌類對(duì)相對(duì)濕度的需求。如果濕度很高,病菌很容易侵入,破壞子實(shí)體。所以,在食用菌生長(zhǎng)的過程中,我們可以進(jìn)行調(diào)控適宜環(huán)境來促進(jìn)食用菌的生長(zhǎng)發(fā)育,以提高食用菌的產(chǎn)量。
食用菌是腐生生物,因此在食用菌生長(zhǎng)過程中不存在光合作用,且直射光對(duì)食用菌的生長(zhǎng)起抑制作用,但少量的散射光有助于大多數(shù)食用菌子實(shí)體的分化[8]。此外,空氣中二氧化碳的濃度可以影響食用菌的生長(zhǎng)發(fā)育,當(dāng)濃度過高時(shí)能夠?qū)е率秤镁l(fā)育緩慢,影響產(chǎn)量。食用菌可通過呼吸作用吸收溫室大棚內(nèi)的氧氣,然后將二氧化碳排出體外,因此我們?cè)谂囵B(yǎng)食用菌的過程中需要做到通風(fēng)換氣,防止食用菌溫室大棚內(nèi)的二氧化碳濃度過高。
針對(duì)多數(shù)菌種適宜的相對(duì)濕度需要保持在80%左右、溫度在20℃左右、二氧化碳濃度不宜過高并且一般不需要光照的特點(diǎn)。本課題采用CAN總線通訊方式,以STM32F103ZET6作為核心控制處理器設(shè)計(jì)的CAN總線節(jié)點(diǎn)電路總體結(jié)構(gòu)如圖1所示,該系統(tǒng)主要包含主控制器最小控制單元、溫濕度采集模塊、光照采集模塊、二氧化碳濃度采集模塊、顯示模塊、報(bào)警模塊、控制模塊以及CAN收發(fā)模塊[9]。系統(tǒng)利用溫濕度和光照等環(huán)境因子采集傳感器實(shí)時(shí)采集食用菌溫室大棚內(nèi)的環(huán)境數(shù)據(jù),然后將數(shù)據(jù)信息發(fā)送到微控制器,微控制器數(shù)據(jù)處理完畢后將數(shù)據(jù)通過CAN通信模塊傳輸?shù)饺藱C(jī)交互接口的LCD12864顯示屏上顯示,若超過設(shè)定的閾值,蜂鳴器就會(huì)發(fā)出警報(bào)并通過調(diào)控模塊及時(shí)調(diào)節(jié),以達(dá)到監(jiān)控食用菌溫室的目的。
圖1 CAN總線節(jié)點(diǎn)結(jié)構(gòu)圖
CAN是一種國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議,因其具有高性能和可靠性被廣泛地應(yīng)用于汽車、工業(yè)自動(dòng)化和醫(yī)療設(shè)備等領(lǐng)域[10]。CAN總線的物理層特征如圖2所示,其中起止端均需設(shè)計(jì)一個(gè)120Ω的電阻做阻抗匹配,以減少回波反射。CAN控制器通過CAN_H和CAN_L上的電位差來定義顯性電平和隱性電平,同時(shí),由于與總線連接的節(jié)點(diǎn)沒有類似于“地址”的信息,用戶可根據(jù)實(shí)際需要增減控制節(jié)點(diǎn),而不會(huì)影響其他節(jié)點(diǎn)的正常工作。本課題主要研究對(duì)象是食用菌溫室大棚的溫濕度、光照和二氧化碳濃度等,利用CAN通信協(xié)議實(shí)現(xiàn)菌類溫室遠(yuǎn)程監(jiān)控有利于用戶根據(jù)實(shí)際情況隨時(shí)調(diào)整監(jiān)控節(jié)點(diǎn)的數(shù)量。
圖2 CAN節(jié)點(diǎn)物理層特征圖
系統(tǒng)主控制器選用意法半導(dǎo)體公司推出的基于ARM Cortex-M3內(nèi)核的STM32F103ZET6微處理器,該處理器集成了CAN接口,支持CAN2.0A和CAN2.0B主動(dòng)模式。課題僅需選擇合適的CAN協(xié)議控制器并設(shè)計(jì)物理總線之間的接口電路配合處理器自帶的CAN通信接口即可實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。
TJA1050是一款完全兼容ISO11898標(biāo)準(zhǔn),最大可實(shí)現(xiàn)1Mbps的高速數(shù)據(jù)傳輸,采用該器件為總線提供差分發(fā)射能力并為CAN控制器提供差分接收能力,其原理圖如圖3所示。其中CAN_TX和CAN_RX分別與處理器的硬件CAN接口PA12和PA11相連,TJA1050芯片的第6腳和第7腳之間的120Ω電阻即為終端電阻,做阻抗匹配,具有提高抗干擾能力和信號(hào)質(zhì)量的效果。
圖3 TAJ1050接口原理圖
DHT11數(shù)字溫濕度傳感器集成了電阻式測(cè)濕元件和NTC測(cè)溫元件,在3.5~5.5V工作電壓下,數(shù)據(jù)線接一個(gè)4.7K左右的上拉電阻即可完成硬件設(shè)計(jì)。由于采用了單總線數(shù)據(jù)格式,按照DHT11的時(shí)序要求編寫驅(qū)動(dòng)代碼即可一次獲取40bit的數(shù)據(jù)包,該數(shù)據(jù)包包含環(huán)境濕度數(shù)據(jù)、環(huán)境溫度數(shù)據(jù)和8bit校驗(yàn)和。其中溫度測(cè)量范圍為0~50℃,分辨率為1℃;濕度測(cè)量范圍為20%~90%,分辨率為1%RH,可以滿足多數(shù)菌種的溫濕度生長(zhǎng)環(huán)境監(jiān)控需求。
為避免光敏二極管線性差的情況,系統(tǒng)選用BH1750數(shù)字傳感器作為光照傳感器監(jiān)控食用菌溫室大棚內(nèi)的光照強(qiáng)度。BH1750是一款數(shù)字型光強(qiáng)度傳感器集成芯片,集成了光敏二極管、運(yùn)放和AD等單元組成并且芯片內(nèi)部做了線性處理,實(shí)現(xiàn)光照數(shù)據(jù)下線性輸出。與DHT11單總線處理方式不同,本模塊的通信接口為IIC通信方式,該通信協(xié)議由電源線、時(shí)鐘線(SCL)和數(shù)據(jù)線(SDA)組成。其工作時(shí)序?yàn)?發(fā)送起始信號(hào)→發(fā)送設(shè)備地址+讀寫命令→等待應(yīng)答→接收1個(gè)字節(jié)數(shù)據(jù)→發(fā)送應(yīng)答→接收1個(gè)字節(jié)數(shù)據(jù)→發(fā)送接收信號(hào)。將接收的數(shù)據(jù)進(jìn)行處理得到:光照強(qiáng)度=(寄存器值[15:0]×分辨率)/1.2(單位:勒克斯lx)。BH1750對(duì)環(huán)境光照強(qiáng)度具有較高的分辨率,能夠精確的檢測(cè)出食用菌溫室內(nèi)光照強(qiáng)度的變化,以便對(duì)食用菌溫室大棚進(jìn)行補(bǔ)光或遮光處理。
在正常的空氣中,二氧化碳的含量為0.03%(300ppm),由于食用菌中不含葉綠素,是一種吸收氧氣產(chǎn)生二氧化碳的真菌,多數(shù)食用菌在二氧化碳濃度較高時(shí)都會(huì)影響食用菌菌絲體的生長(zhǎng)(即濃度越高食用菌產(chǎn)量越低),部分食用菌在二氧化碳濃度達(dá)到20%~30%時(shí)的生長(zhǎng)量反而有一定提高,且在食用菌生長(zhǎng)的不同階段對(duì)氧氣的需求量也不同。因此,合理監(jiān)控食用菌溫室內(nèi)的二氧化碳濃度有助于提高食用菌的產(chǎn)量,幫助農(nóng)戶增加收益。系統(tǒng)選用型號(hào)為MG811的二氧化碳傳感器模塊,該模塊具有靈敏度高,響應(yīng)恢復(fù)快;受溫度影響較小,隔熱散熱好并設(shè)有溫度補(bǔ)償;穩(wěn)定性強(qiáng),使用壽命長(zhǎng);探頭可插拔,使用方便;測(cè)量量程大等優(yōu)點(diǎn),可以較好地滿足系統(tǒng)設(shè)計(jì)需要。
基于用戶需求,系統(tǒng)設(shè)計(jì)蜂鳴器現(xiàn)場(chǎng)報(bào)警與遠(yuǎn)程報(bào)警兩種模式,即在監(jiān)控現(xiàn)場(chǎng)和控制端均設(shè)計(jì)聲光報(bào)警單元。系統(tǒng)選用有源蜂鳴器和LED作為聲光報(bào)警對(duì)象,其中蜂鳴器需接一個(gè)NPN型三極管驅(qū)動(dòng)蜂鳴器,當(dāng)環(huán)境控制因子超出安全閾值時(shí),相應(yīng)GPIO口輸出高電平驅(qū)動(dòng)蜂鳴器和LED實(shí)現(xiàn)聲光報(bào)警,以提醒用戶。
基于溫室環(huán)境復(fù)雜的特點(diǎn),系統(tǒng)選用穩(wěn)定性更好的機(jī)械按鍵進(jìn)行系統(tǒng)參數(shù)的設(shè)置。其中,每個(gè)獨(dú)立按鍵設(shè)計(jì)上拉電阻將按鍵檢測(cè)端口的電平拉高,當(dāng)GPIO口檢測(cè)到低電平則表示相應(yīng)功能的按鍵按下。同時(shí),為了讓用戶直觀地了解溫室的環(huán)境信息,系統(tǒng)選用LCD12864顯示屏適時(shí)顯示系統(tǒng)采集的信息。LCD12864有并行和串行兩種數(shù)據(jù)傳輸方式,本系統(tǒng)為降低布線復(fù)雜度選用串行通信方式。
基于STM32的CAN總線通信節(jié)點(diǎn)設(shè)計(jì)需要完成溫濕度、光照信息和二氧化碳等環(huán)境數(shù)據(jù)的采集、處理、傳輸、顯示和反饋控制等功能。首先,系統(tǒng)上電實(shí)現(xiàn)系統(tǒng)各模塊的初始化,然后啟動(dòng)環(huán)境采集模塊完成環(huán)境因子的采集、處理和終端顯示等,隨后把處理后的數(shù)據(jù)通過CAN總線傳輸給主控制端存儲(chǔ)和顯示等。當(dāng)環(huán)境數(shù)據(jù)超出了用戶設(shè)定的安全閾值時(shí),可以利用終端的控制功能自動(dòng)調(diào)節(jié)或通過主控制端手動(dòng)調(diào)控,其系統(tǒng)軟件工作流程圖如圖4所示。
圖4 系統(tǒng)軟件流程圖
CAN總線具有多主機(jī)工作方式,即總線在空閑狀態(tài)下任意節(jié)點(diǎn)都可以向總線發(fā)送信息。當(dāng)任一節(jié)點(diǎn)獲得總線發(fā)送權(quán)時(shí),CAN收發(fā)器將處理器采集的數(shù)據(jù)信息轉(zhuǎn)換為邏輯電平,然后再轉(zhuǎn)換成差分電平發(fā)送到CAN總線上;在接收數(shù)據(jù)時(shí),CAN收發(fā)器則將總線上的差分電平轉(zhuǎn)換為邏輯電平,然后再翻譯得到節(jié)點(diǎn)采集的數(shù)據(jù)信息發(fā)送到處理器上。
CAN控制器在發(fā)送或接收?qǐng)?bào)文時(shí),需要向發(fā)送郵箱中寫入報(bào)文或者從接收FIFO(First Input First Output)中讀取報(bào)文信息,利用STM32標(biāo)準(zhǔn)固件庫的發(fā)送及接收結(jié)構(gòu)體可以便捷的將需要的模式配置好。
3.2.1 發(fā)送報(bào)文
首先我們需要重置TIR寄存器,將需要發(fā)送的報(bào)文寫入一個(gè)空的發(fā)送郵箱,然后對(duì)發(fā)送郵箱的報(bào)文數(shù)據(jù)進(jìn)行設(shè)置,設(shè)置完成后寄存器TIR請(qǐng)求發(fā)送報(bào)文,當(dāng)程序重置寄存器TIR的發(fā)送成功確認(rèn)位后表示報(bào)文發(fā)送成功。需要注意的是報(bào)文的發(fā)送需要遵循優(yōu)先級(jí),只有當(dāng)郵箱中的報(bào)文的優(yōu)先級(jí)高于其他報(bào)文的優(yōu)先級(jí)時(shí),才可以在總線空閑時(shí)發(fā)送報(bào)文,過程如圖5所示。
圖5 報(bào)文發(fā)送過程圖
3.2.2 接收?qǐng)?bào)文
當(dāng)報(bào)文被CAN總線接收時(shí),接收程序會(huì)直接訪問接收FIFO寄存器中的報(bào)文信息,然后讀取輸出郵箱中的報(bào)文信息。需要注意的是只有被標(biāo)識(shí)符標(biāo)識(shí)的報(bào)文才是所需要的報(bào)文并且當(dāng)報(bào)文被接收讀取后就會(huì)釋放掉,為下一次接收做好準(zhǔn)備過程如圖6所示。
圖6 報(bào)文接收過程圖
本文以香菇的接種與培養(yǎng)為例,在無光或弱光環(huán)境下保持培養(yǎng)室空氣新鮮,設(shè)置空氣相對(duì)濕度為80%~87%,溫度在14~34℃。當(dāng)溫度和濕度均在設(shè)定閾值范圍時(shí),系統(tǒng)正常運(yùn)行;當(dāng)溫度或者濕度超過設(shè)定的閾值時(shí),則系統(tǒng)報(bào)警并啟動(dòng)調(diào)節(jié)模式,測(cè)試數(shù)據(jù)如圖7所示。
圖7 系統(tǒng)溫濕度測(cè)試曲線圖
針對(duì)菌類生長(zhǎng)的復(fù)雜控制環(huán)境,以STM32為核心的CAN總線通信節(jié)點(diǎn)設(shè)計(jì)智能化的菌類溫室監(jiān)控系統(tǒng)。本課題設(shè)計(jì)CAN通信節(jié)點(diǎn)結(jié)合STM32內(nèi)嵌CAN控制器不僅能夠使原本設(shè)計(jì)的電路變得更加簡(jiǎn)單,而且使成本減少、功耗降低。此外,CAN通信的優(yōu)勢(shì)可以保障數(shù)據(jù)在傳輸過程中更加穩(wěn)定,時(shí)效性更強(qiáng),將CAN總線和STM32結(jié)合并運(yùn)用到食用菌溫室大棚的設(shè)計(jì)有著廣闊的前景。