999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

物聯(lián)網(wǎng)設(shè)備故障檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2022-03-19 02:18:14陳嘉歡
電腦知識(shí)與技術(shù) 2022年2期

陳嘉歡

摘要:該文介紹了一個(gè)以SpringBoot框架為基礎(chǔ)的物聯(lián)網(wǎng)設(shè)備故障檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程。該系統(tǒng)使用了MySQL、Redis以及MongoDB數(shù)據(jù)庫,實(shí)現(xiàn)對物聯(lián)網(wǎng)設(shè)備進(jìn)行故障檢測、對故障信息存儲(chǔ)和反饋的功能,從而滿足了對物聯(lián)網(wǎng)設(shè)備故障檢測的基本需求。

關(guān)鍵詞:物聯(lián)網(wǎng)設(shè)備;故障檢測;故障反饋;SpringBoot;Redis;MongoDB

中圖分類號(hào):TP311.1 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2022)02-0109-03

1 引言

近年來,隨著社會(huì)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,物聯(lián)網(wǎng)技術(shù)也日漸成熟,社會(huì)正在逐步走向“萬物互聯(lián)”的時(shí)代。目前市面上誕生了許多功能不同的諸如攝像頭、智能水表、電表以及智能家居等物聯(lián)網(wǎng)設(shè)備[1],這些物聯(lián)網(wǎng)設(shè)備的應(yīng)用場景有很強(qiáng)的針對性并且十分智能,在提供了某方面功能的同時(shí)簡化了某些流程、減輕了使用負(fù)擔(dān)從而提升效率。與此同時(shí),越來越多設(shè)備聯(lián)網(wǎng),也會(huì)造成一些困擾,例如物聯(lián)網(wǎng)設(shè)備的操作管理流程復(fù)雜、設(shè)備發(fā)生故障難以及時(shí)發(fā)現(xiàn)等問題。其中對物聯(lián)網(wǎng)設(shè)備進(jìn)行實(shí)時(shí)故障檢測和設(shè)備發(fā)生故障時(shí)的第一時(shí)間信息反饋尤為重要。合理運(yùn)用物聯(lián)網(wǎng)設(shè)備故障檢測功能,能夠在設(shè)備發(fā)生故障時(shí)避免或減少造成相應(yīng)的人力、物力損失。

為了解決上述提到的物聯(lián)網(wǎng)設(shè)備發(fā)生故障難以發(fā)現(xiàn)的問題,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)以SpringBoot[2]為基礎(chǔ)的故障檢測系統(tǒng)[3],將設(shè)備分成兩種類型,對不同類型的設(shè)備使用不同的方法進(jìn)行故障檢測,當(dāng)系統(tǒng)檢測到有設(shè)備發(fā)生故障時(shí),會(huì)采用發(fā)送電子郵件的方式,通知相應(yīng)的人員及時(shí)解決設(shè)備故障問題。

2 系統(tǒng)設(shè)計(jì)

2.1 總體設(shè)計(jì)

設(shè)計(jì)該系統(tǒng)使用到的編譯軟件是IDEA,主要以SpringBoot框架為核心,選擇MySQL數(shù)據(jù)庫[4]對物聯(lián)網(wǎng)設(shè)備信息持久化存儲(chǔ)、使用Redis數(shù)據(jù)庫的高速緩存功能對物聯(lián)網(wǎng)設(shè)備進(jìn)行故障檢測,以及使用MongoDB文檔型數(shù)據(jù)庫對設(shè)備故障信息進(jìn)行記錄。

本系統(tǒng)根據(jù)物聯(lián)網(wǎng)設(shè)備是否會(huì)主動(dòng)上傳設(shè)備心跳信息分為兩種類型:設(shè)備會(huì)主動(dòng)上傳心跳信息(主動(dòng)類型)和設(shè)備不會(huì)上傳心跳信息(被動(dòng)類型),對于兩種類型的設(shè)備使用不同的方法進(jìn)行故障檢測。具體故障檢測流程如圖2所示。

2.2 數(shù)據(jù)庫設(shè)計(jì)

本系統(tǒng)使用MySQL關(guān)系型數(shù)據(jù)庫,對物聯(lián)網(wǎng)設(shè)備的基本信息進(jìn)行持久化存儲(chǔ)和查詢。根據(jù)功能需求分析,需要?jiǎng)?chuàng)建一個(gè)devices_db設(shè)備數(shù)據(jù)庫,然后在數(shù)據(jù)庫里面分別創(chuàng)建兩個(gè)數(shù)據(jù)表:用戶信息表和設(shè)備信息表。

