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

?

基于ThinkPHP的燈光互動(dòng)系統(tǒng)設(shè)計(jì)

2018-11-23 05:23:36張玉杰劉玉梅
照明工程學(xué)報(bào) 2018年5期
關(guān)鍵詞:花樣管理員服務(wù)器

張玉杰,劉玉梅

(陜西科技大學(xué)電氣與信息工程學(xué)院,陜西 西安 710021)

引言

LED以其獨(dú)有的壽命長(zhǎng)、節(jié)能環(huán)保、安全可靠等優(yōu)點(diǎn),在智能路燈、景觀照明、商業(yè)展示等廣泛應(yīng)用,但是在傳統(tǒng)的照明應(yīng)用中,LED燈光通常只是以“單向傳播”的方式向觀眾展示提前設(shè)定好的內(nèi)容和花樣,缺乏參與感和新意[1-3]。基于此本文提出LED燈光互動(dòng)的概念,使得LED燈光不但能作為顯示屏顯示,還能讓用戶(hù)隨時(shí)參與互動(dòng),燈光隨著用戶(hù)的操控實(shí)現(xiàn)不同的花樣展示,使用戶(hù)享受掌控?zé)艄獾臉?lè)趣。

系統(tǒng)以ThinkPHP框架為基礎(chǔ),借助微信這款社交軟件,開(kāi)發(fā)實(shí)現(xiàn)微信客戶(hù)端對(duì)LED的遠(yuǎn)程控制和實(shí)時(shí)傳輸數(shù)據(jù)。ThinkPHP框架的使用讓MVC設(shè)計(jì)模式得意輕松實(shí)現(xiàn),既能縮短設(shè)計(jì)開(kāi)發(fā)周期又能降低系統(tǒng)后期維護(hù)。而微信和物聯(lián)網(wǎng)技術(shù)的融合使手機(jī)不再單純的具備普通的通話(huà)、短信和上網(wǎng)等功能,而是一個(gè)基于物聯(lián)網(wǎng)的以微信為終端的智能系統(tǒng),能實(shí)現(xiàn)智能控制、微信支付等功能。

1 TinkPHP框架和MVC模式

ThinkPHP框架是開(kāi)源PHP框架,作為系統(tǒng)整體開(kāi)發(fā)框架,自身包含了底層架構(gòu)、兼容處理、基類(lèi)庫(kù)、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)層、模板引擎、表單處理等常用的組件,并且能夠解決系統(tǒng)應(yīng)用開(kāi)發(fā)中的大多數(shù)需要,對(duì)于跨版本、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便[4]。框架中每個(gè)組件都是經(jīng)過(guò)開(kāi)發(fā)人員精心設(shè)計(jì)和完善的,應(yīng)用開(kāi)發(fā)過(guò)程中僅僅需要關(guān)注應(yīng)用的業(yè)務(wù)邏輯即可。

MVC(模型Model、視圖View、控制Controller)是一種把系統(tǒng)的顯示界面、業(yè)務(wù)邏輯和數(shù)據(jù)三者相互分離的設(shè)計(jì)模式,這種設(shè)計(jì)模式的中心目的就是讓W(xué)eb的分工明確,從而提高開(kāi)發(fā)效率,增強(qiáng)代碼的重用性。在 ThinkPHP 中應(yīng)用 MVC 模式,使得開(kāi)發(fā)更加簡(jiǎn)單快速。

模型,系統(tǒng)所有的核心數(shù)據(jù)都在這里,還要完成系統(tǒng)功能所需的計(jì)算和邏輯關(guān)系控制,模型返回的數(shù)據(jù)具有獨(dú)立性,輸出的數(shù)據(jù)可供不同的視圖使用。模型的主要任務(wù)有:代表應(yīng)用程序的狀態(tài)、響應(yīng)狀態(tài)查詢(xún)、處理業(yè)務(wù)流程、通知視圖狀態(tài)更新。

控制,也可以稱(chēng)為控制器,它主要被用來(lái)接收視圖傳進(jìn)來(lái)的數(shù)據(jù),首先把數(shù)據(jù)給到視圖對(duì)應(yīng)的模型,然后把經(jīng)模型處理返回的數(shù)據(jù)返回給視圖,最終完成系統(tǒng)和用戶(hù)的交互。可以簡(jiǎn)單的說(shuō)控制器自身并不會(huì)產(chǎn)生任何東西,只是負(fù)責(zé)數(shù)據(jù)的傳遞。

視圖,顧名思義就是系統(tǒng)用來(lái)和用戶(hù)交流的顯示界面,它的作用就是接受控制器發(fā)來(lái)的數(shù)據(jù)處理結(jié)果并展示給用戶(hù),還負(fù)責(zé)將用戶(hù)輸入傳給控制器。三者之間各部分的交互過(guò)程分別如圖1所示。

