基于物聯(lián)網(wǎng)的洪水監(jiān)測(cè)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
洪水是一種已知的重大自然災(zāi)害,給環(huán)境和生物造成了巨大的損失。在這種情況下,對(duì)不同條件下的河床水位狀況進(jìn)行應(yīng)急預(yù)警就顯得尤為重要。在這個(gè)項(xiàng)目中,目標(biāo)是感知河床的水位,檢查它們是否處于正常狀態(tài)。如果它們超過(guò)了限制,那么它就會(huì)通過(guò)LED指示和互聯(lián)網(wǎng)應(yīng)用程序提醒人們。在這里,我們使用超聲波傳感器來(lái)感知河流水位,并使用NodeMCU ESP8266來(lái)處理這些數(shù)據(jù)。這些數(shù)據(jù)將被上傳到ThingSpeak物聯(lián)網(wǎng)云,使用該云,可以從世界任何地方以圖形方式監(jiān)測(cè)河流水位。
組件的要求
?ESP8266 NodeMCU
?超聲波傳感器
?電力供應(yīng)
?led(紅色和綠色)
?電路試驗(yàn)板
?跳投
洪水監(jiān)測(cè)系統(tǒng)的運(yùn)作
我們以前使用ESP8266 NodeMCU來(lái)構(gòu)建許多物聯(lián)網(wǎng)項(xiàng)目。上面的框圖展示了這個(gè)基于物聯(lián)網(wǎng)的洪水監(jiān)測(cè)系統(tǒng)的工作原理。在這里,超聲波傳感器被用來(lái)感應(yīng)河水的水位。從超聲波傳感器輸出的數(shù)據(jù)被饋送到NodeMCU,在那里它被處理并發(fā)送到ThingSpeak進(jìn)行圖形監(jiān)控和緊急警報(bào)。在這里,紅色LED用于在關(guān)鍵洪水條件下發(fā)出警報(bào),綠色LED用于指示正常情況。
HC-SR04超聲波傳感器
超聲波傳感器利用超聲波的原理來(lái)確定與物體的距離。超聲波傳感器產(chǎn)生高頻聲波。當(dāng)超聲波擊中物體時(shí),它以回聲的形式反射出來(lái),被接收器感知。通過(guò)使用回聲到達(dá)接收器所需的時(shí)間,我們可以計(jì)算到目標(biāo)物體的距離。
超聲波測(cè)距儀由兩個(gè)超聲波換能器組成。其中,單片機(jī)作為發(fā)射器,將單片機(jī)的電脈沖轉(zhuǎn)換為超聲波脈沖,接收器接收發(fā)射的脈沖。如果它接收到這些信號(hào),那么它就會(huì)產(chǎn)生一個(gè)輸出脈沖,其時(shí)間周期可以用來(lái)確定與目標(biāo)的距離。
特性
?工作電壓:5V
?工作電流:15mA
?工作頻率:40HZ
?測(cè)量距離:2cm-4m
?測(cè)量角度:15度。
?觸發(fā)輸入脈沖:10uS
通過(guò)之前的項(xiàng)目,如物聯(lián)網(wǎng)庫(kù)存管理和Wi-Fi控制機(jī)器人,了解更多關(guān)于超聲波傳感器的信息。
洪水監(jiān)測(cè)系統(tǒng)電路圖
洪水監(jiān)測(cè)系統(tǒng)的電路圖如下
真正的設(shè)置是這樣的:
為洪水監(jiān)測(cè)和警報(bào)系統(tǒng)設(shè)置ThingSpeak帳戶
根據(jù)上述電路圖成功完成硬件后,現(xiàn)在是時(shí)候設(shè)置物聯(lián)網(wǎng)平臺(tái)了,數(shù)據(jù)可以存儲(chǔ)在該平臺(tái)上進(jìn)行在線監(jiān)控。這里我們使用ThingSpeak來(lái)存儲(chǔ)數(shù)據(jù),這是一個(gè)非常流行的物聯(lián)網(wǎng)云平臺(tái),用于在線構(gòu)建存儲(chǔ)、監(jiān)控和處理數(shù)據(jù)。我們還使用ThingSpeak構(gòu)建了許多基于物聯(lián)網(wǎng)的項(xiàng)目。
第一步:注冊(cè)ThingSpeak
首先,如果你以前沒(méi)有Mathworks帳戶,請(qǐng)登錄https://thingspeak.com/并創(chuàng)建一個(gè)新的免費(fèi)Mathworks帳戶。
第二步:登錄ThingSpeak
用你的憑證登錄ThingSpeak,然后點(diǎn)擊“新頻道”?,F(xiàn)在填寫(xiě)項(xiàng)目的詳細(xì)信息,如名稱(chēng)、字段名稱(chēng)等。這里我們必須創(chuàng)建四個(gè)字段名,如濕度,溫度,壓力和雨。然后點(diǎn)擊“保存頻道”。
步驟3:記錄憑據(jù)
選擇已創(chuàng)建的通道并記錄以下憑據(jù)。
通道ID,它在通道視圖的頂部。
編寫(xiě)一個(gè)API密鑰,可以在通道視圖的API Keys選項(xiàng)卡上找到。
步驟4:向GUI添加小部件
單擊“Add Widgets”并添加四個(gè)適當(dāng)?shù)膚idget,如儀表、數(shù)字顯示和指示器。在我的例子中,我?guī)Я艘粋€(gè)洪水指示器。為每個(gè)小部件選擇適當(dāng)?shù)淖侄蚊?
代碼的解釋
在成功完成硬件設(shè)置之后,現(xiàn)在是對(duì)ESP8266 NodeMCU進(jìn)行編程的時(shí)候了。
要使用Arduino IDE將代碼上傳到NodeMCU,請(qǐng)遵循以下步驟:
1. 打開(kāi)Arduino IDE,然后進(jìn)入File - >Preferences - >Settings。
2. 在“附加板管理器URL”字段中鍵入https://arduino.esp8266.com/stable/package_esp8266com_index.json,然后單擊“確定”。
3. 現(xiàn)在轉(zhuǎn)到Tools > Board > Boards Manager。在“單板管理器”窗口中,在搜索框中輸入ESP8266,選擇最新版本的單板,單擊“安裝”。
4. 安裝完成后,進(jìn)入“Tools ->Board ->”,選擇“NodeMCU 1.0(ESP-12E Module)”?,F(xiàn)在您可以使用Arduino IDE對(duì)NodeMCU進(jìn)行編程。
完成上述設(shè)置后,使用Arduino IDE對(duì)NodeMCU進(jìn)行編程,將完整的代碼上傳到ESP8266 NodeMCU。下面給出了完整代碼的逐步解釋。
通過(guò)在代碼中包含所有必需的庫(kù)文件來(lái)啟動(dòng)代碼,例如ESP8266WiFi.h用于ESP8266板等。這里,ThingSpeak.h庫(kù)用于ThingSpeak平臺(tái),可以通過(guò)以下步驟將其添加到Arduino IDE中:
?在Arduino IDE中,選擇Sketch/Include Library/Manage Libraries。
?從列表中單擊ThingSpeak庫(kù),然后單擊Install按鈕。
接下來(lái),定義用于超聲波傳感器和led的引腳。
現(xiàn)在,定義了網(wǎng)絡(luò)憑據(jù)——即SSID和密碼,它們是將NodeMCU連接到互聯(lián)網(wǎng)所必需的。然后定義ThingSpeak帳戶憑據(jù),如通道號(hào)和寫(xiě)入API,這些都是前面記錄的。確保您已經(jīng)編輯了您的憑據(jù)來(lái)代替這些變量。
然后,定義用于計(jì)時(shí)的變量。
然后,將NodeMCU連接到互聯(lián)網(wǎng),調(diào)用WiFi。開(kāi)始并傳遞網(wǎng)絡(luò)SSID和密碼作為參數(shù)。使用WiFi.status()檢查網(wǎng)絡(luò)連接是否成功,連接成功后,在Serial Monitor上打印一條帶有本地IP地址的消息。
然后使用保存的憑證連接到ThingSpeak平臺(tái)。為此,ThingSpeak。使用Begin。
為了計(jì)算距離,通過(guò)超聲波傳感器的三角引腳向傳感器輸入脈沖。這里根據(jù)HC-SR04數(shù)據(jù)表,給出2微秒脈沖,然后從回波引腳讀取傳感器的輸出脈沖,并以厘米為單位計(jì)算距離。
然后,為正常狀態(tài)和泛洪狀態(tài)下的LED指示編寫(xiě)if-else條件。這里根據(jù)我的設(shè)置,我已經(jīng)采取了4厘米作為參考。您可以根據(jù)您的設(shè)置更改它。
最后,每隔10秒將河流水位的值上傳到ThingSpeak頻道。
在洪水的情況下,ThingSpeak會(huì)顯示一個(gè)大紅圈,如下圖所示:
這只是基于物聯(lián)網(wǎng)的洪水監(jiān)測(cè)預(yù)警系統(tǒng)的一個(gè)基本模型,還有很大的改進(jìn)空間。
本文編譯自iotdesignpro