基于Arduino的土壤湿度检测
基于Arduino的土壤濕度檢測
目錄
1.總體設計框圖
2.系統(tǒng)的硬件設計
2.1系統(tǒng)硬件的簡述
2.2單片機模塊的設計
2.3溫度采集系統(tǒng)的設計
3、附錄
附錄1總體電路圖
附錄2 效果圖(3張)
附錄3源程序
1.總體設計框圖
?? 本澆花系統(tǒng)總體上分為硬件和軟件兩大組成部分。硬件部分包括Arduino? UNO開發(fā)板、溫濕度傳感器、通信模塊、澆水執(zhí)行系統(tǒng)和液晶顯示等。軟件部分包括Android客戶端。系統(tǒng)結構如圖1所示 ??
2.系統(tǒng)的硬件設計
2.1系統(tǒng)硬件的簡述
1,傳感器適用于土壤的濕度檢測;
2,模塊中藍色的電位器是用于土壤濕度的閥值調節(jié),
順時針調節(jié),控制的濕度會越大,逆時針越小
3,數(shù)字量輸出D0可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測土壤濕度;
4,小板模擬量輸出AO(0~1023)可以和AD模塊相連,通過AD轉換,可以獲得土壤濕度更精確的數(shù)值;
2.2單片機模塊的設計
2.2.1單片機的功能特性描述
圖2-1 Arduino實物圖
???????????????
圖2-2 Arduino引腳圖
Arduino UNO可以通過3種方式供電,而且能自動選擇供電方式:
外部直流電源通過電源插座供電。
電池連接電源連接器的GND和VIN引腳。
USB接口直接供電。
電源引腳說明:
??? VIN --- 當外部直流電源接入電源插座時,可以通過VIN向外部供電;也可以通過此引腳向UNO直接供電;VIN有電時將忽略從USB或者其他引腳接入的電源。
??? 5V --- 通過穩(wěn)壓器或USB的5V電壓,為UNO上的5V芯片供電。
??? 3.3V --- 通過穩(wěn)壓器產生的3.3V電壓,最大驅動電流50mA。
??? GND --- 地腳。
輸入輸出:
??? 14路數(shù)字輸入輸出口:工作電壓為5V,每一路能輸出和接入最大電流為40mA。每一路配置了20-50K歐姆內部上拉電阻(默認不連接)。除此之外,有些引腳有特定的功能
??? 串口信號RX(0號)、TX(1號): 與內部 ATmega8U2 USB-to-TTL 芯片相連,提供TTL電壓水平的串口接收信號。
??? 外部中斷(2號和3號):觸發(fā)中斷引腳,可設成上升沿、下降沿或同時觸發(fā)。
??? 脈沖寬度調制PWM(3、5、6、9、10 、11):提供6路8位PWM輸出。
??? SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。
??? LED(13號):Arduino專門用于測試LED的保留接口,輸出為高時點亮LED,反之輸出為低時LED熄滅。
??? 6路模擬輸入A0到A5:每一路具有10位的分辨率(即輸入有1024個不同值),默認輸入信號范圍為0到5V,可以通過AREF調整輸入上限。除此之外,有些引腳有特定功能
??? TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C總線)。
??? AREF:模擬輸入信號的參考電壓。
Reset:信號為低時復位單片機芯片。
2.3溫度采集系統(tǒng)的設計
2.3.1濕度傳感器的概述
土壤濕度檢測的基本特性:
2.3.2傳感器的借口說明
用于土壤的濕度檢測。可通過電位器調節(jié)土壤濕度的閥值,順時針調節(jié),控制的濕度會越大,逆時針越小;濕度低于設定值時,DO輸出高電平,模塊提示燈亮;濕度高于設定值時,DO輸出低電平,模塊提示燈滅。工作電壓3.3V-5V。3V時,在空氣中AO讀取的值最大為695 , 浸泡在水里的 最小值245;5V時,在空氣中AO讀取的值最大為1023 ,浸泡在水里的最小值 245。
2.3.3硬件連接
VCC接 Arduino 3.3V或5V
GND接 Arduino GND
AO 接 ArduinoAnalog
DO接 Arduino Digital 4
3、附錄
附錄1總體電路圖
附錄2 效果圖(3張)
?
?
附錄3源程序
//LingShun Lab#define Moisture A0 //定義AO 引腳 為 IO-A0#define DO 7??????? //定義DO 引腳 為 IO-7void setup() {pinMode(Moisture, INPUT);//定義A0為輸入模式pinMode(DO, INPUT);Serial.begin(9600);}void loop() {//串口返回測量數(shù)據(jù)Serial.print("Moisture=");Serial.print(analogRead(Moisture));//讀取AO的數(shù)值Serial.print("|DO=");Serial.println(digitalRead(DO));//讀取DO的數(shù)值delay(1000);}總結
以上是生活随笔為你收集整理的基于Arduino的土壤湿度检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 博客搭建六:绑定自己域名的方法
- 下一篇: 文献阅读20期:Transformer