加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

基于STM32的溫室大棚環(huán)境檢測(cè)及自動(dòng)澆灌系統(tǒng)設(shè)計(jì)

09/04 08:48
5514
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

需要全部資料請(qǐng)私信我!

基于STM32的溫室大棚環(huán)境檢測(cè)及自動(dòng)澆灌系統(tǒng)設(shè)計(jì)

一、緒論

1.1 研究背景及意義

在傳統(tǒng)農(nóng)業(yè)灌溉模式下,監(jiān)測(cè)系統(tǒng)通常分為兩種,一是通過人工檢測(cè)獲得,二則是通過有線檢測(cè)系統(tǒng)獲得,前者的人工成本高、勞動(dòng)強(qiáng)度大,而效率卻相對(duì)較低,后者則會(huì)面臨有線傳輸時(shí)信號(hào)衰減、架設(shè)線路困難等問題。同時(shí),傳統(tǒng)的人工灌溉不僅浪費(fèi)人力資源,而且無法精準(zhǔn)把握土壤溫濕度,一定程度上造成了灌溉不均勻與水資源的浪費(fèi)。而智能灌溉系統(tǒng)的出現(xiàn)有效的解決了這一系列問題。

智能灌溉系統(tǒng)是將物聯(lián)網(wǎng)技術(shù)與農(nóng)業(yè)技術(shù)這兩者相結(jié)合,其具有現(xiàn)代化的田間數(shù)據(jù)采集系統(tǒng),對(duì)農(nóng)田中的空氣溫度、土壤濕度、光照強(qiáng)度等環(huán)境參數(shù)做到工業(yè)級(jí)的精準(zhǔn)捕獲,更高效地管理農(nóng)業(yè)流程,同時(shí)該系統(tǒng)具備一個(gè)自動(dòng)的灌溉系統(tǒng),該系統(tǒng)根據(jù)所收集的數(shù)據(jù)做出響應(yīng),大大提高了水資源的利用和農(nóng)作物的產(chǎn)量和品質(zhì),實(shí)現(xiàn)了農(nóng)業(yè)生產(chǎn)的智能化、網(wǎng)絡(luò)化和精準(zhǔn)化。為此,本文給出一種基于物聯(lián)網(wǎng)的自動(dòng)澆灌系統(tǒng)。

1.2 研究?jī)?nèi)容

隨著物聯(lián)網(wǎng)技術(shù)蓬勃發(fā)展,對(duì)傳統(tǒng)的農(nóng)業(yè)帶來巨大的挑戰(zhàn)和機(jī)遇,基于物聯(lián)網(wǎng)的智能農(nóng)業(yè)越受到關(guān)注。本課題針對(duì)智能農(nóng)業(yè)自動(dòng)澆灌問題,基于嵌入式處理器平臺(tái),利用傳感器技術(shù)和物聯(lián)網(wǎng)通信技術(shù),設(shè)計(jì)一種基于物聯(lián)網(wǎng)的自動(dòng)澆灌系統(tǒng)。在設(shè)計(jì)中:
(1)運(yùn)用電路、傳感器、物聯(lián)網(wǎng)通信等相關(guān)工程原理,對(duì)植物生長(zhǎng)環(huán)境參數(shù)采集、處理和分析,結(jié)合經(jīng)濟(jì)、安全等非技術(shù)因素,給出系統(tǒng)設(shè)計(jì)解決方案;
(2)根據(jù)解決方案,實(shí)現(xiàn)環(huán)境參數(shù)的信號(hào)檢測(cè)、水閥及光強(qiáng)控制、無線通信電路、嵌入式處理器最小系統(tǒng)以及人機(jī)交互接口電路等系統(tǒng)硬件設(shè)計(jì);
(3)對(duì)數(shù)據(jù)處理、數(shù)據(jù)傳輸及信息顯示等功能進(jìn)行嵌入式代碼化編程,實(shí)現(xiàn)系統(tǒng)軟件設(shè)計(jì)和整體調(diào)試;

1.3 功能設(shè)計(jì)