圖1 MVC各部分交互過(guò)程Fig.1 MVC part of the interaction process

2 系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)功能需求分析

系統(tǒng)的主要功能是用戶(hù)通過(guò)手機(jī)控制LED燈幕實(shí)現(xiàn)花樣顯示。從系統(tǒng)使用者角度分析,系統(tǒng)使用的對(duì)象為參與互動(dòng)的用戶(hù)和系統(tǒng)的管理人員,所以從兩個(gè)方面去分析功能需求:

微信客戶(hù)端:本系統(tǒng)中以微信H5網(wǎng)頁(yè)的形式作為系統(tǒng)客戶(hù)端,為互動(dòng)用戶(hù)提供控制的操作界面,通過(guò)頁(yè)面操作實(shí)現(xiàn)用戶(hù)與LED燈光系統(tǒng)的花樣互動(dòng)。具體功能包括:

1)掃碼功能:互動(dòng)現(xiàn)場(chǎng)提供二維碼,用戶(hù)掃描二維碼后即可進(jìn)入系統(tǒng)界面,參與互動(dòng);

2)花樣列表:系統(tǒng)首頁(yè)顯示各類(lèi)花樣產(chǎn)品;

3)微信支付:選擇收費(fèi)花樣或者自定義花樣后可通過(guò)微信支付付款,操作方便;

4)個(gè)人信息:顯示用戶(hù)頭像、昵稱(chēng)等;

5)歷史記錄:可查看歷史購(gòu)買(mǎi)記錄;顯示已選擇花樣的狀態(tài)(已完成/已取消/待付款/已付款,正在排隊(duì));對(duì)于已付款但尚未處理的花樣可選擇取消。

管理員控制臺(tái):系統(tǒng)提供可視化的管理控制臺(tái),管理員利用該平臺(tái)維護(hù)LED互動(dòng)系統(tǒng)的日常工作,對(duì)系統(tǒng)中區(qū)域、花樣、用戶(hù)等各項(xiàng)數(shù)據(jù)進(jìn)行統(tǒng)一管理,包括:

1)區(qū)域管理:管理活動(dòng)區(qū)域的信息,一個(gè)活動(dòng)場(chǎng)地只能對(duì)應(yīng)一個(gè)區(qū)域二維碼;

2)花樣管理:管理各活動(dòng)區(qū)域花樣產(chǎn)品的增加和刪除;設(shè)置產(chǎn)品參數(shù),包括演示持續(xù)時(shí)長(zhǎng)、費(fèi)用等;

3)訂單管理:查看和管理所有用戶(hù)的訂單信息;

4)用戶(hù)管理:查看、管理用戶(hù)信息;

5)統(tǒng)計(jì)功能:查看當(dāng)前參與人數(shù)及所需時(shí)長(zhǎng)、歷史參與總?cè)藬?shù)/人次的統(tǒng)計(jì)數(shù)據(jù);

2.2 系統(tǒng)方案設(shè)計(jì)

根據(jù)系統(tǒng)的功能需求將系統(tǒng)主要分為四個(gè)部分,分別是:云服務(wù)器、用戶(hù)端、管理員控制臺(tái)和LED控制器,并設(shè)計(jì)系統(tǒng)框圖如圖2所示。云服務(wù)器作為整個(gè)系統(tǒng)的數(shù)據(jù)交互中心,需要提供多用戶(hù)與多控制器管理、可靠的遠(yuǎn)程通信、穩(wěn)定準(zhǔn)確的數(shù)據(jù)及狀態(tài)查詢(xún)以及文件的傳輸與存儲(chǔ)等服務(wù)。用戶(hù)端使用微信作為系統(tǒng)客戶(hù)端,為用戶(hù)提供參與互動(dòng)的入口和控制LED燈光的操作界面。管理員控制臺(tái)為方便管理員在可視化界面更方便集中的管理各項(xiàng)數(shù)據(jù),維護(hù)系統(tǒng)日常工作。LED控制器主要負(fù)責(zé)與云服務(wù)器通信,獲取控制指令,并控制LED燈具實(shí)現(xiàn)花樣的展示。

圖2 系統(tǒng)框圖Fig.2 System block diagram

3 系統(tǒng)實(shí)現(xiàn)

THinkPHP 3.2架構(gòu)采用模塊化的設(shè)計(jì)方式,每個(gè)模塊可以方便的卸載和部署,并且支持公共模塊[5,6]。根據(jù)系統(tǒng)功能需求分析設(shè)計(jì)LED燈光互動(dòng)系統(tǒng)共有四個(gè)模塊組成,分別是:公共模塊(Common)、用戶(hù)操作模塊(Home)、管理員控制臺(tái)模塊(Admin)、服務(wù)器與控制器通信接口模塊(API)。

