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