一、前言
這個(gè)物聯(lián)網(wǎng)綜合管理平臺(tái)前后迭代了五年,一點(diǎn)一滴慢慢積累起來,從最開始的只有modbus串口協(xié)議解析以及簡(jiǎn)單的表格顯示數(shù)據(jù),慢慢的逐漸增加了tcp_rtu支持,用戶管理模塊,地圖監(jiān)控模塊,而后為了拓展性又做了云端數(shù)據(jù)同步,網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)等。編寫這個(gè)系統(tǒng)的過程中,真正體會(huì)到一個(gè)軟件從無到有如果是一條街的距離,那從有到好用并且真正滿足用戶需求給用戶帶了便利,那最起碼是99條街的距離,從眾多的開源項(xiàng)目來看也是符合這個(gè)邏輯,可能有80%的比例的開源項(xiàng)目都是解決了從無到有,而真正好用符合對(duì)應(yīng)需求的少之又少,可能核心原因還是因?yàn)闆]能給作者帶來持續(xù)性的收入導(dǎo)致半途夭折,畢竟大家都不是富二代,大部分人都有房貸,都要養(yǎng)家,都是一筆不小的開支,興趣不能當(dāng)飯吃,必須滿足基本的生活物質(zhì)需求以后才能繼續(xù),如果沒有這些煩惱,國(guó)內(nèi)的開源項(xiàng)目數(shù)量和質(zhì)量都能上升一個(gè)檔次。
一個(gè)好的項(xiàng)目必須要有一個(gè)好的項(xiàng)目框架結(jié)構(gòu),當(dāng)然這個(gè)框架也不是一開始就有的,也是慢慢的在迭代過程中不斷精進(jìn)的,把通用的部分提煉出來,盡量解耦做成通用的組件,做成一個(gè)個(gè)積木似的,最后搭積木的形式可以很快的在后面的項(xiàng)目中形成生產(chǎn)力,有多幾年經(jīng)驗(yàn)的程序員或多或少都有自己的輪子,盡管每個(gè)人都是喊著不要重復(fù)造輪子,但是自己都造著各種輪子,也好百花齊放,如果都開源出來也給其他程序員很好的參考參照,如果每個(gè)人都站在巨人的肩膀上,那做出來的項(xiàng)目也不會(huì)差到哪里去。文章來源:http://www.zghlxwxcb.cn/news/detail-498530.html
二、文章導(dǎo)航
文章 | 鏈接 |
---|---|
1-項(xiàng)目框架 | 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-通信協(xié)議 | https://qtchina.blog.csdn.net/article/details/103027017 |
5-數(shù)據(jù)監(jiān)控 | https://qtchina.blog.csdn.net/article/details/103042346 |
6-地圖監(jiān)控 | https://qtchina.blog.csdn.net/article/details/103061692 |
7-設(shè)備監(jiān)控 | https://qtchina.blog.csdn.net/article/details/103079159 |
8-曲線監(jiān)控 | https://qtchina.blog.csdn.net/article/details/103097561 |
9-數(shù)據(jù)查詢 | https://qtchina.blog.csdn.net/article/details/103105822 |
10-數(shù)據(jù)導(dǎo)出 | https://qtchina.blog.csdn.net/article/details/103116857 |
11-數(shù)據(jù)打印 | https://qtchina.blog.csdn.net/article/details/103139558 |
12-設(shè)備雙擊 | https://qtchina.blog.csdn.net/article/details/103157621 |
13-短信告警 | https://qtchina.blog.csdn.net/article/details/103180873 |
14-郵件轉(zhuǎn)發(fā) | https://qtchina.blog.csdn.net/article/details/103194582 |
15-網(wǎng)絡(luò)轉(zhuǎn)發(fā) | 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-數(shù)據(jù)庫設(shè)置 | 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-探測(cè)器管理 | https://qtchina.blog.csdn.net/article/details/103304262 |
22-報(bào)警聯(lián)動(dòng) | https://qtchina.blog.csdn.net/article/details/103323524 |
23-類型設(shè)置 | https://qtchina.blog.csdn.net/article/details/103343109 |
24-地圖管理 | https://qtchina.blog.csdn.net/article/details/103360843 |
25-位置調(diào)整 | https://qtchina.blog.csdn.net/article/details/103380692 |
26-組態(tài)設(shè)計(jì) | https://qtchina.blog.csdn.net/article/details/103398693 |
27-設(shè)備調(diào)試 | https://qtchina.blog.csdn.net/article/details/103420735 |
28-模擬工具 | https://qtchina.blog.csdn.net/article/details/103434679 |
29-跨平臺(tái) | https://qtchina.blog.csdn.net/article/details/103487628 |
30-用戶登錄退出 | https://qtchina.blog.csdn.net/article/details/124920595 |
31-用戶權(quán)限管理 | https://qtchina.blog.csdn.net/article/details/124959587 |
32-表格數(shù)據(jù) | https://qtchina.blog.csdn.net/article/details/125094089 |
33-設(shè)備面板 | https://qtchina.blog.csdn.net/article/details/125158470 |
34-地圖按鈕 | https://qtchina.blog.csdn.net/article/details/125338981 |
35-實(shí)時(shí)曲線 | https://qtchina.blog.csdn.net/article/details/125370236 |
36-通信協(xié)議 | https://qtchina.blog.csdn.net/article/details/125402203 |
37-邏輯設(shè)計(jì) | https://qtchina.blog.csdn.net/article/details/125513520 |
38-多種數(shù)據(jù)庫支持 | https://qtchina.blog.csdn.net/article/details/125593804 |
39-報(bào)警聯(lián)動(dòng) | https://qtchina.blog.csdn.net/article/details/125651420 |
40-類型種類 | https://qtchina.blog.csdn.net/article/details/125689577 |
41-自動(dòng)清理早期數(shù)據(jù) | https://qtchina.blog.csdn.net/article/details/125714508 |
42-數(shù)據(jù)查詢導(dǎo)出打印 | https://qtchina.blog.csdn.net/article/details/125756039 |
43-告警短信轉(zhuǎn)發(fā) | https://qtchina.blog.csdn.net/article/details/125797495 |
44-告警郵件轉(zhuǎn)發(fā) | https://qtchina.blog.csdn.net/article/details/125841189 |
45-采集數(shù)據(jù)轉(zhuǎn)發(fā) | https://qtchina.blog.csdn.net/article/details/125884771 |
46-云端數(shù)據(jù)同步 | https://qtchina.blog.csdn.net/article/details/125928368 |
47-通用數(shù)據(jù)庫設(shè)置 | https://qtchina.blog.csdn.net/article/details/125968018 |
48-特色功能設(shè)計(jì) | https://qtchina.blog.csdn.net/article/details/126027093 |
49-設(shè)備模擬工具 | https://qtchina.blog.csdn.net/article/details/126093832 |
50-超強(qiáng)跨平臺(tái) | https://qtchina.blog.csdn.net/article/details/126240737 |
三、體驗(yàn)地址
- 國(guó)內(nèi)站點(diǎn):https://gitee.com/feiyangqingyun
- 國(guó)際站點(diǎn):https://github.com/feiyangqingyun
- 個(gè)人主頁:https://blog.csdn.net/feiyangqingyun
- 知乎主頁:https://www.zhihu.com/people/feiyangqingyun
- 產(chǎn)品主頁:https://blog.csdn.net/feiyangqingyun/article/details/97565652
- 在線文檔:https://feiyangqingyun.gitee.io/qwidgetdemo/iotsystem/
- 體驗(yàn)地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取碼:o05q 文件名:bin_iotsystem.zip。
四、功能特點(diǎn)
1 軟件模塊
- 設(shè)備監(jiān)控模塊,包括數(shù)據(jù)監(jiān)控(表格形式展示)、設(shè)備面板(面板形式展示)、地圖監(jiān)控(地圖形式展示)、曲線監(jiān)控(曲線形式展示)。
- 數(shù)據(jù)查詢模塊,包括報(bào)警記錄、運(yùn)行記錄、操作記錄。
- 系統(tǒng)設(shè)置模塊,包括基本設(shè)置、端口管理、控制器管理、探測(cè)器管理、報(bào)警聯(lián)動(dòng)、類型設(shè)置等。
- 其他設(shè)置模塊,包括用戶管理、地圖管理、位置調(diào)整、組態(tài)設(shè)計(jì)、設(shè)備調(diào)試等。
2 基礎(chǔ)功能
- 設(shè)備數(shù)據(jù)采集,支持串口、網(wǎng)絡(luò),串口可設(shè)置串口號(hào)、波特率,網(wǎng)絡(luò)可設(shè)置IP地址、通訊端口。
- 每個(gè)端口支持采集周期時(shí)間,默認(rèn)1秒鐘一個(gè)設(shè)備。
- 支持設(shè)置通訊超時(shí)次數(shù),默認(rèn)3次。
- 支持最大重連時(shí)間,用于重新讀取離線的設(shè)備。
- 控制器信息,能夠添加控制器名稱,選擇控制器地址、控制器型號(hào),設(shè)置該控制器下面的探測(cè)器數(shù)量。
- 探測(cè)器信息,能夠添加位號(hào)、探測(cè)器型號(hào)、氣體種類、氣體符號(hào)、高報(bào)值、低報(bào)值、緩沖值、清零值、是否啟用、報(bào)警聲音、背景地圖、存儲(chǔ)周期、數(shù)值換算小數(shù)點(diǎn)位數(shù)、報(bào)警延時(shí)時(shí)間、報(bào)警的類型(HH,LL,HL)等。
- 類型管理可配置控制器型號(hào)、探測(cè)器型號(hào)、氣體種類、氣體符號(hào)等。
- 地圖支持導(dǎo)入和刪除,所有的探測(cè)器在地圖上的位置可自由拖動(dòng)保存。
- 端口信息、控制器信息、探測(cè)器信息、類型信息、用戶信息等,都支持導(dǎo)入、導(dǎo)出、導(dǎo)出到excel、打印。
- 運(yùn)行記錄、報(bào)警記錄、操作記錄,都支持多條件組合查詢,比如時(shí)間段、控制器、探測(cè)器等,所有記錄支持導(dǎo)出到excel/pdf和打印。
- 運(yùn)行記錄、報(bào)警記錄、操作記錄都可刪除指定時(shí)間范圍內(nèi)的數(shù)據(jù)。
- 系統(tǒng)設(shè)置可選擇對(duì)應(yīng)表最大保存記錄數(shù),自動(dòng)清理早期數(shù)據(jù),留出足夠的空間存儲(chǔ)重要的數(shù)據(jù)。
- 報(bào)警短信轉(zhuǎn)發(fā),支持多個(gè)接收手機(jī)號(hào)碼,可設(shè)定發(fā)送間隔,比如即時(shí)發(fā)送或者6個(gè)小時(shí)發(fā)送一次所有的報(bào)警信息,短信內(nèi)容過長(zhǎng),自動(dòng)拆分多條短信。
- 報(bào)警郵件轉(zhuǎn)發(fā),支持多個(gè)接收郵箱,可設(shè)定發(fā)送間隔,比如即時(shí)發(fā)送或者6個(gè)小時(shí)發(fā)送一次所有的報(bào)警信息,支持附件發(fā)送。
- 設(shè)置軟件的中文標(biāo)題、英文標(biāo)題、logo路徑、版權(quán)所有等。
- 開關(guān)設(shè)置開機(jī)運(yùn)行、報(bào)警聲音、自動(dòng)登錄、記住密碼等。
- 報(bào)警聲音可設(shè)置播放次數(shù),界面風(fēng)格樣式提供18套皮膚文件選擇。
- 用戶管理,包括用戶權(quán)限配置,不同用戶可以有不同模塊的權(quán)限。
- 用戶登錄和用戶退出,可以記住密碼和自動(dòng)登錄,超過三次報(bào)錯(cuò)提示并關(guān)閉程序。
- 四種監(jiān)控模式,設(shè)備面板監(jiān)控、地圖監(jiān)控、表格數(shù)據(jù)監(jiān)控、曲線數(shù)據(jù)監(jiān)控,可自由切換,四種模式下都實(shí)時(shí)展示采集到的數(shù)據(jù),報(bào)警閃爍等。
- 報(bào)警繼電器聯(lián)動(dòng),一個(gè)位號(hào)可以跨串口聯(lián)動(dòng)多個(gè)模塊和繼電器號(hào),支持多對(duì)多。
3 特色功能
- 通信協(xié)議支持modbus_com、modbus_tcp_rtu,后期拓展mqtt等協(xié)議。
- 數(shù)據(jù)源除了真實(shí)的硬件設(shè)備采集,還可選數(shù)據(jù)庫采集,這樣用戶可以安排其他程序員比如java程序員將前端采集好的數(shù)據(jù)放到數(shù)據(jù)庫,本系統(tǒng)直接從數(shù)據(jù)庫采集即可。數(shù)據(jù)庫采集模式可以作為通用的系統(tǒng)使用,更適合多人多系統(tǒng)協(xié)作。
- 智能跳過超時(shí)的設(shè)備,加快對(duì)在線設(shè)備的采集速度,當(dāng)設(shè)備數(shù)量很多的時(shí)候尤其有用。
- 對(duì)智能跳過的超時(shí)的設(shè)備,在設(shè)定的重連時(shí)間自動(dòng)采集一次,以便探測(cè)設(shè)備是否又重新上線。
- 每個(gè)探測(cè)器可控是否啟用,不啟用則不會(huì)采集,也不會(huì)在界面顯示,相當(dāng)于運(yùn)行階段臨時(shí)關(guān)閉。
- 探測(cè)器可設(shè)置緩沖值和報(bào)警延時(shí)時(shí)間,在該值附近波動(dòng)產(chǎn)生的報(bào)警,不計(jì)入報(bào)警,只有持續(xù)處于報(bào)警值且超過報(bào)警延時(shí)時(shí)間才算真正報(bào)警,這樣可以規(guī)避很多波動(dòng)導(dǎo)致的誤報(bào)。
- 探測(cè)器可設(shè)置存儲(chǔ)周期,按照設(shè)定的時(shí)間來存儲(chǔ)一條運(yùn)行記錄,可以按照重要程度對(duì)重要性高的設(shè)定存儲(chǔ)周期短一些,不重要的設(shè)定大一些,這樣可以節(jié)省不少的存儲(chǔ)空間,也保證了重要的數(shù)據(jù)及時(shí)存儲(chǔ)。
- 探測(cè)器可設(shè)置清零值,在一些高精度高靈敏的設(shè)備可能出廠的時(shí)候默認(rèn)值未必是0,需要設(shè)定清零值來表示初始值。
- 探測(cè)器可設(shè)置小數(shù)點(diǎn),用于計(jì)算后的真實(shí)數(shù)據(jù)控制小數(shù)點(diǎn)點(diǎn)位顯示,相當(dāng)于除以10、除以100、除以1000,這樣大部分的探測(cè)器數(shù)據(jù)直接通過小數(shù)點(diǎn)位設(shè)置控制真實(shí)換算后的值,極個(gè)別的需要特殊轉(zhuǎn)換的可以在通信協(xié)議中約定。
- 探測(cè)器報(bào)警的類型支持多種,有些設(shè)備是高于某個(gè)值高報(bào),低于某個(gè)值低報(bào),而有些設(shè)備是在最小值最大值范圍內(nèi)是高報(bào),低于最小值低報(bào),高于最大值正常。這樣可以分情況處理,涵蓋各種報(bào)警類型。
- 原創(chuàng)數(shù)據(jù)導(dǎo)入、導(dǎo)出、打印機(jī)制,跨平臺(tái)不依賴任何組件,瞬間導(dǎo)出數(shù)據(jù)。
- 導(dǎo)出到excel的記錄支持所有excel、wps等表格文件版本,不依賴excel等軟件。
- 高報(bào)顏色、低報(bào)顏色、正常顏色、默認(rèn)值顏色等,都可以自由設(shè)置。
- 支持云端數(shù)據(jù)同步,將本地采集到的數(shù)據(jù)實(shí)時(shí)同步到云端。
- 支持網(wǎng)絡(luò)轉(zhuǎn)發(fā)和網(wǎng)絡(luò)接收,網(wǎng)絡(luò)接收開啟后,軟件從udp接收數(shù)據(jù)進(jìn)行解析。網(wǎng)絡(luò)轉(zhuǎn)發(fā)支持多個(gè)目標(biāo)IP,這樣就實(shí)現(xiàn)了本地采集的軟件,自由將數(shù)據(jù)轉(zhuǎn)到客戶端,隨時(shí)查看采集到的數(shù)據(jù)。
- 自動(dòng)記住用戶最后停留的界面以及其他配置信息,重啟后自動(dòng)應(yīng)用。
- 報(bào)警自動(dòng)切換到對(duì)應(yīng)的地圖,探測(cè)器按鈕閃爍,表格數(shù)據(jù)對(duì)應(yīng)顏色顯示。
- 雙擊探測(cè)器圖標(biāo),彈出對(duì)應(yīng)探測(cè)器詳細(xì)信息,可以根據(jù)需要定制回控操作。
- 數(shù)據(jù)庫支持多種,包括sqlite、mysql、sqlserver、postgresql、oracle、人大金倉等。
- 本地設(shè)備采集到的數(shù)據(jù)實(shí)時(shí)上傳到云端,以便手機(jī)APP或者web等其他方式提取。
- 自帶設(shè)備模擬工具,支持不同型號(hào)的多個(gè)設(shè)備數(shù)據(jù)模擬,同時(shí)還帶數(shù)據(jù)庫數(shù)據(jù)模擬,以便在沒有設(shè)備的時(shí)候測(cè)試數(shù)據(jù)。
- 標(biāo)準(zhǔn)modbus協(xié)議,各種控制器類型、探測(cè)器類型、種類、符號(hào)等全部自定義,非常靈活和強(qiáng)大,通信協(xié)議示例數(shù)據(jù)非常完整,通用各種modbus協(xié)議系統(tǒng),適用于各種應(yīng)用場(chǎng)景接入。
- 同時(shí)集成了串口通信、網(wǎng)絡(luò)通信、數(shù)據(jù)庫通信、數(shù)據(jù)導(dǎo)入導(dǎo)出打印、通信協(xié)議解析、界面UI、全局換膚等眾多組件和知識(shí)點(diǎn),非常適合新手入門和進(jìn)階。
- 支持xp、win7、win10、、win11、linux、mac、各種國(guó)產(chǎn)系統(tǒng)(UOS、中標(biāo)麒麟、銀河麒麟等)、嵌入式linux等系統(tǒng)。
- 注釋完整,項(xiàng)目結(jié)構(gòu)清晰,超級(jí)詳細(xì)完整的使用開發(fā)手冊(cè),精確到每個(gè)代碼文件的功能說明,不斷持續(xù)迭代版本。
五、效果圖
文章來源地址http://www.zghlxwxcb.cn/news/detail-498530.html
到了這里,關(guān)于Qt/C++編寫物聯(lián)網(wǎng)管理平臺(tái)(支持win/linux/mac/嵌入式linux/modbus等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!