本課題采用傳感器技術(shù)和物聯(lián)網(wǎng)技術(shù),并結(jié)合嵌入式開發(fā)平臺(tái)設(shè)計(jì)了一種自動(dòng)澆灌系統(tǒng)??梢詫?shí)現(xiàn)對(duì)農(nóng)作物生長(zhǎng)環(huán)境的實(shí)時(shí)監(jiān)控,并通過收集光照、環(huán)境溫度、土壤濕度等數(shù)據(jù),結(jié)合設(shè)置好的適宜農(nóng)作物生長(zhǎng)的環(huán)境閾值,實(shí)現(xiàn)自動(dòng)灌溉、補(bǔ)光、通風(fēng)等功能,達(dá)到省工省水的目的,切實(shí)實(shí)現(xiàn)農(nóng)業(yè)灌溉智能化,本課題具有很強(qiáng)的實(shí)用性及巨大的市場(chǎng)空間。
① 監(jiān)測(cè)植物生長(zhǎng)的土壤溫濕度、光照強(qiáng)度、環(huán)境溫度;
② 控制水閥、風(fēng)扇、補(bǔ)光燈等設(shè)備工作;
③ 可用手機(jī)APP顯示數(shù)據(jù)并控制設(shè)備。

二、系統(tǒng)方案設(shè)計(jì)

2.1 總體方案設(shè)計(jì)

本課題針對(duì)智能農(nóng)業(yè)自動(dòng)澆灌問題,基于嵌入式處理器平臺(tái),利用傳感器技術(shù)和物聯(lián)網(wǎng)通信技術(shù),設(shè)計(jì)一種基于物聯(lián)網(wǎng)的自動(dòng)澆灌系統(tǒng),系統(tǒng)總體方案框圖如圖:
在這里插入圖片描述
澆灌系統(tǒng)由三個(gè)傳感器模塊、單片機(jī)最小系統(tǒng)、三個(gè)外部設(shè)備和藍(lán)牙模塊組成,其中單片機(jī)最小系統(tǒng)以STM32F103C8T6單片機(jī)為核心控制器,STM32單片機(jī)實(shí)現(xiàn)對(duì)各個(gè)外設(shè)模塊總體控制,負(fù)責(zé)處理從傳感器采集到的數(shù)據(jù)信息,從而對(duì)各類不同信息進(jìn)行相關(guān)操作,控制各個(gè)外設(shè)實(shí)現(xiàn)相關(guān)的功能。
外設(shè)模塊其中包含溫度檢測(cè)模塊,用于檢測(cè)當(dāng)前環(huán)境的溫度;土壤濕度檢測(cè)模塊,用于獲取當(dāng)前土壤濕度;供電電路,給整個(gè)主機(jī)部分供電;水泵繼電器,若土壤濕度小于濕度閾值,水泵繼電器閉合,若土壤濕度小于土壤溫度閾值,水泵繼電器打開;風(fēng)扇模塊,繼電器控制步進(jìn)電機(jī)控制風(fēng)扇閉合;顯示模塊,顯示檢測(cè)到的環(huán)境溫度、土壤濕度、光照強(qiáng)度和設(shè)置的閾值;藍(lán)牙模塊,將檢測(cè)到的數(shù)據(jù)通過該模塊發(fā)送給移動(dòng)端,也可通過該模塊在移動(dòng)端設(shè)置閾值。

三、系統(tǒng)硬件設(shè)計(jì)

3.1 STM32單片機(jī)最小系統(tǒng)

本次澆灌系統(tǒng)設(shè)計(jì)中,STM32單片機(jī)最小系統(tǒng)由單片機(jī)芯片STM32F103C8T6、晶振電路、復(fù)位電路、電源電路等部分組成。其原理圖設(shè)計(jì)如圖3.1所示。
單片機(jī)芯片選用STM32F103C8T6,該芯片是一款基于ARM Cortex-M內(nèi)核STM32系列的32位的微控制器,其程序存儲(chǔ)器容量是64KB,需要電壓2V~3.6V,工作溫度為-40°C ~ 85°C。計(jì)算性能方面卓越,出錯(cuò)率小、具有靈活的中斷管理功能,價(jià)格適中。STM32F103C8T6廣泛應(yīng)用于電子設(shè)備中,具有復(fù)雜控制和算法的處理器。它的主要功能包括模擬數(shù)字轉(zhuǎn)換(ADC)、定時(shí)器中斷控制器(TIM)、串行通信接口(USART)等功能。此外,它還擁有許多具有創(chuàng)新性和高性能的特性,如高速I/O端口、嵌入式硬件分支預(yù)測(cè)等,是一款成本低、功能強(qiáng)大的單片機(jī)芯片。
在這里插入圖片描述