1)公共模塊。Common模塊是一個(gè)特殊的模塊,是應(yīng)用的公共模塊,訪(fǎng)問(wèn)所有的模塊之前都會(huì)首先加載公共模塊下面的配置文件(Conf/config.php)和公共函數(shù)文件(Common/function.php)。在本系統(tǒng)中Common模塊主要負(fù)責(zé)的是:(a)系統(tǒng)中各模塊都會(huì)用到的功能,避免各模塊都重復(fù)定義,造成浪費(fèi);(b)系統(tǒng)配置,比如:域名配置,系統(tǒng)數(shù)據(jù)庫(kù)配置。ThinkPHP內(nèi)置了抽象數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)層,把不同的數(shù)據(jù)庫(kù)操作封裝起來(lái),只需要使用公共的Db類(lèi)進(jìn)行操作,而無(wú)需針對(duì)不同的數(shù)據(jù)庫(kù)寫(xiě)不同的代碼和底層實(shí)現(xiàn),Db類(lèi)會(huì)自動(dòng)調(diào)用相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)來(lái)處理,所以在Common的配置文件中配置系統(tǒng)使用的數(shù)據(jù)庫(kù),如圖3所示。

圖3 配置數(shù)據(jù)庫(kù)Fig.3 Configuration database

2)用戶(hù)操作模塊。系統(tǒng)利用微信作為用戶(hù)進(jìn)入控制LED燈幕的入口,通過(guò)“掃一掃”進(jìn)入LED控制界面參與互動(dòng),首先得使第三方服務(wù)器對(duì)接微信公眾平臺(tái),才能利用微信公眾平臺(tái)提供的開(kāi)放接口實(shí)現(xiàn)微信支付、獲取用戶(hù)信息等功能[7]。對(duì)接微信公眾平臺(tái):①申請(qǐng)?jiān)品?wù)器;②注冊(cè)微信公眾賬號(hào),完成信息登記,成為微信公眾平臺(tái)開(kāi)發(fā)者;③微信公眾平臺(tái)接口測(cè)試賬號(hào)申請(qǐng);④在微信公眾平臺(tái)配置URL,接入第三方服務(wù)器、進(jìn)行微信認(rèn)證后開(kāi)通微信支付功能。

用戶(hù)操作模塊包含了兩個(gè)子模塊:花樣選擇和個(gè)人主頁(yè)。用戶(hù)通過(guò)“掃一掃”進(jìn)入操作模塊后首先進(jìn)入花樣選擇界面,花樣選擇界面顯示各類(lèi)花樣產(chǎn)品,包括“免費(fèi)花樣”、“收費(fèi)花樣”和“自定義花樣”?!白远x花樣”是用戶(hù)可根據(jù)個(gè)人喜好上傳手機(jī)中的圖片或者編輯文字參與互動(dòng)。個(gè)人主頁(yè)包括:個(gè)人信息和互動(dòng)訂單管理。

用戶(hù)操作模塊中需要支付的時(shí)候就會(huì)用到微信公眾平臺(tái)提供的開(kāi)放接口,當(dāng)有需要調(diào)起支付的時(shí)候調(diào)用下面的支付函數(shù)。需要注意的是再調(diào)起微信支付之前得先將微信支付sdk導(dǎo)入到框架的/ThinkPHP/Library/Vendor/Weixinpay目錄下,并且進(jìn)行參數(shù)配置。

public function unifyorder(MYMboby, MYMtotal_fee, MYMout_trade_no, MYMopenid)

{

vendor(′WeixinPay.Weixinpay′);// 導(dǎo)入微信支付sdk

MYMconfig = C(′WEIXINPAY_CONFIG′);

MYMWeixinpay = new Weixinpay(MYMconfig);

MYMWeixinpay->body = MYMboby;// 商品描述

MYMWeixinpay->total_fee = MYMtotal_fee;// 訂單金額

MYMWeixinpay->out_trade_no = MYMout_trade_no;// 訂單號(hào)

MYMWeixinpay->openid = MYMopenid;// 獲取到的openid

MYMjsApiParameters = MYMWeixinpay->getParameters();

return MYMjsApiParameters;

}

3)管理員控制臺(tái)模塊。管理控制臺(tái)主要是給系統(tǒng)中管理員提供的可視化管理模塊,在該系統(tǒng)中管理員控制臺(tái)對(duì)維護(hù)日常互動(dòng)工作的穩(wěn)定運(yùn)行非常重要。

