天天看點

Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)

作者:Qt自定義控件

一、前言

這個物聯網綜合管理平台前後疊代了五年,一點一滴慢慢積累起來,從最開始的隻有modbus序列槽協定解析以及簡單的表格顯示資料,慢慢的逐漸增加了tcp_rtu支援,使用者管理子產品,地圖監控子產品,而後為了拓展性又做了雲端資料同步,網絡資料轉發等。編寫這個系統的過程中,真正體會到一個軟體從無到有如果是一條街的距離,那從有到好用并且真正滿足使用者需求給使用者帶了便利,那最起碼是99條街的距離,從衆多的開源項目來看也是符合這個邏輯,可能有80%的比例的開源項目都是解決了從無到有,而真正好用符合對應需求的少之又少,可能核心原因還是因為沒能給作者帶來持續性的收入導緻半途夭折,畢竟大家都不是富二代,大部分人都有房貸,都要養家,都是一筆不小的開支,興趣不能當飯吃,必須滿足基本的生活物質需求以後才能繼續,如果沒有這些煩惱,國内的開源項目數量和品質都能上升一個檔次。

一個好的項目必須要有一個好的項目架構結構,當然這個架構也不是一開始就有的,也是慢慢的在疊代過程中不斷精進的,把通用的部分提煉出來,盡量解耦做成通用的元件,做成一個個積木似的,最後搭積木的形式可以很快的在後面的項目中形成生産力,有多幾年經驗的程式員或多或少都有自己的輪子,盡管每個人都是喊着不要重複造輪子,但是自己都造着各種輪子,也好百花齊放,如果都開源出來也給其他程式員很好的參考參照,如果每個人都站在巨人的肩膀上,那做出來的項目也不會差到哪裡去。

二、文章導航

文章 連結
1-項目架構 https://qtchina.blog.csdn.net/article/details/102998556
2-界面架構 https://qtchina.blog.csdn.net/article/details/103001587
3-使用者子產品 https://qtchina.blog.csdn.net/article/details/103010703
4-通信協定 https://qtchina.blog.csdn.net/article/details/103027017
5-資料監控 https://qtchina.blog.csdn.net/article/details/103042346
6-地圖監控 https://qtchina.blog.csdn.net/article/details/103061692
7-裝置監控 https://qtchina.blog.csdn.net/article/details/103079159
8-曲線監控 https://qtchina.blog.csdn.net/article/details/103097561
9-資料查詢 https://qtchina.blog.csdn.net/article/details/103105822
10-資料導出 https://qtchina.blog.csdn.net/article/details/103116857
11-資料列印 https://qtchina.blog.csdn.net/article/details/103139558
12-裝置輕按兩下 https://qtchina.blog.csdn.net/article/details/103157621
13-短信告警 https://qtchina.blog.csdn.net/article/details/103180873
14-郵件轉發 https://qtchina.blog.csdn.net/article/details/103194582
15-網絡轉發 https://qtchina.blog.csdn.net/article/details/103211141
16-雲端同步 https://qtchina.blog.csdn.net/article/details/103221854
17-記錄清理 https://qtchina.blog.csdn.net/article/details/103232479
18-資料庫設定 https://qtchina.blog.csdn.net/article/details/103250089
19-端口管理 https://qtchina.blog.csdn.net/article/details/103268907
20-控制器管理 https://qtchina.blog.csdn.net/article/details/103289002
21-探測器管理 https://qtchina.blog.csdn.net/article/details/103304262
22-報警關聯 https://qtchina.blog.csdn.net/article/details/103323524
23-類型設定 https://qtchina.blog.csdn.net/article/details/103343109
24-地圖管理 https://qtchina.blog.csdn.net/article/details/103360843
25-位置調整 https://qtchina.blog.csdn.net/article/details/103380692
26-組态設計 https://qtchina.blog.csdn.net/article/details/103398693
27-裝置調試 https://qtchina.blog.csdn.net/article/details/103420735
28-模拟工具 https://qtchina.blog.csdn.net/article/details/103434679
29-跨平台 https://qtchina.blog.csdn.net/article/details/103487628
30-使用者登入退出 https://qtchina.blog.csdn.net/article/details/124920595
31-使用者權限管理 https://qtchina.blog.csdn.net/article/details/124959587
32-表格資料 https://qtchina.blog.csdn.net/article/details/125094089
33-裝置面闆 https://qtchina.blog.csdn.net/article/details/125158470
34-地圖按鈕 https://qtchina.blog.csdn.net/article/details/125338981
35-實時曲線 https://qtchina.blog.csdn.net/article/details/125370236
36-通信協定 https://qtchina.blog.csdn.net/article/details/125402203
37-邏輯設計 https://qtchina.blog.csdn.net/article/details/125513520
38-多種資料庫支援 https://qtchina.blog.csdn.net/article/details/125593804
39-報警關聯 https://qtchina.blog.csdn.net/article/details/125651420
40-類型種類 https://qtchina.blog.csdn.net/article/details/125689577
41-自動清理早期資料 https://qtchina.blog.csdn.net/article/details/125714508
42-資料查詢導出列印 https://qtchina.blog.csdn.net/article/details/125756039
43-告警短信轉發 https://qtchina.blog.csdn.net/article/details/125797495
44-告警郵件轉發 https://qtchina.blog.csdn.net/article/details/125841189
45-采集資料轉發 https://qtchina.blog.csdn.net/article/details/125884771
46-雲端資料同步 https://qtchina.blog.csdn.net/article/details/125928368
47-通用資料庫設定 https://qtchina.blog.csdn.net/article/details/125968018
48-特色功能設計 https://qtchina.blog.csdn.net/article/details/126027093
49-裝置模拟工具 https://qtchina.blog.csdn.net/article/details/126093832
50-超強跨平台 https://qtchina.blog.csdn.net/article/details/126240737