3.2 環(huán)境溫度檢測(cè)電路設(shè)計(jì)

環(huán)境溫度傳感器DS18B20模塊測(cè)量農(nóng)田周圍環(huán)境的溫度,模塊具有3個(gè)引腳,其中兩個(gè)分別接VCC和GND,最后一個(gè)引腳與單片機(jī)I/O口相連,傳輸數(shù)據(jù)。其原理圖設(shè)計(jì)如圖:
在這里插入圖片描述
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號(hào),具有體積小,硬件開銷低,抗干擾能力強(qiáng),精度高的特點(diǎn)。DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場(chǎng)合,如不銹鋼套管封裝、TO-92封裝和小軸DIP封裝等,本次系統(tǒng)設(shè)計(jì)采用小軸DIP封裝,此封裝可適用于露天環(huán)境中溫度較高的情況,契合農(nóng)田環(huán)境的溫度測(cè)量應(yīng)用。本設(shè)計(jì)中封裝后的DS18B20可用于檢測(cè)農(nóng)田環(huán)境的溫度,工作精度較高,耐磨耐碰,體積小,使用方便,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。

3.3 土壤濕度檢測(cè)電路設(shè)計(jì)

土壤濕度傳感器YL-69模塊檢測(cè)盆栽的土壤濕度。YL-69是一個(gè)簡(jiǎn)單的土壤濕度傳感器,是一種電容式傳感器,主要使用的是濕敏電容。當(dāng)環(huán)境的濕度發(fā)生改變時(shí),會(huì)使得濕敏電容存在的環(huán)境中的介質(zhì)發(fā)生改變,導(dǎo)致濕敏電容中的電容數(shù)值產(chǎn)生變化,電容的數(shù)值正比于濕度值。由于濕敏電容的靈敏度高、響應(yīng)速度快、滯后量小,此外微小的體積、極低的功耗,使得濕敏電容很容易小型化和集成化。YL-69 采用CMOS工藝,可以確保其低功耗,同時(shí)還具有很高的可靠性和穩(wěn)定性。傳感器內(nèi)部含有一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料做成的溫度傳感器,在同一芯片上,與A/D轉(zhuǎn)換器串行接口電路實(shí)現(xiàn)連接。其原理圖設(shè)計(jì)如圖
在這里插入圖片描述

3.4 光照強(qiáng)度檢測(cè)電路設(shè)計(jì)

光照強(qiáng)度傳感器模塊檢測(cè)農(nóng)田中農(nóng)作物所受到的光照強(qiáng)度。該模塊選用光敏電阻5528,其原理圖設(shè)計(jì)如圖:
在這里插入圖片描述
5528光敏電阻是一種基于半導(dǎo)體材料光敏元件,其工作原理是通過外界光照強(qiáng)度對(duì)器件內(nèi)部半導(dǎo)體材料的電荷載流子密度進(jìn)行影響,從而改變器件的電阻值。當(dāng)光照強(qiáng)度增加時(shí),載流子密度增加,電阻值降低;反之,當(dāng)光照強(qiáng)度減小時(shí),載流子密度減小,電阻值升高。即通過不同阻值的電流來檢測(cè)光照強(qiáng)度,測(cè)量光照強(qiáng)度范圍為0-65535lx。

3.5 水泵控制電路設(shè)計(jì)