管理員控制模塊包含五個(gè)子模塊,分別有:區(qū)域管理、產(chǎn)品管理、用戶(hù)管理、訂單管理、數(shù)據(jù)統(tǒng)計(jì)。一個(gè)互動(dòng)場(chǎng)所即是一個(gè)區(qū)域,在實(shí)際應(yīng)用中必然會(huì)有多個(gè)互動(dòng)區(qū)域。每個(gè)互動(dòng)區(qū)域?qū)?yīng)一個(gè)唯一標(biāo)識(shí)的二維碼,方便用戶(hù)掃描二維碼后進(jìn)入當(dāng)前區(qū)域的互動(dòng)操作界面,同時(shí)每個(gè)區(qū)域的花樣也不盡相同,所以區(qū)域管理主要的功能有:添加新的互動(dòng)區(qū)域并生成唯一標(biāo)識(shí)的二維碼、查看/修改/刪除所有已添加的區(qū)域。產(chǎn)品管理主要包含:添加新的花樣產(chǎn)品、查看/修改/刪除所有已添加的產(chǎn)品。單獨(dú)設(shè)置產(chǎn)品管理模塊而不是和區(qū)域信息放在一起管理可以讓區(qū)域和產(chǎn)品分塊查詢(xún)、互不影響,提高檢索速率,使管理更加高效和直觀。

用戶(hù)管理可以對(duì)系統(tǒng)所有的用戶(hù)進(jìn)行統(tǒng)一管理,例如查看、刪除。因?yàn)橛脩?hù)互動(dòng)的時(shí)候可以自行上傳手機(jī)中的圖片,為了防止有用戶(hù)上傳一些不良圖片,在用戶(hù)管理這里設(shè)置了用戶(hù)凍結(jié)/解凍的功能。

訂單管理模塊和數(shù)據(jù)統(tǒng)計(jì)模塊都屬于信息查看模塊,方便管理員了解燈光互動(dòng)的日常流水工作。訂單管理用來(lái)查看和管理所有互動(dòng)訂單。數(shù)據(jù)統(tǒng)計(jì)可查看當(dāng)前參與人數(shù)及所需時(shí)長(zhǎng)、歷史參與總?cè)藬?shù)/人次的統(tǒng)計(jì)數(shù)據(jù)。

4)服務(wù)器與控制器通信接口模塊。用戶(hù)在微信端完成互動(dòng)下單后,訂單信息便保存在云服務(wù)器中的數(shù)據(jù)庫(kù)。系統(tǒng)為云服務(wù)器與控制器的通信提供接口,控制器通過(guò)訪(fǎng)問(wèn)API接口獲取存在數(shù)據(jù)庫(kù)中的控制指令,在指令完成后向服務(wù)器返回完成指令?;诖诵枨螅O(shè)計(jì)獲取訂單信息接口、訂單完成確認(rèn)接口。同時(shí)設(shè)置心跳機(jī)制接口,控制器端每隔2秒訪(fǎng)問(wèn)一次服務(wù)器,服務(wù)器端更新控制器的訪(fǎng)問(wèn)時(shí)間updattime,用戶(hù)端只需查看數(shù)據(jù)庫(kù)中的updattime,即可知道控制器端是否掉線(xiàn),若出現(xiàn)異常情況,及時(shí)提醒用戶(hù)不要繼續(xù)參與互動(dòng),提升用戶(hù)體驗(yàn)性。

4 總結(jié)

本文就該LED燈光互動(dòng)系統(tǒng)從系統(tǒng)框架、系統(tǒng)設(shè)計(jì)到系統(tǒng)的具體實(shí)現(xiàn)進(jìn)行了詳細(xì)描述。我們提出燈光互動(dòng)的系統(tǒng)以ThinkPHP框架為基礎(chǔ),采用B/S架構(gòu),并將云服務(wù)技術(shù)接入LED控制領(lǐng)域,實(shí)現(xiàn)用戶(hù)通過(guò)手機(jī)就可參與LED燈光互動(dòng)活動(dòng),增強(qiáng)用戶(hù)參與感,使LED燈光展示性更靈活。

猜你喜歡
花樣管理員服務(wù)器
我是小小午餐管理員
花樣童年
我是圖書(shū)管理員
我是圖書(shū)管理員
潔齒的花樣
可疑的管理員
通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
得形忘意的服務(wù)器標(biāo)準(zhǔn)
計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
綻放花樣
母子健康(2015年8期)2015-12-12 08:22:55
东宁县| 方正县| 敦化市| 山阴县| 隆德县| 思茅市| 政和县| 杭锦旗| 太保市| 漳州市| 尖扎县| 嫩江县| 桦甸市| 五莲县| 榕江县| 靖边县| 宁蒗| 环江| 洪雅县| 科技| 龙胜| 巴南区| 那坡县| 安溪县| 巴彦县| 天峨县| 浑源县| 盐源县| 建湖县| 泸定县| 赤峰市| 湘阴县| 武乡县| 山东省| 千阳县| 鄂伦春自治旗| 宁城县| 新巴尔虎左旗| 竹山县| 平果县| 永德县|