趙越,趙昕怡,袁景熙,潘世晨
(東南大學(xué) 成賢學(xué)院,江蘇南京,210088)
物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展為人們的生活提供了很多便利,在人們的日常生活領(lǐng)域中有很大的應(yīng)用場(chǎng)景。本系統(tǒng)以智能家居的理念為出發(fā)點(diǎn),運(yùn)用中央微處理器處理傳感器數(shù)據(jù),且利用物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)傳感器、設(shè)備和網(wǎng)絡(luò)相互連接,促進(jìn)設(shè)備與網(wǎng)絡(luò)之間以及設(shè)備自身之間的通信。在目前的中國(guó)市場(chǎng)中,智能家居及其類似產(chǎn)品均已成型。對(duì)于智能家居產(chǎn)品廣泛投入宿舍場(chǎng)景,則會(huì)帶來(lái)投入成本高和系統(tǒng)維護(hù)難度過(guò)高的問(wèn)題。
隨著大學(xué)生入學(xué)數(shù)量逐年增多,宿舍安全問(wèn)題也越發(fā)引起社會(huì)大眾的重視。無(wú)論是宿舍用電不慎引起的火災(zāi)還是多發(fā)的盜竊事故,都讓大學(xué)生的日常生活存在安全隱患且嚴(yán)重影響著高校的正常教學(xué)秩序。傳統(tǒng)的宿舍安全管理方式主要依靠人力巡視監(jiān)管以及傳統(tǒng)監(jiān)控設(shè)施,而隨著宿舍數(shù)量、住宿學(xué)生的基數(shù)以及隱私意識(shí)的不斷增加,這種傳統(tǒng)方式浪費(fèi)大量的人力物力財(cái)力的傳統(tǒng)方式已經(jīng)難以滿足目前管理的需求。為了解決這類問(wèn)題,本系統(tǒng)運(yùn)用物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)防火防盜智能化三大功能模塊,為學(xué)生的人身安全及隱私提供保障。
本宿舍智能安防便利系統(tǒng)整體主要分為嵌入式STC89C52 和ESP8266-WIFI 模塊接入互聯(lián)網(wǎng)兩部分。其整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)圖
系統(tǒng)要實(shí)現(xiàn)網(wǎng)絡(luò)控制和通訊功能,首先需要連接一個(gè)服務(wù)器。在本設(shè)計(jì)中,ESP8266 有兩種網(wǎng)絡(luò)通訊方式,即連接兩種服務(wù)器。第一種通訊方式需運(yùn)用MQTT 協(xié)議,此協(xié)議是用于實(shí)現(xiàn)客戶端與服務(wù)器的消息發(fā)布和訂閱傳輸。通過(guò)阿里云服務(wù)器與然也物聯(lián)之間的通訊,ESP8266 利用此通信建立局域網(wǎng),將客戶端和阿里云服務(wù)器進(jìn)行連接??蛻舳送ㄟ^(guò)阿里云服務(wù)器和MQTT 協(xié)議發(fā)布消息,ESP8266訂閱消息得到溫濕度數(shù)據(jù)??蛻舳艘部沙蔀橄⒌挠嗛喺逧SP8266 向客戶端發(fā)布消息,可實(shí)現(xiàn)系統(tǒng)的網(wǎng)絡(luò)控制功能。同時(shí)本設(shè)計(jì)也用到了MQTT 協(xié)議的心跳機(jī)制,用于反映ESP8266 建立的通訊是否在線。第二種通訊方式運(yùn)用到HTTP 協(xié)議,利用互聯(lián)網(wǎng)或已建好的局域網(wǎng)向巴法云服務(wù)器發(fā)送HTTP 請(qǐng)求,并且分析巴法云服務(wù)器返回的HTTP 響應(yīng)信息。通過(guò)巴法云控制臺(tái)產(chǎn)生的信息密鑰,響應(yīng)信息能夠利用密鑰向手機(jī)微信建立通信,從而發(fā)出報(bào)警消息。網(wǎng)絡(luò)通訊建立過(guò)程如圖2 所示。
圖2 網(wǎng)絡(luò)通訊建立過(guò)程圖
本系統(tǒng)主要采用STC89C52 為主控芯片,所需功能為以下模塊實(shí)現(xiàn):mq-6 可燃?xì)怏w傳感器模塊、DHT11 溫濕度傳感器模塊、SG90-舵機(jī)、YD-A1 雨滴傳感器模塊、0.96寸OLED 顯示屏模塊、ESP8266-NodeMCU 無(wú)線WIFI 模塊、電磁鎖模塊、HC-SR04 超聲波測(cè)距模塊、蜂鳴器報(bào)警模塊。系統(tǒng)硬件結(jié)構(gòu)如圖3 所示。
圖3 系統(tǒng)硬件結(jié)構(gòu)圖
STC89C52 是一款內(nèi)置4KB EEPROM、集成MAX810專用復(fù)位電路、擁有4 路外部中斷的微處理器,工作電壓為3.8V~5.5V,工作溫度為-40℃~+85℃。它具有強(qiáng)抗干擾、成本低廉、超低功耗及超大容量SRAM 的特點(diǎn)。本設(shè)計(jì)采用數(shù)字信號(hào)的檢測(cè)對(duì)STC89C52 和無(wú)線WiFi 模塊ESP8266-NodeMCU 建立聯(lián)系,并對(duì)Sg90-舵機(jī)進(jìn)行控制。
MQ-6 可燃?xì)怏w傳感器所使用的氣敏材料是在空氣中電導(dǎo)率較低的二氧化錫(SnO2)。當(dāng)傳感器所處環(huán)境中存在可燃?xì)怏w時(shí),傳感器的電導(dǎo)率隨空氣中可燃?xì)怏w濃度的增加而增大,使用簡(jiǎn)單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對(duì)應(yīng)輸出的TTL 信號(hào)。通過(guò)調(diào)節(jié)傳感器中的電位器,可改變MQ-6 的靈敏度。
DHT11 是一款有校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度傳感器,采用簡(jiǎn)化的單總線通信。單片機(jī)發(fā)送一次開始信號(hào)后,DHT11 從低功耗模式轉(zhuǎn)換到高速模式,待單片機(jī)開始信號(hào)結(jié)束后,再發(fā)送響應(yīng)信號(hào),送出 40bit 的數(shù)據(jù)后觸發(fā)一次信息采集。DHT11 的 DATA 引腳檢測(cè)到外部信號(hào)有低電平時(shí),該引腳處于輸出狀態(tài),輸出 80 微秒的低電平作為應(yīng)答信號(hào)后,傳感器繼續(xù)輸出80 微秒的高電平通知外設(shè)準(zhǔn)備接收數(shù)據(jù)。精度濕度±5%RH,溫度±2℃,量程濕度20%~90%RH,溫度0℃~50℃,滿足宿舍的檢測(cè)需求。
SG90 舵機(jī)是一種直流電能轉(zhuǎn)換成機(jī)械能(直流電動(dòng)機(jī))的旋轉(zhuǎn)電機(jī),有三根線:紅線接VCC,棕線接GND,橙線接PWM 信號(hào)。PWM 信號(hào)是舵機(jī)的控制信號(hào),該信號(hào)是周期為20ms 的脈寬調(diào)制(PWM)信號(hào),其中脈沖寬度從0.5ms~2.5ms。由于舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電路,會(huì)產(chǎn)生一個(gè)周期20ms,寬度1.5ms 的基準(zhǔn)信號(hào),當(dāng)舵機(jī)收到一個(gè)PWM 信號(hào)時(shí),舵機(jī)內(nèi)部的比較器會(huì)將PWM 信號(hào)與基準(zhǔn)信號(hào)進(jìn)行比較,從而判斷出舵機(jī)要轉(zhuǎn)動(dòng)的方向和大小,進(jìn)而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào),其轉(zhuǎn)動(dòng)角度與脈沖寬度呈線性關(guān)系。
YD-A1 雨滴傳感器是一款采用高品質(zhì)的FR-04 雙面材料、抗氧化、高導(dǎo)電性、長(zhǎng)壽命的傳感器。由LM393(雙電壓比較器)和雨滴檢測(cè)片組成。LM393 有6 個(gè)引腳+和-接與雨滴檢測(cè)片連接。VCC 是電源正接口,可外接3.3~5V供電電源,GND 電源負(fù)極接口,可外接電源負(fù)極或地線,
DO 接數(shù)字信號(hào)輸出接口,可外接單片機(jī)的GPIO 口,AO接模擬信號(hào)輸出接口,可外接單片的ADC 采樣通道。當(dāng)雨滴檢測(cè)片上檢測(cè)到有水時(shí),DO 引腳輸出低電平,否則輸出高電平。與DO 口不同的是AO 口會(huì)輸出模擬信號(hào),單片機(jī)可以通過(guò)模擬信號(hào)達(dá)到雨滴檢測(cè)片上的雨量大小。
本設(shè)計(jì)選用分辨率為128×64 的0.96 寸7 針OLED 模塊。它具有6800、8080 兩種并行接口方式、3 線或4 線的串行SPI 接口方式和IIC 接口方式。該模塊體型較小、抗震性能好、可視角度大,可以保證在很大的視角下觀看且畫面不失真。結(jié)合本系統(tǒng)主控芯片的計(jì)算能力和該顯示屏的優(yōu)點(diǎn),選用該OLED 作為顯示模塊。
ESP8266-NodeMCU 是由樂(lè)鑫科技設(shè)計(jì)的一款支持WiFi 功能的開源硬件開發(fā)板,用于開發(fā)物聯(lián)網(wǎng)環(huán)境。該開發(fā)板有30 個(gè)引腳,其中有17 個(gè)GPIO 引腳,其中GPIO6—GPIO11 被用于連接開發(fā)板的閃存。開發(fā)板可以用AT 指令開發(fā)、使用lua 腳本進(jìn)行開發(fā)、Arduino IDE 開發(fā)和VS Code配置Arduino 開發(fā)環(huán)境,能夠適應(yīng)于各種操作環(huán)境。
本系統(tǒng)選用XG-07E 的5V 四線的電磁鎖模塊。因ESP8266 輸出電壓為3.3V,未達(dá)到電磁鎖的驅(qū)動(dòng)電壓,所以本設(shè)計(jì)選用1 路5V 支持高低電平觸發(fā)繼電器作為電磁鎖的驅(qū)動(dòng)開關(guān)。電磁鎖與繼電器連接圖如圖4 所示。
圖4 電磁鎖連接圖
HC-SR04 超聲波測(cè)距模塊可提供2cm~400cm 的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)到3mm。該模塊包含超聲波發(fā)射器、接收器與控制電路。在本系統(tǒng)中,該模塊用于判斷外人闖入情況。若測(cè)出距離小于設(shè)定值,HC-SR04 會(huì)發(fā)出高電平反饋給主控芯片和ESP8266,實(shí)現(xiàn)報(bào)警和向微信發(fā)送短信的功能。
蜂鳴器報(bào)警模塊選用的是有源蜂鳴器高電平觸發(fā)模塊。其工作原理為:直流電源輸入經(jīng)過(guò)振蕩系統(tǒng)的放大取樣電路在諧振裝置作用下產(chǎn)生聲音信號(hào)。當(dāng)傳感器達(dá)到指定數(shù)值時(shí),向主控芯片傳輸高電平信號(hào)給蜂鳴器接入的GPIO 口,能達(dá)到實(shí)時(shí)報(bào)警的效果。
本系統(tǒng)軟件部分主要由可燃?xì)怏w傳感器模塊、溫濕度傳感器模塊、舵機(jī)、雨滴傳感器模塊、OLED 顯示屏模塊、ESP8266 無(wú)線WiFi 模塊、HC-SR04 超聲波測(cè)距模塊組成。程序燒錄后,先對(duì)各個(gè)模塊進(jìn)行初始化,然后對(duì)傳感器數(shù)值進(jìn)行監(jiān)測(cè),判斷被測(cè)對(duì)象是否達(dá)到設(shè)置預(yù)警值,最后將達(dá)到預(yù)警值模塊的消息反饋給用戶。系統(tǒng)程序設(shè)計(jì)流程圖如圖5所示。
圖5 系統(tǒng)程序設(shè)計(jì)流程圖
首先引入傳感器和STC89C52 中需要調(diào)用函數(shù)的頭文件,對(duì)所需變量和GPIO 口進(jìn)行定義。其次對(duì)各模塊的驅(qū)動(dòng)代碼進(jìn)行封裝,將其放入對(duì)應(yīng)函數(shù)中。這樣既增加了函數(shù)的可讀性,也方便程度的連續(xù)調(diào)用。然后將各模塊的初始化代碼放入主函數(shù)中,并在主循環(huán)中調(diào)用所有模塊的封裝函數(shù),即可啟用各個(gè)模塊,并做出響應(yīng)。
首先定義ESP8266 的設(shè)備連接類型,本系統(tǒng)需連接ESP8266 的串口、WIFI 和小愛同學(xué)語(yǔ)音控制設(shè)備。其次,引入傳感器和建立網(wǎng)絡(luò)通訊的頭文件,設(shè)置為AP 工作模式。然后對(duì)ESP8266 進(jìn)行配網(wǎng)和默認(rèn)API 網(wǎng)址的設(shè)置,存入局域網(wǎng)名稱、密碼和設(shè)備連接密鑰。初始化服務(wù)器和web 配網(wǎng),當(dāng)ESP8266 的藍(lán)燈閃爍顯示配網(wǎng)成功時(shí),再與設(shè)備進(jìn)行連接。最后初始化串口函數(shù)(串口波特率設(shè)置為115200)、與blinkerAPP 同名的組件函數(shù)和微信消息推送函數(shù)void doHttpStick1(),即可通過(guò)手機(jī)對(duì)設(shè)備進(jìn)行控制。為了溫濕度傳感器能夠及時(shí)刷新且發(fā)送報(bào)警消息,本系統(tǒng)在loop 函數(shù)中增加了if(WiFi.status()==WL_CONNECTED)的判斷語(yǔ)句,檢查設(shè)備的網(wǎng)絡(luò)連接狀態(tài)。在網(wǎng)絡(luò)連接完成后,放入DHT11.read()函數(shù)更新傳感器信息,可得到溫濕度數(shù)值的反復(fù)更新。
本設(shè)計(jì)的實(shí)物圖如圖6 所示。
本系統(tǒng)需連入物聯(lián)網(wǎng)測(cè)試的功能有:①ESP8266 與blinker 軟件的設(shè)備連接;②ESP8266 向巴法云服務(wù)器發(fā)送報(bào)警消息;③小愛同學(xué)語(yǔ)音控制。
①ESP8266 與blinker 軟件的設(shè)備連接
Blinker 軟件的顯示界面如圖所示。當(dāng)程序燒錄完成后,設(shè)備與手機(jī)進(jìn)行連接,顯示在線狀態(tài)。如圖7 所示,溫濕度數(shù)值已傳輸?shù)绞謾C(jī)軟件的顯示界面。溫濕度數(shù)值下的三個(gè)按鍵分別為開關(guān)燈、開關(guān)窗、開關(guān)鎖的功能。下方的兩個(gè)滑動(dòng)條為溫濕度的閾值設(shè)置,可隨意更改預(yù)設(shè)值。最下方的調(diào)試界面用來(lái)觀測(cè)數(shù)據(jù)的傳輸狀態(tài)。從圖7 可看出,數(shù)據(jù)傳輸狀態(tài)良好。
圖7 軟件顯示界面
②ESP8266 向巴法云服務(wù)器發(fā)送報(bào)警消息
本系統(tǒng)有三種情況需要發(fā)送消息:①溫度達(dá)到預(yù)設(shè)值時(shí),ESP8266 向手機(jī)發(fā)送“溫度過(guò)高”消息;②氣體濃度達(dá)到預(yù)設(shè)值時(shí),ESP8266 向手機(jī)發(fā)送“氣體濃度過(guò)高”消息;③超聲波傳感器達(dá)到預(yù)設(shè)值時(shí),ESP8266 向手機(jī)發(fā)送“有人闖入”消息;消息發(fā)送成功界面如圖8 所示。
圖8 微信收到消息界面
③小愛同學(xué)語(yǔ)音控制
本設(shè)計(jì)的語(yǔ)音控制采用小愛同學(xué)APP,首先將米家APP 與blinkerAPP 進(jìn)行設(shè)備同步。其次登錄小愛同學(xué)APP,其中小愛同學(xué)和米家APP 的小米賬號(hào)須一致。然后在小愛同學(xué)的訓(xùn)練計(jì)劃中,設(shè)置語(yǔ)音開關(guān)燈指令,可以手機(jī)語(yǔ)音控制開關(guān)的功能。語(yǔ)音控制如圖9 所示。
圖9 語(yǔ)音控制
基于物聯(lián)網(wǎng)的宿舍智能安防便利系統(tǒng)的設(shè)計(jì),通過(guò)傳感器控制和物聯(lián)網(wǎng)技術(shù),對(duì)學(xué)生宿舍進(jìn)行全方位、實(shí)時(shí)的數(shù)據(jù)監(jiān)控,提高了學(xué)生的安全管理效率和精準(zhǔn)度。且通過(guò)實(shí)時(shí)數(shù)據(jù)采集,系統(tǒng)能夠快速、準(zhǔn)確地發(fā)現(xiàn)異常情況,及時(shí)進(jìn)行報(bào)警和處置,從而保障學(xué)生的人身安全。此項(xiàng)目解決了宿舍管理帶來(lái)的人力物力財(cái)力等問(wèn)題,為未來(lái)宿舍管理提供了一種新的思路和解決方案。