国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32和華為云平臺的宿舍智能水電監(jiān)測系統(tǒng)設(shè)計

2025-02-23 00:00:00宋欣霓張崢嶸左宇馳成宇軒尚鈺棋
物聯(lián)網(wǎng)技術(shù) 2025年4期
關(guān)鍵詞:智能監(jiān)測無線通信物聯(lián)網(wǎng)

摘 要:為解決高校學(xué)生用水、用電安全問題,設(shè)計實現(xiàn)了一個基于物聯(lián)網(wǎng)技術(shù)、低功耗無線通信技術(shù)、大數(shù)據(jù)云平臺的學(xué)生宿舍水電智能監(jiān)測系統(tǒng)。以STM32F103單片機(jī)為核心處理器,通過水壓、電流傳感器實現(xiàn)對水壓、電流的監(jiān)測,通過紅外傳感器模塊實現(xiàn)對宿舍人員數(shù)量的監(jiān)控,通過WiFi模塊把數(shù)據(jù)上傳至華為云平臺。輸出信號由單片機(jī)采集,水壓、電流值在液晶顯示屏上顯示。管理員通過Web端對宿舍水電進(jìn)行實時監(jiān)測,以保障宿舍人員用水、用電安全。該系統(tǒng)具有體積小、功耗低等優(yōu)點,可以降低能耗并保障高校宿舍用水、用電安全。

關(guān)鍵詞:智能監(jiān)測;STM32;華為云平臺;物聯(lián)網(wǎng);大數(shù)據(jù);無線通信

中圖分類號:TP212.6 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2025)04-000-06

0 引 言

隨著我國高等教育事業(yè)的飛速發(fā)展,高校已經(jīng)成為了我國資源消耗大戶。截至2021年9月30日,我國普通高等學(xué)校共有2 756所,在校人數(shù)3 285.3萬人。住房城鄉(xiāng)建設(shè)部會同財政部和教育部陸續(xù)制定并發(fā)布了一系列相關(guān)技術(shù)標(biāo)準(zhǔn),眾多高校建立了一批節(jié)能監(jiān)管平臺,然而,現(xiàn)階段高校學(xué)生用水、用電情況仍不容樂觀,用電不當(dāng)導(dǎo)致宿舍起火,甚至導(dǎo)致學(xué)生死亡的事故頻頻發(fā)生。

智能水電監(jiān)測即利用物聯(lián)網(wǎng)技術(shù),配合華為云平臺,實現(xiàn)對宿舍用水、用電安全的監(jiān)測,并對宿舍進(jìn)行智能化管理。該系統(tǒng)可以培養(yǎng)學(xué)生節(jié)約水電的意識,提高信息傳遞的效率,降低事故發(fā)生率及損失,在宿舍監(jiān)督管理、提升現(xiàn)代化宿舍安全意識方面,具有良好的社會效益和應(yīng)用前景。

伴隨著物聯(lián)網(wǎng)、人工智能、無線通信、大數(shù)據(jù)等技術(shù)的高速發(fā)展,高校有必要引進(jìn)智慧水電管理系統(tǒng),通過在宿舍水電閘門安裝必要的傳感器從而實現(xiàn)對用水、用電的監(jiān)控。該系統(tǒng)的使用在保證人身安全的同時,能夠達(dá)到節(jié)約能源的目標(biāo),對資源配置、環(huán)境建設(shè)等具有重大意義。

1 系統(tǒng)組成

宿舍水電監(jiān)測系統(tǒng)如圖1所示。主控芯片采用STM32F103,該微控制器采用Cortex-M3內(nèi)核,CPU最高速度達(dá)72 MHz,具有16 KB~1 MB FLASH、多種控制外設(shè)、USB全速接口和CAN。該系統(tǒng)采用高精度、低功耗的濕度傳感器采集濕度數(shù)據(jù),采用水壓、電流傳感器采集水流、電壓數(shù)據(jù)。硬件終端采集數(shù)據(jù)并定時發(fā)送至華為云平臺(注冊的用戶可通過Web端查詢數(shù)據(jù)[1-4])。宿舍水電監(jiān)測系統(tǒng)結(jié)構(gòu)如圖2所示。

