基于物聯(lián)網(wǎng)的超聲波傳感器水位指示器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
今天我們將研究一個(gè)水位指示器,它的數(shù)據(jù)可以通過(guò)局域網(wǎng)的網(wǎng)頁(yè)進(jìn)行監(jiān)測(cè)。水位將通過(guò)超聲波距離測(cè)量傳感器來(lái)檢測(cè)。我們之前已經(jīng)使用浮子傳感器構(gòu)建了另一個(gè)基于物聯(lián)網(wǎng)的水箱水位監(jiān)測(cè)系統(tǒng),但在這個(gè)項(xiàng)目中,我們將使用超聲波傳感器來(lái)檢測(cè)水位。
你一定見過(guò)幾種水位指示器,但它們中的大多數(shù)使用特殊的浮子傳感器,不容易獲得,也不容易使用。但在本教程中,我們將使用超聲波傳感器來(lái)測(cè)量水位。您將在本文中進(jìn)一步了解。
為了使項(xiàng)目更加用戶友好,我們將其與本地web服務(wù)器集成,通過(guò)該服務(wù)器,您可以監(jiān)控連接到與ESP板相同Wi-Fi的任何設(shè)備的數(shù)據(jù)。
超聲波傳感器的工作和使用
在了解項(xiàng)目的工作原理之前,讓我們先看看超聲波傳感器是如何工作的。本項(xiàng)目中使用的典型HC-SR04超聲傳感器如下圖所示。
超聲波傳感器是一種通過(guò)發(fā)射超聲波來(lái)測(cè)量目標(biāo)物體的距離,并將反射的聲音轉(zhuǎn)換成電信號(hào)的電子裝置。
超聲波的傳播速度比可聽聲音(即人類能聽到的聲音)的速度快。超聲波傳感器有兩個(gè)主要組成部分:發(fā)射器(使用壓電晶體發(fā)射聲音)和接收器(在聲音到達(dá)和離開目標(biāo)后接收聲音)。
為了計(jì)算傳感器和物體之間的距離,傳感器測(cè)量從發(fā)射器發(fā)出聲音到與接收器接觸所花費(fèi)的時(shí)間。這個(gè)計(jì)算公式是-
那么我們可以在哪里使用這些傳感器呢?我們以前在非接觸式溫度測(cè)量,基于物聯(lián)網(wǎng)的庫(kù)存管理和許多其他項(xiàng)目中使用過(guò)這些傳感器,除此之外,它還可以用于機(jī)器人導(dǎo)航以及工廠自動(dòng)化。水位感應(yīng)是另一個(gè)很好的用途,可以通過(guò)將一個(gè)傳感器放置在水面上來(lái)完成。另一個(gè)水生應(yīng)用是使用這些傳感器“看到”水體的底部,在水中移動(dòng),但反射出底部的表面。我們?cè)谖覀兊暮樗綔y(cè)和監(jiān)測(cè)系統(tǒng)中也使用了同樣的原理。
用于測(cè)量水位的超聲波傳感器
所以,現(xiàn)在我們知道了超聲波傳感器的工作原理,很容易理解這個(gè)項(xiàng)目的工作原理。我們只需要讀取傳感器的值并將其轉(zhuǎn)換為CMs,在完成所有這些之后,我們必須在本地web服務(wù)器中發(fā)布數(shù)據(jù),該服務(wù)器將在連接到Wi-Fi后由我們的NodeMCU板創(chuàng)建。
所需的組件
為了使這個(gè)項(xiàng)目,我們將需要一些基本的組件。
ESP8266 NodeMCU板:這將是我們整個(gè)項(xiàng)目的核心。
HC-SR04超聲波傳感器:如前所述,這將用于通過(guò)超聲波感應(yīng)液位。
面包板:所有的連接將在面包板本身,使它簡(jiǎn)單。
跳線:當(dāng)我們使用面包板時(shí),跳線或連接線是連接的方式。
超聲波傳感器與NodeMCU的接口
由于我們使用的組件不多,所以本項(xiàng)目中使用的物聯(lián)網(wǎng)水位指示器電路圖相當(dāng)簡(jiǎn)單。我們只需要將HC-SR04超聲波傳感器連接到我們的NodeMCU模塊。其余的工作將通過(guò)軟件部分本身完成。
這是連接的電路圖。
我使用面包板將超聲波傳感器與NodeMCU連接起來(lái),然后使用連接線進(jìn)行連接。我的測(cè)試設(shè)置如下所示,稍后我們將使用較長(zhǎng)的跳線將傳感器安裝在演示水箱上。
編程N(yùn)odeMCU讀取水位并在web服務(wù)器上顯示
現(xiàn)在我們已經(jīng)完成了連接。我們將繼續(xù)到項(xiàng)目的編碼部分。讓我清除我們?cè)诰帉懘a時(shí)要遵循的算法。完整的代碼可以在本頁(yè)的底部找到。
我們的Arduino代碼需要做的是,首先連接到代碼中提到的SSID和密碼的網(wǎng)絡(luò)。成功獲取后,它需要將本地IP地址吐槽給串行監(jiān)視器,以便我們可以訪問(wèn)它創(chuàng)建的網(wǎng)頁(yè)。這樣做之后,它應(yīng)該開始處理超聲波傳感器,計(jì)算完距離后,它必須將數(shù)據(jù)發(fā)送到我們創(chuàng)建的網(wǎng)頁(yè)。
讓我們一步一步地理解它,所以首先,我們包括必要的庫(kù)和將在代碼中進(jìn)一步使用的全局變量。與此同時(shí),我們還提供了我們的Wi-Fi路由器的SSID和密碼,并啟動(dòng)了端口為80的web服務(wù)器。
此外,在設(shè)置部分,我們將引腳的引腳模式設(shè)置為輸入和輸出,并使用HTML將頁(yè)面存儲(chǔ)在page變量中。我們保留了一行HTML代碼來(lái)組成我們的網(wǎng)頁(yè)。在設(shè)置部分本身,我們連接到Wi-Fi路由器并將IP地址打印到串行監(jiān)視器。
我們創(chuàng)建的HTML頁(yè)面每三秒刷新一次。您可以在代碼本身中更改它。
大部分工作已經(jīng)完成,現(xiàn)在在回路部分,我們只是計(jì)算與超聲波傳感器的距離,存儲(chǔ)后,我們將數(shù)據(jù)發(fā)布在我們的網(wǎng)頁(yè)上。我們的網(wǎng)頁(yè)以這種方式制作,它每3秒刷新一次。這是關(guān)于代碼的大部分內(nèi)容,現(xiàn)在只需上傳代碼,讓我們看看實(shí)際的項(xiàng)目。
基于物聯(lián)網(wǎng)的水位指示器測(cè)試與工作
這是我們使用NodeMCU板創(chuàng)建的網(wǎng)頁(yè)。它包含一個(gè)標(biāo)題,即基于web的水位指示器,下面是打印通過(guò)HCSR04超聲波傳感器的實(shí)時(shí)數(shù)據(jù)。水位數(shù)值以cm為單位打印,數(shù)值越小,容器越空,反之亦然。
在直接測(cè)試水位之前,我們先測(cè)試了距離測(cè)量。你可以從上面和下面的圖片中看到,它很有魅力。
經(jīng)過(guò)測(cè)試,我們?cè)O(shè)置了一個(gè)水位儀來(lái)演示工作。我們把超聲波傳感器貼在罐子的頂部,還放了一個(gè)尺子進(jìn)行測(cè)量。這樣,監(jiān)視器將顯示以cm為單位的罐子的空度數(shù)據(jù)。下面是設(shè)置的樣子
現(xiàn)在工作是這樣的,首先,我們保持罐子是空的,所以服務(wù)器上應(yīng)該顯示20,因?yàn)楣拮邮?0cm深,到目前為止是空的。
現(xiàn)在我們把罐子裝滿了一半,所以現(xiàn)在它應(yīng)該顯示20的一半值。
本文編譯自iotdesignpro