基于物聯(lián)網(wǎng)的聲音污染監(jiān)測系統(tǒng)-使用NodeMCU測量和跟蹤分貝(dB)
我們當(dāng)然無法想象一個沒有聲音的世界。聲音是我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?,沒有聲音的存在,一切都會變得單調(diào)。但是任何東西太多都是危險的,隨著汽車、揚(yáng)聲器等的出現(xiàn),最近幾天聲音污染已經(jīng)成為一種威脅。因此,在這個項目中,我們將構(gòu)建一個物聯(lián)網(wǎng)分貝計來測量特定位置的聲音,并使用物聯(lián)網(wǎng)將值記錄在圖表中。像這樣的設(shè)備在醫(yī)院和學(xué)校這樣的地方很有用,可以跟蹤和監(jiān)測聲音水平,并采取相應(yīng)的行動。此前,我們還建立了一個空氣污染儀表,使用物聯(lián)網(wǎng)監(jiān)測空氣質(zhì)量。
聲級計用于聲學(xué)(通過空氣傳播的聲音)測量。最簡單的一種用于聲級計的傳聲器是電容傳聲器,它將精度與穩(wěn)定性和可靠性相結(jié)合。麥克風(fēng)的隔膜對聲波引起的氣壓變化作出反應(yīng)。這就是為什么該儀器通常被稱為聲壓級(SPL)計。
聲級計通常用于聲污染研究,以量化各種噪音,特別是工業(yè)、環(huán)境、采礦和飛機(jī)噪音。聲級計的讀數(shù)與人類感知的響度不太相關(guān),而人類感知的響度最好由響度計來測量。比響度可能是一種壓縮非線性,并在某些級別和某些頻率下變化。這些指標(biāo)也可以用其他幾種方法來計算。
在這里,我們將制作一個基于物聯(lián)網(wǎng)的分貝計,它將使用聲音傳感器測量以分貝(dB)為單位的聲音,并將其顯示在LCD顯示屏上,它還將將讀數(shù)推送到Blynk物聯(lián)網(wǎng)平臺,使其可以從世界各地訪問。
組件的要求
?ESP8266 nodecu單板
?麥克風(fēng)傳感器
?16*2液晶模塊
?電路試驗板
?連接電線
麥克風(fēng)模塊是如何工作的?
基于麥克風(fēng)的聲音傳感器用于檢測聲音。它可以測量聲音的大小。聲音傳感器模塊是一個小板,混合了一個麥克風(fēng)(50Hz-10kHz)和一些處理電路,將聲波轉(zhuǎn)換為電信號。該電信號被饋送到板載LM393高精度比較器進(jìn)行數(shù)字化,并在OUT引腳上可用。
該模塊具有內(nèi)置電位器,用于輸出信號的靈敏度調(diào)整。我們將用電位器來設(shè)定一個閾值。這樣,當(dāng)聲音的振幅超過邊緣值時,模塊將輸出LOW,否則輸出HIGH。除此之外,該模塊還有兩個led。當(dāng)模塊通電時,設(shè)備LED將亮起。當(dāng)數(shù)字輸出變?yōu)長OW時,狀態(tài)LED將亮起。
聲音傳感器只有三個引腳:VCC, GND和OUT。VCC引腳為傳感器供電,工作電壓為3.3V至5V。當(dāng)條件安靜時,OUT引腳輸出高電平,當(dāng)檢測到聲音時輸出低電平。
物聯(lián)網(wǎng)聲音計電路圖
連接非常簡單,我們只需要將聲音傳感器連接到一個模擬引腳,并將LCD連接到I2C引腳。
在上圖中,我們將聲音傳感器和LCD顯示器的電源引腳連接到NodeMCU的3v3和GND引腳上。與此同時,我們還將模塊的SCL和SDA引腳分別連接到D1和D2上,聲音傳感器的OUT引腳連接到A0引腳上。
設(shè)置Blynk遠(yuǎn)程監(jiān)控
對于物聯(lián)網(wǎng)部分,我們將使用Blynk物聯(lián)網(wǎng)平臺。我們以前使用Blynk和Nodemcu來構(gòu)建許多不同的項目。您還可以查看我們之前構(gòu)建的其他Blynk項目。在這個應(yīng)用程序中,我們將添加一個以分貝顯示聲音強(qiáng)度的儀表。讓我們快速設(shè)置應(yīng)用程序。
?首先,從PlayStore安裝Blynk應(yīng)用程序并創(chuàng)建一個帳戶。
?單擊create按鈕并創(chuàng)建您的新項目。
?給你的項目起一個名字,選擇NodeMCU板和Wi-Fi連接類型。
?一個驗證令牌將被發(fā)送到您的注冊電子郵件id。確保它的安全,因為它將在以后的編程中使用。
認(rèn)證令牌是一個唯一的字母數(shù)字字符串,用于識別Blynk服務(wù)器中的項目并通過它分配正確的數(shù)據(jù)。
?現(xiàn)在從列表中拖放一個量規(guī)并對其進(jìn)行配置。
?將儀表連接到虛擬引腳V0上,將數(shù)值分別設(shè)置為0和90,也將讀取速率設(shè)置為1秒。
現(xiàn)在你搞定了陷害布林克的事。讓我們跳到編碼部分。
物聯(lián)網(wǎng)分貝計程序
在這里,我們必須開發(fā)一個代碼,從聲音傳感器獲取輸入并將其值映射到分貝,在比較響度之后,它不僅應(yīng)該將其打印到16*2 LCD顯示器上,還應(yīng)該將其發(fā)送到Blynk服務(wù)器。
這個項目的完整代碼可以在本頁底部找到。您可以直接將其復(fù)制粘貼到IDE中,并僅更改三個參數(shù),即SSID, pass和驗證令牌。代碼解釋如下。
在代碼的第一部分中,我們包含了所有必要的庫和定義。此外,我們還定義了進(jìn)一步編程所需的變量和對象。
進(jìn)一步,我們創(chuàng)建了一個Blynk函數(shù)來處理我們的儀表連接到的虛擬引腳。我們只是將存儲在dB變量中的值發(fā)送到V0引腳。
在代碼的設(shè)置部分,我們定義引腳模式作為輸入,并開始LCD顯示以及Blynk功能。
在循環(huán)部分,我們將執(zhí)行所有的處理任務(wù),如比較和賦值,同時運(yùn)行Blynk函數(shù)。
項目運(yùn)作
現(xiàn)在您已經(jīng)理解了代碼,您可以簡單地將其上傳到您的NodeMCU板,然后項目就應(yīng)該開始工作了。
為了確保這些數(shù)值是正確的,我將它們與手機(jī)上可以測量聲音的android應(yīng)用程序進(jìn)行了比較。正如你從圖片中看到的,結(jié)果非常接近。
本文編譯自iotdesignpro