1.1 人員計數(shù)系統(tǒng)

設(shè)計基于單片機(jī)的人體計數(shù)系統(tǒng),根據(jù)紅外傳感器的檢測情況和對單片機(jī)數(shù)據(jù)的處理情況,對人員進(jìn)出方向進(jìn)行判斷并準(zhǔn)確計數(shù),并通過無線通信技術(shù)進(jìn)行實時反饋。管理者可以通過Web端或手機(jī)APP端實時掌握宿舍人員數(shù)量,對無人的宿舍進(jìn)行相關(guān)監(jiān)測。

1.2 室內(nèi)漏水監(jiān)測及警報系統(tǒng)

當(dāng)室內(nèi)人員數(shù)量為0時該漏水監(jiān)測及報警系統(tǒng)開始工作。控制單元由低成本的嵌入式最小控制系統(tǒng)構(gòu)成,負(fù)責(zé)采集來自檢測單元的漏水監(jiān)測終端的異常信息,對信號的可靠性進(jìn)行判斷,并將信號輸出到報警單元??刂茊卧檬覂?nèi)無線局域網(wǎng)或移動網(wǎng)接入,將異常信息發(fā)送到后臺系統(tǒng)服務(wù)器,以提醒管理員。

1.3 室內(nèi)用電情況監(jiān)測系統(tǒng)

該系統(tǒng)可以實現(xiàn)以下功能:監(jiān)測學(xué)生宿舍的用電情況,并可以通過Web端管理平臺提供詳細(xì)的圖形化數(shù)據(jù)及分析報告,使宿舍每個時間段的用電情況一目了然。用電異常時可通過系統(tǒng)進(jìn)行彈窗、圖形告警,通知管理員對用電異常的區(qū)間進(jìn)行異常排查。

1.4 Web端和手機(jī)APP端管理平臺開發(fā)

設(shè)計一個和水電各類數(shù)據(jù)有關(guān)的監(jiān)測程序。Web端和手機(jī)APP端為用戶管理界面。管理員可以通過Web端或手機(jī)APP端與系統(tǒng)服務(wù)器管理平臺網(wǎng)絡(luò)連接,實現(xiàn)對學(xué)生宿舍實時用水、用電安全的遠(yuǎn)程監(jiān)測與管理。

2 硬件系統(tǒng)設(shè)計

紅外計數(shù)模塊由STM32F103單片機(jī)核心板電路、TFT 1.44英寸彩屏液晶顯示電路、2路紅外探頭信號檢測電路、WiFi模塊、蜂鳴器報警電路、按鍵電路及電源組成。

交流電壓電流監(jiān)測模塊由STM32F103單片機(jī)核心板電路、交流電壓電流檢測模塊電路、WiFi模塊電路、指示燈電路組成。

濕度檢測模塊由STM32單片機(jī)核心板電路、土壤濕度傳感器模塊電路、WiFi模塊電路組成[5-9]。

2.1 E18-D80NK紅外傳感器模塊電路設(shè)計

E18-D80NK-N是一種集發(fā)射與接收于一體的光電傳感器。信號經(jīng)過調(diào)制后輸入,再由接收頭解調(diào)輸出,有效避免了可見光的干擾。該傳感器具有探測距離遠(yuǎn)、受可見光干擾小、價格低廉、裝配難度低、使用方便等特點,可以廣泛應(yīng)用于機(jī)器人避障、流水線計件等場合。E18-D80NK光電傳感器模塊原理如圖3所示。

2.2 ESP8266 WiFi模塊電路設(shè)計

串口WiFi模塊為新一代嵌入式WiFi模塊,體積小,功耗低,采用UART接口。串口WiFi模塊基于通用串行接口特性,符合IEEE802.11協(xié)議棧網(wǎng)絡(luò)標(biāo)準(zhǔn),內(nèi)置TCP/IP協(xié)議棧,便于傳統(tǒng)串口設(shè)備更好地加入無線網(wǎng)絡(luò)。

