亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Arduino的水位監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2023-03-22 09:28:40杜政隆謝麗明王飛飛
        物聯(lián)網(wǎng)技術(shù) 2023年3期
        關(guān)鍵詞:蜂鳴器服務(wù)器端頁(yè)面

        杜政隆,謝麗明,王飛飛

        (平頂山學(xué)院 信息工程學(xué)院,河南 平頂山 467000)

        0 引 言

        近年來(lái),我國(guó)境內(nèi)出現(xiàn)暴雨的次數(shù)越來(lái)越多,所造成的經(jīng)濟(jì)損失不可估量,而且暴雨期間洪澇災(zāi)害的發(fā)生概率也大大增加。因此亟需建立一個(gè)完善的水位監(jiān)測(cè)系統(tǒng),讓人們可以及時(shí)直觀地了解水位數(shù)據(jù),對(duì)預(yù)防洪澇災(zāi)害有極大的幫助[1]。目前,許多地方仍采用人工水位監(jiān)測(cè)方式,個(gè)別地方雖采用了水位監(jiān)測(cè)系統(tǒng),但還存在諸多問(wèn)題,如:設(shè)備通信覆蓋不完全;受老舊設(shè)備影響,水位信息不精確;不能直觀實(shí)時(shí)分析各個(gè)節(jié)點(diǎn)的水位數(shù)據(jù)等?;诖?,本文設(shè)計(jì)了基于單片機(jī)的水位監(jiān)測(cè)系統(tǒng),可應(yīng)用于水庫(kù)、天氣水文監(jiān)測(cè)站等實(shí)際場(chǎng)地,工作人員可根據(jù)需求在移動(dòng)端對(duì)水位數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè),設(shè)置預(yù)警水位,若超出預(yù)警水位,系統(tǒng)會(huì)及時(shí)發(fā)出警告,保證民眾的安全[2]。

        1 水位監(jiān)測(cè)系統(tǒng)的總體設(shè)計(jì)

        本系統(tǒng)根據(jù)所需功能主要設(shè)計(jì)了數(shù)據(jù)采集端、服務(wù)器端和上位機(jī)端。數(shù)據(jù)采集端有多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)連接LCD顯示屏、水位傳感器和蜂鳴器。采用水位傳感器進(jìn)行水位數(shù)據(jù)采集、LCD顯示屏進(jìn)行數(shù)據(jù)顯示。當(dāng)水位數(shù)據(jù)超過(guò)安全閾值時(shí),LCD顯示屏?xí)敵鰣?bào)警信息,蜂鳴器進(jìn)行報(bào)警。數(shù)據(jù)采集端和服務(wù)器端之間通過(guò)UDP進(jìn)行數(shù)據(jù)通信,將水位數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。上位機(jī)端從服務(wù)器端的數(shù)據(jù)庫(kù)中調(diào)取水位數(shù)據(jù),實(shí)現(xiàn)可視化數(shù)據(jù)實(shí)時(shí)展示功能[3]、歷史數(shù)據(jù)展示功能和超過(guò)安全閾值報(bào)警功能。系統(tǒng)總體框架如圖1所示。

        圖1 水位監(jiān)測(cè)系統(tǒng)總體框架

        2 水位監(jiān)測(cè)系統(tǒng)的詳細(xì)設(shè)計(jì)

        水位監(jiān)測(cè)系統(tǒng)主要包括數(shù)據(jù)采集端、服務(wù)器端和上位機(jī)端。設(shè)備與服務(wù)器端之間使用WiFi模塊進(jìn)行UDP通信[4]。系統(tǒng)用戶通過(guò)上位機(jī)端對(duì)水位數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)。系統(tǒng)功能模塊如圖2所示。

        圖2 水位監(jiān)測(cè)系統(tǒng)功能模塊

        2.1 數(shù)據(jù)采集端的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

        本系統(tǒng)有多個(gè)節(jié)點(diǎn),以一個(gè)節(jié)點(diǎn)為例進(jìn)行說(shuō)明。系統(tǒng)硬件設(shè)備的主控單元芯片采用ESPDuino芯片。在ESPDuino單片機(jī)上集成Arduino模塊和WiFi模塊,ESPDuino單片機(jī)連接MSP20水位傳感器、LCD1602顯示屏與蜂鳴器,LCD1602顯示屏顯示當(dāng)前節(jié)點(diǎn)的水位信息,當(dāng)水位超過(guò)安全閾值時(shí),顯示屏?xí)@示報(bào)警信息,且蜂鳴器會(huì)發(fā)出報(bào)警。將單片機(jī)設(shè)為AP模式通過(guò)WiFi連接指定路由器,通過(guò)UDP協(xié)議將采集到的數(shù)據(jù)傳輸至服務(wù)器端[5]。數(shù)據(jù)采集端節(jié)點(diǎn)結(jié)構(gòu)如圖3所示。

        圖3 數(shù)據(jù)采集端結(jié)構(gòu)

        系統(tǒng)運(yùn)行過(guò)程中,將MSP20水位傳感器的測(cè)量橡膠管插入水庫(kù)或雨量筒中[6],每隔5 s測(cè)量一次水位,水位數(shù)據(jù)顯示在LCD屏幕上。當(dāng)水位超出預(yù)設(shè)的安全閾值時(shí),LCD屏幕顯示報(bào)警信息且通過(guò)蜂鳴器進(jìn)行報(bào)警[7]。

        數(shù)據(jù)采集端的程序設(shè)計(jì)根據(jù)Arduino的編程特點(diǎn),分為初始化程序設(shè)計(jì)和循環(huán)程序設(shè)計(jì)。初始化程序中首先調(diào)用LiquidCrystal_I2C.h庫(kù)函數(shù)的lcd.init()函數(shù)和lcd.backlight()函數(shù)分別進(jìn)行顯示屏初始化和打開(kāi)LCD顯示屏的背光,之后使用pinMode()函數(shù)將連接蜂鳴器定義的引腳設(shè)為輸出模式,并通過(guò)digitalWrite()設(shè)置蜂鳴器的初始狀態(tài)完成蜂鳴器的初始化。同時(shí)通過(guò)Serial.begin(9600)的函數(shù)調(diào)用設(shè)置串口波特率,最后調(diào)用WiFi.mode()將WiFi設(shè)為AP模式,Udp.begin()開(kāi)始UDP端口偵聽(tīng)。初始化程序流程如圖4所示。

        圖4 初始化程序流程

        循環(huán)程序中首先使用analogRead()讀取A0引腳的數(shù)據(jù),通過(guò)公式轉(zhuǎn)換成實(shí)際需要的水位數(shù)據(jù),然后設(shè)置安全閾值判斷水位數(shù)據(jù)是否超過(guò)閾值。若超過(guò)閾值,調(diào)用lcd.print()函數(shù)在LCD顯示屏上顯示當(dāng)前水位信息和報(bào)警信息,同時(shí)通過(guò)digitalWrite()函數(shù)設(shè)置蜂鳴器高低電平使蜂鳴器進(jìn)行報(bào)警;若沒(méi)有超過(guò)閾值則LCD屏正常顯示水位數(shù)據(jù)。最后通過(guò)設(shè)置判斷語(yǔ)句來(lái)判斷是否接收到上位機(jī)發(fā)來(lái)的數(shù)據(jù),如果接收到信息,通過(guò)Udp.beginPacket()、Udpwrite()以及Udp.endPacket()函數(shù)完成開(kāi)始發(fā)送包數(shù)據(jù)、寫入包數(shù)據(jù)、結(jié)束發(fā)送包數(shù)據(jù)三個(gè)步驟。循環(huán)程序流程如圖5所示。

        圖5 循環(huán)程序流程

        2.2 服務(wù)器端的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

        服務(wù)器端首先建立UDP端點(diǎn),用來(lái)接收和發(fā)送數(shù)據(jù)包;然后通過(guò)打包數(shù)據(jù)發(fā)送給數(shù)據(jù)采集端,數(shù)據(jù)采集端接收到數(shù)據(jù)包就會(huì)將水位數(shù)據(jù)打包發(fā)送給服務(wù)器端;服務(wù)器端通過(guò)創(chuàng)建數(shù)據(jù)包來(lái)接收水位數(shù)據(jù),并連接指定IP的數(shù)據(jù)庫(kù),將水位數(shù)據(jù)存儲(chǔ)到指定表的指定字段中。具體流程如圖6所示。

        圖6 服務(wù)器端程序流程

        服務(wù)器端以jsp項(xiàng)目為主體、JAVA語(yǔ)言為主要編程語(yǔ)言。項(xiàng)目首先通過(guò)DatagramSocket()建立UDP Socket端點(diǎn),并 通 過(guò) DatagramPacket(byte[]buf,int length,InetAddress address,int port)提供數(shù)據(jù)封裝打包,inport里填入節(jié)點(diǎn)的IP地址,封裝打包完成后使用send()方法進(jìn)行數(shù)據(jù)包的發(fā)送,發(fā)送完成后調(diào)用close()方法關(guān)閉資源;然后調(diào)用udpsend()方法獲得節(jié)點(diǎn)的水位數(shù)據(jù),同時(shí)調(diào)用SimpleDateFormat()方法獲取當(dāng)前時(shí)間,取得所有所需的數(shù)據(jù)后進(jìn)行數(shù)據(jù)庫(kù)插入;最后使用 Class.forName(“com.mysql.jdbc.Driver”)方法驅(qū)動(dòng)DriverManager.getConnection()取得正確的數(shù)據(jù)庫(kù)IP、數(shù)據(jù)庫(kù)用戶名和密碼后,執(zhí)行數(shù)據(jù)庫(kù)插入命令。

        2.3 上位機(jī)端的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

        本系統(tǒng)的上位機(jī)端基于HTML5、Python語(yǔ)言,創(chuàng)建Flask項(xiàng)目。使用route()函數(shù)來(lái)記錄頁(yè)面路由,直接訪問(wèn)所要到達(dá)的頁(yè)面,并調(diào)用pymysql.connect()實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中調(diào)取節(jié)點(diǎn)水位數(shù)據(jù)以及時(shí)間數(shù)據(jù),且當(dāng)水位數(shù)據(jù)超過(guò)安全閾值時(shí)在數(shù)據(jù)可視化展示頁(yè)面中輸出報(bào)警信息彈窗。

        水位數(shù)據(jù)匯總頁(yè)面使用pymysql.connect{}連接數(shù)據(jù)庫(kù)IP和指定的表,使用datalist.append()將數(shù)據(jù)表進(jìn)行展示,并在頁(yè)面中使用HTML5語(yǔ)言標(biāo)簽寫入文字進(jìn)行顯示。水位數(shù)據(jù)匯總頁(yè)面如7所示。

        圖7 水位數(shù)據(jù)匯總頁(yè)面

        為更直觀地看到數(shù)據(jù)變化趨勢(shì),本系統(tǒng)在數(shù)據(jù)可視化展示頁(yè)面中使用了ECharts可視化功能,將節(jié)點(diǎn)水位數(shù)據(jù)進(jìn)行了可視化展示[8]。ECharts技術(shù)在本網(wǎng)頁(yè)中使用的是折線圖,通過(guò)定義option{}來(lái)設(shè)置折線圖的參數(shù)。用title{text:}設(shè)置標(biāo)題,legend{“節(jié)點(diǎn)1”,“節(jié)點(diǎn)2”}來(lái)設(shè)置兩個(gè)可以點(diǎn)擊的按鈕以顯示指定折線圖,x軸上用data:{}方法指定數(shù)據(jù)表中的字段,y軸同樣使用data:{}方法指定數(shù)據(jù)表中的字段。數(shù)據(jù)可視化頁(yè)面如圖8所示。

        圖8 數(shù)據(jù)可視化頁(yè)面

        在數(shù)據(jù)可視化頁(yè)面,當(dāng)水位數(shù)據(jù)超過(guò)安全閾值時(shí)會(huì)通過(guò)彈窗進(jìn)行報(bào)警來(lái)提示工作人員。在本頁(yè)面中設(shè)置一個(gè)判斷語(yǔ)句,如果y軸中的數(shù)據(jù)超過(guò)指定安全閾值,使用window.open()函數(shù)彈出一個(gè)含有報(bào)警信息的彈窗。超出安全閾值時(shí)報(bào)警頁(yè)面[9-10]如圖9所示。

        圖9 水位報(bào)警頁(yè)面

        3 結(jié) 語(yǔ)

        本文的系統(tǒng)能夠有效實(shí)時(shí)地對(duì)水位數(shù)據(jù)進(jìn)行監(jiān)測(cè),可以省去高額的人工成本,并加快水位信息的傳輸速度;水文系統(tǒng)的工作人員不用在各個(gè)地方手工統(tǒng)計(jì)水位信息,只需在上位機(jī)端通過(guò)網(wǎng)頁(yè)訪問(wèn)進(jìn)行水位信息統(tǒng)計(jì),也可以訪問(wèn)歷史水位信息,必要時(shí)可以去監(jiān)測(cè)點(diǎn)觀測(cè)顯示屏來(lái)查看水位信息;且當(dāng)水位超出安全閾值時(shí)系統(tǒng)會(huì)自動(dòng)報(bào)警,可以有效地減輕水位監(jiān)測(cè)工作人員的負(fù)擔(dān)。但系統(tǒng)硬件設(shè)備長(zhǎng)時(shí)間安裝在潮濕環(huán)境中,會(huì)加快硬件設(shè)備的損耗,這是后續(xù)研究中需要改善的地方。

        猜你喜歡
        蜂鳴器服務(wù)器端頁(yè)面
        大狗熊在睡覺(jué)
        刷新生活的頁(yè)面
        電動(dòng)自行車產(chǎn)品車速提示音檢測(cè)現(xiàn)狀和整改技術(shù)研究(2)
        掌控板制作簡(jiǎn)易鋼琴
        單片機(jī)驅(qū)動(dòng)蜂鳴器的程序設(shè)計(jì)
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        豐田凱美瑞240V車間隙警告蜂鳴器異常鳴響
        在Windows中安裝OpenVPN
        網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
        同一Word文檔 縱橫頁(yè)面并存
        在线人成免费视频69国产| 各类熟女熟妇激情自拍| 无人区乱码一区二区三区| 无码国模国产在线观看| 色综合久久天天综线观看| 中文字幕精品永久在线| 白白色发布的在线视频| 欧美人做人爱a全程免费| 污污污污污污污网站污| 亚洲最大av免费观看| 精彩亚洲一区二区三区| 狠狠色噜噜狠狠狠777米奇小说| 精品久久无码中文字幕| 亚洲色图视频在线播放| 日韩一区二区三区熟女| 国内精品久久人妻互换| 草逼短视频免费看m3u8| 精东天美麻豆果冻传媒mv| 狠狠狠色丁香婷婷综合激情| av福利资源在线观看| 日本道免费一区二区三区日韩精品| 99久久综合精品五月天| 亚洲高清在线不卡中文字幕网| 在线视频免费自拍亚洲| 在线中文字幕乱码英文字幕正常| 欧美黑人粗暴多交高潮水最多| 美女裸体无遮挡黄污网站| 亚洲天堂亚洲天堂亚洲色图| 97在线观看播放| www插插插无码视频网站| 精品国产麻豆免费人成网站| 久久黄色视频| 免费无码成人av在线播放不卡| 久久久精品国产亚洲麻色欲| 蜜桃视频在线观看网址| 黄网站欧美内射| 一区二区免费电影| 亚洲一区二区三区在线视频| yw尤物av无码国产在线观看| 国产精品欧美久久久久老妞 | 国产综合开心激情五月|