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