通過使用Arduino開發(fā)板和雨量傳感器(Rain Sensor)連接,可以輕松制作一個(gè)簡單的雨水檢測(cè)系統(tǒng)(Rain Detection System)。傳感器將檢測(cè)到任何降雨,Arduino開發(fā)板將對(duì)其進(jìn)行感應(yīng)并執(zhí)行所需的操作。這樣的系統(tǒng)可用于許多不同的領(lǐng)域,例如農(nóng)業(yè)和汽車領(lǐng)域。降雨檢測(cè)可用于自動(dòng)調(diào)節(jié)灌溉過程。而且,連續(xù)的降雨數(shù)據(jù)可以幫助農(nóng)民使用該智能系統(tǒng),僅在需要時(shí)才自動(dòng)為作物澆水。同樣,在汽車領(lǐng)域,通過使用雨水檢測(cè)系統(tǒng)可以使雨刷器完全自動(dòng)化。而且,家庭自動(dòng)化系統(tǒng)還可以使用雨水檢測(cè)功能自動(dòng)關(guān)閉窗戶并調(diào)節(jié)室溫。在本篇文章中,我們將使用Arduino和蜂鳴器制作簡單的雨量傳感器。然后,您可以在該設(shè)置基礎(chǔ)之上制作任何所需的內(nèi)容。另外,請(qǐng)注意,雨量傳感器模塊根據(jù)使用情況也稱為雨滴傳感器、或雨水傳感器,但本文中它們均指的是同一傳感器,并且工作原理相同。
所需的材料
● Arduino UNO開發(fā)板
● 雨量傳感器
● 蜂鳴器
● 面包板
● 連接導(dǎo)線
雨量傳感器
雨量檢測(cè)模塊由兩個(gè)電路板組成,分別是雨量傳感器電路板和控制板。
雨量傳感器電路板模塊(Rain Sensor)由兩個(gè)銅線組成,其設(shè)計(jì)方式使得它們?cè)诟稍飾l件下可為電源電壓提供高電阻,并且該模塊的輸出電壓為5V。隨著電路板上濕度的增加,該模塊的電阻逐漸減小。隨著電阻的降低,其輸出電壓也會(huì)相對(duì)于模塊上的濕度降低。雨量傳感器電路板模塊由兩個(gè)用于連接到控制板的引腳組成,如下所示。
控制板模塊控制靈敏度并將模擬輸出轉(zhuǎn)換為數(shù)字輸出。如果模擬值低于控制板的閾值,則輸出為低電平;如果模擬值高于閾值,則輸出為數(shù)字高電平。為了進(jìn)行比較和轉(zhuǎn)換,使用了LM393運(yùn)算放大器比較器。運(yùn)算放大器比較器是一個(gè)有趣的電路,可以用來比較兩個(gè)不同的電壓值。
如下所示,雨量控制模塊由4個(gè)用于連接Arduino的引腳組成,即VCC、GND、D0、A0,另外兩個(gè)引腳用于連接雨量傳感器電路板模塊??傊炅總鞲衅麟娐钒迥K檢測(cè)雨水,控制板模塊用于控制靈敏度,并將模擬值轉(zhuǎn)換為數(shù)字值。
雨量傳感器的工作原理
雨量傳感器模塊的工作原理很容易理解。在晴天期間,由于模塊干燥,因此對(duì)電源電壓具有很高的電阻。該電壓在模塊的輸出引腳上為5V。如果由Arduino的模擬引腳讀取,則此5V讀取為1023。在下雨期間,雨水會(huì)導(dǎo)致雨量傳感器模塊電路板的濕度增加,進(jìn)而導(dǎo)致電阻減小。隨著電阻逐漸減小,輸出電壓開始減小。
當(dāng)雨量傳感器模塊完全濕透并且其提供的電阻最小時(shí),輸出電壓將盡可能低(約0)。如果由Arduino的模擬引腳讀取,則此0V將讀取為0值。如果模塊部分潮濕,則該雨板模塊的輸出將取決于其提供的電阻。如果通過防雨板模塊提供的電阻的輸出為3V,則讀取的模擬值將為613??梢酝ㄟ^以下公式得出查找ADC的公式:ADC =(模擬電壓值X 1023)/ 5。通過使用此公式,您可以將任何模擬電壓轉(zhuǎn)換為Arduino模擬讀取值。
電路圖
下面的電路圖顯示了Arduino與雨量傳感器的電路連接。
電路圖中所示的雨量傳感器模塊連接至控制板??刂瓢宓腣CC引腳連接到5V電源。接地引腳接地。如果需要,可以將D0引腳連接到Arduino的任何數(shù)字引腳,并且該引腳必須在程序中聲明為輸入引腳。 由于D0引腳輸出的是高低電平信號(hào),因此我們無法獲得D0引腳確切的輸出電壓值。如果輸出引腳超過閾值電壓,則控制模塊可以監(jiān)測(cè)輸出的變化。即使雨量傳感器模塊中的輸出電壓發(fā)生一點(diǎn)變化,我們也需要操作蜂鳴器。由于這些原因,我們使用A0引腳,并將其連接到Arduino的模擬引腳,這使得監(jiān)視輸出變化變得容易。蜂鳴器可以連接到Arduino的任意數(shù)字引腳。如果蜂鳴器需要5V以上的電壓,則嘗試使用繼電器電路或晶體管。
代碼說明
雨量傳感器的Arduino代碼是使用Arduino IDE編寫的。該項(xiàng)目的完整代碼在本文末尾給出。
#define rainfall A0
#define buzzer 5
int value;
int set=10;
將引腳A0定義為rainfall,將引腳5定義為buzzer,并將變量“value”和“set”聲明為整數(shù),并將其變量set值設(shè)置為10??梢愿鶕?jù)實(shí)際情況更改此值。如果您希望即使下雨很小也能啟動(dòng)蜂鳴器,將變量值設(shè)置為最小值。
void setup() {
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
pinMode(rainfall,INPUT);
}
初始化串口通訊,并將蜂鳴器設(shè)置為輸出引腳,將rainfall引腳設(shè)置為輸入引腳。
void loop() {
value = analogRead(rainfall);
Serial.println(value);
value = map(value,0,1023,225,0);
在loop函數(shù)中,函數(shù)analogRead讀取雨量傳感器的值。Serial.println(value)在串口監(jiān)視器上打印該值,這在調(diào)試時(shí)很有幫助。map函數(shù)映射輸出引腳上的雨量傳感器的值,并為變量分配一個(gè)值,范圍為0到225。
if(value>=set){
Serial.println("rain detected");
digitalWrite(buzzer,HIGH);
如果讀取的傳感器值大于set值,則程序進(jìn)入循環(huán),在串口監(jiān)視器上打印消息并打開蜂鳴器
else{
digitalWrite(buzzer, LOW);
僅當(dāng)該值小于set值時(shí),程序才進(jìn)入else功能。當(dāng)設(shè)定值大于傳感器的值時(shí),將關(guān)閉蜂鳴器,表明沒有雨。
基于Arduino的雨水檢測(cè)系統(tǒng)的工作
該系統(tǒng)的工作方式是:在下雨時(shí),雨水充當(dāng)觸發(fā)器,從而觸發(fā)蜂鳴器。在雨滴傳感器的Arduino代碼中,我們定義了引腳5是蜂鳴器和A0是雨滴傳感器引腳。
這是雨量傳感器的眾多應(yīng)用場(chǎng)景中的一種,在雨刷、其他家庭自動(dòng)化、農(nóng)業(yè)部門等中也會(huì)看到相同的原理。希望您理解該項(xiàng)目并喜歡進(jìn)行制作。
編輯:hfy
-
雨量傳感器
+關(guān)注
關(guān)注
1文章
72瀏覽量
9404 -
Arduino
+關(guān)注
關(guān)注
190文章
6527瀏覽量
197477
發(fā)布評(píng)論請(qǐng)先 登錄
智慧灌區(qū)雨水情監(jiān)測(cè)及閘門遠(yuǎn)控系統(tǒng)方案
城市雨水情監(jiān)測(cè)設(shè)備技術(shù)與應(yīng)用
山洪雨水情防洪自動(dòng)監(jiān)測(cè)系統(tǒng)技術(shù)應(yīng)用分析
雨水情監(jiān)測(cè)的設(shè)備原理、參數(shù)及應(yīng)用
雨水管網(wǎng)水質(zhì)水位流量監(jiān)測(cè)設(shè)備技術(shù)架構(gòu)與實(shí)踐應(yīng)用
雨水泵站水質(zhì)監(jiān)測(cè)物聯(lián)網(wǎng)系統(tǒng)方案
下穿通道雨水泵站遠(yuǎn)程監(jiān)控運(yùn)維管理系統(tǒng)方案
小型水庫 #雨水情測(cè)報(bào)和大壩安全監(jiān)測(cè)項(xiàng)目 項(xiàng)目 #水庫大壩安全監(jiān)測(cè)系統(tǒng) #小型水庫雨水情自動(dòng)測(cè)報(bào)系統(tǒng)
如何用Arduino Nano/UNO R3開發(fā)板給另一個(gè)Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導(dǎo)程序bootlaoder
雨水情監(jiān)測(cè)預(yù)警系統(tǒng)物聯(lián)網(wǎng)解決方案
集裝箱殘損檢測(cè)系統(tǒng)與傳統(tǒng)人工檢測(cè)對(duì)比
小型水庫防汛(雨水情監(jiān)測(cè))系統(tǒng)方案
中小河流雨水情數(shù)采監(jiān)測(cè)系統(tǒng)方案
基于Arduino的雨水檢測(cè)系統(tǒng)設(shè)計(jì)
評(píng)論