用戶信息表[5](user,用于登錄系統(tǒng),以及記錄用戶信息),其中的字段包含用戶ID(user_id,用戶ID,主鍵),賬號(hào)(account,后臺(tái)登錄賬號(hào)),密碼(password,加密后的登錄密碼),用戶名(user_name,用戶姓名或昵稱),手機(jī)號(hào)(phone,用于短信提醒),電子郵箱(email,用于發(fā)送郵件提醒),鹽(salt,用于密碼加密驗(yàn)證)等。

設(shè)備信息表(devices,記錄設(shè)備的基本信息),其中的字段包含設(shè)備ID(device_id,設(shè)備ID,主鍵),設(shè)備UID(設(shè)備自身ID,設(shè)備唯一ID),設(shè)備類型(device_type,用于區(qū)分設(shè)備屬于主動(dòng)類型還是被動(dòng)類型),設(shè)備名稱(device_name,設(shè)備的名字),設(shè)備地點(diǎn)(device_address,記錄設(shè)備所在地點(diǎn)),設(shè)備IP(device_ip,設(shè)備的IP地址,用于主動(dòng)請求設(shè)備),設(shè)備狀態(tài)(device_state,用于顯示設(shè)備的在線狀態(tài),在線或離線)等。

2.3 主動(dòng)類型設(shè)備故障檢測設(shè)計(jì)

一般的物聯(lián)網(wǎng)設(shè)備都會(huì)有自動(dòng)上傳心跳信息的功能,心跳信息包含對應(yīng)的設(shè)備信息,如果設(shè)備有正常上傳心跳信息則可以判定設(shè)備目前正常運(yùn)行,心跳信息上傳地址和推送間隔可以在設(shè)備后臺(tái)手動(dòng)設(shè)置,本文將此類設(shè)備歸納為主動(dòng)類型設(shè)備。圖3是某物聯(lián)網(wǎng)設(shè)備的心跳信息參數(shù)設(shè)置界面。

系統(tǒng)有一個(gè)專門接收心跳信息的接口,在接收到設(shè)備心跳信息時(shí),將設(shè)備的UID與當(dāng)前系統(tǒng)時(shí)間以鍵值對的形式存入到Redis緩存中,記錄設(shè)備最近一次的在線時(shí)間。圖4是系統(tǒng)接收設(shè)備心跳信息接口。

系統(tǒng)運(yùn)行后,會(huì)定時(shí)執(zhí)行一個(gè)判斷主動(dòng)類型設(shè)備是否在線的任務(wù),本系統(tǒng)設(shè)定為每分鐘執(zhí)行一次,每次執(zhí)行該任務(wù)都會(huì)先查詢設(shè)備信息表中所有的主動(dòng)類型設(shè)備(根據(jù)device_type字段判斷),并生成對應(yīng)列表(List),然后系統(tǒng)啟動(dòng)多線程對列表中的所有設(shè)備進(jìn)行故障檢測。

具體的檢測方法是根據(jù)當(dāng)前設(shè)備的UID,并以這個(gè)UID為key去Redis緩存中查詢當(dāng)前設(shè)備最后一次在線時(shí)間,將當(dāng)前的系統(tǒng)時(shí)間減去設(shè)備最后一次在線時(shí)間,得到時(shí)間差,如果時(shí)間大于心跳上傳閾值(60秒)則判定該設(shè)備發(fā)生故障。

2.4 被動(dòng)類型設(shè)備故障檢測設(shè)計(jì)

與主動(dòng)類型設(shè)備相反,不會(huì)上傳心跳信息的設(shè)備則為被動(dòng)類型設(shè)備。對于被動(dòng)類型設(shè)備,不能通過等待設(shè)備主動(dòng)響應(yīng)的方式來判斷設(shè)備是否發(fā)生故障,因此想要知道設(shè)備是否在線,需要系統(tǒng)主動(dòng)去請求設(shè)備,例如主動(dòng)請求設(shè)備信息接口或者Ping設(shè)備IP。因?yàn)椴煌O(shè)備的獲取信息接口格式不一,所以本文采用主動(dòng)Ping設(shè)備IP的方式來實(shí)現(xiàn)。系統(tǒng)啟動(dòng)后,也會(huì)每分鐘執(zhí)行一次定時(shí)任務(wù),查詢設(shè)備信息表中所有被動(dòng)類型設(shè)備并生成對應(yīng)列表。

