版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于物聯(lián)網(wǎng)技術(shù)溫室大棚控制系統(tǒng)設(shè)計(jì)劉娟 (德州學(xué)院物理系,山東德州253023)摘要基于物聯(lián)網(wǎng)技術(shù)溫室大棚控制系統(tǒng)以AT89S52單片機(jī)為核心,采用加熱爐和風(fēng)機(jī)、噴灌和滲灌、熒光燈,分別為溫室大棚進(jìn)行加熱、增長(zhǎng)二氧化碳濃度、增長(zhǎng)空氣濕度、灌溉、人工補(bǔ)光;使用SHT10數(shù)字式溫濕度傳感器、FDS-100型土壤水分傳感器、SH-300-DH二氧化碳傳感器和TSL2561光強(qiáng)傳感器,將采集大棚內(nèi)數(shù)據(jù)信息在液晶1602上顯示出來(lái),并通過(guò)無(wú)線通信模塊nRF905將信號(hào)傳到從機(jī)。主機(jī)完畢各項(xiàng)數(shù)值預(yù)制和報(bào)警電路模塊功能,從機(jī)完畢采集數(shù)值顯示及加熱爐和風(fēng)機(jī)、噴灌和滲灌和熒光燈控制功能。本文設(shè)計(jì)溫室大棚控制系統(tǒng),可以實(shí)時(shí)采集控制溫室內(nèi)空氣溫濕度、土壤濕度、光照強(qiáng)度、二氧化碳濃度等環(huán)境參數(shù),以直觀數(shù)據(jù)顯示給顧客,并可以依照種植作物需求提供報(bào)警信息。核心詞AT89S52;傳感器;nRF9051緒論隨著通信技術(shù)飛速發(fā)展,人們已經(jīng)不再滿足于人一與人之間通信方式以及需要人參加交互通信方式,一種更加智能、更加便捷通信方式為人們所期待。物聯(lián)網(wǎng)一種物體、機(jī)器間不需要人參加即可完畢信息交互通信方式(Internetofthings)便應(yīng)運(yùn)而生[1]。簡(jiǎn)樸說(shuō),物聯(lián)網(wǎng)是物物相連網(wǎng)絡(luò),在整個(gè)信息采集、傳遞、計(jì)算過(guò)程中無(wú)需人參加交互。物聯(lián)網(wǎng)是基于傳感器技術(shù)新型網(wǎng)絡(luò)技術(shù),在當(dāng)代農(nóng)業(yè)中,大量傳感器節(jié)點(diǎn)構(gòu)成了一張張功能各異監(jiān)控網(wǎng)絡(luò),通過(guò)各種傳感器采集與作物生產(chǎn)關(guān)于各種生產(chǎn)信息和環(huán)境參數(shù),可以協(xié)助農(nóng)民及時(shí)發(fā)現(xiàn)問(wèn)題,精確地捕獲發(fā)生問(wèn)題位置,對(duì)耕作、播種、施肥、灌溉等田間作業(yè)進(jìn)行數(shù)字化控制,使農(nóng)業(yè)投入品資源運(yùn)用精準(zhǔn)化、效率最大化[2]。無(wú)線傳感網(wǎng)絡(luò)由布置在監(jiān)測(cè)區(qū)域內(nèi)大量微型傳感器節(jié)點(diǎn)通過(guò)無(wú)線通信形成一種多跳自組織網(wǎng)絡(luò),其重要目是采集與解決該網(wǎng)絡(luò)覆蓋范疇內(nèi)監(jiān)測(cè)參數(shù)信息[3]。無(wú)線傳感網(wǎng)絡(luò)在農(nóng)業(yè)中一種重要應(yīng)用是在溫室等農(nóng)業(yè)設(shè)施中,采用不同傳感器和執(zhí)行機(jī)構(gòu)對(duì)土壤水分,空氣溫濕度和光照強(qiáng)度,二氧化碳濃度等影響作物生長(zhǎng)環(huán)境信息進(jìn)行實(shí)時(shí)監(jiān)測(cè),系統(tǒng)依照監(jiān)測(cè)到數(shù)據(jù)將室內(nèi)水、肥、氣、光、熱等植物生長(zhǎng)所必須條件控制到最佳狀態(tài),保證作物增產(chǎn)增收。依照當(dāng)代農(nóng)業(yè)科學(xué)技術(shù)研究成果表白,建立溫室可以建立適合植物生長(zhǎng)生態(tài)環(huán)境,實(shí)現(xiàn)作物高產(chǎn)、高效。在農(nóng)業(yè)當(dāng)代化進(jìn)程中,從作物播種、生長(zhǎng),到收獲、加工及檢測(cè)分析整個(gè)過(guò)程中都離不開傳感器應(yīng)用,幾乎覆蓋了農(nóng)業(yè)工程所有范疇,有力地支撐了智能農(nóng)業(yè)技術(shù)體系。基于以上結(jié)識(shí),本論文設(shè)計(jì)出一種基于物聯(lián)網(wǎng)技術(shù)溫室大棚控制系統(tǒng)。2系統(tǒng)方案與論證為了可以設(shè)計(jì)出一種成本低廉,精準(zhǔn)度較高,連接簡(jiǎn)樸溫室大棚控制系統(tǒng),本設(shè)計(jì)給出了三種方案。2.1方案闡述方案一:本溫室大棚控制系統(tǒng)以AT89S52單片機(jī)為核心,采用加熱爐和風(fēng)機(jī)、噴灌和滲灌和熒光燈,分別為溫室大棚進(jìn)行加熱、增長(zhǎng)空氣濕度、灌溉、增長(zhǎng)二氧化碳濃度、人工補(bǔ)光;采用SHT10數(shù)字式溫濕度傳感器、FDS-100型土壤水分傳感器、SH-300-DH二氧化碳傳感器和TSL2561光強(qiáng)傳感器分別檢測(cè)溫室大棚空氣溫濕度、土壤濕度、二氧化碳濃度、光照度。數(shù)據(jù)采集某些使用AT89S52單片機(jī),將隨被測(cè)各項(xiàng)數(shù)據(jù)變化電壓或電流采集過(guò)來(lái),進(jìn)行數(shù)據(jù)解決,在顯示電路上,將被測(cè)各項(xiàng)數(shù)據(jù)顯示出來(lái)。主機(jī)將采集到數(shù)值在液晶1602上顯示出來(lái),并通過(guò)無(wú)線通信模塊nRF905將信號(hào)傳到從機(jī)。此外,主機(jī)完畢各項(xiàng)數(shù)值預(yù)制和報(bào)警電路模塊功能,從機(jī)完畢采集數(shù)值顯示及加熱爐和風(fēng)機(jī)、噴灌和滲灌和熒光燈控制功能。系統(tǒng)總體構(gòu)造框圖,如圖2.1所示。從機(jī)AT89S52無(wú)線通信模塊主機(jī)AT89S52空氣溫濕度傳感器加熱系統(tǒng)從機(jī)AT89S52無(wú)線通信模塊主機(jī)AT89S52空氣溫濕度傳感器加熱系統(tǒng)信號(hào)放大電路土壤水分傳感器通風(fēng)系統(tǒng)信號(hào)放大電路土壤水分傳感器通風(fēng)系統(tǒng)LCD顯示系統(tǒng)LCD顯示系統(tǒng)二氧化碳傳感器滲灌系統(tǒng)二氧化碳傳感器滲灌系統(tǒng)補(bǔ)光系統(tǒng)補(bǔ)光系統(tǒng)光強(qiáng)傳感器報(bào)警系統(tǒng)光強(qiáng)傳感器報(bào)警系統(tǒng)上位機(jī)MAX485上位機(jī)MAX485圖2.1系統(tǒng)框圖方案二:本溫室大棚控制系統(tǒng)采用MSP430為主控制器用來(lái)總體協(xié)調(diào)控制整個(gè)系統(tǒng),對(duì)內(nèi)部A/D采集數(shù)據(jù)進(jìn)行解決,與內(nèi)部設(shè)定數(shù)據(jù)庫(kù)比較,依照設(shè)定各參數(shù)發(fā)出指令控制采光、照明、二氧化碳添加、噴淋子系統(tǒng),來(lái)變化大棚內(nèi)部環(huán)境,運(yùn)用MSP430來(lái)驅(qū)動(dòng)液晶屏,實(shí)時(shí)地顯示大棚內(nèi)外各環(huán)境參數(shù)。本系統(tǒng)采用兩塊TMP275溫度傳感器,來(lái)采集大棚內(nèi)外溫度值。濕度和光強(qiáng)運(yùn)用MSP430內(nèi)部A/D通過(guò)P6.0~P6.34個(gè)端口進(jìn)行多通道序列采集。采用TGS4160固態(tài)電化學(xué)型二氧化碳傳感器檢測(cè)溫室大棚中二氧化碳濃度。系統(tǒng)體系構(gòu)造見圖2.2。MSP430主控制器液晶屏動(dòng)態(tài)顯示溫度傳感器MSP430主控制器液晶屏動(dòng)態(tài)顯示溫度傳感器電扇電扇濕度傳感器濕度傳感器噴淋子系統(tǒng)二氧化碳傳感器噴淋子系統(tǒng)二氧化碳傳感器采光子系統(tǒng)采光子系統(tǒng)照明子系統(tǒng)光敏傳感器照明子系統(tǒng)光敏傳感器二氧化碳添加子系統(tǒng)鍵盤輸入二氧化碳添加子系統(tǒng)鍵盤輸入圖2.2系統(tǒng)框圖方案三:本溫室大棚控制系統(tǒng)核心采用AT89C51單片機(jī);溫度傳感器采用改進(jìn)型智能傳感器DS18B20;智能濕度傳感器采用SHT11;光照度傳感器采用GZD-01型光照度感應(yīng)探頭;CO2傳感器選用紅外線氣敏傳感器。A/D轉(zhuǎn)換模塊采用逐次漸近型8路A/D轉(zhuǎn)換器ADC0809,運(yùn)用AT89C51單片機(jī)串行I/O口,采用了專用電平轉(zhuǎn)換芯片MAX232,把TTL電平轉(zhuǎn)換成RS232電平,將數(shù)據(jù)傳給上位機(jī)(PC機(jī)),進(jìn)行數(shù)據(jù)存儲(chǔ)。采用液晶顯示屏(LCD)進(jìn)行實(shí)時(shí)顯示,系統(tǒng)框圖如圖2.3所示。LCD顯示溫度傳感器AT89C51單片機(jī)LCD顯示溫度傳感器AT89C51單片機(jī)二氧化碳傳感器鍵盤電路TC35i模塊數(shù)據(jù)存儲(chǔ)光照傳感器A/D變換濕度傳感器二氧化碳傳感器鍵盤電路TC35i模塊數(shù)據(jù)存儲(chǔ)光照傳感器A/D變換濕度傳感器 圖2.3系統(tǒng)框圖2.2方案比較方案一使用控制器為AT89S52單片機(jī),方案二使用控制器為MSP430單片機(jī),方案三使用控制器為AT89C51單片機(jī),沒(méi)有數(shù)據(jù)存儲(chǔ)功能。與方案二和方案三單片機(jī)相比較,AT89S52單片機(jī)功耗低,性能高并且成本不高,并且完全可以滿足本方案需求。方案一使用SHT10數(shù)字式溫濕度傳感器來(lái)檢測(cè)溫室大棚中空氣溫濕度,方案二選取兩塊TMP275溫度傳感器,來(lái)采集大棚內(nèi)外溫度值,方案三選取溫度傳感器DS18B20采集大棚內(nèi)溫度。與方案二和方案三溫度傳感器相比SHT10數(shù)字式溫濕度傳感器不需外圍元件,直接輸出通過(guò)標(biāo)定了相對(duì)濕度、溫度數(shù)字信號(hào),無(wú)需通過(guò)AD轉(zhuǎn)換,連接簡(jiǎn)樸,可以有效地解決老式溫、濕度傳感器局限性。方案一使用FDS-100型土壤水分傳感器檢測(cè)土壤中水分含量,方案二濕度和光強(qiáng)運(yùn)用MSP430內(nèi)部A/D通過(guò)P6.0~P6.34個(gè)端口進(jìn)行多通道序列采集,方案三濕度傳感器SHT11測(cè)量濕度。與方案二和方案三相比較,方案一FDS-100型土壤水分傳感器是專業(yè)檢測(cè)土壤水分傳感器,檢測(cè)精度高,能直接穩(wěn)定地反映各種土壤真實(shí)水分含量,密封性好,可長(zhǎng)期埋入土壤中使用,且不受腐蝕。方案一使用SH-300-DH二氧化碳傳感器檢測(cè)溫室大棚中二氧化碳含量,方案二使用TGS4160固態(tài)電化學(xué)型二氧化碳傳感器檢測(cè)溫室大棚中二氧化碳濃度,但TGS4160預(yù)熱時(shí)間較長(zhǎng),普通約為2小時(shí),方案三選用紅外線氣敏傳感器檢測(cè)二氧化碳濃度。與方案二和方案三相比較,SH-300-DH二氧化碳傳感器具備對(duì)二氧化碳敏捷度高、受溫濕度環(huán)境影響小、穩(wěn)定性好、使用以便、成本低等特點(diǎn)。方案一使用TSL2561光強(qiáng)傳感器變送器檢測(cè)溫室大棚內(nèi)光強(qiáng)照度,方案二濕度和光強(qiáng)運(yùn)用MSP430內(nèi)部A/D通過(guò)P6.0~P6.34個(gè)端口進(jìn)行多通道序列采集,方案三使用GZD-01型光照度感應(yīng)探頭。與方案二與方案三相比較,方案一TSL2561光強(qiáng)傳感器采用先進(jìn)電路模塊技術(shù)開發(fā)變送器,體積小、安裝以便、線性度好、傳播距離長(zhǎng)、抗干擾能力強(qiáng)。綜上所述,依照對(duì)三種方案比較以及對(duì)設(shè)計(jì)溫室大棚控制系統(tǒng)成本低廉,精準(zhǔn)度較高,連接簡(jiǎn)樸規(guī)定,選取方案一來(lái)設(shè)計(jì)本溫室大棚控制系統(tǒng)。3系統(tǒng)硬件設(shè)計(jì)溫室大棚控制系統(tǒng)硬件某些重要由控制器模塊,電源電路模塊,空氣溫濕度測(cè)量電路模塊,土壤濕度測(cè)量電路模塊,光強(qiáng)測(cè)量電路模塊、二氧化碳濃度測(cè)量電路模塊,顯示電路模塊,報(bào)警電路模塊、通信電路模塊、控制電路模塊構(gòu)成。3.1控制器模塊本設(shè)計(jì)控制器模塊選用AT89S52,它是一種低功耗、高性能CMOS8位微控制器,具備8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash容許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有機(jī)靈8位CPU和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。(1)原則功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定期器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定期器/計(jì)數(shù)器,一種6向量2級(jí)中斷構(gòu)造,全雙工串行口,片內(nèi)晶振及時(shí)鐘電路[4]。此外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選取節(jié)電模式??臻e模式下,CPU停止工作,容許RAM、定期器/計(jì)數(shù)器、串口中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一種中斷或硬件復(fù)位為止。(2)在外部構(gòu)造上,AT89S52單片機(jī)和MCS-51系列單片機(jī)構(gòu)造相似,有三種封裝形式,分別是PDIP形式,為40針腳;PLCC形式,為44針腳;TAFP形式,也為44針腳[5]。其中,慣用為PDIP形式,如圖3.1所示。圖3.1AT89S52引腳圖3.2空氣溫濕度測(cè)量電路模塊本設(shè)計(jì)選取SHT10數(shù)字式溫濕度傳感器來(lái)檢測(cè)溫室大棚中空氣溫濕度。SHT10數(shù)字式溫濕度傳感器是由Sensirion公司推出一種可以同步測(cè)量濕度、溫度傳感器,不需外圍元件直接輸出通過(guò)標(biāo)定了相對(duì)濕度、溫度數(shù)字信號(hào),可以有效地解決老式溫、濕度傳感器局限性。其特點(diǎn):溫濕度傳感器、信號(hào)放大、A/D轉(zhuǎn)換、I2C總線接口所有集成于一種芯片上(CMOSens技術(shù));全校準(zhǔn)相對(duì)濕度及溫度值輸出;具備露點(diǎn)值計(jì)算輸出功能;免外圍元件;卓越長(zhǎng)期穩(wěn)定性;測(cè)量精度高,濕度精度為±3.5,溫度精度為±0.5℃(在20℃時(shí));可靠CRC數(shù)據(jù)傳播校驗(yàn)功能;片內(nèi)裝載校準(zhǔn)系數(shù),保證100%互換性;電源電壓為2.4~5.5V[6]。引腳功能:1(GND):接地;2(DATA)與3(SCK):串行數(shù)字接口,其中DATA為數(shù)據(jù)線;4(VDD):接電源。如圖3.2所示,SHT10數(shù)字式溫濕度傳感器來(lái)檢測(cè)溫室大棚中空氣溫濕度,并將檢測(cè)到信號(hào)傳送給單片機(jī)P0口,讓單片機(jī)解決。圖3.2SHT10數(shù)字式溫濕度傳感器連接電路圖3.3土壤濕度測(cè)量電路模塊本設(shè)計(jì)選取FDS-100型土壤水分傳感器檢測(cè)土壤中水分含量。FDS-100型土壤水分傳感器引腳功能[7]如下:紅線(VDD):5-12V電源輸入黃線(V-OUT):電壓輸出0~1.875VDC黑線(GND):地線功能及特點(diǎn):本傳感器體積小巧化設(shè)計(jì),攜帶以便,安裝、操作及維護(hù)簡(jiǎn)樸。構(gòu)造設(shè)計(jì)合理,不繡鋼探針保證使用壽命。外部以環(huán)氧樹脂純膠體封裝,密封性好,可直接埋入土壤中使用,且不受腐蝕。土質(zhì)影響較小,應(yīng)用地區(qū)廣泛。測(cè)量精度高,性能可靠,保證正常工作。響應(yīng)速度快,數(shù)據(jù)傳播效率高。FDS-100型土壤水分傳感器通過(guò)LM358經(jīng)信號(hào)放大輸送至單片機(jī)P0口,電路如圖3.3所示。圖3.3FDS-100型土壤水分傳感器連接電路圖3.4光強(qiáng)測(cè)量電路模塊本設(shè)計(jì)選取TSL2561光強(qiáng)傳感器檢測(cè)溫室大棚光照度。各引腳功能[8]如下:腳1和腳3分別是電源引腳和信號(hào)地。其工作電壓工作范疇是是2.7V-3.5V。腳2,器件訪問(wèn)地址選取引腳。由于該引腳電平不同,該器件有3個(gè)不同訪問(wèn)地址。腳4和腳6,總線時(shí)鐘信號(hào)線和數(shù)據(jù)線。腳5中斷信號(hào)輸出引腳。當(dāng)光強(qiáng)度超過(guò)顧客編程設(shè)立上或下閾值時(shí)器件會(huì)輸出一種中斷信號(hào)。TSL2561光強(qiáng)度數(shù)字轉(zhuǎn)換芯片與單片機(jī)P0相接,電路原理圖如圖3.4所示。圖3.4TSL2561光強(qiáng)傳感器連接電路圖3.5二氧化碳測(cè)量電路模塊本設(shè)計(jì)采用SH-300-DH二氧化碳檢測(cè)模塊檢測(cè)大棚內(nèi)二氧化碳濃度。該模塊重要應(yīng)用于CO2含量檢測(cè),具備體積小,反映敏捷,檢測(cè)精度高等長(zhǎng)處。其重要性能參數(shù)[9]如下所示:(1)檢測(cè)范疇:0-3000PPM;(2)精度:0-3000PPM,10-50℃;(3)響應(yīng)時(shí)間:不大于30秒(0-80%),數(shù)據(jù)更新時(shí)間:2秒;(4)預(yù)熱;<90秒(25℃);(5)輸出:模仿:0-3V;數(shù)字UART:默認(rèn)波特率9600bps;(6)輸入電壓:DC7V-12V;該模塊具備模仿量輸出和數(shù)字量輸出兩種方式,在系統(tǒng)設(shè)計(jì)中,采用是數(shù)字通信方式,該傳感器數(shù)字輸出腳直連到單片機(jī)RXD管腳上。電路圖如圖3.5所示。圖3.5SH-300-DH二氧化碳傳感器連接電路3.6顯示電路模塊本設(shè)計(jì)采用LCD1602作為輸出器件,其特點(diǎn)如下:(1)顯示質(zhì)量高:由于LCD每一種點(diǎn)在收到信息后就始終保持那中色彩和亮度,恒定發(fā)光,不需要不斷刷新亮點(diǎn),因而畫質(zhì)高且不會(huì)閃爍。(2)數(shù)字式接口,與單片機(jī)系統(tǒng)接口簡(jiǎn)樸,操作更以便。(3)體積小,質(zhì)量輕。(4)功耗低,耗電量比其她顯示屏件小得多。電路原理圖如圖3.6所示。圖3.6LCD1602顯示電路圖3.7報(bào)警電路模塊本系統(tǒng)專門設(shè)計(jì)了報(bào)警電路模塊,由晶體管和蜂鳴器構(gòu)成。由單片機(jī)I/O口輸出信號(hào)控制晶體管導(dǎo)通或截止,晶體管導(dǎo)通,則蜂鳴器報(bào)警。當(dāng)某個(gè)監(jiān)控參數(shù)長(zhǎng)時(shí)間(詳細(xì)時(shí)間由程序設(shè)定)超過(guò)其合理上下限范疇時(shí),報(bào)警系統(tǒng)啟動(dòng)。它與單片機(jī)連接電路如圖3.7所示。圖3.7報(bào)警電路3.8通信電路模塊本系統(tǒng)通信電路模塊分為主機(jī)與從機(jī)之間無(wú)線通信和單片機(jī)與上位機(jī)之間串口通信。主機(jī)與從機(jī)之間無(wú)線通信重要是主機(jī)把采集到空氣溫濕度、土壤濕度、二氧化碳濃度以及光強(qiáng)照度數(shù)據(jù)通過(guò)一對(duì)配備nRF905無(wú)線收發(fā)模塊發(fā)送到從機(jī),從機(jī)接受數(shù)據(jù)并控制加熱系統(tǒng)、通風(fēng)系統(tǒng)、滴灌系統(tǒng)、補(bǔ)光系統(tǒng)以及報(bào)警子系統(tǒng)運(yùn)營(yíng)。nRF905是挪威Nordic公司推出單片射頻發(fā)射器芯片,工作電壓為1.9~3.6V,32引腳QFN封裝(5mm×5mm),工作于433/868/915MHz3個(gè)ISM頻道。nRF905可以自動(dòng)完畢解決字頭和CR(循環(huán)冗余碼校驗(yàn))工作,可由片內(nèi)硬件自動(dòng)完畢曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配備非常以便,其功耗非常低,以-10dBm輸出功率發(fā)射時(shí)電流只有11mA,在接受模式時(shí)電流為12.5mA[10]。單片機(jī)由I/O端口控制nRF905模塊狀態(tài)接口、模式接口和SPI接口。nRF905詳細(xì)構(gòu)造圖如圖3.8所示。3.8nRF905構(gòu)造圖主機(jī)與從機(jī)之間通信通過(guò)無(wú)線收發(fā)模塊實(shí)現(xiàn)。以AT89S52單片機(jī)為微控制器,與設(shè)計(jì)好nRF905無(wú)線收發(fā)模塊相連接,具備數(shù)據(jù)發(fā)送和數(shù)據(jù)接受功能。連接電路由一對(duì)配備nRF905模塊構(gòu)成,其中一端作為發(fā)送端,另一端作為接受端。主機(jī)與從機(jī)之間無(wú)線通信連接電路圖見附錄1。本系統(tǒng)單片機(jī)與上位機(jī)之間串口通訊采用符合RS-485電氣原則MAX485芯片。RS-485原則特點(diǎn):采用差動(dòng)發(fā)送/接受,共模抑制比高,抗干擾能力強(qiáng);傳播速率高,它容許最大傳播速率可達(dá)10Mb/s(傳送15m);傳送距離遠(yuǎn),采用雙絞線,在不用MODEM狀況下,當(dāng)以100kb/s傳播速率時(shí),可傳送距離為1.2km;能實(shí)現(xiàn)多點(diǎn)對(duì)多點(diǎn)通信,RS-485容許平衡電纜上連接32個(gè)發(fā)送器/接受器對(duì)。它非常適合溫室大棚規(guī)模擴(kuò)大時(shí)測(cè)控系統(tǒng)擴(kuò)展。單片機(jī)和上位機(jī)之間通信必要用RS232/RS485轉(zhuǎn)換器EM485B將電平進(jìn)行轉(zhuǎn)換。MAX-485與單片機(jī)連接電路,如圖3.9所示。圖3.9單片機(jī)與上位機(jī)通信電路圖3.9控制電路模塊本設(shè)計(jì)控制電路模塊選用繼電器作為控制系統(tǒng)開關(guān)。繼電器是一種電子控制器件,它具備控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),普通應(yīng)用于自動(dòng)控制電路中,它事實(shí)上是用較小電流去控制較大電流一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。如圖3.10所示,從機(jī)從主機(jī)接受指令控制繼電器開關(guān),從而使各類執(zhí)行器件起到對(duì)溫室環(huán)境調(diào)節(jié)作用。圖3.10繼電器控制電路3.10電源電路模塊本設(shè)計(jì)中用到3種電源,分別為-5V、+5V、+12V。如圖3.11所示,220V交流電經(jīng)變壓器降壓、橋式整流、電容濾波后由7905、7805、7812三端集成穩(wěn)壓管分別得到-5V、+5V、+12V電壓,為整個(gè)系統(tǒng)供電。圖3.11電源電路圖4系統(tǒng)軟件設(shè)計(jì)依照空氣溫濕度、土壤濕度、二氧化碳濃度、光照度等數(shù)據(jù)特點(diǎn)和農(nóng)作物生長(zhǎng)特點(diǎn),本系統(tǒng)對(duì)溫室空氣溫度、光照度進(jìn)行PID算法控制。兩者數(shù)據(jù)先被傳感器采集,通過(guò)信號(hào)解決,存入AT89S52內(nèi)部數(shù)據(jù)存儲(chǔ)器,與設(shè)定值進(jìn)行比較,通過(guò)PID算法得到控制量并由單片機(jī)輸出去控制加熱爐、補(bǔ)光光源。4.1PID控制算法原理控制器自身是一種基于對(duì)“過(guò)去”、“當(dāng)前”和“將來(lái)”信息預(yù)計(jì)簡(jiǎn)樸控制算法。常規(guī)控制系統(tǒng)重要由控制器和被控對(duì)象構(gòu)成。作為一種線性控制器,它依照給定值和實(shí)際輸出值構(gòu)成控制偏差,將偏差按比例、積分和微分通過(guò)線性組合構(gòu)成控制量,對(duì)被控對(duì)象進(jìn)行控制,故稱控制器。在持續(xù)控制系統(tǒng)中,PID控制器輸出u(t)與輸入e(t)之間成比例、積分、微分關(guān)系。即(4.1)寫成傳遞函數(shù)形式(4.2)PID控制器各個(gè)參數(shù)對(duì)系統(tǒng)動(dòng)態(tài)和穩(wěn)態(tài)性能有不同影響[11]。A比例作用比例作用引入是為了及時(shí)成比例地反映控制系統(tǒng)偏差信號(hào),以最迅速度產(chǎn)生控制作用,使偏差向減小趨勢(shì)變化。(1)對(duì)動(dòng)態(tài)特性影響比例控制參數(shù)Kc凡加大,使系統(tǒng)動(dòng)作敏捷,速度加快,Kc偏大,振蕩次數(shù)加多,調(diào)節(jié)時(shí)間加長(zhǎng)。當(dāng)Kc太大時(shí),系統(tǒng)會(huì)趨于不穩(wěn)定,若Kc太小,又會(huì)使系統(tǒng)動(dòng)作緩慢。(2)對(duì)穩(wěn)態(tài)特性影響加大比例系數(shù)Kc,在系統(tǒng)穩(wěn)定狀況下,可以減小穩(wěn)態(tài)誤差ess,提高控制精度,但是加大Kc只是減少ess,卻不能完全消除穩(wěn)態(tài)誤差。在PID控制閉環(huán)系統(tǒng)中,對(duì)于設(shè)定值變化和外擾響應(yīng)是不同,在工程應(yīng)用上對(duì)兩者性能規(guī)定也有所不同,對(duì)設(shè)定值變化普通規(guī)定滿足一定前提條件,如無(wú)超調(diào)下迅速跟蹤對(duì)外擾則但愿閉環(huán)系統(tǒng)在具備一定衰減比狀況下迅速克服。B積分作用積分作用引入,重要是為了保證被控量在穩(wěn)態(tài)時(shí)對(duì)設(shè)定值無(wú)靜差跟蹤,它對(duì)系統(tǒng)性能影響可以體當(dāng)前如下兩方面:(1)對(duì)動(dòng)態(tài)特性影響積分作用普通使系統(tǒng)穩(wěn)定性下降。如果積分時(shí)間Ti太小系統(tǒng)將不穩(wěn)定,Ti偏小,振蕩次數(shù)較多;如果Ti太大,對(duì)系統(tǒng)性能影響減少,當(dāng)Ti適當(dāng)時(shí),過(guò)渡特性比較抱負(fù)。(2)對(duì)穩(wěn)態(tài)特性影響積分作用能消除系統(tǒng)穩(wěn)態(tài)誤差,提高控制系統(tǒng)控制精度。但是Ti太大時(shí),積分作用太弱,以至不能減小穩(wěn)態(tài)誤差。C微分作用微分作用普通與比例作用或積分作用聯(lián)合伙用,構(gòu)成PD控制或者PID控制。微分作用引入,重要是為了改進(jìn)閉環(huán)系統(tǒng)穩(wěn)定性和動(dòng)態(tài)特性,如使超調(diào)量較小,調(diào)節(jié)時(shí)間縮短,容許加大比例控制,使穩(wěn)態(tài)誤差減小,提高控制精度。當(dāng)微分時(shí)間Td偏大時(shí),超調(diào)量較大,調(diào)節(jié)時(shí)間較長(zhǎng);當(dāng)Td偏小時(shí),超調(diào)量也較大,調(diào)節(jié)時(shí)間也較長(zhǎng)只有適當(dāng)時(shí),可以得到比較滿意過(guò)渡過(guò)程。直觀地分析,假設(shè)被控對(duì)象存在一定慣性,微分作用將使得控制作用與被控量,與偏差量將來(lái)變化趨勢(shì)之間形成近似比例關(guān)系。從頻域分析角度講,微分作用等效于一種高通濾波器,即有也許在控制輸出中引入較強(qiáng)高頻噪聲,這是實(shí)際控制所不但愿。在當(dāng)代由于計(jì)算機(jī)進(jìn)入控制領(lǐng)域,用數(shù)字計(jì)算機(jī)代替模仿計(jì)算機(jī)調(diào)節(jié)器構(gòu)成計(jì)算機(jī)控制系統(tǒng),用軟件實(shí)現(xiàn)PID控制算法,并且可以運(yùn)用計(jì)算機(jī)邏輯功能,使PID控制更加靈活。計(jì)算機(jī)控制是一種采樣控制,它只能依照采樣時(shí)刻偏差值計(jì)算控制量。因而,持續(xù)PID控制算法不能直接使用,需要采用離散化辦法。在計(jì)算機(jī)PID控制中,使用是數(shù)字PID控制器。當(dāng)前有位置式PID控制算法以及增量式PID控制算法[12]。本系統(tǒng)采用了增量數(shù)字化PID算法。增量式控制器是指控制器每次輸出只是控制量增量,當(dāng)執(zhí)行機(jī)構(gòu),例如步進(jìn)電機(jī),需要是增量而不是位置量絕對(duì)數(shù)值時(shí),就可以使用增量式PID控制器進(jìn)行控制[13]。增量,當(dāng)執(zhí)行機(jī)構(gòu)需要是控制量增量時(shí),應(yīng)采用增量式PID控制。依照遞推原理可得(4.3)用式(4.3)減式(4.4),可得增量式PID控制算法(4.4)式(4.5)稱為增量式PID控制算法,將其進(jìn)一步可改寫為(4.5)式中,,,增量式控制雖然只是算法上作了一點(diǎn)改進(jìn),卻帶來(lái)了不少長(zhǎng)處[14]:(1)由于計(jì)算機(jī)輸出增量,因此誤動(dòng)作時(shí)影響小,必要時(shí)可用邏輯判斷辦法去掉。(2)手動(dòng)/自動(dòng)切換時(shí)沖擊小,便于實(shí)現(xiàn)無(wú)擾動(dòng)切換。此外,當(dāng)計(jì)算機(jī)發(fā)生故障時(shí),由于輸出通道或執(zhí)行裝置具備信號(hào)鎖存作用,故仍能保持原值。(3)算式中不需要累加??刂圃隽縰(k)擬定,僅與近來(lái)k次采樣值關(guān)于,因此較容易通過(guò)加權(quán)解決而獲得比較好控制效果。但是增量式控制也有其局限性之處[15]:積分截?cái)嘈?yīng)大,有靜態(tài)誤差;溢出影響大。因而,在選取時(shí)不可一概而論,普通以為在以晶閘管作為執(zhí)行器或在控制精度規(guī)定高系統(tǒng)中,可采用位置式控制算法,而在以步進(jìn)電動(dòng)機(jī)或電動(dòng)閥門作為執(zhí)行器系統(tǒng)中,則可采用增量式控制算法。4.2系統(tǒng)下位機(jī)主程序流程圖設(shè)計(jì)本系統(tǒng)軟件下位機(jī)程序重要由下位機(jī)各數(shù)據(jù)測(cè)控、上位機(jī)與下位機(jī)通訊、報(bào)警等程序構(gòu)成。下位機(jī)主程序流程圖,如圖4.1所示。傳感器采集數(shù)據(jù)存儲(chǔ)入單片機(jī),單片機(jī)初始化,開始比較采集空氣溫濕度與否在測(cè)量范疇內(nèi),如果在測(cè)量范疇內(nèi),則比較采集到土壤濕度與否在測(cè)量范疇內(nèi),否則進(jìn)入空氣溫度調(diào)節(jié)子程序,控制加熱爐加熱或者通風(fēng)系統(tǒng)通風(fēng)以升高或減少空氣溫濕度,然后比較采集到土壤濕度與否在測(cè)量范疇內(nèi),以此類推,當(dāng)比較完采集到二氧化碳濃度后進(jìn)入下一種循環(huán)重新開始比較空氣溫濕度。開始開始 系統(tǒng)初始化系統(tǒng)初始化參數(shù)設(shè)定參數(shù)設(shè)定空氣溫濕度測(cè)量空氣溫濕度測(cè)量空氣溫度與否在測(cè)量范疇內(nèi)空氣溫度與否在測(cè)量范疇內(nèi)NY空氣濕度測(cè)量空氣溫度調(diào)節(jié)子程序空氣濕度測(cè)量空氣溫度調(diào)節(jié)子程序空氣濕度與否在測(cè)量范疇內(nèi)空氣濕度與否在測(cè)量范疇內(nèi) N 空氣濕度調(diào)節(jié)子程序Y空氣濕度調(diào)節(jié)子程序土壤濕度測(cè)量土壤濕度測(cè)量土壤濕度與否在測(cè)量范疇內(nèi)土壤濕度與否在測(cè)量范疇內(nèi)N土壤濕度調(diào)節(jié)子程序Y土壤濕度調(diào)節(jié)子程序二氧化碳濃度測(cè)量二氧化碳濃度測(cè)量二氧化碳濃度與否在測(cè)量范疇內(nèi)二氧化碳濃度與否在測(cè)量范疇內(nèi)N二氧化碳濃度調(diào)節(jié)子程序二氧化碳濃度調(diào)節(jié)子程序光照度測(cè)量Y光照度測(cè)量二氧化碳濃度與否在測(cè)量范疇內(nèi)二氧化碳濃度與否在測(cè)量范疇內(nèi)NN光照度調(diào)節(jié)子程序光照度調(diào)節(jié)子程序Y圖4.1主程序圖5結(jié)論本次設(shè)計(jì)結(jié)合單片機(jī)技術(shù)、傳感器技術(shù)和物聯(lián)網(wǎng)技術(shù),構(gòu)建了一種基于物聯(lián)網(wǎng)技術(shù)溫室大棚控制系統(tǒng)。本系統(tǒng)是本著在不影響功能實(shí)現(xiàn)前提條件下盡量減少生產(chǎn)成本宗旨,以AT89S52為核心,以PID控制為重要控制方式,以檢測(cè)并調(diào)節(jié)空氣溫濕度、土壤濕度、CO2濃度和光照度為重要目測(cè)控系統(tǒng)。該系統(tǒng)可以實(shí)現(xiàn)對(duì)溫室大棚參數(shù)信息實(shí)時(shí)檢測(cè)和調(diào)節(jié)并報(bào)警,并且通過(guò)無(wú)線傳播模塊nRF905將采集信息傳送給控制主機(jī),再結(jié)合有線技術(shù)傳送給上位機(jī),將無(wú)線技術(shù)和有線技術(shù)結(jié)合起來(lái),實(shí)現(xiàn)遠(yuǎn)程參數(shù)無(wú)線控制。成果表白,該控制系統(tǒng)具備良好擴(kuò)展性和實(shí)用性,對(duì)于實(shí)現(xiàn)溫室智能化測(cè)控管理,減少勞動(dòng)強(qiáng)度,提高生產(chǎn)效率,創(chuàng)造大棚生產(chǎn)最佳效益將產(chǎn)生積極作用。參照文獻(xiàn)[1]管繼剛.物聯(lián)網(wǎng)技術(shù)在智能農(nóng)業(yè)中應(yīng)用[J].通信管理與技術(shù),(3):24-27.[2]孫科.物聯(lián)網(wǎng)在當(dāng)代農(nóng)業(yè)上應(yīng)用[J].無(wú)線互聯(lián)科技,(3):19.[3]龔道禮.基于無(wú)線傳感器網(wǎng)絡(luò)環(huán)境監(jiān)測(cè)系統(tǒng)研制[D].中華人民共和國(guó)地質(zhì)大學(xué),:8.[4]胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,:20-26.[5]劉守義.單片機(jī)應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,.[6]戴勇,周建平,梁楚華,趙二明.基于AT89S52單片機(jī)多功能智能溫室測(cè)控系統(tǒng)[J].農(nóng)機(jī)化研究,(5):139.[7]龔元石,李子忠.FDS探針兩種埋設(shè)方式下土壤水分測(cè)定及其比較[J].農(nóng)業(yè)工程學(xué)報(bào),1997,13(2):242-244.[8]來(lái)清民.傳感器與單片機(jī)接口及實(shí)例[M].北京:北京航空航空大學(xué)出版社,:139-141.[9]鐘亞飛.基于單片機(jī)溫室二氧化碳測(cè)控系統(tǒng)設(shè)計(jì)[D].山東科技大學(xué),:13.[10]莢慶,王代華,張志杰.基于nRF905無(wú)線數(shù)據(jù)傳播系統(tǒng)[J].國(guó)外電子元器件.,(1):29-31.[11]趙建華,沈永良.一種自適應(yīng)PID控制算法[J].自動(dòng)化學(xué)報(bào),,27(2):417-420.[12]劉金琨.先進(jìn)PID控制MATLAB仿真[M].北京:電子工業(yè)出版社(第2版),,9.[13]張宇河,金鈺.計(jì)算機(jī)控制系統(tǒng)[M].北京;北京理工大學(xué)出版社,1996.[14]IbrahimKayaNusretTanDerekP.Atherton.ArefinementprocedureforPIDcontrollers[J].ElectricalEngineering,()(88):215–221.[15][美]KatsuhikoOgata.陸伯英,于海勛等(譯).當(dāng)代控制工程(第三版)[M].北京:電子工業(yè)出版社,,3.DesignoftheIntelligentMonitoringSystemforGreenhouseBaseduponInternetofThingsLiuJuan(DepartmentofPhysics,DezhouUniversity,Dezhou,253023)AbstractBasedonthecontentofthenetworkingtechnologiesgreenhousecanopycontrolsystembyAT89S52singlechipmicrocomputerasthecore,theheatingfurnaceandfan,sprinklerirrigationandirrigation,fluorescentlamp,respectively,andtoincreasetheheatshedgreenhousecarbondioxideconcentration,increasetheairhumidity,irrigation,artificiallightsupplement;SHT10digitaltemperatureandhumiditysensors,usingFDS-100typesoilmoisturesensor,SH-300-DHcarbondioxidesensorandTSL2561stronglightsensor,willshedthedatacollectedintheinformationintheliquidcrystaldisplayonthe1602,andthroughtheserialcablecommunicationwillsignalstofromthemachine.Thehosttofinishthenumericalprecastandalarmcircuitmodulefunction,andfromthecompletecollectionofmachinenumericaldisplayandheatingandfan,sprinklerirrigationandirrigationandfluorescentlampcontrolfunctions.Inthispaperthedesigngreenhousecanopycontrolsystem,cancollectreal-timecontroloftheairtemperatureandhumidityingreenhouse,soilhumidity,lightintensity,theconcentrationofcarbondioxideandotherenvironmentalparameterstointuitivedatashowstotheuser,andmay,accordingtothedemandofplantingcropsprovidealarminformation.KeywordsAT89S52;SHT10;FDS-100;SH-300-DH;TSL2561 致謝在論文完畢之際,我要特別感謝我指引教師張秀梅熱情關(guān)懷和悉心指引。在我撰寫論文開題過(guò)程中,張教師傾注了大量心血和汗水,無(wú)論是在論文選題、構(gòu)思和資料收集方面,還是在論文中期過(guò)程檢查以及成文定稿方面,我都得到了張教師悉心細(xì)致教誨和無(wú)私協(xié)助,特別是她廣博學(xué)識(shí)、深厚學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)治學(xué)精神和一絲不茍工作作風(fēng)使我終身受益,在此表達(dá)真誠(chéng)地感謝和深深謝意。謝我班主任劉毅教師,謝謝她在這四年中為咱們?nèi)嗨鲆磺?,她不求回?bào),無(wú)私奉獻(xiàn)精神很讓我感動(dòng),再次向她表達(dá)由衷感謝。同步還要謝謝同窗們,在我論文設(shè)計(jì)過(guò)程中予以協(xié)助,使我可以順利完畢論文設(shè)計(jì)。最后,感謝我母?!轮輰W(xué)院四年來(lái)對(duì)我大力栽培。我還要感謝含辛茹苦撫養(yǎng)我長(zhǎng)大父母,謝謝您們!附錄1主機(jī)與從機(jī)無(wú)線通信模塊電路圖附錄2系統(tǒng)總電路圖附錄3程序#include<reg52.h> //"頭文獻(xiàn)"#include<1602.h>#include<cat24c.h>#include<ds1302.h>#include<0832.h>#include<wenshi.h>#include<image.h>sfrAUXR=0x8e;sfrAUXR1=0xa2; //"key記錄鍵值;k自動(dòng)控制標(biāo)志;i、b用于顯示"unsignedcharkey=0,k=0,i=0,b=0,m=0,j=0,l=0,g=10,s=0;//"m、l、j、g用于計(jì)時(shí)"unsignedcharxdatashow[8]; //"用于顯示轉(zhuǎn)換"unsignedcharxdatawet[6]; //"濕度[0:1]、溫度[2:3]、CO2[4]、光強(qiáng)[5]"unsignedcharxdatamax[6]={0};unsignedcharxdatamin[6]={0};unsignedcharxdatat0ime[8]={1,2,3,5,6,7,8,9};/**///"比較參量0,時(shí)間[0:1]、濕度[2:3]、溫度[4:5]、CO2[6]、光強(qiáng)[7]"unsignedcharxdatat1ime[8]={1,2,3,5,6,7,8,9};/**///"比較參量1,時(shí)間[0:1]、濕度[2:3]、溫度[4:5]、CO2[6]、光強(qiáng)[7]"unsignedcharaddress=0x10; //"RAM地址"sbitkey1=P1^7; //"按鍵1" sbitkey2=P0^1; //"2" sbitkey3=P0^2; //"3" sbitkey4=P0^0; //"4" sbitled=P0^3; //"12864背燈"sbitco2=P3^7; //"CO2加熱"sbitmo=P2^0; //"電機(jī)"sbitli=P2^1; //"加熱燈"voidmenu();voidwelcome() //"歡迎界面"{ chn_disp(0x92,4,"歡迎使用"); chn_disp(0x98,8,"吉林大學(xué)電子學(xué)院");}voidreadall() //"讀取時(shí)間、濕、溫、CO2、光強(qiáng)"{ Read_RTC(); RH(wet); wet[4]=Adc0832(1); wet[5]=Adc0832(1);}voidchange(unsignedcharn) //"數(shù)據(jù)格式轉(zhuǎn)換"{ unsignedchark; unsignedintg; switch(n) { case0: for(k=0;k<3;k++) { show[6-3*k]=set_rtc_code[k]/16+'0'; show[7-3*k]=set_rtc_code[k]%16+'0'; } show[5]=show[2]=':'; break; case1: show[0]=set_rtc_code[6]/16+'0'; show[1]=set_rtc_code[6]%16+'0'; show[4]=set_rtc_code[4]/16+'0'; show[5]=set_rtc_code[4]%16+'0'; show[6]=set_rtc_code[3]/16+'0'; show[7]=set_rtc_code[3]%16+'0'; break; case2: show[0]=t0ime[1]/16+'0'; show[1]=t0ime[1]%16+'0'; show[3]=show[2]='-'; show[4]=t0ime[0]/16+'0'; show[5]=t0ime[0]%16+'0'; break; case3: show[0]=t1ime[1]/16+'0'; show[1]=t1ime[1]%16+'0'; show[3]=show[2]='-'; show[4]=t1ime[0]/16+'0'; show[5]=t1ime[0]%16+'0'; break; case4: g=wet[0]*0x100+wet[1]; show[0]=g/100+'0'; show[1]=(g/10)%10+'0'; show[2]='.'; show[3]=g%10+'0'; show[4]='%'; break; case5: g=wet[2]*0x100+wet[3]; show[0]=g/100+'0'; show[1]=(g/10)%10+'0'; show[2]='.'; show[3]=g%10+'0'; break; case6: g=CO2_deal(wet[4]); show[0]=g/1000+'0'; show[1]=(g/100)%10+'0'; show[2]=(g/10)%10+'0'; show[3]=g%10+'0'; show[4]='p'; show[5]='p'; show[6]='m'; break; case7: show[0]=wet[5]/16+'0'; show[1]=wet[5]%16+'0'; show[2]='p'; show[3]='p'; show[4]='m'; break; }}voidclean() //"清屏"{ wr_lcd(comm,0x30); wr_lcd(comm,0x01); lat_disp(0,0); delay1(100);}voidz() //"制作"{ clean(); chn_disp(0x80,2,"制作"); chn_disp(0x92,2,"肖輝"); chn_disp(0x8a,3,"呂興東"); chn_disp(0x9a,3,"王大美");}voidshowall(chara) //"1602顯示所有"{ switch(a) { case0: readall(); wr_lcd(comm,0x0c); clean(); change(0); chn_disp(0x80,4,show); chn_disp(0x85,2,"星期"); show[0]=set_rtc_code[5]+'0'; chn_disp_1(0x87,0,1,show); change(4); chn_disp_1(0x90,0,5,show); change(5); chn_disp_1(0x95,0,5,show); chn_disp_1(0x97,0,2,"℃"); change(6); chn_disp_1(0x88,0,7,show); change(7); chn_disp_1(0x8d,0,5,show); chn_disp(0x98,4,"功能設(shè)立"); break; case1: chn_disp(0x80,4,"參量設(shè)立"); chn_disp(0x90,4,"模式設(shè)立"); chn_disp(0x88,4,"記錄解決"); chn_disp(0x98,2,"復(fù)位"); break; case2:chn_disp(0x82,4,"參量設(shè)立"); chn_disp(0x90,4,"測(cè)量間隔"); chn_disp(0x88,4,"時(shí)間設(shè)立"); chn_disp(0x98,4,"濕度范疇"); break; case9: chn_disp(0x82,4,"參量設(shè)立"); chn_disp(0x90,4,"溫度范疇"); chn_disp_1(0x88,0,4,"CO^2"); chn_disp(0x8a,2,"濃度"); chn_disp(0x98,4,"光強(qiáng)范疇"); break; case3: chn_disp(0x82,4,"測(cè)量間隔"); show[0]=s/10+'0'; show[1]=s%10+'0'; chn_disp_1(0x91,0,2,show); chn_disp(0x92,2,"分鐘"); show[0]='/'; chn_disp_1(0x94,0,1,show); chn_disp(0x95,1,"次"); chn_disp(0x98,2,"擬定"); break; case4: chn_disp(0x82,4,"時(shí)間設(shè)立"); change(1); chn_disp(0x92,4,show); chn_disp(0x91,3,show); chn_disp(0x92,1,"年"); chn_disp(0x94,1,"月"); chn_disp(0x96,1,"日"); change(0); chn_disp(0x8a,4,show); show[5]=show[4]; show[4]=show[3]; chn_disp(0x89,3,show); chn_disp(0x8a,1,"時(shí)"); chn_disp(0x8c,1,"分"); chn_disp(0x8e,1,"秒"); chn_disp(0x9a,2,"星期"); show[0]=set_rtc_code[5]+'0'; chn_disp_1(0x9c,0,1,show); break; case5:chn_disp(0x82,4,"濕度范疇"); wet[0]=t0ime[2]; wet[1]=t0ime[3]; change(4); chn_disp_1(0x95,0,5,show); wet[0]=t1ime[2]; wet[1]=t1ime[3]; change(4); chn_disp_1(0x8d,0,5,show); break; case6:chn_disp(0x82,4,"溫度范疇"); wet[2]=t0ime[4]; wet[3]=t0ime[5]; change(5); chn_disp_1(0x95,0,5,show); wet[2]=t1ime[4]; wet[3]=t1ime[5]; change(5); chn_disp_1(0x8d,0,5,show); chn_disp_1(0x8f,0,2,"℃"); break; case7:chn_disp_1(0x81,0,3,"CO2"); chn_disp(0x83,4,"濃度范疇"); wet[4]=t0ime[6]; change(6); chn_disp_1(0x95,0,5,show); wet[4]=t1ime[6]; change(6); chn_disp_1(0x8d,0,5,show); break; case8:chn_disp(0x82,4,"光強(qiáng)范疇"); wet[5]=t0ime[7]; change(7); chn_disp_1(0x95,0,5,show); wet[5]=t1ime[7]; change(7); chn_disp_1(0x8d,0,5,show); break; case12:chn_disp(0x82,4,"模式設(shè)立"); chn_disp(0x90,4,"自動(dòng)補(bǔ)償"); chn_disp(0x88,4,"手動(dòng)補(bǔ)償"); chn_disp(0x98,4,"定期補(bǔ)償"); break; case11:chn_disp(0x82,4,"定期補(bǔ)償"); chn_disp(0x90,1,"從"); change(2); chn_disp(0x95,3,show); chn_disp(0x88,1,"到"); change(3); chn_disp(0x8d,3,show); chn_disp(0x98,2,"擬定"); break; case22:chn_disp(0x82,4,"記錄解決"); chn_disp(0x90,4,"上次記錄"); chn_disp(0x88,2,"作圖"); chn_disp(0x98,2,"擬定"); break; case23:chn_disp(0x82,4,"上次記錄"); change(0); chn_disp(0x90,4,show); change(4); chn_disp_1(0x88,0,5,show); change(5); chn_disp_1(0x8d,0,5,show); change(6); chn_disp_1(0x98,0,7,show); change(7); chn_disp_1(0x9d,0,5,show); break; case24:chn_disp(0x80,4,"濕度作圖"); chn_disp(0x90,4,"溫度作圖"); chn_disp_1(0x88,0,3,"CO2"); chn_disp(0x8a,2,"濃度"); chn_disp(0x98,4,"光強(qiáng)作圖"); break; case32:chn_disp(0x80,5,"擬定將系統(tǒng)"); chn_disp(0x91,6,"恢復(fù)初始狀態(tài)"); chn_disp_1(0x97,0,1,"?"); chn_disp(0x98,2,"擬定"); break; case46:clean(); chn_disp(0x92,5,"設(shè)立已保存"); break; } if((4<a)&&(a<9)) { chn_disp(0x90,2,"最高"); chn_disp(0x88,2,"最低"); chn_disp(0x98,2,"擬定"); } if(a%23) chn_disp(0x9e,4,"返回");}voidchoose(unsignedchara,unsignedcharw)//"反白"{ w=(0xff)*w; switch(a) { case0: con_disp(w,w,0x80,0x80,4,16);//"第一行前4個(gè)字反白" break; case1: con_disp(w,w,0x80,0x90,4,16);//"第二行前4個(gè)字反白" break; case2: con_disp(w,w,0x88,0x80,4,16);//"第三行前4個(gè)字反白" break; case3: con_disp(w,w,0x88,0x90,4,16);//"第四行前4個(gè)字反白" break; case11: con_disp(w,w,0x85,0x90,3,16);//"第二行后3個(gè)字反白" break; case12: con_disp(w,w,0x8d,0x80,3,16);//"第三行后3個(gè)字反白" break; case100: con_disp(w,w,0x81,0x90,1,16);//"第二行第2個(gè)字反白" break; case101: con_disp(w,w,0x83,0x90,1,16);//"第二行第4個(gè)字反白" break; case102: con_disp(w,w,0x85,0x90,1,16);//"第二行第6個(gè)字反白" break; case103: con_disp(w,w,0x87,0x90,1,16);//"第二行第8個(gè)字反白" break; case104: con_disp(w,w,0x89,0x80,1,16);//"第二行第2個(gè)字反白" break; case105: con_disp(w,w,0x8b,0x80,1,16);//"第三行第4個(gè)字反白" break; case106: con_disp(w,w,0x8d,0x80,1,16);//"第三行第6個(gè)字反白" break; case107: con_disp(w,w,0x8f,0x80,1,16);//"第三行第8個(gè)字反白" break; case108: con_disp(w,w,0x8c,0x90,1,16);//"第四行第5個(gè)字反白" break; }}voidsend() //"數(shù)據(jù)從串口送入計(jì)算機(jī)"{ ; /**/}voidwriteall() //"數(shù)據(jù)寫入RAM"{ Writepage(set_rtc_code,address,4); Writepage(wet,address+0x04,6); //"記錄數(shù)據(jù)" address+=0x0a; if(address>0xf5) { send(); //"寫滿送入串口" address=0x10; }}voidrecord() //"將參量寫入RAM"{ Writepage(t0ime,0,8); Writepage(t1ime,8,8);}voidok() //"顯示設(shè)立已保存"{ showall(46); delay1(4000); b=i=m=0; menu();}voidadd(unsignedcharb) //"調(diào)節(jié)時(shí)間"{ switch(b) { case0: set_rtc_code[6]++; if((set_rtc_code[6]&0x0f)>9)set_rtc_code[6]+=6; if((set_rtc_code[6]&0x0f0)>0x9f)set_rtc_code[6]=0; break; case1: set_rtc_code[4]++; if((set_rtc_code[4]&0x0f)>9)set_rtc_code[4]+=6; if(set_rtc_code[4]>0x12)set_rtc_code[4]=1; break; case2: set_rtc_code[3]++; if((set_rtc_code[3]&0x0f)>9)set_rtc_code[3]+=6; if(set_rtc_code[3]>0x31)set_rtc_code[3]=1; switch(set_rtc_code[4]) { case4: case6: case9: case0x11:if(set_rtc_code[3]>0x30)set_rtc_code[3]=1;break; case2: if(set_rtc_code[3]>0x29)set_rtc_code[3]=1; if((set_rtc_code[6]%16)%4) if(set_rtc_code[3]>0x28)set_rtc_code[3]=1; break; }break; case3: set_rtc_code[2]++; if((set_rtc_code[2]&0x0f)>9)set_rtc_code[2]+=6; if(set_rtc_code[2]>0x23)set_rtc_code[2]=0; break; case4: case5: set_rtc_code[5-b]++; if((set_rtc_code[5-b]&0x0f)>9)set_rtc_code[5-b]+=6; if(set_rtc_code[5-b]>0x59)set_rtc_code[5-b]=0; break; case6: set_rtc_code[5]++; if(set_rtc_code[5]>7)set_rtc_code[5]=1; break; }}voidfuwei() //"復(fù)位函數(shù),用于將系統(tǒng)恢復(fù)初始狀態(tài)"{ unsignedcharysh[2]; ysh[0]=10+'0'; ysh[1]='0'; Writepage(ysh,0xfe,2); k=0; g=10;}voiddraw(unsignedcharqd) //"畫圖函數(shù)"{ unsignedcharqe,qr; unsignedintqw,qq,qp; clean(); switch(qd) { case0: qr=0x14; qq=max[0]*0x100+max[1]; qp=min[0]*0x100+min[1]; break; case1:qr=0x16; qq=max[2]*0x100+max[3]; qp=min[2]*0x100+min[3]; break; case2:qr=0x18; qq=max[4]; qp=min[4]; break; } D2=1; D0=D1=D3=D4=D5=D6=D7=0; for(;qw<address;qr+=10) { qe=Read24C02(qr); if(qd<2)qw=qe*0x100+Read24C02(qr+1); elseqw=qe; image_deal(qe,0x00+(set_rtc_code[2]/0x10)*10+(set_rtc_code[2]%0x10),qd,qq,qp,(address-0x06)/10); qr+=0x0a; }}voidmenu() //"菜單"{ switch(i) { case0: showall(i++); b=0; choose(3,1); break; case1: switch(key) { case1: clean(); showall(i++); choose(3,0); choose(b,1); break; case2: case3: showall(0); choose(3,1); break; case4: led=0; //wr_lcd(comm,0x08); i=b=0; break; }break; case2: switch(key) { case1: i=i+10*b; clean(); showall(i++); choose((b/3)*2+1,1); b=0; break; case2: showall(i-1); choose(b,0); b++; if(b>3)b=0; choose(b,1); break; case3: showall(i-1); choose(b,0); if(!b)b=4; b--; choose(b,1); break; case4: i=0; menu(); break; }break; case3: switch(key) { case1: clean(); if(!b)s=g; showall((i++)+b); if(b>1) choose(1,1); elsechoose(100,1); i+=b; b=0; break; case2: choose((b%3)+1,0); b++; if(b>5)b=0; showall(i-1+(b/3)*7); choose((b%3)+1,1); break; case3: choose((b%3)+1,0); if(!b)b=6; b--; showall(i-1+(b/3)*7); choose((b%3)+1,1); break; case4: i--; clean(); showall(i-1); choose(b=0,1); break; }break; case4: switch(key) { case1: g=s; Write24C02(g,0xfe); ok(); break; case2: if(s<10)s++; elseif(s<30)s+=5; elseif(s<90)s+=10; showall(3); break; case3: if(s>30)s-=10; elseif(s>10)s-=5; elseif(s>0)s--; showall(3); break; case4: i--; clean(); showall(i-1); choose(1,1); b=0; break; }break; case5: switch(key) { case1: Initial(); ok(); break; case2: showall(i-1); choose(b/3+b+100,0); b++; if(b>6)b=0; choose(b/3+b+100,1); break; case3: add(b); showall(i-1); choose(b/3+b+100,1); break; case4: i=3; clean(); showall(i-1); choose(2,1); b=1; break; }break; case6: switch(key) { case1: if(b>2) { record(); ok(); } else { choose(1+b,0); b+=2; choose(9+b,1); } break; case3: if(b<2) { choose(1+b,0); if(b)b=0; elseb=1; choose(1+b,1); } elseif(b==2) { t0ime[3]++; if(!t0ime[3]) { if(t0ime[2]<0x03)t0ime[2]++; elset0ime[2]=0x03; } if(t0ime[2]==0x03) { if(t0ime[3]>0xe7)t0ime[3]=0xe7; } } elseif(b>2) { t1ime[3]++; if(!t1ime[3]) { if(t1ime[2]<0x03)t1ime[2]++; elset1ime[2]=0x03; } if(t1ime[2]==0x03) { if(t1ime[3]>0xe7)t1ime[3]=0xe7; } } showall(i-1); break; case2: if(b<2) { choose(1+b,0); if(b)b=0; elseb=1; choose(1+b,1); } elseif(b==2) { if(!t0ime[3]) { if(t0ime[2]) { t0ime[2]--; t0ime[3]=0xff; } } elset0ime[3]--; } elseif(b>2) { if(!t1ime[3]) { if(t1ime[2]) { t1ime[2]--; t1ime[3]=0xff; } } elset1ime[3]--; } showall(i-1); break; case4: if(b<2) { clean(); b=i-4; showall(2+(b/3)*7); choose((b%3)+1,1); i=3; } else { choose(9+b,0); b-=2; choose(1+b,1); } break; } break; case7: switch(key) { case1: if(b>2) { record(); ok(); } else { choose(1+b,0); b+=2; choose(9+b,1); } break; case3: if(b<2) { choose(1+b,0); if(b)b=0; elseb=1; choose(1+b,1); } elseif(b==2) { t0ime[5]++; if(!t0ime[5]) { if(t0ime[4]<0x01)t0ime[4]++; elset0ime[4]=0x01; } if(t0ime[4]==0x01) { if(t0ime[5]>0x2c)t0ime[5]=0x2c; } } elseif(b>2) { t1ime[5]++; if(!t1ime[5]) { if(t1ime[4]<0x01)t1ime[4]++; elset1ime[4]=0x01; } if(t1ime[4]==0x01) { if(t1ime[5]>0x2c)t1ime[5]=0x2c; } } showall(i-1); break; case2: if(b<2) { choose(1+b,0); if(b)b=0; elseb=1; choose(1+b,1); } elseif(b==2) { if(!t0ime[5]) { if(t0ime[4]) { t0ime[4]--; t0ime[5]=0xff; } } elset0ime[5]--; } elseif(b>2) { if(!t1ime[5]) { if(t1ime[4]) { t1ime[4]--; t1ime[5]=0xff; } } elset1ime
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課件圖片沒(méi)了教學(xué)課件
- 2024年度知識(shí)產(chǎn)權(quán)許可合同補(bǔ)充協(xié)議
- 2024年太陽(yáng)能路燈物流與倉(cāng)儲(chǔ)服務(wù)合同
- 2024化工廠建設(shè)土石方運(yùn)輸合同
- 04年新一代移動(dòng)通信技術(shù)研發(fā)合同
- 2024年度企業(yè)招聘外包合同
- 2024規(guī)范版汽車租賃合同
- 課程課件封面教學(xué)課件
- 2024年國(guó)際貨物買賣合同標(biāo)的數(shù)量與質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)詳解
- 2024學(xué)校校園廣告投放合同
- 2024年企業(yè)數(shù)據(jù)存儲(chǔ)與安全服務(wù)合同
- 2022年北京市公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 江蘇省泰興市2024-2025學(xué)年高三上學(xué)期期中考試語(yǔ)文試題(含答案)
- 家長(zhǎng)會(huì)教學(xué)課件
- 2024年消防宣傳月知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 2024年典型事故案例警示教育手冊(cè)15例
- 高一歷史(中外歷史綱要上冊(cè))期中測(cè)試卷及答案
- 20K607 防排煙及暖通防火設(shè)計(jì)審查與安裝
- 一氧化碳中毒培訓(xùn)課件
- 教案(餐巾折花)
- 一元三次、一元四次方程的基本解法畢業(yè)論文
評(píng)論
0/150
提交評(píng)論