基于物聯(lián)網(wǎng)的水流量計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著水位的日益下降,有效的水資源管理已成為一種必要。計(jì)算水流量的方法有很多,用于測(cè)量管道中流量的水流量?jī)x表也有各種類(lèi)型,但它們都過(guò)于昂貴。代替這些昂貴的水表,我們可以使用現(xiàn)成的低成本的YFS201水流量傳感器。除了測(cè)量水流量外,該傳感器還可用于軟飲料工業(yè)和化學(xué)工業(yè),以在此自動(dòng)化過(guò)程中持續(xù)測(cè)量和量化他們正在處理的液體。
因此,在今天的教程中,我們將使用YFS201水流量傳感器和NodeMCU構(gòu)建基于物聯(lián)網(wǎng)的水流量?jī)x表。它將計(jì)算流量和水量,并將其發(fā)送到云端(Thinger.IO),以監(jiān)控水的消耗。
組件的要求
?NodeMCU ESP8266
?水流傳感器
?跳線
線路圖
物聯(lián)網(wǎng)水流量計(jì)的電路圖如下所示。這很簡(jiǎn)單,因?yàn)槲覀冎贿B接NodeMCU和水流傳感器。
流量傳感器的VCC(紅線)和GND(黑線)引腳連接到NodeMCU的5V和GND引腳上,Signal引腳(黃線)連接到NodeMCU的D4引腳上。
YFS201水流傳感器
水流量傳感器,顧名思義,就是一種測(cè)量水流量的裝置。水流量傳感器的工作原理是霍爾效應(yīng)。根據(jù)霍爾效應(yīng)原理,當(dāng)電流沿一個(gè)方向流動(dòng)的導(dǎo)體或半導(dǎo)體垂直于磁場(chǎng)時(shí),可以測(cè)量到與電流路徑成直角的電壓。
在水流量傳感器中,在液體的路徑上放置一個(gè)轉(zhuǎn)子,以利用霍爾效應(yīng)。轉(zhuǎn)子的軸與霍爾效應(yīng)傳感器相連。當(dāng)液體流過(guò)水流量傳感器時(shí),使轉(zhuǎn)子旋轉(zhuǎn)。由于它是一種電流流動(dòng)線圈和連接到轉(zhuǎn)子軸的磁鐵的排列,因此產(chǎn)生電壓/脈沖。每秒或每分鐘的脈沖數(shù)用于測(cè)量通過(guò)傳感器的流量和總水量。
水流量傳感器有紅、黃、黑三根線。紅色線用于5V ~ 18V的供電電壓,黑色線用于GND。黃色線是一個(gè)輸出引腳,通過(guò)它我們可以讀取傳感器數(shù)據(jù)。
輸入輸出設(shè)置
的事情。io是一個(gè)物聯(lián)網(wǎng)的開(kāi)源平臺(tái)。它以一種非常簡(jiǎn)單的方式提供了所有需要的工具來(lái)原型化、擴(kuò)展和管理連接產(chǎn)品。的事情。io提供了三個(gè)基本工具,即Data Bucks, Dashboard和Endpoint,用于處理設(shè)備數(shù)據(jù);這些工具可以用來(lái)可視化設(shè)備數(shù)據(jù),擴(kuò)展設(shè)備的互操作性。
向thing發(fā)送數(shù)據(jù)。首先,您需要在thing上添加一個(gè)新設(shè)備。IO并獲取設(shè)備憑據(jù)。這些憑證將在代碼中用于建立NodeMCU和thing之間的連接。IO云將數(shù)據(jù)發(fā)送到云。
所以登錄你的Thinger吧。IO帳戶(hù),并按照以下步驟連接設(shè)備。
步驟1:第一步是創(chuàng)建一個(gè)新設(shè)備。要?jiǎng)?chuàng)建新設(shè)備,請(qǐng)單擊菜單選項(xiàng)卡中的“設(shè)備”,然后單擊“添加設(shè)備”按鈕。
然后用設(shè)備ID、描述和憑據(jù)填寫(xiě)表格,或者為你的設(shè)備生成隨機(jī)憑據(jù),然后點(diǎn)擊“添加設(shè)備”。
這是所有;您的設(shè)備已準(zhǔn)備好連接。在下一步中,我們將對(duì)NodeMCU進(jìn)行編程,以便將數(shù)據(jù)發(fā)送給thing。io平臺(tái)。
編程N(yùn)odeMCU
發(fā)送數(shù)據(jù)到thing的完整代碼。IO在本頁(yè)的末尾給出。這里我們將解釋一些重要的部分。
通過(guò)包含所有必需的庫(kù)來(lái)啟動(dòng)代碼。ThingerESP8266.h庫(kù)用于建立IoT平臺(tái)與NodeMCU之間的連接。你可以從Arduino ide庫(kù)管理器中安裝ThingerESP8266.h庫(kù)。
接下來(lái),您需要在代碼中輸入您的憑據(jù),這樣設(shè)備才能被識(shí)別并與您的帳戶(hù)相關(guān)聯(lián)。
之后,定義連接水流傳感器的引腳。
之后,我們需要定義一些變量來(lái)保存這些值。易失性字節(jié)“count”將存儲(chǔ)脈沖的數(shù)量。
現(xiàn)在創(chuàng)建一個(gè)新函數(shù),以便在接收到脈沖時(shí)增加脈沖計(jì)數(shù)。中斷函數(shù)將調(diào)用pulseCounter()函數(shù)。
在void setup()中,將水流傳感器引腳定義為輸入上拉。NodeMCU有內(nèi)置的上拉電阻,可以通過(guò)將pinMode()設(shè)置為INPUT_PULLUP來(lái)訪問(wèn)。另外,將脈沖計(jì)數(shù)和流量設(shè)置為零。
現(xiàn)在在接下來(lái)的幾行中,定義中斷。在attachInterrupt()函數(shù)中,指定‘ SENSOR ’是外部中斷引腳,每當(dāng)接收到脈沖時(shí)就調(diào)用‘ pulseCounter ’函數(shù)。
現(xiàn)在在void loop()中,使用脈沖計(jì)數(shù)和毫升計(jì)算流量和總水量。
現(xiàn)在將水流傳感器連接到NodeMCU并上傳代碼。NodeMCU將使用您的帳戶(hù)憑據(jù)連接到您之前創(chuàng)建的設(shè)備。如果連接成功,顯示已連接,如下圖所示:
您可以檢查您的設(shè)備統(tǒng)計(jì)數(shù)據(jù),如傳輸數(shù)據(jù),接收數(shù)據(jù),IP地址,時(shí)間連接等,只需點(diǎn)擊設(shè)備名稱(chēng)從設(shè)備菜單。
當(dāng)我們現(xiàn)在接收數(shù)據(jù)時(shí),我們將創(chuàng)建一個(gè)儀表板來(lái)使用小部件可視化數(shù)據(jù)。
要?jiǎng)?chuàng)建Dashboard,請(qǐng)單擊菜單選項(xiàng)卡中的Dashboards,然后單擊“Add Dashboard”。
現(xiàn)在在下一個(gè)窗口中,輸入儀表板詳細(xì)信息,如儀表板名稱(chēng)、ID和描述,然后單擊dashboard。
之后,通過(guò)單擊dashboard名稱(chēng)來(lái)訪問(wèn)新的dashboard。默認(rèn)情況下,儀表板將顯示為空。要添加Widgets,首先需要通過(guò)單擊儀表板的右上角開(kāi)關(guān)來(lái)啟用編輯模式。然后單擊“Add Widget”按鈕。
當(dāng)你點(diǎn)擊“添加小部件”按鈕時(shí),它會(huì)顯示一個(gè)彈出窗口,你可以在其中選擇小部件類(lèi)型,背景顏色等。在我的例子中,我選擇了Gauge Widget。
當(dāng)你點(diǎn)擊save時(shí),它將帶你到下一個(gè)屏幕,在那里你需要選擇Source Value, Device, Resource, Value和Refresh模式。選擇所有值,然后單擊Save按鈕。
現(xiàn)在對(duì)另一個(gè)變量重復(fù)相同的過(guò)程。我的儀表盤(pán)是這樣的:
本文編譯自iotdesignpro