摘要:智慧型寫字樓是智慧城市建設(shè)中不可或缺的一環(huán),它通過物聯(lián)網(wǎng)技術(shù)將各種設(shè)備、傳感器、控制器等連接起來,實(shí)現(xiàn)對(duì)寫字樓內(nèi)部的環(huán)境、安防、能耗等方面進(jìn)行全面監(jiān)控和精細(xì)化管理。在系統(tǒng)設(shè)計(jì)過程中消防、新風(fēng)、照明、門禁和溫濕度調(diào)控等功能模塊間的數(shù)據(jù)交互和軟件設(shè)計(jì),直接關(guān)系到系統(tǒng)的效率和質(zhì)量。文章基于阿里云ECS服務(wù)器,采用JSON技術(shù)對(duì)系統(tǒng)各模塊的數(shù)據(jù)包進(jìn)行交互,使用C語言和MySQL實(shí)現(xiàn)了智慧型寫字樓自主調(diào)控系統(tǒng)數(shù)據(jù)包的快速交換和軟件設(shè)計(jì),提高了系統(tǒng)的效率和穩(wěn)定性,為智慧型寫字樓管理提供了一種有益的解決方案。
關(guān)鍵詞:智慧型寫字樓;物聯(lián)網(wǎng);智能化;數(shù)據(jù)包交換
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)32-0035-03 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID) :
0 引言
智慧型寫字樓是通過物聯(lián)網(wǎng)技術(shù)將各種設(shè)備、傳感器、控制器等連接起來,實(shí)現(xiàn)對(duì)寫字樓內(nèi)部的環(huán)境、安防、能耗等方面進(jìn)行全面監(jiān)控和精細(xì)化管理的系統(tǒng)。在系統(tǒng)設(shè)計(jì)過程中,如何實(shí)現(xiàn)和提高各功能如消防、新風(fēng)、照明、門禁和溫濕度調(diào)控等模塊間的數(shù)據(jù)交互和控制,直接關(guān)系到系統(tǒng)的效率和穩(wěn)定性[1]。
1 軟件總體設(shè)計(jì)
主函數(shù)程序首先進(jìn)行初始化處理,初始化后對(duì)中斷串口進(jìn)行監(jiān)聽,當(dāng)產(chǎn)生中斷后,優(yōu)先執(zhí)行中斷,隨后對(duì)數(shù)據(jù)進(jìn)行采集,并在顯示屏上顯示,采集到的數(shù)據(jù)與單片機(jī)預(yù)設(shè)閾值進(jìn)行判斷,若沒有異常,則上傳數(shù)據(jù),當(dāng)出現(xiàn)異常時(shí),向阿里云ECS服務(wù)器上報(bào)異常情況,阿里云ECS服務(wù)器接收到數(shù)據(jù)后,解析存儲(chǔ)數(shù)據(jù),并轉(zhuǎn)發(fā)給手機(jī)App,手機(jī)App下發(fā)指令,串口監(jiān)聽,并執(zhí)行相應(yīng)操作[2]。主函數(shù)流程圖如圖1所示。
2 數(shù)據(jù)包格式規(guī)定
各個(gè)子系統(tǒng)、服務(wù)器和手機(jī)App采用JSON數(shù)據(jù)包進(jìn)行交互,因?yàn)榭紤]到物聯(lián)網(wǎng)終端設(shè)備常采用JSON或XML數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸,而JSON易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,所以選擇使用JSON數(shù)據(jù)格式進(jìn)行傳輸[3]。
系統(tǒng)采用自定義的JSON交互格式,下面以App 下發(fā)開門指令為例。
格式:
“{ Sender”: “phone”, “address”: “{ Receiver”: “door”“, event”“: open_door”“, value”:1}}
第一個(gè)屬性名Sender 表示發(fā)送這條數(shù)據(jù)的節(jié)點(diǎn),phone是App節(jié)點(diǎn)名稱。第二個(gè)address是將數(shù)據(jù)的起始地址與目的地址分隔開,使其更加有層次感,address里的是目的地需要解析處理的內(nèi)容。第三個(gè)屬性名Receiver表示目的地節(jié)點(diǎn),door是門禁系統(tǒng)節(jié)點(diǎn)名稱。第四個(gè)屬性名event是代表事件,比如open_door代表開門,open_linght代表開燈。第五個(gè)屬性名value代表數(shù)據(jù),如果是控制執(zhí)行器,則用1 和0表示開關(guān),如果是上傳傳感器數(shù)據(jù),則發(fā)送整形或者浮點(diǎn)型數(shù)據(jù)。
3 各功能模塊軟件設(shè)計(jì)
3.1 新風(fēng)系統(tǒng)和消防系統(tǒng)軟件設(shè)計(jì)
新風(fēng)系統(tǒng)和消防系統(tǒng)集成在一起,該系統(tǒng)首先進(jìn)行系統(tǒng)初始化和連接阿里云ECS服務(wù)器操作。系統(tǒng)主要通過監(jiān)聽串口中斷和定時(shí)器中斷,進(jìn)行業(yè)務(wù)邏輯的操作。如果串口產(chǎn)生中斷,解析JSON數(shù)據(jù),將解析的JSON數(shù)據(jù)放入switch函數(shù)中,執(zhí)行相應(yīng)的功能,執(zhí)行完后,清空內(nèi)存,避免內(nèi)存溢出,再次等待;如果定時(shí)器2產(chǎn)生中斷,則執(zhí)行傳感器數(shù)據(jù)采集的操作,并通過本地判斷,執(zhí)行相應(yīng)的操作,最后將數(shù)據(jù)打包上傳阿里云ECS數(shù)據(jù)庫;如果火焰?zhèn)鞲衅鞔跈z測到異常,關(guān)閉定時(shí)器2,打開定時(shí)器3,打開蜂鳴器和水泵,再將數(shù)據(jù)上傳服務(wù)器,當(dāng)定時(shí)器3產(chǎn)生中斷,則再次判斷火焰是否熄滅,如果沒有,再次執(zhí)行數(shù)據(jù)上傳操作,如果熄滅,則打開定時(shí)器2,關(guān)閉定時(shí)器3。
3.2 門禁系統(tǒng)和室內(nèi)安防系統(tǒng)軟件設(shè)計(jì)
門禁系統(tǒng)和室內(nèi)安防系統(tǒng)集成在一起,該系統(tǒng)首先進(jìn)行系統(tǒng)初始化和連接阿里云ECS服務(wù)器操作。系統(tǒng)主要通過監(jiān)聽串口中斷,進(jìn)行業(yè)務(wù)邏輯的操作。當(dāng)App下發(fā)open_door事件指令時(shí),表示開門,當(dāng)發(fā)送leave表示離家,發(fā)送sleep表示回家,此時(shí)室內(nèi)安防系統(tǒng)啟動(dòng),實(shí)時(shí)監(jiān)測室內(nèi)環(huán)境情況。門禁系統(tǒng)和室內(nèi)安防系統(tǒng)程序流程圖如圖2所示。
3.3 溫濕度調(diào)控系統(tǒng)和智能窗戶調(diào)控系統(tǒng)軟件設(shè)計(jì)
溫濕度調(diào)控系統(tǒng)和智能窗戶調(diào)控系統(tǒng)集成在一起,該系統(tǒng)首先進(jìn)行系統(tǒng)初始化和連接阿里云ECS服務(wù)器操作。系統(tǒng)主要通過監(jiān)聽串口中斷和定時(shí)器中斷,進(jìn)行業(yè)務(wù)邏輯的操作。如果串口接收到數(shù)據(jù),通過解析JSON數(shù)據(jù),將解析到的結(jié)果進(jìn)行判斷,從而控制執(zhí)行器運(yùn)行。當(dāng)定時(shí)器產(chǎn)生中斷,此時(shí)單片機(jī)系統(tǒng)采集溫濕度,由于室內(nèi)溫度一般控制在24~26℃之間,所以當(dāng)溫度低于24oC或者高于26℃時(shí),空調(diào)自動(dòng)啟動(dòng)[4]。采集完溫濕度后,系統(tǒng)再進(jìn)行噴霧情況、紫外線等級(jí)、光照度采集,并通過本地判斷,執(zhí)行相應(yīng)的操作,最后將數(shù)據(jù)打包上傳阿里云ECS數(shù)據(jù)庫。溫濕度調(diào)控系統(tǒng)和智能窗戶調(diào)控系統(tǒng)流程圖如圖3所示。
3.4 照明系統(tǒng)和智能管家系統(tǒng)軟件設(shè)計(jì)
照明系統(tǒng)和智能管家系統(tǒng)集成在一起,該系統(tǒng)首先進(jìn)行系統(tǒng)初始化和連接阿里云ECS服務(wù)器操作。系統(tǒng)主要通過監(jiān)聽串口中斷,進(jìn)行業(yè)務(wù)邏輯的操作。當(dāng)數(shù)據(jù)App下發(fā)控制照明的指令,RGB燈亮不同的燈。串口3監(jiān)聽離線語音助手下發(fā)的數(shù)據(jù)。
3.5 阿里云TCP 服務(wù)器軟件設(shè)計(jì)
阿里云ECS服務(wù)器使用C語言搭建,調(diào)用Socket 函數(shù)搭建TCP服務(wù)器,并且使用poll函數(shù)實(shí)現(xiàn)多線程方式,再調(diào)用MySQL.h庫函數(shù)訪問MySQL數(shù)據(jù)庫[5]。
1) TCP傳輸控制協(xié)議是一種面向連接的、可靠的運(yùn)輸層協(xié)議,其中面向連接是指使用TCP通信之前,通信實(shí)體必須在彼此之間先建立一個(gè)TCP連接,傳輸完畢后也必須釋放這個(gè)連接,這個(gè)連接相當(dāng)于一條全雙工的可靠信道,用于發(fā)送和接收數(shù)據(jù)。
2) Socket通信機(jī)制把復(fù)雜的TCP/IP協(xié)議隱藏起來,為應(yīng)用提供了一組友好的支持通信功能的接口。Socket通信的基本過程可以簡單分為建立連接、數(shù)據(jù)通信和釋放連接3個(gè)部分。
3) 兩個(gè)需要通信的應(yīng)用各建立一個(gè)Socket,主動(dòng)連接的一端一般稱為客戶端,被動(dòng)連接的一端稱為服務(wù)器端。服務(wù)器端和客戶端的連接建立成功后,應(yīng)用通過調(diào)用標(biāo)準(zhǔn)的Socket通信接口進(jìn)行消息的發(fā)送和接收,達(dá)成應(yīng)用間通信的目的。
4) 服務(wù)器端搭建流程如圖4所示。
3.6 數(shù)據(jù)庫設(shè)計(jì)
在MySQL數(shù)據(jù)庫中,首先創(chuàng)建homestay庫,再分別創(chuàng)建存儲(chǔ)數(shù)據(jù)用的表。下面以MQ135表用于存儲(chǔ)空氣質(zhì)量傳感器的數(shù)據(jù)為例進(jìn)行設(shè)計(jì)。
MQ135表用于存儲(chǔ)空氣質(zhì)量傳感器的數(shù)據(jù),其中id字段是編號(hào),mq135字段用于存儲(chǔ)空氣質(zhì)量傳感器數(shù)據(jù),create_time字段自動(dòng)添加數(shù)據(jù)存儲(chǔ)時(shí)間。表結(jié)構(gòu)和ER圖如表1和圖5所示。
3.7 手機(jī)客戶端軟件設(shè)計(jì)
使用Android Studio 開發(fā)手機(jī)App,App 通過Socket 與TCD8iqHGPa18I7rImyZP+5gM7teY7XPRaBJl4tALKT1KE=P 服務(wù)器進(jìn)行連接,并通過訪問服務(wù)器MySQL數(shù)據(jù)獲取寫字樓各項(xiàng)數(shù)據(jù)。App還可以下發(fā)指令,實(shí)現(xiàn)對(duì)系統(tǒng)硬件端的控制[6]。App由多個(gè)界面構(gòu)成,其中MainActivity為主界面,doorActivity界面實(shí)現(xiàn)的是控制門鎖開關(guān)的功能,environmentActivity界面將傳感器數(shù)據(jù)進(jìn)行顯示,kongtiaoActivity界面實(shí)現(xiàn)的是控制空調(diào)的開關(guān)功能,lightActicity界面實(shí)現(xiàn)的是控制室內(nèi)燈光功能,windowActicity界面實(shí)現(xiàn)的是控制窗戶開關(guān)功能,phoneverify界面實(shí)現(xiàn)是用戶使用短信登錄到智慧民宿控制界面的功能,registeredActivity界面實(shí)現(xiàn)的是用戶注冊(cè)房間的功能。
MainActivity界面設(shè)計(jì)。MainActivity界面主要實(shí)現(xiàn)連接阿里云TCP服務(wù)器和界面的跳轉(zhuǎn)功能,當(dāng)用戶點(diǎn)擊短信驗(yàn)證系統(tǒng)跳轉(zhuǎn)到phoneverify界面,當(dāng)用戶點(diǎn)擊首頁,系統(tǒng)會(huì)跳轉(zhuǎn)到registeredActivity界面。
Phoneverify 界面設(shè)計(jì)。MainActivity 界面主要實(shí)現(xiàn)用戶通過短信驗(yàn)證的方式跳轉(zhuǎn)到doorActivity界面。系統(tǒng)首先使用MobTech平臺(tái)提供的SMMSDK連接到短信驗(yàn)證平臺(tái)服務(wù)器,隨后用戶輸入手機(jī)號(hào),系統(tǒng)將用戶輸入的手機(jī)號(hào)與數(shù)據(jù)庫中所存的手機(jī)號(hào)進(jìn)行匹配,如果存在,則向MobTech平臺(tái)申請(qǐng)驗(yàn)證碼,如果不存在,則彈出提示。當(dāng)用戶輸入驗(yàn)證碼后,系統(tǒng)將用戶輸入的驗(yàn)證碼反饋給平臺(tái)進(jìn)行驗(yàn)證,如果無誤,則跳轉(zhuǎn)到doorActivity界面。
控制指令端界面設(shè)計(jì)??刂浦噶疃私缑嬗蒬oor?Activity 界面、kongtiaoActivity 界面、windowActicity 界面、lightActicity界面構(gòu)成,各個(gè)子界面由一個(gè)或多個(gè)按鈕組成,實(shí)現(xiàn)用戶點(diǎn)擊按鍵,App下發(fā)數(shù)據(jù)到服務(wù)器,服務(wù)器再將數(shù)據(jù)轉(zhuǎn)發(fā)到硬件端,從而實(shí)現(xiàn)對(duì)硬件的控制功能。
EnvironmentActivity 界面設(shè)計(jì)。environmentActi?vity界面通過訪問MySQL數(shù)據(jù)庫,獲取homestay庫中各個(gè)表存儲(chǔ)的最新數(shù)據(jù),并將其顯示到UI界面中。
4 結(jié)束語
系統(tǒng)采用C語言、阿里云平臺(tái)、MySQL等技術(shù),實(shí)現(xiàn)了智慧型寫字樓自主調(diào)控系統(tǒng)軟件的設(shè)計(jì)。經(jīng)過性能測試,各功能模塊均能正常使用,達(dá)到了設(shè)計(jì)要求,系統(tǒng)運(yùn)行平穩(wěn)可靠,提高了寫字樓的管理水平。
參考文獻(xiàn):
[1] 中研普華產(chǎn)業(yè)研究院.2022—2027年中國智慧辦公行業(yè)發(fā)展深度調(diào)研與未來趨勢預(yù)測報(bào)告[R].北京:中研普華產(chǎn)業(yè)研究院,2021.
[2] 馮朔,鄭學(xué)智.基于邊云協(xié)同的智慧酒店系統(tǒng)[J].電子設(shè)計(jì)工程,2021,29(19):19-24,30.
[3] 章云,許錦標(biāo).建筑智能化系統(tǒng)[M].2版.北京:清華大學(xué)出版社,2017.
[4] 劉凱,鐘永彥,陳娟,等.基于HNBJSON的物聯(lián)網(wǎng)數(shù)據(jù)壓縮方法[J].南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,41(6):29-34.
[5] 趙勝凱.不同溫度下人體熱舒適的性別差異研究[D].西安: 西安建筑科技大學(xué),2020.
[6] 張永濤,繆健琛,胡貴生.一種基于Socket通信的嵌入式設(shè)備測試方案[J].電腦編程技巧與維護(hù),2024(3):37-39.
【通聯(lián)編輯:梁書】