周世航,林木泉,張 勇
(閩南理工學(xué)院電子與電氣工程學(xué)院,福建 泉州362700)
日常工作中,在一些沒(méi)有使用OA 辦公系統(tǒng)的單位,要拜訪領(lǐng)導(dǎo)簽署相關(guān)文件,又不方便提前打電話的情況下,經(jīng)常出現(xiàn)領(lǐng)導(dǎo)處于忙碌狀態(tài)而不方便接待的情況。甚至多次拜訪均如此,無(wú)形中耗費(fèi)了不少的時(shí)間和精力。由于雙方的信息不互通,導(dǎo)致了過(guò)程變得繁瑣。急需開(kāi)發(fā)顯示領(lǐng)導(dǎo)在崗狀態(tài)的系統(tǒng)。雖然大部分公司、單位正在使用的OA 軟件系統(tǒng)可實(shí)現(xiàn)類似功能,但需要繳納各種運(yùn)行費(fèi)用和投入維護(hù)成本,對(duì)一些中小企業(yè)仍是一筆較大的經(jīng)費(fèi)支出。而市場(chǎng)化上專門針對(duì)領(lǐng)導(dǎo)在崗狀態(tài)指示系統(tǒng)較少,目前只有重慶錦聲科技有限公司公布了一種的在崗狀態(tài)指示系統(tǒng),但需要超聲波傳感器和壓力傳感器的配合,結(jié)構(gòu)相對(duì)較復(fù)雜,除此之外,還出現(xiàn)了基于人工智能的攝像頭方案的在崗狀態(tài)監(jiān)測(cè)系統(tǒng),但造價(jià)較高。為此,本文針對(duì)訪客與領(lǐng)導(dǎo)之間信息不互通的問(wèn)題,面向于中小型企業(yè)或者單位需求,提出了一種領(lǐng)導(dǎo)在崗狀態(tài)指示系統(tǒng),該系統(tǒng)電路結(jié)構(gòu)簡(jiǎn)單,不需要復(fù)雜的軟件運(yùn)行,只需要一個(gè)小型硬件設(shè)備,易維護(hù),使用門檻低。當(dāng)需要拜訪領(lǐng)導(dǎo)時(shí),使用手機(jī)或者電腦打開(kāi)網(wǎng)頁(yè),即刻查看領(lǐng)導(dǎo)是否處于方便接待的情況。
如圖1 所示,該系統(tǒng)由子端系統(tǒng)和終端系統(tǒng)組成,子端設(shè)備根據(jù)實(shí)際情況可擴(kuò)展多個(gè)。所有子端通過(guò)Lora 無(wú)線方式與終端通信,形成多對(duì)一的通信方式。子端系統(tǒng)主要功能為采集開(kāi)關(guān)狀態(tài)數(shù)據(jù)信息并發(fā)送給終端系統(tǒng),且在子端設(shè)備電池供電不足時(shí)進(jìn)行燈光提示。終端系統(tǒng)的主要功能為接收子端系統(tǒng)的數(shù)據(jù),并將數(shù)據(jù)通過(guò)ESP8266 模塊以HTTP 協(xié)議方式上傳至 OneNet 云平臺(tái)[1]。
將子端設(shè)備擺放于領(lǐng)導(dǎo)辦公桌面,若領(lǐng)導(dǎo)方便接待訪客,則撥動(dòng)子端設(shè)備開(kāi)關(guān),則所有用戶訪問(wèn)OneNet 網(wǎng)頁(yè)查看的信息即顯示領(lǐng)導(dǎo)目前處于方便待客狀態(tài),此時(shí)即可前往。終端設(shè)備放置于辦公區(qū)中心位置。
圖1 方案結(jié)構(gòu)圖
如圖2 所示,在子端系統(tǒng)中,以STC15W4K32S4作為主控芯片,鋰電池經(jīng)過(guò)TLV1117 低壓差低功耗穩(wěn)壓芯片給子端系統(tǒng)供電,使用TP4056 芯片對(duì)鋰電池進(jìn)行充電管理。主控芯片P3.4 引腳在不需要采集AD 數(shù)據(jù)時(shí)斷開(kāi)兩個(gè)串聯(lián)分壓的電阻以節(jié)省能耗。P1.5 引腳為AD 輸入口,用于采集電池電壓數(shù)據(jù)。撥動(dòng)開(kāi)關(guān)接入主控芯片的P3.5、P3.2 引腳,主控芯片通過(guò)檢測(cè)P3.5 引腳的電壓來(lái)判斷開(kāi)關(guān)的導(dǎo)通或斷開(kāi)兩種狀態(tài),以此來(lái)對(duì)應(yīng)領(lǐng)導(dǎo)此時(shí)處于忙碌還是空閑狀態(tài),開(kāi)關(guān)狀態(tài)的改變會(huì)產(chǎn)生中斷信號(hào)通過(guò)P3.2 引腳傳輸給主控芯片,從而喚醒主控芯片,LED 燈通過(guò)單片機(jī) P1.0 引腳控制。Lora 模塊 RXD、TXD 引腳接入單片機(jī) P0.1、P0.0 引腳進(jìn)行 UART 通信,MD0、AUX引腳接單片機(jī)P3.3、P3.7 引腳控制模塊運(yùn)行模式。
圖2 子端系統(tǒng)線圖
如圖3 所示,在終端系統(tǒng)中,Lora 模塊接線方式與子端系統(tǒng)相同。ESP8266 模塊的 RXD、TXD 引腳接入單片機(jī)P0.3、P0.2 引腳進(jìn)行UART 通信,其他控制引腳懸空。
圖3 終端系統(tǒng)線圖
系統(tǒng)的軟件設(shè)計(jì)分兩部分,一部分功能為實(shí)現(xiàn)開(kāi)關(guān)狀態(tài)和電量的檢測(cè),另一部分為數(shù)據(jù)的無(wú)線傳輸。
開(kāi)關(guān)狀態(tài)的檢測(cè)實(shí)現(xiàn)過(guò)程為:按鍵觸發(fā)外部中斷喚醒處于休眠狀態(tài)的單片機(jī),然后通過(guò)引腳IO 電壓判斷開(kāi)關(guān)狀態(tài)。電量的檢測(cè)實(shí)現(xiàn)過(guò)程為:主控芯片開(kāi)啟定時(shí)器,每5 min 進(jìn)行一次A/D 采集,判斷電池電量是否過(guò)低,若過(guò)低則開(kāi)啟LED 燈閃爍提示。
所有子端設(shè)備的數(shù)據(jù)都發(fā)往終端設(shè)備,使用Lo ra 無(wú)線組網(wǎng)方式實(shí)現(xiàn)。所有子端設(shè)備主動(dòng)上傳數(shù)據(jù),終端設(shè)備接收到子端設(shè)備數(shù)據(jù)后回饋一個(gè)應(yīng)答信號(hào),子端設(shè)備接收到應(yīng)答信號(hào)進(jìn)入休眠狀態(tài)[2,3]。為避免通信沖突,當(dāng)子端設(shè)備發(fā)送數(shù)據(jù)后,5 s 內(nèi)接收不到應(yīng)答信號(hào)則隨機(jī)延時(shí)一個(gè)時(shí)間段(設(shè)置為100 ms~1 000 ms 之間) 后重新發(fā)送一次數(shù)據(jù),若等待5 s后仍接收不到數(shù)據(jù),則判定子端設(shè)備掉線。
子端設(shè)備和終端設(shè)備使用自定義通信協(xié)議。協(xié)議幀如表1 所示。
表1 通信協(xié)議幀
表1 中,第一字節(jié)0XFF 為數(shù)據(jù)幀幀頭,第二字節(jié)數(shù)據(jù)0X01 表示設(shè)備地址,地址表示的范圍從0X00 到0XFF,網(wǎng)絡(luò)可容納256 個(gè)設(shè)備。第三字節(jié)數(shù)據(jù)0 為0X11 表示按鍵關(guān)閉,0X22 表示按鍵開(kāi)啟,數(shù)據(jù)1 和數(shù)據(jù)2 為預(yù)留字節(jié),方便后期功能擴(kuò)展,目前數(shù)據(jù)皆為0X00,最后一字節(jié)為除幀頭外數(shù)據(jù)的和。例如,子端設(shè)備地址為0X02,開(kāi)關(guān)處于開(kāi)的狀態(tài),子端設(shè)備上傳數(shù)據(jù)發(fā)送的協(xié)議幀為0XFF 0X02 0X22 0X00 0X00 0X24。終端主機(jī)接收到數(shù)據(jù)后回復(fù)應(yīng)答數(shù)據(jù)幀與子端發(fā)送的數(shù)據(jù)一致。
整個(gè)系統(tǒng)中的子端系統(tǒng)與終端系統(tǒng)的主控板如圖4 所示。
圖4 主控板圖
通過(guò)終端系統(tǒng)的主控芯片的串口發(fā)送AT 指令對(duì)ESP8266 模塊進(jìn)行配置后才可接入云平臺(tái)[4]。以下使用A 代指終端主控芯片,B 代指ESP8266 模塊。A發(fā)送指令A(yù)T+CWMODE=3,配置模塊工作模式為STA+AP 模式,隨后重啟模塊,A 發(fā)送給B 指令A(yù)T+CWJAP="a","b"(a 為無(wú)線用戶名 ssid,b 為 wifi 密碼),B 則自動(dòng)連接名稱為“a”的 WIFI 網(wǎng)絡(luò)。連接完成后,A 發(fā)送指令 AT+CIPMUX=0,把 B 配置為單鏈接模式,只有在此模式下,才能進(jìn)行透?jìng)髂J剑S后A 發(fā)送AT+CIPMODE=1,設(shè)置透?jìng)髂J剑诖四J较翨 可以連接云端服務(wù)器[5]。A 發(fā)送指令 AT+CIPSTART="TCP","183.230.40.33",80 來(lái)連接 ONENET 云端服務(wù)器,連接成功后A 送AT+CIPSEND 開(kāi)啟透?jìng)髂K,此時(shí)已經(jīng)可以給云平臺(tái)發(fā)數(shù)據(jù)了。此時(shí)編輯HTTP 協(xié)議的數(shù)據(jù),通過(guò)HTTP 協(xié)議接入ONENET 云平臺(tái)的設(shè)備[6]。
以下為A 發(fā)送的發(fā)送http post 請(qǐng)求:
其中“59145xxxx” 為ONENET 云平臺(tái)設(shè)備ID,api-key 后面的內(nèi)容為設(shè)備所對(duì)應(yīng)的API-KEY,Content-Length:15 中的15 為發(fā)送內(nèi)容整個(gè)數(shù)據(jù)流的長(zhǎng)度,{"no.1":"free"} 為發(fā)送的內(nèi)容no.1 為數(shù)據(jù)流名稱,free 為發(fā)送至云端的數(shù)據(jù)內(nèi)容,當(dāng)發(fā)送成功時(shí)候,B 會(huì)返回發(fā)送成功的消息,此時(shí)登陸網(wǎng)站即可看到發(fā)送的數(shù)據(jù)。在網(wǎng)站上可以用接收到的數(shù)據(jù)編輯用戶查詢界面,將數(shù)據(jù)流分別自動(dòng)對(duì)應(yīng)領(lǐng)導(dǎo)的名字與信息,如“no.1”數(shù)據(jù)流對(duì)應(yīng)“張三”,狀態(tài)數(shù)據(jù)“free”/“busy”可以簡(jiǎn)化為界面的開(kāi)關(guān)on/off,更加直觀顯示狀態(tài)。當(dāng)撥動(dòng)開(kāi)關(guān),云平臺(tái)接收到數(shù)據(jù),界面顯示如圖5 所示。
圖5 ONENET 平臺(tái)數(shù)據(jù)查詢
本文設(shè)計(jì)了一套低成本、易量產(chǎn)、適合各類人群使用的一套訪客查詢系統(tǒng),該系統(tǒng)為主動(dòng)觸發(fā)方式,不涉及用戶隱私。該系統(tǒng)實(shí)現(xiàn)了人——云端——人的聯(lián)網(wǎng)模式。在實(shí)物上,系統(tǒng)體積小,基本不占用工作空間,只需要在桌子上面放置一個(gè)裝有開(kāi)關(guān)的小盒子即可,簡(jiǎn)約美觀,具備一定的實(shí)用價(jià)值。