方案特點
系統將影響水質的參數數據以及歷史數據、船只檢測的運動軌跡、船只周邊的攝像監控情況等統一展示在大屏上,清晰明了。
數據都是通過對應的監測儀和傳感器實時上傳的,實時且精準。
通過GPS技術獲取船只的經緯度上傳,結合監測的水質參數,能精準的獲取船只在每個監測點的位置以及每個監測點對應的水質、氣象數據。
通過大屏的圖表數據可知道近一周的水質變化情況以及監測情況。
想要監測其他區域水質情況,綁定不同的設備即可。
系統整體預覽效果

應用場合
需要進行水質監測的區域都適用。
系統說明
系統通過海創可視化開發微微服務平臺采集數據上傳至阿里云平臺,海創可視化平臺再接收阿里云平臺的數據進行使用。結合大數據可視化看板,主要用于展示當天監測區域的水質參數、當天監測不同區域水質的變化程度、監測次數、監測船周圍的情況、近幾天水質類別的變化情況以及檢測船的監測軌跡生成等。
解決問題
- 采集水質分析儀數據
- 攝像頭監控控制
- 氣象儀數據分析
- 設備數據上云
- 船舶在湖上定位
- 等直線預測算法數據模型分析
- 運用網格式的方法將湖面劃分為若干個網格
- 預測該網格的水質變化情況
系統解析
系統環境
軟件:海創可視化平臺、海創微服務、阿里云平臺、海創云平臺
硬件:水質檢測儀、測深儀、氣象檢測儀、GPS、攝像頭、無人機
創建產品
在阿里云平臺分別創建產品“氣象數據”、“水質監測”,添加對應屬性。


創建設備

剛創建的設備處于未激活狀態

數據采集和上傳
水質數據采集
登錄海創可視化開發平臺,點擊服務開發,選擇對應項目,創建微服務“水質監測”,從左邊的節點列表選擇http、function、阿里云IOT、海創IOT和調試節點,填寫數據信息并連接。




由于水質分類需要依托不同的參數進行判斷以及將獲取到的數據賦值給對應的設備屬性,需要用function節點進行數據轉換。


- 阿里云IOT(連接阿里云平臺指定產品下的指定設備)





顯示當前連接的節點下發的數據內容,默認顯示msg.payload,調試節點可以接在任何節點的后端,用于查看節點的輸出數據是否有問題,便于調試。

氣象數據采集

登錄海創可視化開發平臺,點擊服務開發,選擇對應項目,創建微服務“氣象監測”,從左邊的節點列表選擇定時器、modbus、阿里云IOT、海創IOT和調試節點,填寫數據信息并連接。下面挑選幾個節點進行介紹。

可根據需求選擇相應內容設置觸發屬性,因為要實時獲取氣象數據,這里選擇時間戳,并設置每隔10秒觸發一次。



配置完成后,點擊部署即可。然后返回阿里云查看設備狀態和對應數據。



登陸海創云平臺,在"數據報表欄"可通過各種形式查看數據,從而更有效、直觀地對數據做出判斷。
水溫等值線圖

水溫網格點位圖

創建可視化大屏
場景設計制作
在海創可視化組態編輯器創建應用“水質監測”,點擊“在線編輯”進入,在設計欄創建文件夾存放自己設計的元素,根據需求進行設計。以下便是水質監測看板的靜態設計過程,平臺擁有構建復雜應用所需的全套基礎模塊和組件,通過拖拉拽方法輕松實現炫酷大屏。

數據綁定
選擇需要綁定數據的組件,選擇綁定的微服務。

選擇需要綁定的標簽屬性和對應的設備屬性。

動畫設置

攝像頭跳動動畫是引用了平臺自定義的setAnimation方法,通過這個方法可以實現組件的上下左右跳動、隱藏顯示、放大和縮小等。當前是通過設置組件的位置(x,y)中的y屬性實現上下跳動:
node.setAnimation({//node為組件的標簽
amiStart: {//定義動作對象
property: "y",//獲取組件的屬性,可以是組件的y、x、opacity、width、height等屬性
from: startNum,//讓組件從最初的數值
to: endNum,//變化到最終的數值
frames: num,//動畫幀數
next: "amiEnd"//下一個要執行的動作,amiEnd為自定義對象名稱
}
start: ["amiStart"]//從amiStart狀態開始動畫
在鼠標移入攝像頭組件時,設置圖片標簽隱藏,通過node.s("2d.visible",true)實現,其中node為圖片的標簽,true則表明顯示該圖片。

圓圈旋轉則是通過平臺提供的hc.Default.startAnim動畫函數實現的。
hc.Default.startAnim({
frames: 12, // 動畫幀數
interval: 10, // 動畫幀間隔毫秒數
easing: function(t){ return t * t; }, // 動畫緩動函數,默認采用`hc.Default.animEasing`
finishFunc: function(){}, // 動畫結束后調用的函數。
action: function(v, t){ // action函數必須提供,實現動畫過程中的屬性變化。
let y = (Math.PI/180)*(360*v);//v的變化范圍是0-1,y的變化從0-360,即旋轉一圈
node.a('rotation1', y);//設置圓圈的外圈順時針旋轉一圈
node.a('rotation2', -y);//設置圓圈的內圈逆時針旋轉一圈
}
});
- 船只運動軌跡

首先添加平臺提供的地圖組件,其次綁定船只設備數據集,然后設置地圖展示的中心點位置以及地圖的縮放級別,最后綁定設備經緯度,就能方便快捷的掌握船只運動軌跡。

以上就是一個水質監測預警系統的大概了,想要了解更多相關資訊,歡迎訂閱服務號“海創微聯”,或者掃描下方二維碼添加。

在日常生活中,做好水質預警防控是重中之重,但是我們也要熱愛和保護我們生活的地球呀,從身邊小事做起,約用水不浪費、不污染,為創建和諧美好家園盡綿薄之力。
|