三、體驗位址

  1. 國内站點:https://gitee.com/feiyangqingyun
  2. 國際站點:https://github.com/feiyangqingyun
  3. 個人首頁:https://blog.csdn.net/feiyangqingyun
  4. 知乎首頁:https://www.zhihu.com/people/feiyangqingyun
  5. 産品首頁:https://blog.csdn.net/feiyangqingyun/article/details/97565652
  6. 線上文檔:https://feiyangqingyun.gitee.io/qwidgetdemo/iotsystem/
  7. 體驗位址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取碼:o05q 檔案名:bin_iotsystem.zip。

四、功能特點

1 軟體子產品

  1. 裝置監控子產品,包括資料監控(表格形式展示)、裝置面闆(面闆形式展示)、地圖監控(地圖形式展示)、曲線監控(曲線形式展示)。
  2. 資料查詢子產品,包括報警記錄、運作記錄、操作記錄。
  3. 系統設定子產品,包括基本設定、端口管理、控制器管理、探測器管理、報警關聯、類型設定等。
  4. 其他設定子產品,包括使用者管理、地圖管理、位置調整、組态設計、裝置調試等。

2 基礎功能

  1. 裝置資料采集,支援序列槽、網絡,序列槽可設定序列槽号、波特率,網絡可設定IP位址、通訊端口。
  2. 每個端口支援采集周期時間,預設1秒鐘一個裝置。
  3. 支援設定通訊逾時次數,預設3次。
  4. 支援最大重連時間,用于重新讀取離線的裝置。
  5. 控制器資訊,能夠添加控制器名稱,選擇控制器位址、控制器型号,設定該控制器下面的探測器數量。
  6. 探測器資訊,能夠添加位号、探測器型号、氣體種類、氣體符号、高報值、低報值、緩沖值、清零值、是否啟用、報警聲音、背景地圖、存儲周期、數值換算小數點位數、報警延時時間、報警的類型(HH,LL,HL)等。
  7. 類型管理可配置控制器型号、探測器型号、氣體種類、氣體符号等。
  8. 地圖支援導入和删除,所有的探測器在地圖上的位置可自由拖動儲存。
  9. 端口資訊、控制器資訊、探測器資訊、類型資訊、使用者資訊等,都支援導入、導出、導出到excel、列印。
  10. 運作記錄、報警記錄、操作記錄,都支援多條件組合查詢,比如時間段、控制器、探測器等,所有記錄支援導出到excel/pdf和列印。
  11. 運作記錄、報警記錄、操作記錄都可删除指定時間範圍内的資料。
  12. 系統設定可選擇對應表最大儲存記錄數,自動清理早期資料,留出足夠的空間存儲重要的資料。
  13. 報警短信轉發,支援多個接收手機号碼,可設定發送間隔,比如即時發送或者6個小時發送一次所有的報警資訊,短信内容過長,自動拆分多條短信。
  14. 報警郵件轉發,支援多個接收郵箱,可設定發送間隔,比如即時發送或者6個小時發送一次所有的報警資訊,支援附件發送。
  15. 設定軟體的中文标題、英文标題、logo路徑、版權所有等。
  16. 開關設定開機運作、報警聲音、自動登入、記住密碼等。
  17. 報警聲音可設定播放次數,界面風格樣式提供18套皮膚檔案選擇。
  18. 使用者管理,包括使用者權限配置,不同使用者可以有不同子產品的權限。
  19. 使用者登入和使用者退出,可以記住密碼和自動登入,超過三次報錯提示并關閉程式。
  20. 四種監控模式,裝置面闆監控、地圖監控、表格資料監控、曲線資料監控,可自由切換,四種模式下都實時展示采集到的資料,報警閃爍等。
  21. 報警繼電器關聯,一個位号可以跨序列槽關聯多個子產品和繼電器号,支援多對多。