本系統(tǒng)的澆灌部分由一個(gè)JDQ-5繼電器、小型抽水泵與驅(qū)動(dòng)電路組成。在這個(gè)電路中,繼電器JDQ-5用于控制外部高功率電器或電磁設(shè)備。將JDQ-5的控制電壓與單片機(jī)的工作電壓保持一致,即將JDQ-5的控制電壓引腳與單片機(jī)的5V電源相連。當(dāng)單片機(jī)輸出的IO口電流較小時(shí),無法直接驅(qū)動(dòng)繼電器,需要使用三極管驅(qū)動(dòng)器件進(jìn)行緩沖放大,此時(shí)三極管型號(hào)選用S8050三極管,其是一款小功率NPN型硅管,集電極-基極電壓最大可為40V,集電極電流為0.5A。當(dāng)GPIO輸出高電平時(shí),NPN三極管導(dǎo)通,繼電器線圈得到5V的供電,繼電器吸合,觸點(diǎn)閉合;當(dāng)GPIO輸出低電平時(shí),NPN三極管截止,繼電器線圈斷電,繼電器釋放,觸點(diǎn)斷開。其原理圖設(shè)計(jì)如圖3.5所示。
在這里插入圖片描述

3.6 風(fēng)扇控制電路設(shè)計(jì)

本系統(tǒng)風(fēng)扇模塊部分由JDQ-5繼電器、風(fēng)扇和驅(qū)動(dòng)電路組成,步進(jìn)電機(jī)帶動(dòng)風(fēng)扇旋轉(zhuǎn),其工作原理與上述水泵控制電路相似,原理圖設(shè)計(jì)如圖
在這里插入圖片描述

3.7 燈光控制電路設(shè)計(jì)

本系統(tǒng)燈光模塊部分由JDQ-5繼電器、補(bǔ)光燈和驅(qū)動(dòng)電路組成,繼電器控制農(nóng)田環(huán)境是否需要補(bǔ)光,其工作原理與上述水泵控制電路相似,原理圖設(shè)計(jì)如圖
在這里插入圖片描述

四、系統(tǒng)軟件設(shè)計(jì)

自動(dòng)澆灌系統(tǒng)軟件設(shè)計(jì)通過單片機(jī)核心控制,將采集到的環(huán)境溫度、土壤濕度、光照強(qiáng)度實(shí)時(shí)顯示在LCD1602液晶屏上,并將農(nóng)田環(huán)境中的各項(xiàng)參數(shù)設(shè)定正常范圍值,單片機(jī)核心控制器對(duì)數(shù)據(jù)進(jìn)行分析處理后,若環(huán)境參數(shù)超出設(shè)定范圍,則控制各模塊運(yùn)行;同時(shí)將檢測(cè)到的數(shù)據(jù)通過無線通信模塊傳送到手機(jī)APP上,使手機(jī)也可以實(shí)時(shí)顯示農(nóng)田環(huán)境的數(shù)據(jù),同時(shí)也可通過手機(jī)APP進(jìn)行遠(yuǎn)程控制。

4.1 主程序設(shè)計(jì)

本次設(shè)計(jì)的自動(dòng)澆灌系統(tǒng)將實(shí)現(xiàn)以下功能:采集農(nóng)田生長(zhǎng)環(huán)境中的溫度、土壤濕度、光照強(qiáng)度,將采集到的數(shù)據(jù)顯示在屏幕上,并通過無線通信模塊將數(shù)據(jù)傳輸?shù)绞謾C(jī)APP上。若環(huán)境溫度高于所設(shè)置的閾值,則打開風(fēng)扇制冷,降低環(huán)境溫度;若土壤濕度低于閾值,則打開水泵模塊,抽水增加土壤濕度,使農(nóng)作物處于適宜的土壤環(huán)境中;若光照強(qiáng)度低于閾值,則打開補(bǔ)光燈對(duì)環(huán)境進(jìn)行補(bǔ)光。系統(tǒng)主程序設(shè)計(jì)流程圖如圖
在這里插入圖片描述

五、系統(tǒng)調(diào)試

5.1 系統(tǒng)硬件調(diào)試