ESP8266是一款超低功耗模塊,專為移動設(shè)備和互聯(lián)網(wǎng)應(yīng)用設(shè)計,其將用戶的物理設(shè)備連接到WiFi無線網(wǎng)絡(luò)進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,可廣泛應(yīng)用于智能電網(wǎng)、智能交通、智能家具、工業(yè)控制等領(lǐng)域。ESP8266 WiFi模塊電路原理如圖4所示。

2.3 交流電壓、電流互感器模塊電路設(shè)計

交流電壓、電流互感器模塊通過交流電壓互感器(TV1005M)和交流電流互感器(TA1005M)來檢測交流電壓和交流電流值,并通過5 V繼電器電路完成切斷。交流電壓、電流互感器模塊電路結(jié)構(gòu)如圖5所示。

交流電壓、電流互感器模塊電路原理如圖6所示。R1為限流電阻;D1、D2為二極管,單向?qū)щ姡浑娙菥糜跒V波,使信號更加平穩(wěn);R2、R3為分壓電阻,將采集的模擬信號轉(zhuǎn)化為電壓信號;LED2為電源指示燈;R6為限流電阻,用于保護(hù)LED2燈;J1為220 V交流電輸入接口;J2為負(fù)載輸入接口;RL1為5 V繼電器,本文設(shè)計的電路中,由于單片機(jī)引腳的電流驅(qū)動能力不足以實現(xiàn)繼電器的通斷,所以使用9012三極管作為驅(qū)動元件驅(qū)動繼電器,考慮到繼電器閉合或者斷開瞬間會產(chǎn)生反向感應(yīng)電動勢,損害三極管,因此通過1N4007二極管消除反向電動勢以保護(hù)三極管;LED1為繼電器是否閉合指示燈,如果繼電器閉合,則指示燈亮,否則指示燈滅;R4為限流電阻,用來保護(hù)LED1;R5為限流電阻,用來保護(hù)三極管,當(dāng)控制引腳RY1為高電平時,繼電器閉合。交流電壓、電流互感器模塊電路接口如圖7所示。

系統(tǒng)主要采用Keil μVision5軟件調(diào)試程序,程序選用C語言編寫。交流電壓、電流互感器模塊電路運行流程如圖8所示。通過PL2303串口燒寫模塊實現(xiàn)對單片機(jī)程序的燒寫[10]。

2.4 漏水監(jiān)測模塊電路設(shè)計

濕度傳感器原理如圖9所示。

宿舍用水、用電監(jiān)測系統(tǒng)實物如圖10所示。

3 軟件系統(tǒng)設(shè)計

3.1 前端數(shù)據(jù)顯示和預(yù)警

項目使用網(wǎng)站顯示監(jiān)控數(shù)據(jù),基于SpringMVC框架實現(xiàn)注冊登錄的邏輯,便于不同的用戶獲取個人監(jiān)控數(shù)據(jù)。對于注冊功能,成功注冊的用戶信息會被同步保存到用戶數(shù)據(jù)庫中;對于登錄功能,前端輸入的學(xué)號、密碼會與數(shù)據(jù)庫中的用戶信息進(jìn)行對比,以得到該用戶的宿舍號,此時前端跳轉(zhuǎn)頁面顯示該用戶宿舍的水電監(jiān)控信息。前端頁面如圖11所示。

注冊登錄的部分邏輯代碼如下:

private static ResourceBundle rb=ResourceBundle.getBundle(\"com.jmp.util.db-config\");

/*加載數(shù)據(jù)庫配置文件中的連接信息*/

static

{URL=rb.getString(\"jdbc.url\");

USERNAME=rb.getString(\"jdbc.username\");

PASSWORD=rb.getString(\"jdbc.password\");

DRIVER=rb.getString(\"jdbc.driver\");

try

{Class.forName(DRIVER);}

catch(ClassNotFoundException e)

{e.printStackTrace();}}

/***創(chuàng)建數(shù)據(jù)庫連接*@return*/

public static Connection getConnection()

{Connection con=1;

try

{con=DriverManager.getConnection(URL,USERNAME,PASSWORD);}

catch(SQLException e)

{e.printStackTrace();

System.out.println(\"數(shù)據(jù)庫連接失敗,請檢查數(shù)據(jù)庫地址、用戶名、密碼是否存在錯誤!??!\");}

return con;}

/*創(chuàng)建模型對象*/

public class RoomNumber

{private String room_id;

private String now_time;

private int enter_number;

private int departures_number;

private int now_number;

public RoomNumber(String room_id,String now_time,int enter_number,int departures_number,int now_number)

{this.room_id=room_id;

this.now_time=now_time;

this.enter_number=enter_number;

this.departures_number=departures_number;

this.now_number=now_number;}

public String getRoom_id()

{return room_id;}

public void setRoom_id(String room_id)

{this.room_id=room_id;}

public String getNow_time()

{return now_time;}

public void setNow_time(String now_time)

{this.now_time=now_time;}

public int getEnter_number()

{return enter_number;}

public void setEnter_number(int enter_number)

{this.enter_number=enter_number;}

public int getDepartures_number()

{return departures_number;}

public void setDepartures_number(int departures_number)

{this.departures_number=departures_number;}

public int getNow_number()

{return now_number;}

public void setNow_number(int now_number)

{this.now_number=now_number;}

@Override

public String toString()

{return \"RoomElectricity

{\"+\"Room_id=\"+room_id+\",now_time='\"+now_time+'\''+\", enter_number='\"+enter_number+'\''+\",departures_number='\"+departures_number+'\''+\",now_number='\"+now_number+'\''+''};}}

對于數(shù)據(jù)顯示頁面,本項目使用HTML、JSP、CSS設(shè)計了監(jiān)控數(shù)據(jù)顯示臺。

在JSP中獲取連接數(shù)據(jù)庫、查詢數(shù)據(jù)的代碼如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response)

{String m=request.getParameter(\"m\");

if(\"getNumber\".equals(m))

{getNumber(request,response);}

else if(\"getElectricity\".equals(m))

{getElectricity(request, response);}}

private void getNumber(HttpServletRequest request, HttpServlet Response response)

{String keyName=request.getParameter(\"roomname\");

RoomNumber roomNumber=new RoomNumber();

roomNumber.setRoom_id(keyName);

//System.out.println(keyName);

System.out.println(\"Here2!\");

try

{Listlt;RoomNumbergt;roomList=RoomService.getNumber (roomNumber);

//System.out.println(roomList);

request.setAttribute(\"roomList\",roomList);

System.out.println(request);

request.getRequestDispatcher(\"/Views/home.jsp\").forward(request, response);

//System.out.println(response);}

catch(Exception e)

{e.printStackTrace();}}

查詢MySQL數(shù)據(jù)代碼:

static ResourceBundle rb=ResourceBundle.getBundle(\"com.jmp.dao.book-sql\");

public RoomDaoImpl()

{//創(chuàng)建BookDaoImpl對象時加載QueryRunner

qr = new QueryRunner();}

@Override

public Listlt;RoomNumbergt;getNumber(RoomNumber roomNumber) throws SQLException

{String sql=rb.getString(\"room.sql.getNumber\");

Listlt;RoomNumbergt;list=qr.query(DBUtil.getConnection(), sql,roomNumber.getRoom_id(),new BeanListHandlerlt;gt;(RoomNumber.class));

//System.out.println(sql);

System.out.println(list);

return list;}

在JSP中調(diào)用接口查詢數(shù)據(jù)庫數(shù)據(jù):

lt;script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"gt;lt;/scriptgt;lt;scriptgt;

//在頁面加載時立即執(zhí)行的請求代碼

$.ajax

({url:\"/RoomServlet\",method:\"GET\",data:

{m:\"getNumber\",roomname:\"T2C7091\"},

success: function(response)

{//處理響應(yīng)

console.log(response);

}//輸出響應(yīng)內(nèi)容到控制臺

error:function(xhr,status,error)

{//處理錯誤

console.log(\"請求錯誤:\"+status);}});

print(response);

lt;/scriptgt;

3.2 數(shù)據(jù)庫設(shè)計

本項目使用MySQL數(shù)據(jù)庫,分別建立了監(jiān)控數(shù)據(jù)庫和用戶信息數(shù)據(jù)庫。監(jiān)控數(shù)據(jù)庫下有2個Table,分別用于存儲房間人數(shù)和用電情況。用戶數(shù)據(jù)庫包括學(xué)號、密碼、宿舍號(房間號)。數(shù)據(jù)庫頁面如圖12所示。

3.3 后端數(shù)據(jù)上傳和存儲

本文項目使用了一臺帶公網(wǎng)IP的華為云服務(wù)器作為服務(wù)端,并建立了MySQL數(shù)據(jù)庫,可通過公網(wǎng)IP進(jìn)行訪問。同時,本文項目使用Socket搭建了TCP服務(wù)端,用于接收來自下位機(jī)的數(shù)據(jù),并以事先設(shè)定好的數(shù)據(jù)格式對數(shù)據(jù)進(jìn)行解析(本項目采用的是JSON格式),使用GSON包對JSON數(shù)據(jù)解析完成后,將數(shù)據(jù)存儲到數(shù)據(jù)庫中。

使用Socket搭建TCP服務(wù)端的代碼如下:

public void setUpServer(int port)

{try

{ServerSocket server=new ServerSocket(port);

System.out.println(\"服務(wù)器創(chuàng)建成功\"+port);

while(true)

{Socket client=server.accept();

System.out.println(\"正在有客戶端訪問\"+client.getRemoteSocketAddress());

processChat(client);}}

catch(Exception e)

{e.printStackTrace();}}

private void processChat(Socket client) throws Exception

{OutputStream out=client.getOutputStream();

InputStream ins=client.getInputStream();

BufferedReader in=new BufferedReader(new InputStreamReader (ins));

String s;

while((s=in.readLine())!= 1)

{String jsonString = new String(s);

//System.out.println(jsonString);

System.out.println(s);

Gson gson=new Gson();

try

{data object=gson.fromJson(s,data.class);Date date=new Date();

//this object contains the current date value

SimpleDateFormat formatter=new SimpleDateFormat (\"yyyy-MM-dd HH:mm:ss\");

object.now_time=formatter.format(date);

Class.forName(\"com.mysql.jdbc.Driver\");

//System.out.println(\"1.完成注冊\");

//建立連接,

String url=\"jdbc:mysql://123.60.136.10:3306/monitor?\";

//主要協(xié)議:次要協(xié)議:主機(jī)名:端口號/數(shù)據(jù)庫名

Connection connection=DriverManager.getConnection(url, \"root\",\"123456\");

//System.out.println(\"2.完成連接\");

String sql=\"insert into number values(?,?,?,?,?,?)\";

PreparedStatement preparedStatement=connection.prepareStatement(sql);

preparedStatement.setString(1,object.room_id);

preparedStatement.setString(2,object.now_time);

preparedStatement.setInt(3,object.enter_number);

preparedStatement.setInt(4,object.departures_number);

preparedStatement.setFloat(5,object.now_number);

//System.out.println(\"3.創(chuàng)建成功\");

preparedStatement.executeUpdate();

preparedStatement.close();

connection.close();}

catch(JsonIOException|ClassNotFoundException|SQLException e)

{e.printStackTrace();}}}

主程序開啟后,先對STM32單片機(jī)和各模塊進(jìn)行初始化以及端口配置,檢測單片機(jī)與各個模塊是否成功連接,若成功,則開始準(zhǔn)備接收各傳感器采集的室內(nèi)數(shù)據(jù)。若室內(nèi)有人,則無需展示數(shù)據(jù);若無人,則接收數(shù)據(jù)。若檢測到水流、電流值異常,則向用戶發(fā)消息報警,用戶可通過Web平臺遠(yuǎn)程查看。后端頁面如圖13所示。

4 結(jié) 語

本文設(shè)計的宿舍智能水電監(jiān)測系統(tǒng)將傳統(tǒng)的用水、用電監(jiān)測和物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)技術(shù)結(jié)合,借助華為云平臺,通過安裝的紅外傳感器智能判斷宿舍人數(shù),進(jìn)而實現(xiàn)用水、用電安全監(jiān)測。該系統(tǒng)已處于試運行階段,現(xiàn)階段運行可靠,無線通信穩(wěn)定。

參考文獻(xiàn)

[1]胡宗磊.基于物聯(lián)網(wǎng)技術(shù)的電能檢測系統(tǒng)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2015(2):36-38.

[2]楊曉芬.基于無線傳感器網(wǎng)絡(luò)的博物館環(huán)境監(jiān)測系統(tǒng)[J].電子世界,2016,19(10):75-78.

[3]蔚承英,陳勇剛,楊利平,等.基于GPRS和嵌入式計算機(jī)的遠(yuǎn)程監(jiān)控系統(tǒng)研究[J].安防科技,2016,2(12):18-20.

[4]熊媛.傳感器技術(shù)在自動控制系統(tǒng)中的應(yīng)用及發(fā)展展望[J].工業(yè)設(shè)計,2016,10(8):12-15.

[5]朱兆豐,劉靜琦,周振虎,等.基于STM32的室內(nèi)環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2021,11(6):6-9.

[6]秦立辰,陳付龍,程桂花,等.一種基于NB-IoT的智慧消防監(jiān)測預(yù)警系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2022,12(9):20-23.

[7]王巖,王超梁,楊格格.一種物聯(lián)網(wǎng)水質(zhì)監(jiān)測云系統(tǒng)設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2022,12(4):22-24.

[8]張昊霖,張敏,曹大焱,等.智慧寢室系統(tǒng)設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2021,11(6):76-78.

[9]魏靜博,黎芳芳,張芹,等.基于STM32的物聯(lián)網(wǎng)溫控平臺系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2023,46(4):52-56.

[10]汪康.基于NB-IoT的智能樓宇環(huán)境監(jiān)控系統(tǒng)設(shè)計[D].南京:南京郵電大學(xué),2019.

作者簡介:宋欣霓(2001—),女,研究方向為人工智能。

張崢嶸(2002—),女,研究方向為電氣工程。

左宇馳(2004—),男,研究方向為電子信息。

成宇軒(2002—),男,研究方向為電氣工程。

尚鈺棋(2001—),女,研究方向為信息安全。

猜你喜歡
智能監(jiān)測無線通信物聯(lián)網(wǎng)
基于物聯(lián)網(wǎng)RFID技術(shù)的橋梁承重實時監(jiān)測系統(tǒng)
雙塔結(jié)構(gòu)的伸縮式天線系統(tǒng)設(shè)計研究
科技傳播(2016年19期)2016-12-27 16:18:58
無線通信技術(shù)在測繪工程中的應(yīng)用分析
基于ZigBee的艙內(nèi)人員巡檢系統(tǒng)的應(yīng)用研究
斗輪堆取料機(jī)控制系統(tǒng)性能優(yōu)化
基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應(yīng)用
談無線載波聚合系統(tǒng)性能分析與優(yōu)化
基于高職院校物聯(lián)網(wǎng)技術(shù)應(yīng)用人才培養(yǎng)的思考分析
基于信息管理平臺優(yōu)化多重耐藥菌監(jiān)測的研究與實踐
科技視界(2016年20期)2016-09-29 11:32:12
中國或成“物聯(lián)網(wǎng)”領(lǐng)軍者
扎赉特旗| 墨竹工卡县| 黔江区| 南江县| 松桃| 日喀则市| 达日县| 沈丘县| 姜堰市| 保亭| 西平县| 阿合奇县| 大渡口区| 沂源县| 米脂县| 宁海县| 古蔺县| 磴口县| 霍山县| 郧西县| 文昌市| 凌云县| 泾源县| 苏尼特右旗| 长顺县| 许昌市| 神池县| 昆山市| 西安市| 阳东县| 郁南县| 余江县| 汉沽区| 时尚| 福贡县| 石城县| 察隅县| 彰武县| 上犹县| 台前县| 温泉县|