然后系統(tǒng)將啟用多線程對列表中的每臺(tái)被動(dòng)類型設(shè)備采用Ping設(shè)備IP的方式主動(dòng)發(fā)起請求,如果設(shè)備在3秒內(nèi)沒有響應(yīng),則重新發(fā)生請求,以防網(wǎng)絡(luò)波動(dòng)引起誤判,如果再次請求設(shè)備還是沒有響應(yīng)則判定該設(shè)備發(fā)生故障。

2.5 設(shè)備故障反饋設(shè)計(jì)

對于主動(dòng)類型設(shè)備和被動(dòng)類型設(shè)備,當(dāng)根據(jù)對應(yīng)的方法判定設(shè)備發(fā)生故障后,會(huì)先將設(shè)備UID為key,設(shè)備的狀態(tài)為value存入到一個(gè)公有的故障設(shè)備映射(Map)中,此步驟是為了避免某設(shè)備發(fā)生故障后,一直重復(fù)提醒該設(shè)備發(fā)生故障。隨后將此故障設(shè)備信息和當(dāng)前系統(tǒng)時(shí)間存入到MongoDB數(shù)據(jù)庫以及公有的故障集合(Set)中。

在系統(tǒng)啟動(dòng)后,每分鐘都會(huì)執(zhí)行一個(gè)定時(shí)任務(wù),每次執(zhí)行時(shí)都將判斷故障設(shè)備集合(Set)是否為空,如果不為空,則說明有設(shè)備發(fā)生故障,此時(shí)系統(tǒng)將發(fā)送電子郵件到管理人員郵箱中,提醒有設(shè)備發(fā)生故障,盡快處理。發(fā)送電子郵件后,系統(tǒng)將會(huì)清空故障設(shè)備列表,避免重復(fù)發(fā)送郵件通知。

3 系統(tǒng)測試

該系統(tǒng)的可運(yùn)行在Linux和windows操作系統(tǒng)上,運(yùn)行前必須在本地或者服務(wù)器上安裝配置好JDK1.8及以上的環(huán)境,并且啟動(dòng)MySQL、Redis以及MongoDB數(shù)據(jù)庫確保連接成功,并且MySQL數(shù)據(jù)庫中需要?jiǎng)?chuàng)建好device_db數(shù)據(jù)庫,里面應(yīng)包含用戶信息表(user)和設(shè)備信息表(devices),通過修改項(xiàng)目的配置文件,填寫MySQL、Redis、MongoDB數(shù)據(jù)庫的連接地址(url)、端口(port)、賬戶和密碼,本文將數(shù)據(jù)庫部署在云服務(wù)器上并且在本地啟動(dòng)項(xiàng)目運(yùn)行,成功連接上服務(wù)器的數(shù)據(jù)庫[6]。

本地測試連接數(shù)據(jù)庫成功后,即可使用Maven工具將項(xiàng)目打成jar包,通過使用XShell、XFtp等工具連接上云服務(wù)器再將jar包上傳到服務(wù)器上并運(yùn)行起來,系統(tǒng)成功啟動(dòng)。

MySQL數(shù)據(jù)庫中設(shè)備信息表存在部分主動(dòng)類型設(shè)備和被動(dòng)類型不在線,因此系統(tǒng)通過定時(shí)任務(wù)檢測到設(shè)備故障,然后發(fā)送電子郵件提醒,設(shè)備故障信息郵件如圖13所示。

4 結(jié)束語

本文設(shè)計(jì)并實(shí)現(xiàn)了基于SpringBoot框架開發(fā)的物聯(lián)網(wǎng)設(shè)備故障檢測系統(tǒng),通過將物聯(lián)網(wǎng)設(shè)備分成主動(dòng)和被動(dòng)兩種類型,分別采用不同的方法進(jìn)行故障判斷。對于主動(dòng)類型設(shè)備,系統(tǒng)根據(jù)定時(shí)任務(wù),將設(shè)備存儲(chǔ)在Redis緩存里的最近一次心跳記錄時(shí)間與當(dāng)前時(shí)間作比較,如果時(shí)間差大于設(shè)定閾值,則判斷設(shè)備發(fā)生故障,反之則設(shè)備正常;對于被動(dòng)類型設(shè)備,系統(tǒng)根據(jù)定時(shí)任務(wù),主動(dòng)請求設(shè)備IP地址,并等待設(shè)備響應(yīng),如果設(shè)備在設(shè)定的閾值時(shí)間內(nèi)沒有響應(yīng),則判斷設(shè)備發(fā)生故障,如果有響應(yīng)則說明設(shè)備正常。對于故障反饋,也是采用定時(shí)任務(wù)的方式,當(dāng)系統(tǒng)發(fā)現(xiàn)故障列表不為空,則將故障列表里的設(shè)備存儲(chǔ)在MongoDB數(shù)據(jù)庫中,并及時(shí)將故障設(shè)備信息發(fā)送電子郵件通知到對應(yīng)的用戶。

