基于ESP32的物聯(lián)網(wǎng)傳感器和超聲波距離傳感器,Watmonitor可進(jìn)行實(shí)時(shí)水位監(jiān)測
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Watmonitor是一個(gè)使用物聯(lián)網(wǎng)傳感器進(jìn)行實(shí)時(shí)水位監(jiān)測的自托管應(yīng)用程序,具有多語言支持和易于訪問的數(shù)據(jù)。
Watmonitor是一個(gè)多功能的、自托管的web應(yīng)用程序,專為實(shí)時(shí)水位監(jiān)測而設(shè)計(jì)。使用基于ESP32的物聯(lián)網(wǎng)傳感器和超聲波距離傳感器,它可以跟蹤各種環(huán)境中的水位,如水井,水箱,湖泊等。
Watmonitor使水?dāng)?shù)據(jù)的監(jiān)測和分析變得簡單而高效。理想的個(gè)人和工業(yè)使用。提供方便地訪問實(shí)時(shí)和歷史數(shù)據(jù)的水位和水量。非常適合尋求實(shí)施水位解決方案的制造商和工程師!
標(biāo)準(zhǔn)來說,它每5分鐘記錄一次測量,因?yàn)樗鼘Φ凸β氏到y(tǒng)也很友好。Web界面是通用的,可以與任何傳感器技術(shù)一起使用,包括先進(jìn)的工業(yè)解決方案??捎糜谏⒀b物料、糧倉中糧食的高度測量。
傳感器節(jié)點(diǎn)可以以差模式(原理為超聲波,測量井頂?shù)剿坏木嚯x)、實(shí)模式(從井底計(jì)算或測量距離)發(fā)送數(shù)據(jù)。
Web界面- Watmonitor:
基于程序式PHP, HTML5和Bootstrap裸模板,SQL數(shù)據(jù)庫。提供輕量級(jí)的web界面,完全響應(yīng)智能手機(jī)(Android, iOS),電腦,筆記本電腦,桌子,甚至智能電視。Web界面被分成更多的子頁面,每個(gè)子頁面都有自己的功能,可以通過菜單訪問:
?概述-顯示最新的已知數(shù)據(jù),存儲(chǔ)在SQL數(shù)據(jù)庫與實(shí)時(shí)更新
?歷史記錄——提供測量的全部歷史記錄,并提供刪除精確測量的選項(xiàng)(需要HTTP認(rèn)證才能授權(quán)用戶進(jìn)行操作)
?記錄-跟蹤最大和最小值的水位在一天,一周,一個(gè)月
?圖-水位可視化期間的時(shí)間在折線圖,過去2小時(shí),24小時(shí),7天,30天和365天
?統(tǒng)計(jì)—提供在SQL數(shù)據(jù)庫中記錄了多少測量的確切數(shù)字
?程序-根據(jù)webapp運(yùn)行的域預(yù)生成ESP32微控制器的源代碼,包括動(dòng)態(tài)路由計(jì)算到所需的php文件,該文件負(fù)責(zé)將數(shù)據(jù)寫入數(shù)據(jù)庫。有WiFi和PHY以太網(wǎng)LAN8720連接的例子
?布線-為支持的微控制器提供接線圖
?選項(xiàng)-有選項(xiàng)設(shè)置井參數(shù),如:直徑,名稱,深度??梢愿挠脩艚缑娴恼Z言
?QR掃描器-基于HTML5的QR掃描器來獲取最后的數(shù)據(jù)
讓我們更深入地描述每個(gè)子頁面:
概述:網(wǎng)頁提供實(shí)際水位和水量數(shù)據(jù),并顯示傳感器節(jié)點(diǎn)狀態(tài),如果在最近5分鐘內(nèi)發(fā)送數(shù)據(jù)。還可以看到接收到的數(shù)據(jù)的最后時(shí)間戳和新數(shù)據(jù)的預(yù)期時(shí)間戳。QR碼可以通過QR掃描器掃描,通過掃描獲得這些數(shù)據(jù)。
水位和體積的數(shù)值也有箭頭指示,顯示數(shù)值是否上升/下降或與先前的測量值相等。在輸出的頂部,我們還可以看到水井的名稱,可以由用戶設(shè)置
歷史記錄:頁面服務(wù)SQL數(shù)據(jù)庫最新測量得到的記錄。在那里,您可以看到記錄的測量的時(shí)間戳、它們的唯一標(biāo)識(shí)符(id)以及用戶在通過HTTP認(rèn)證授權(quán)后可以使用哪個(gè)按鈕刪除記錄。
記錄:此子頁正在可視化多個(gè)量規(guī)圖(使用Raphael的JustGage庫)。可以看到一天、一周或一個(gè)月內(nèi)記錄的最高值和最低值。還有最后的測量值甚至提供了占用百分比。
這些儀表已經(jīng)設(shè)置在源代碼調(diào)色板從紅色到綠色。動(dòng)態(tài)地基于范圍內(nèi)的值,它正在改變顏色。此外,當(dāng)頁面打開時(shí),這些儀表具有功能(動(dòng)態(tài)效果),當(dāng)bar從0開始,然后移動(dòng)到水位值。
圖形:基于ApexCharts庫的線形圖。這些圖表可以顯示不同時(shí)間范圍內(nèi)的水位。這些圖形使用戶能夠放大任何圖形部分。該部分可以進(jìn)行嚴(yán)密的分析,甚至在縮放操作過程中動(dòng)態(tài)設(shè)置圖形的范圍(最小最大值)。
也可以使用home鍵將圖形重置到原來的范圍。用戶可以以各種格式導(dǎo)出整個(gè)圖形或縮放子圖形,以便在第三方軟件(Excel,谷歌Sheets, Word, Powerpoint, MATLAB)中進(jìn)一步分析或可視化。導(dǎo)出選項(xiàng)為:.svg(矢量圖形),.png(像素圖形)和。csv。CSV文件包含時(shí)間戳和水位值。
程序:程序子頁面很有趣。它在Arduino Core中動(dòng)態(tài)創(chuàng)建ESP32的源代碼。該實(shí)現(xiàn)還使用了FreeRTOS和Queue進(jìn)行任務(wù)間通信。一個(gè)源代碼用于WiFi連接,另一個(gè)用于PHY以太網(wǎng)連接(RMII接口)。
這兩種實(shí)現(xiàn)都是針對局域網(wǎng)中的DHCP客戶端實(shí)現(xiàn)的。生成器能夠添加web服務(wù)器域名,也確切的跟蹤到目標(biāo)PHP文件到源代碼。還有動(dòng)態(tài)放置令牌,設(shè)備需要在每次請求時(shí)發(fā)送該令牌以授權(quán)自己。
甚至源代碼都是基于您在瀏覽器上使用的協(xié)議生成的,所以是HTTP或HTTPS連接。系統(tǒng)沒有生成連接所需的根CA證書,因此如果您在您的域上使用Watmonitor,則需要從您的一方使用您自己的證書。
順便說一句。在項(xiàng)目的Github上有更多的源代碼。有Arduino, ESP8266和ESP32的示例實(shí)現(xiàn)。對于這些WiFi微控制器有ULP, OTA模式,WiFi設(shè)置通過WiFiManager等。
對于Arduino,有Wiznet以太網(wǎng)支持(W5100到W5500系列),但現(xiàn)在它是如此過時(shí)的硬件,使用ESP32與PHY以太網(wǎng)代替,更好的穩(wěn)定性,加密支持,動(dòng)態(tài)重新連接,如果LAN電纜斷開等,一些定制板也有PoE支持。對于ESP32,在其5.2版本下也有ESP-IDF框架實(shí)現(xiàn)。
選項(xiàng):子頁面提供了設(shè)置水井尺寸的選項(xiàng),其中包括厘米直徑和厘米深度。如果傳感器節(jié)點(diǎn)發(fā)送的是差分水位,則實(shí)際水位的計(jì)算采用深度。
例如,如果深度設(shè)置為400厘米,ESP32將記錄50厘米,當(dāng)數(shù)據(jù)到達(dá)服務(wù)器時(shí),服務(wù)器端會(huì)進(jìn)行計(jì)算,SQL數(shù)據(jù)庫中的最終讀數(shù)為350厘米。水井的直徑是用來計(jì)算水量的。
體積不保存在數(shù)據(jù)庫中,其值仍在現(xiàn)場計(jì)算。用戶可以為其水井設(shè)置名稱,也可以選擇6種語言中的一種用于水位界面。標(biāo)準(zhǔn)有英語,但用戶可以選擇德語,法語,西班牙語,俄語,斯洛伐克語。
QR掃描儀:基于HTML5 QR掃描儀Instascan的子頁面。它允許用戶使用智能手機(jī)掃描網(wǎng)站或傳感器節(jié)點(diǎn)本身的二維碼,以獲得最后已知的數(shù)據(jù)??捎糜诙鄠鞲衅靼惭b,通過應(yīng)用程序操作人員也可以根據(jù)掃描時(shí)的名稱識(shí)別準(zhǔn)確的傳感器。
增加了多種功能,如相機(jī)切換選項(xiàng),手機(jī)有多個(gè)攝像頭,也可以選擇打開手機(jī)的手電筒,如果當(dāng)前設(shè)置的相機(jī)支持它通過WebRTC。傳感器的數(shù)據(jù)(井名)從Watmonitor的web界面解析。
有一個(gè)子頁面json_output.php,它提供了在QR掃描儀應(yīng)用程序中解析和寫入的最后數(shù)據(jù)信息。相同的文件可以用于定期數(shù)據(jù)抓取的第三方服務(wù)(Grafana, Loxone, Domoticz, Thingsboard, Hassio)。
Watmonitor也有HTTP測試web接口,但不推薦,但它是唯一支持Arduino與以太網(wǎng)的接口,不支持HTTPS。
視頻顯示功能的Watmonitor網(wǎng)絡(luò)應(yīng)用程序的水位監(jiān)測
還有接線圖,但標(biāo)準(zhǔn)上應(yīng)該是眾所周知的,只是基于ESP32代碼中的引腳配置(注意:ESP32與PHY以太網(wǎng)相比,該微控制器的所有其他示例具有不同的引腳):
本文編譯自hackster.io