通過對(duì)澆灌系統(tǒng)的硬件進(jìn)行調(diào)試,來檢驗(yàn)系統(tǒng)的硬件電路能否正確地工作,具體包括以下五個(gè)部分:
(1)檢查電路:組裝好的電路要在通電之前仔細(xì)檢查電路連線是否有錯(cuò)誤,對(duì)照原理圖按一定的順序逐級(jí)檢查。特別要注意電源與地是否有短路問題,集成電路晶體管的引腳是否接錯(cuò),輕輕撥動(dòng)元器件觀察其是否焊接牢固,以及能否實(shí)現(xiàn)期望的性能。確認(rèn)后可以進(jìn)行下一步驟。
(2)通電觀察:上電前一定要調(diào)試好所需要的電源電壓值,并確定電路板電源端沒有短路現(xiàn)象后給電路通電,上電后先觀察是否有異常現(xiàn)象,如冒煙、放電的聲光、元器件發(fā)燙、異常氣味等,如果有以上情況要立即切斷電源,待排除故障后重新接通電源,隨后測(cè)量每個(gè)集成塊的電源引腳電壓是否正常,以保證集成電路是否已通電工作。
在這里插入圖片描述
(3)靜態(tài)調(diào)試:不加入輸入信號(hào)的情況下測(cè)量各級(jí)直流工作電壓和電流是否正常。一般對(duì)晶體管和集成電路進(jìn)行靜態(tài)工作點(diǎn)調(diào)試。
(4)動(dòng)態(tài)調(diào)試:加入輸入信號(hào)觀察電路輸出信號(hào)是否符合要求,即各個(gè)傳感器模塊是否能正常工作。
(5)整體指標(biāo)測(cè)試:對(duì)本次課題設(shè)計(jì)要求的計(jì)數(shù)指標(biāo)進(jìn)行測(cè)試并對(duì)測(cè)試數(shù)據(jù)進(jìn)行分析,最后得出測(cè)試結(jié)論,以確定電路的技術(shù)指標(biāo)是否符合設(shè)計(jì)要求。

5.2 系統(tǒng)運(yùn)行測(cè)試

系統(tǒng)運(yùn)行測(cè)試的目的在于處理整個(gè)系統(tǒng)在實(shí)際操作中發(fā)生的一些問題,如邏輯上的差錯(cuò),以及對(duì)最后的結(jié)果與所期望的結(jié)果的一致性進(jìn)行判定。在完成了硬件和軟件的測(cè)試之后,就可以將該程序放入 MCU 進(jìn)行調(diào)試。程序通電后,每個(gè)傳感器模塊開始正常工作,無線傳輸模塊、LCD1602顯示模塊、風(fēng)扇模塊以及補(bǔ)光燈模塊的工作現(xiàn)象如圖5.7,5.8,5.9,5.10所示。
無線傳輸模塊:?jiǎn)纹瑱C(jī)將數(shù)據(jù)通過藍(lán)牙模塊傳輸?shù)绞謾C(jī)APP上,此時(shí)手機(jī)APP可以實(shí)時(shí)監(jiān)測(cè)農(nóng)田的環(huán)境參數(shù)(光照強(qiáng)度5%,環(huán)境溫度25℃,土壤濕度57%),且手機(jī)APP所顯示的數(shù)據(jù)與LCD1602液晶顯示屏中的數(shù)據(jù)一致。由下圖APP界面可見,可通過手機(jī)APP設(shè)置農(nóng)田環(huán)境參數(shù)的初始閾值,并可以控制或切換外部設(shè)備的工作狀態(tài),實(shí)現(xiàn)遠(yuǎn)程操控。
在這里插入圖片描述
顯示模塊:?jiǎn)纹瑱C(jī)將傳感器采集到的農(nóng)田環(huán)境數(shù)據(jù)進(jìn)行分析和處理后顯示在LCD1602液晶屏上,實(shí)現(xiàn)農(nóng)田環(huán)境參數(shù)的實(shí)時(shí)顯示。
在這里插入圖片描述
風(fēng)扇模塊:?jiǎn)纹瑱C(jī)將溫度傳感器DS18B20采集到的數(shù)據(jù)經(jīng)過分析和處理后與提前設(shè)定的閾值相比,下圖顯示的是傳感器捕獲到的環(huán)境溫度高于設(shè)定的閾值,此時(shí)風(fēng)扇打開進(jìn)入工作狀態(tài),當(dāng)環(huán)境溫度下降到適宜農(nóng)作物生長(zhǎng)的閾值時(shí),風(fēng)扇自動(dòng)關(guān)閉。
在這里插入圖片描述
補(bǔ)光燈模塊:?jiǎn)纹瑱C(jī)將光敏電阻5528采集到的數(shù)據(jù)經(jīng)過分析和處理后與提前設(shè)定的閾值相比,下圖顯示的是通過光敏電阻捕獲到的光照強(qiáng)度低于設(shè)定的閾值,此時(shí)補(bǔ)光燈打開進(jìn)入工作狀態(tài),當(dāng)光照強(qiáng)度達(dá)到閾值時(shí),補(bǔ)光燈會(huì)自動(dòng)關(guān)閉。
在這里插入圖片描述

