林镕,王世強(qiáng),江濤,駱江懷,陳也,李婷
(中南林業(yè)科技大學(xué)涉外學(xué)院,湖南 長(zhǎng)沙 410000)
隨著中國(guó)國(guó)力日益強(qiáng)大、國(guó)民消費(fèi)水平不斷提高,商場(chǎng)作為提供綜合性消費(fèi)服務(wù)的購(gòu)物中心,應(yīng)積極思考如何更好地服務(wù)消費(fèi)者,在帶給消費(fèi)者更好地消費(fèi)體驗(yàn)的同時(shí),也增加自身的客流和業(yè)績(jī)。然而在人流眾多的大型商場(chǎng),排隊(duì)現(xiàn)象經(jīng)常出現(xiàn),特別是節(jié)假日期間,稍好的餐廳排隊(duì)已是常態(tài),這給消費(fèi)者帶來(lái)不好的消費(fèi)體驗(yàn)。為改善這種狀態(tài),本系統(tǒng)采用STC89C52單片機(jī)作為主控芯片及紅外對(duì)管等器件設(shè)計(jì)與開(kāi)發(fā)一個(gè)基于紅外實(shí)時(shí)人數(shù)采集的商場(chǎng)商戶(hù)實(shí)時(shí)營(yíng)業(yè)狀態(tài)查詢(xún)系統(tǒng)[1-2]。本系統(tǒng)采用紅外傳感器采集商場(chǎng)各商戶(hù)的人流信息,經(jīng)單片機(jī)處理與分析后上傳至服務(wù)器,提供給微信小程序(“去哪嗨”)使用。通過(guò)微信小程序(“去哪嗨”),消費(fèi)者可以實(shí)時(shí)查看各商戶(hù)營(yíng)業(yè)狀態(tài),還可以結(jié)合程序提供的各商戶(hù)基本信息與消費(fèi)者評(píng)價(jià)快速?zèng)Q定去哪消費(fèi),并能實(shí)時(shí)預(yù)約和評(píng)價(jià)所選擇的商戶(hù),從一定程度上減少消費(fèi)者的排隊(duì)時(shí)間。
本系統(tǒng)由STC89C52單片機(jī)、紅外對(duì)管裝置、數(shù)據(jù)庫(kù)服務(wù)器以及小程序組成。將兩對(duì)紅外對(duì)管裝置安裝在商戶(hù)的門(mén)口內(nèi)外,由紅外對(duì)管裝置所采集到的數(shù)據(jù)信息傳輸至單片機(jī),數(shù)據(jù)經(jīng)單片機(jī)處理后再上傳至服務(wù)器,最后通過(guò)微信小程序進(jìn)行相關(guān)數(shù)據(jù)調(diào)用。根據(jù)設(shè)計(jì)的需要,本系統(tǒng)的硬件電路主要分為以下幾個(gè)模塊:?jiǎn)纹瑱C(jī)主控電路、紅外對(duì)管發(fā)射和接收電路、顯示電路以及信號(hào)濾波及放大電路等。主程序編程用以實(shí)現(xiàn)紅外對(duì)管計(jì)數(shù)、所采集數(shù)據(jù)的顯示以及數(shù)據(jù)的處理等功能。本系統(tǒng)設(shè)計(jì)的原理結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)原理結(jié)構(gòu)圖
STC89C52單片機(jī)作為本系統(tǒng)的主控芯片,用于控制紅外對(duì)管對(duì)進(jìn)出人數(shù)的采集、計(jì)數(shù)、數(shù)據(jù)轉(zhuǎn)換及無(wú)線收發(fā)。整個(gè)系統(tǒng)的硬件電路主要分為以下幾個(gè)模塊:
本系統(tǒng)使用的是STC89C52單片機(jī)最小系統(tǒng),該芯片由時(shí)鐘電路、復(fù)位電路及電源電路構(gòu)成一個(gè)基本應(yīng)用系統(tǒng)。時(shí)鐘電路的主要器件為晶振,晶振使用11.0592MHz或者使用12MHz,便于定時(shí),晶振電路還包括起振電容,一般起振電容為10pF-30pF,離晶振較近。復(fù)位電路的復(fù)位端接單片機(jī)的9引腳,接入高電平進(jìn)行復(fù)位,復(fù)位持續(xù)時(shí)間由單片機(jī)復(fù)位電路所接的電阻和電容的大小決定。為避免程序燒入單片機(jī)出現(xiàn)故障,單片機(jī)還提供穩(wěn)定的電源電路。本系統(tǒng)使用單片機(jī)STC89C52單片機(jī)最小系統(tǒng)能完成所需要的電路控制和計(jì)算要求。
圖2 單片機(jī)最小系統(tǒng)
為了判斷人員進(jìn)出狀態(tài),本系統(tǒng)使用了兩對(duì)對(duì)射式紅外傳感器。兩對(duì)紅外傳感器分別安裝在商戶(hù)的門(mén)口內(nèi)外兩側(cè),每一對(duì)紅外對(duì)管位于同一水平線上,安裝高度約為1m,安裝時(shí)要求兩對(duì)紅外對(duì)管水平間距約為30cm。當(dāng)有人從室外進(jìn)入室內(nèi)或由室內(nèi)到室外時(shí),由于兩組紅外對(duì)管輸出的高電平信號(hào)時(shí)間有所間隔,故以此來(lái)判斷人們的進(jìn)出[3]。紅外對(duì)管安裝如圖3所示。
圖3 紅外對(duì)管安裝示意圖
第一種情況:在無(wú)人經(jīng)過(guò)門(mén)口時(shí),兩組紅外傳感器的接收端均為低電平,計(jì)數(shù)保持不變。
第二種情況:當(dāng)有人進(jìn)入室內(nèi)時(shí),門(mén)外A先變?yōu)楦唠娖?,門(mén)內(nèi)B之后再變?yōu)楦唠娖?,單片機(jī)人數(shù)計(jì)數(shù)加1;當(dāng)有人要從室內(nèi)出去時(shí),門(mén)內(nèi)B先變?yōu)楦唠娖?,門(mén)外A再變?yōu)楦唠娖?,那么人?shù)減1。
還有一種情況較為復(fù)雜:當(dāng)有人在門(mén)口停留時(shí),若人在門(mén)外,門(mén)外A變?yōu)楦唠娖剑T(mén)內(nèi)B等待0.5s后狀態(tài)無(wú)變化,單片機(jī)延時(shí)等待,此時(shí)若門(mén)外A變?yōu)榈碗娖蕉T(mén)內(nèi)B的狀態(tài)未發(fā)生改變,則不計(jì)數(shù);若門(mén)外A變?yōu)榈碗娖胶?,而門(mén)內(nèi)B變?yōu)榱烁唠娖?,則計(jì)數(shù)加1。當(dāng)人在室內(nèi)時(shí),情況與之相反[4-5]。紅外對(duì)管計(jì)數(shù)控制如圖4所示。
圖4 傳感器計(jì)數(shù)控制
本系統(tǒng)仿真過(guò)程中采用按鍵來(lái)模擬人員進(jìn)出情況,圖6為按鍵模擬人的進(jìn)/出狀態(tài)。本系統(tǒng)按鍵連接單片機(jī)的P2.2引腳、P2.3引腳和P2.4引腳,其中P2.2引腳為設(shè)置鍵,當(dāng)經(jīng)過(guò)P2.3引腳和P2.4引腳傳輸數(shù)據(jù)到單片機(jī)時(shí),進(jìn)行人數(shù)的加減,單片機(jī)P3.0引腳為傳輸數(shù)據(jù)的輸出端,P3.1引腳為傳輸數(shù)據(jù)的輸入端,當(dāng)經(jīng)過(guò)P3.1引腳接收到數(shù)據(jù)時(shí),數(shù)據(jù)經(jīng)過(guò)處理,發(fā)送到接收數(shù)據(jù)的端口,并且將接收到的數(shù)據(jù)轉(zhuǎn)換成數(shù)字信號(hào),再將處理過(guò)的數(shù)字信號(hào)經(jīng)單片機(jī)的P3.0引腳在LCD液晶顯示屏上面顯示。
圖5 按鍵模擬人的進(jìn)/出狀態(tài)
計(jì)數(shù)顯示部分由單片機(jī)STC89C52控制完成。顯示部分通過(guò)LCD1602顯示屏顯示,如圖6所示。
圖6 LCD 顯示模塊
當(dāng)紅外傳感器檢測(cè)到有人經(jīng)過(guò)時(shí),這個(gè)信號(hào)將供給單片機(jī)計(jì)數(shù)控制[6]。單片機(jī)計(jì)數(shù)程序設(shè)計(jì)流程圖如圖7所示。
圖7 計(jì)數(shù)程序設(shè)計(jì)流程圖
兩對(duì)紅外對(duì)管采集所得數(shù)據(jù),經(jīng)過(guò)信號(hào)濾波放大編碼后無(wú)線發(fā)送至單片機(jī)處理,然后經(jīng)由4G模組上傳至服務(wù)器,再通過(guò)微信小程序進(jìn)行相關(guān)數(shù)據(jù)調(diào)用[7]。圖8為數(shù)據(jù)傳輸流程圖。
圖8 數(shù)據(jù)傳輸流程圖
4G模塊的控制是通過(guò)51單片機(jī)利用串口發(fā)送at命令來(lái)實(shí)現(xiàn)的,單片機(jī)收集到的從紅外傳感器來(lái)的數(shù)據(jù)則通過(guò)串口傳輸至4G模塊,4G模塊將其收到的信息即單片機(jī)數(shù)據(jù)通過(guò)http協(xié)議傳送至私人建立的云服務(wù)器,數(shù)據(jù)庫(kù)再與云服務(wù)器進(jìn)行數(shù)據(jù)的讀取與儲(chǔ)存往來(lái),用戶(hù)通過(guò)與服務(wù)器的交互獲取需要的數(shù)據(jù)[8]。
通過(guò)寫(xiě)一個(gè)服務(wù)端web應(yīng)用程序,提供https接口讓小程序調(diào)用,這個(gè)應(yīng)用程序可操作本地?cái)?shù)據(jù)庫(kù)。然后在微信小程序上通過(guò)wx.request http請(qǐng)求來(lái)進(jìn)行訪問(wèn),在這個(gè)上面,通常用到的會(huì)有g(shù)et和post兩個(gè)協(xié)議。通過(guò)訪問(wèn)服務(wù)器上所部署的預(yù)處理語(yǔ)言PHP,服務(wù)器將會(huì)使用ws來(lái)處理得到的數(shù)據(jù),并返回結(jié)果,再預(yù)處理PHP的內(nèi)容,根據(jù)得到的數(shù)據(jù)庫(kù)傳遞的參數(shù)對(duì)小程序進(jìn)行操作。小程序訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)端的參數(shù)設(shè)置如圖9所示。
圖9 小程序訪問(wèn)服務(wù)端參數(shù)設(shè)置
小程序頁(yè)面主要由以下三個(gè)文件構(gòu)成:
(1)HTML文件:小程序的標(biāo)簽代碼文件,使用了index.html和ys.html兩個(gè)標(biāo)簽文件,index.html是主標(biāo)簽文件,包含了整個(gè)小程序頁(yè)面的整體,采用多個(gè)盒子標(biāo)簽,包含了多個(gè)商業(yè)logo代碼。ys.html是從文件,只包含了CSS樣式文件。
(2)CSS文件:小程序的樣式代碼文件,包含了整個(gè)body和box的寬、高以及背景顏色等樣式,并設(shè)置img和img.Hover(圖片樣式和圖片被點(diǎn)擊后的樣式)。
(3)JS文件:小程序的邏輯代碼文件,使原本靜態(tài)的頁(yè)面可以“動(dòng)”起來(lái),實(shí)現(xiàn)網(wǎng)頁(yè)交互以及跳轉(zhuǎn)功能,里面包含了整個(gè)小程序的網(wǎng)頁(yè)跳轉(zhuǎn)的鏈接代碼和小程序的邏輯代碼。
本系統(tǒng)通過(guò)紅外對(duì)管能夠較穩(wěn)定、準(zhǔn)確地實(shí)時(shí)監(jiān)測(cè)到商戶(hù)人流信息,用戶(hù)還可通過(guò)微信小程序?qū)崟r(shí)查詢(xún)各商戶(hù)基本信息和客流,并進(jìn)行預(yù)約和評(píng)價(jià)選擇消費(fèi)的商戶(hù)。在人流量大的大型商場(chǎng),能夠?qū)崟r(shí)為消費(fèi)者提供客流及商戶(hù)基本信息,能有效提升消費(fèi)者消費(fèi)體驗(yàn),有利于提升人們的滿(mǎn)足感和幸福感,所以本商戶(hù)實(shí)時(shí)經(jīng)營(yíng)狀態(tài)查詢(xún)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)會(huì)給人們生活提供方便,有利于創(chuàng)建和諧美好家園。