3 特色功能

  1. 通信協定支援modbus_com、modbus_tcp_rtu,後期拓展mqtt等協定。
  2. 資料源除了真實的硬體裝置采集,還可選資料庫采集,這樣使用者可以安排其他程式員比如java程式員将前端采集好的資料放到資料庫,本系統直接從資料庫采集即可。資料庫采集模式可以作為通用的系統使用,更适合多人多系統協作。
  3. 智能跳過逾時的裝置,加快對線上裝置的采集速度,當裝置數量很多的時候尤其有用。
  4. 對智能跳過的逾時的裝置,在設定的重連時間自動采集一次,以便探測裝置是否又重新上線。
  5. 每個探測器可控是否啟用,不啟用則不會采集,也不會在界面顯示,相當于運作階段臨時關閉。
  6. 探測器可設定緩沖值和報警延時時間,在該值附近波動産生的報警,不計入報警,隻有持續處于報警值且超過報警延時時間才算真正報警,這樣可以規避很多波動導緻的誤報。
  7. 探測器可設定存儲周期,按照設定的時間來存儲一條運作記錄,可以按照重要程度對重要性高的設定存儲周期短一些,不重要的設定大一些,這樣可以節省不少的存儲空間,也保證了重要的資料及時存儲。
  8. 探測器可設定清零值,在一些高精度高靈敏的裝置可能出廠的時候預設值未必是0,需要設定清零值來表示初始值。
  9. 探測器可設定小數點,用于計算後的真實資料控制小數點點位顯示,相當于除以10、除以100、除以1000,這樣大部分的探測器資料直接通過小數點位設定控制真實換算後的值,極個别的需要特殊轉換的可以在通信協定中約定。
  10. 探測器報警的類型支援多種,有些裝置是高于某個值高報,低于某個值低報,而有些裝置是在最小值最大值範圍内是高報,低于最小值低報,高于最大值正常。這樣可以分情況處理,涵蓋各種報警類型。
  11. 原創資料導入、導出、列印機制,跨平台不依賴任何元件,瞬間導出資料。
  12. 導出到excel的記錄支援所有excel、wps等表格檔案版本,不依賴excel等軟體。
  13. 高報顔色、低報顔色、正常顔色、預設值顔色等,都可以自由設定。
  14. 支援雲端資料同步,将本地采集到的資料實時同步到雲端。
  15. 支援網絡轉發和網絡接收,網絡接收開啟後,軟體從udp接收資料進行解析。網絡轉發支援多個目标IP,這樣就實作了本地采集的軟體,自由将資料轉到用戶端,随時檢視采集到的資料。
  16. 自動記住使用者最後停留的界面以及其他配置資訊,重新開機後自動應用。
  17. 報警自動切換到對應的地圖,探測器按鈕閃爍,表格資料對應顔色顯示。
  18. 輕按兩下探測器圖示,彈出對應探測器詳細資訊,可以根據需要定制回控操作。
  19. 資料庫支援多種,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金倉等。
  20. 本地裝置采集到的資料實時上傳到雲端,以便手機APP或者web等其他方式提取。
  21. 自帶裝置模拟工具,支援不同型号的多個裝置資料模拟,同時還帶資料庫資料模拟,以便在沒有裝置的時候測試資料。
  22. 标準modbus協定,各種控制器類型、探測器類型、種類、符号等全部自定義,非常靈活和強大,通信協定示例資料非常完整,通用各種modbus協定系統,适用于各種應用場景接入。
  23. 同時內建了序列槽通信、網絡通信、資料庫通信、資料導入導出列印、通信協定解析、界面UI、全局換膚等衆多元件和知識點,非常适合新手入門和進階。
  24. 支援xp、win7、win10、、win11、linux、mac、各種國産系統(UOS、中标麒麟、銀河麒麟等)、嵌入式linux等系統。
  25. 注釋完整,項目結構清晰,超級詳細完整的使用開發手冊,精确到每個代碼檔案的功能說明,不斷持續疊代版本。

五、效果圖

Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)
Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)
Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)
Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)
Qt編寫物聯網管理平台(支援win/linux/mac/嵌入式linux/modbus)

繼續閱讀