當(dāng)然本系統(tǒng)也存在一定的缺陷,頻繁使用定時(shí)任務(wù)檢測,以及開啟多線程去請求多臺(tái)設(shè)備,會(huì)占用一定的系統(tǒng)資源,還有可能造成線程堵塞,影響效率。未來會(huì)有更多的設(shè)備聯(lián)網(wǎng),對物聯(lián)網(wǎng)設(shè)備的故障檢測會(huì)愈發(fā)得到人們重視,也會(huì)有更多的方法對現(xiàn)有的系統(tǒng)提出改進(jìn),對高并發(fā)、多線程情景做優(yōu)化處理。

參考文獻(xiàn):

[1] 高小淋.物聯(lián)網(wǎng)設(shè)備通訊故障檢測技術(shù)與解決方案[J].電腦知識(shí)與技術(shù),2021,17(9):210-212.

[2] 楊開振.深入淺出Spring Boot 2.x[M].北京:人民郵電出版社,2018.

[3] 張海藩.軟件工程[M].4版.北京:清華大學(xué)出版社,2003.

[4] 唐漢明.深入淺出MySQL[M].北京:人民郵電出版社,2014.

[5] 桑一梅,陸文怡.學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2020,16(35):62-63,77.

[6] 李宏坤,鄭光勇,謝舞,等.基于spring boot框架的公司考勤系統(tǒng)的研究與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2019,15(18):55-56.

【通聯(lián)編輯:謝媛媛】

2923500783331

主站蜘蛛池模板: 欧美亚洲国产精品第一页| 干中文字幕| 91精品啪在线观看国产91九色| 日本尹人综合香蕉在线观看| 国产高清在线精品一区二区三区| 免费人成又黄又爽的视频网站| 亚洲无码91视频| 波多野结衣一二三| 中文字幕不卡免费高清视频| 国产一区二区三区免费观看| 欧美福利在线观看| 国产一区二区三区夜色| 国产精品无码久久久久AV| 成年人视频一区二区| 欧美日韩中文国产va另类| 免费无码一区二区| 青草娱乐极品免费视频| 丁香综合在线| 一级成人a毛片免费播放| 欧美啪啪网| 午夜a视频| 国产激爽大片在线播放| 九色国产在线| 强乱中文字幕在线播放不卡| 国产一在线观看| 香蕉视频在线精品| 国产一级毛片yw| 国产成人精品一区二区秒拍1o| 国产成人综合日韩精品无码首页| 日本人妻一区二区三区不卡影院| 亚洲天堂视频网站| 国产成人无码Av在线播放无广告 | 色视频国产| 国产成人综合久久精品下载| 国产欧美中文字幕| 亚洲福利视频一区二区| 高清视频一区| 在线观看免费黄色网址| 亚洲人成网站色7777| 伊人AV天堂| 999精品色在线观看| 奇米精品一区二区三区在线观看| 午夜综合网| 91麻豆精品国产高清在线| 成人一级免费视频| 久久国产精品夜色| 久久亚洲高清国产| 国产啪在线91| 国产丰满大乳无码免费播放| 操操操综合网| 91麻豆久久久| 日韩久草视频| 日韩欧美国产成人| 色亚洲成人| 亚洲综合色吧| 萌白酱国产一区二区| 国产成人三级| 欧美精品v| 欧美日韩国产精品va| 黄色网址手机国内免费在线观看 | 国产精品第一区| 毛片网站在线播放| 999国产精品永久免费视频精品久久| 国产一二视频| 国产95在线 | 国产三级韩国三级理| 激情乱人伦| 香蕉久久国产精品免| 久久婷婷五月综合色一区二区| 中文成人在线| 韩日无码在线不卡| 91精品视频网站| 亚洲最猛黑人xxxx黑人猛交| 国产精鲁鲁网在线视频| 欧美啪啪一区| 亚洲欧洲日本在线| 日韩资源站| 夜夜操国产| 国产内射一区亚洲| 亚洲男人天堂2020| 国产一区二区三区在线观看视频| 精品国产免费人成在线观看|