六、總結(jié)

本次自動(dòng)澆灌系統(tǒng)通過傳感器對(duì)農(nóng)作物生長(zhǎng)環(huán)境中的環(huán)境溫度、土壤濕度、光照強(qiáng)度等信息進(jìn)行收集,通過單片機(jī)核心控制器對(duì)采集到的數(shù)據(jù)進(jìn)行分析和處理,實(shí)現(xiàn)對(duì)農(nóng)作物生長(zhǎng)環(huán)境的實(shí)時(shí)監(jiān)測(cè),并判斷是否需要開啟控制模塊來將農(nóng)田環(huán)境調(diào)整到農(nóng)作物生長(zhǎng)最適宜的環(huán)境條件。最后,藍(lán)牙HC-06模塊將傳感器采集到的環(huán)境參數(shù)發(fā)送到手機(jī)APP上,在手機(jī)APP上實(shí)時(shí)顯示數(shù)據(jù),也可以通過手機(jī)APP實(shí)現(xiàn)對(duì)各控制模塊的遠(yuǎn)程操控。
本次設(shè)計(jì)的自動(dòng)澆灌系統(tǒng)雖然已普遍實(shí)現(xiàn)了所需的功能,但仍在較多方面存在不足,例如極寒露天環(huán)境時(shí)無法使農(nóng)田環(huán)境升溫來保證農(nóng)作物處在適宜的生長(zhǎng)條件下,且系統(tǒng)捕獲的農(nóng)田環(huán)境參數(shù)會(huì)存在誤差,進(jìn)而影響澆灌效果。另外澆灌系統(tǒng)與移動(dòng)端的連接不是非常穩(wěn)定,可能會(huì)導(dǎo)致系統(tǒng)故障或停機(jī)。針對(duì)以上問題,我會(huì)在之后的時(shí)間里挑選合適的加熱設(shè)備投入應(yīng)用,對(duì)比其他傳感器選取更為精準(zhǔn)的來替換,保證數(shù)據(jù)的準(zhǔn)確性。并精進(jìn)自己的無線傳輸技術(shù),實(shí)現(xiàn)澆灌系統(tǒng)與移動(dòng)端的穩(wěn)定連接。

七、附錄

視頻展示:

基于stm32的溫室大棚環(huán)境監(jiān)測(cè)及自動(dòng)澆灌系統(tǒng)設(shè)計(jì)

PCB設(shè)計(jì):
在這里插入圖片描述
部分代碼:

#include "sys.h"
#include "adc.h"
#include "delay.h"
#include "lcd1602.h"
#include "ds18b20.h"
#include "timer.h"
#include "gpio.h"
#include "usart1.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

#define STM32_RX1_BUF       Usart1RecBuf 
#define STM32_Rx1Counter    RxCounter
#define STM32_RX1BUFF_SIZE  USART1_RXBUFF_SIZE

unsigned int  light=0;
unsigned char temperature=0;
unsigned char setTempValue=35;        //溫度設(shè)置值
unsigned int  setSoilMoisture=10;
unsigned char setLightValue=20;       //光照設(shè)置值
unsigned int  soilMoisture;           //土壤濕度

bool usart_send_flag = 0;
bool mode = 0;               //0是自動(dòng)模式,1是手動(dòng)模式
bool shuaxin  = 0;
bool shanshuo = 0;
bool sendFlag = 1;

unsigned char setn=0;//記錄設(shè)置鍵按下的次數(shù)

void displayLight(void)//顯示光照
{
		u16 test_adc=0;
	
	  /獲取光線值
	  test_adc = Get_Adc_Average(ADC_Channel_8,10);//讀取通道9的5次AD平均值
		light = test_adc*99/4096; //轉(zhuǎn)換成0-99百分比
		light = light >= 99? 99: light; //最大只能到百分之99
	  if(light<=setLightValue && shanshuo)
		{
			  LCD_Write_Char(3,1,' '); 
				LCD_Write_Char(4,1,' '); 
		}
		else
		{
				LCD_Write_Char(3,1,light/10+'0'); 
				LCD_Write_Char(4,1,light%10+'0'); 
		}
}

void displaySoilMoisture(void)//顯示土壤濕度
{

	   soilMoisture =100- (Get_Adc_Average(ADC_Channel_9,10)*100/4096);

		if(soilMoisture > 99)soilMoisture = 99;        //最大取百分之99

		 if(soilMoisture<=setSoilMoisture && shanshuo)
		{
			 LCD_Write_Char(9,0,' '); 
			 LCD_Write_Char(10,0,' ');
		}
		else
		{
			 LCD_Write_Char(9,0,soilMoisture/10+'0'); 
			 LCD_Write_Char(10,0,soilMoisture%10+'0');
		}
}

void displayTemperature(void)//顯示溫度
{
		temperature=ReadTemperature();
	  if(temperature>=setTempValue && shanshuo)
		{
			 LCD_Write_Char(12,1,' '); 
			 LCD_Write_Char(13,1,' ');
		}
		else
		{
			 LCD_Write_Char(12,1,temperature/10+'0'); 
			 LCD_Write_Char(13,1,temperature%10+'0');
		}
}

void displaySetValue(void)
{
		if(setn == 1)
		 {
				LCD_Write_Char(7,1,setSoilMoisture/10+'0'); 
			  LCD_Write_Char(8,1,setSoilMoisture%10+'0');
		 }
		 if(setn == 2)
		 {
				LCD_Write_Char(7,1,setTempValue/10+'0'); 
			  LCD_Write_Char(8,1,setTempValue%10+'0');
		 }
		 if(setn == 3)
		 {
				LCD_Write_Char(7,1,setLightValue/10+'0'); 
			  LCD_Write_Char(8,1,setLightValue%10+'0');
		 }
}

void keyscan(void)
{
	if(KEY1 == 0) //模式切換按鍵
	{
	 	delay_ms(10); //消抖
		if(KEY1 == 0)
		{
		 	while(KEY1 == 0); //等待按鍵松開
			BEEP=0;
			setn ++;
			 if(setn == 1)
			 {
					LCD_Write_String(0,0,"set the Moisture");//顯示字符串
					LCD_Write_String(0,1,"       00%      ");
			 }
			 if(setn == 2)
			 {
					LCD_Write_String(0,0,"  set the Temp  ");//顯示字符串
					LCD_Write_String(0,1,"       00 C     ");
				  LCD_Write_Char(9,1,0xdf);
			 }
			 if(setn == 3)
			 {
					LCD_Write_String(0,0,"  set the Light ");//顯示字符串
					LCD_Write_String(0,1,"       00%      ");
			 }
			 if(setn == 4)
			 {
					LCD_Write_String(0,0,"  set the mode  ");//顯示字符串
					LCD_Write_String(0,1,"       ZD       ");
				  if(mode==0)LCD_Write_String(7,1,"ZD");else LCD_Write_String(7,1,"SD");
			 }
			 displaySetValue();
			 if(setn >= 5)
			 {
					setn = 0;
				  LCD_Write_String(0,0,"Moisture:  %    ");//顯示字符串
					LCD_Write_String(0,1,"Gx:  % Temp:   C");
					LCD_Write_Char(14,1,0xdf);
				  if(mode==0)LCD_Write_String(13,0,"ZD");else 

博客主頁(yè):https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實(shí)物的友友請(qǐng)關(guān)注、點(diǎn)贊,私信吧!

  • 聯(lián)系方式.txt

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
ST3215SB32768B0HSZA1 1 Kyocera AVX Components Quartz Crystal,

ECAD模型

下載ECAD模型
暫無數(shù)據(jù) 查看
TJA1043T,118 1 NXP Semiconductors TJA1043 - High-speed CAN transceiver SOIC 14-Pin

ECAD模型

下載ECAD模型
$2.43 查看
HFBR-2522ETZ 1 Foxconn Receiver, 1Mbps, Through Hole Mount, ROHS COMPLIANT, 6 PIN
$17.11 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