馮 超,魏晉宏
(太原理工大學 新型傳感器與智能控制教育部與山西省重點實驗室,山西 太原 030024)
隨著國內居住環境逐步的國際化,自助洗衣房作為一種會所、高校、社區配套形式的出現使得其具有廣闊的市場和發展空間。進入21世紀來,互聯網技術得到了飛速的發展,互聯網高效、便捷、無時間地域限制的特點已經被眾人所認同,同時也為商家提供了無限的商機,電子商務因而獲得蓬勃發展,進而推動著網絡支付和網上金融服務的快速發展,使得電子商務進入一個全新的發展階段[1-2]。隨著這種線上支付模式的出現,將其應用在自助洗衣機上便成為可能。為此,提出了集中控制器的設計思路來對接線上服務器與線下洗衣機。由于自助洗衣機的使用頻率高,難免會造成用戶漫長的等待時間,在實現了線上服務器與線下洗衣機對接的同時,提出了預約洗衣服務的思路,并對預約排隊算法進行分析與研究,并選出最優的預約排隊算法。
針對目前洗衣房自助洗衣機的單獨管理與操作,在線上服務日益完善的同時,設計了基于嵌入式Linux的集中控制器來對自助洗衣機進行集中的管理和操作,方便實現洗衣機與線上服務器的對接和預約洗衣的功能。集中控制器以S3C2440作為核心,通過CAN總線將多臺洗衣機接入控制器中,將洗衣機的實時狀態數據發送給控制器系統,經由液晶屏進行顯示,并將數據存儲于SD卡上;服務器在完成線上支付、線上預約等功能后,通過WIFI將操作指令發送給集中控制器進而對洗衣機進行操作,集中控制器完成預約排隊優化后將預約排隊信息發送給服務器,服務器通過短信等方式通知用戶的預約情況,自助洗衣機服務系統框圖,如圖1所示。

圖1 自助洗衣服務系統框圖Fig.1 Systematic Theory of Diagram
3.1 硬件選型
為了實現控制器與洗衣機的數據通信、控制器與服務器的遠程數據通信以及控制器對洗衣機狀態的監控,在硬件方面主要介紹了對主控模塊、人機交互模塊、CAN模塊、WIFI模塊的選型。
3.1.1 主控模塊
采用三星公司生產的嵌入式芯片S3C2440A作為主控核心。該芯片采用ARM920T內核,功耗低、具有高速的處理計算能力、可以運行在400MHz的時鐘頻率下[3]。芯片的設計采用MMU、AMBA總線體系結構和哈佛結構,集成了SDRAM控制器、FLASH控制器、LCD控制器、SPI控制器等硬件外設,方便搭建外圍功能模塊,大大簡化了系統的設計。
3.1.2 人機交互模塊
觸摸屏(touch screen)又稱為“觸控屏”,是一種可接收觸頭等輸入訊號的感應式液晶顯示裝置,是目前最簡單、方便、自然的一種人機交互方式[4]。故而,設計采用AT070TN83型的7寸四線式電阻觸摸屏作為系統監控和查詢的操作平臺。
3.1.3 WIFI模塊
隨著WIFI技術的不斷完善,在解決了傳統有線網絡布線繁瑣的同時,其傳輸速率和穩定性也逐步提高,故而,采用ESP8266作為WIFI數據收發的主要芯片。ESP8266是一款超低功耗的UART-WiFi透傳模塊,具有支持無線802.11b/g/n標準、內置TCP/IP協議棧、支持豐富的Socket AT指令、支持UART/GPIO數據通信接口、支持Smart Link智能聯網功能、超低能耗等多種優點,現以廣泛被應用于智能電網、智能交通、智能家具、手持設備、工業控制等領域。
3.1.4 CAN模塊
由于CAN總線具有穩定可靠、連線簡單(就兩根線)、組網消費低、速度快、能長距離傳輸等優點[5-6],故而,采用CAN總線方式將洗衣機接入集中控制器實現洗衣機與集中控制器的數據通信。
CAN模塊主要由CAN控制器和CAN收發器組成。其中CAN控制器是用來執行CAN總線協議和控制管理CAN總線的,而CAN收發器的作用是增強總線驅動能力并建立CAN控制器以及物理總線之間的連接。由于S3C2440主控芯片并不含有CAN控制器,因此,選用SJA1000型的CAN控制器和PCA82 C250型的CAN收發器來實現CAN通信功能。
3.2 軟件設計
3.2.1 應用程序的設計
(1)主程序的設計
系統的主程序設計主要包括系統的初始化、WIFI數據的接收與發送、CAN總線數據的接收與發送、數據顯示和存儲、預約排隊算法等,主程序流程圖,如圖2所示。

圖2 主程序流程圖Fig.2 Flow Chart of Main Program
(2)WIFI程序的設計

圖3 WIFI連接子程序Fig.3 Subroutine of WIFI Connection
初始化完成后,經由WIFI將集中控制器和遠程服務器進行連接,WIFI連接過程,如圖3所示。當WIFI模塊收到遠程服務器的指令后對其進行判斷,進而去執行發送洗衣機狀態數據、對洗衣機進行各種功能操作以及對預約信息進行排隊優化等,控制器通過預約排隊算法將最優的預約排隊情況通過WIFI發送遠程服務器方便服務器通過短信等方式通知用戶。
(3)CAN程序的設計
控制器與線下洗衣機是通過CAN總線進行連接的,數據發送、數據接收、總線錯誤等都需要通過CAN中斷服務程序。當判斷為發送中斷時,將所要發送的數據打包進行發送,發送成功后置CAN成功發送標志位;當判斷為接收中斷時,讀取CAN消息對象中的數據并置CAN成功接收標志位;而當既非發送中斷又非接收中斷時,置CAN出錯標志位。
控制器通過CAN總線將接收到的報文分離出來的洗衣機的狀態數據傳送給主控芯片,主控芯片對其進行分析,進而將數據中所包含的洗衣機的實時狀態等顯示在液晶屏上,并將數據整理存儲在數據庫中以方便調取和查詢。
3.2.2 數據存儲
系統采用qtopia所支持的sqlite3數據庫對洗衣機經由CAN總線發送而來的數據進行存儲。SQLite數據庫采用了模塊化、層次化的思想,由數據庫接口、編譯器、虛擬機與后端四個部分組成。其中數據庫接口(各種API)是系統的入口,中間經過編譯器(分詞器、語法分析器、代碼生成器),將API中傳入的SQL語句或各種操作編譯成數據庫引擎可以解析的解釋性代碼,虛擬機按照解釋性的代碼流調用其下層的索引、表、頁面緩存模塊協同來完成數據的存儲[7-8]。
在數據庫中創建表格,實現對數據的管理,數據的存儲方式,如表1所示。

表1 狀態數據存儲方式Tab.1 Storage of State Data
為了減少用戶漫長的等待時間,在自助洗衣機中引入預約功能,并提出三種不同的預約排隊算法,通過計算得出最高的“用戶滿意度”,即在一段時間內所有用戶對洗衣服務的滿意程度,從而選出最佳的預約排隊算法[9-10]。
4.1 用戶滿意度模型的搭建
根據“用戶滿意度”建立模型并進行研究。影響“用戶滿意度”的因素主要有接待用戶人數(假設為S)、平均等待時間(假設為H)和用戶消費金額(假設為L)。構建“用戶滿意度”模型:

式中:H1、H2、H3—未預約用戶平均等待時間、普通預約用戶平均等待時間和加急預約用戶平均等待時間;L1、L2—未預約用戶和普通預約用戶的消費金額和加急預約用戶的消費金額;M1、M2、M3—未預約用戶滿意度、普通預約用戶的滿意度和加急預約用戶的滿意度;M—用戶平均滿意度。
假設用戶的平均下單率為μ,系統中共有n臺洗衣機,單個洗衣機的平均服務率(即單位時間內被服務的用戶數)為λ,服務強度ρ=μ/nλ,Pm(n)為n臺洗衣機中任意時刻有m個用戶的概率,有:

當達到平衡狀態時,平均對長為:

用戶的平均等待時間為:

4.2 預約排隊策略的設計
4.2.1 先到先得型
按照預約用戶下單時間的先后順序進行排隊,當預約用戶在預約規定時間內沒有使用洗衣機,則由下一位預約用戶進行預約使用,以此類推。這種策略會導致未使用預約服務的用戶長時間無法使用洗衣機。假設當天排隊的總人數為S,其中未預約用戶數為S1,預約用戶數為S2。在第一位預約用戶使用的同時,其后預約用戶的等候時間要加上這位預約用戶的使用時間,對于未預約用戶生成隨機的使用時間并加上所有預約用戶的使用時間,最后根據“用戶滿意度”模型計算出用戶的滿意度得分。
4.2.2 規律使用型
按照預約用戶下單時間的先后順序進行排隊,每完成P(P≥2)次預約服務后,等待半小時的時間供沒有使用預約服務的客戶使用,當該客戶使用完成后,繼續執行預約排隊序列,以此類推。相對于先到先得型預約服務,這種模式顧及到了未使用預約服務客戶對洗衣機的使用。假設當天排隊的總人數為S,其中未預約用戶數為S1,預約用戶數為S2。不失一般性的令P=2,即每有兩位預約用戶使用完成后,等待一位未預約用戶進行使用,對于預約用戶而言,在加上之前的預約用戶的使用時間后,還需要加上一位未預約用戶的使用時間(如果未預約用戶沒有使用,則該時間為半小時),最后根據“用戶滿意度”模型計算出用戶的滿意度得分。
4.2.3 高價優先型
在規律使用型預約模式的基礎上,對于著急使用洗衣機的用戶,可以在正常洗衣消費的基礎上增加一定的額外費用來實現優先排隊使用,即每當有高于基礎消費的預約用戶進入預約排隊的隊列后,根據總費用的高低插入到隊列前,費用越高越靠前,相同費用下按照下單時間順序排隊插入隊列前。這種模型綜合考慮到了未使用預約服務的客戶以及著急使用預約服務的客戶。
假設當天排隊的總人數為S,其中未預約用戶數為S1,預約用戶數為S2,普通預約用戶數為S2,加急預約用戶數為S3。不失一般性的令P=2,即每有兩位預約用戶使用完成后,等待一位未預約用戶進行使用。對于加急用戶而言,需要加上之前的加急用戶的使用時間以及每兩位預約用戶后的一位未預約用戶的使用時間(如果未預約用戶沒有使用,則該時間為半小時),而對于普通預約用戶而言,除了要加上之前的普通預約用戶的使用時間以及每兩位預約用戶后的一位未預約用戶的使用時間,還需要加上加急用戶的使用時間,最后根據“用戶滿意度”模型計算出用戶的滿意度得分。
4.3 預約排隊策略的測試
根據表2中的測試數據對三種不同的排隊策略進行滿意度計算。通過“用戶滿意度”模型對三種不同的排隊策略計算出用戶的滿意度得分,如表3所示。由測試可知,策略二改進了對未預約用戶使用洗衣機的排隊方式,使得未預約用的滿意度大幅提高,而對于加急預約用戶而言,付出了相對較高的費用,但是卻沒有排隊的優勢,因此滿意度較低;而策略三針對加急用戶改善了排隊方式,雖然加急用戶付出了相對較高的費用,但是獲得了更有利的排隊方式,因此滿意度提高較大;對于三種不同的排隊方式,均對于普通的預約用戶相對有利,因此,用戶的滿意度基本不變并維持在一個相對較高的程度上。綜合分析得出,在引入了預約服務后,采用第三種排隊策略得到最高的滿意度,能夠最優的服務各種用戶。

表2 待測試數據Tab.2 Data to be Tested

表3 測試結果Tab.3 Results of Test
測試采用PC機作為上位機,并通過VB設計了監控界面對控制器進行測試,系統的測試平臺,如圖4所示。登錄監控系統后首先建立TCP連接服務器,然后啟動控制器通過WIFI與PC機進行連接,最后啟動洗衣機,得到的控制器監控畫面,如圖5所示。此時,上位機得到的監控畫面,如圖6所示。

圖4 測試平臺Fig.4 Testing Platform

圖5 實時狀態監控Fig.5 Real-Time Status Monitoring

圖6 PC機遠程監控Fig.6 Remote Monitoring of PC
由測試可知,控制器對洗衣機狀態監控的準確性,與PC機通信的準確性與穩定性,實現了線上PC機與線下洗衣機的對接。
采用S3C2440作為控制器的核心,以嵌入式Linux作為操作系統,實現了線上服務器與線下洗衣機的對接。系統搭建成本較低,但能滿足我們對設計的需求。同時,為了解決用戶漫長等待時間而引入了預約洗衣的功能,并對預約排隊算法進行了研究,選出了最優的預約排隊算法,使用戶對于自助洗衣服務更加的滿意。未來,我們還可以提出與完善更多的線上服務來滿足用戶的需求,使自助洗衣服務更加的智能化。
[1]彭云.我國電子商務發展現狀[J].合作經濟與科技,2011(6):87-88.(Peng Yun.Situation of e-commerce development[J].CO-Operative Economy&Science,2011(6):87-88.)
[2]劉軍.我國電子商務發展現狀及趨勢分析[J].甘肅科技,2008(11):81-84.(Liu Jun.Analysis of e-commerce about the development and trend[J].Gansu Science and Technology,2008(11):81-84.)
[3]馬資道,張正炳.基于ARM-Linux的無線視頻監控系統的設計與實現[J].長江大學學報:自然科學版,2010,7(3):605-607.(Ma Zi-dao,Zhang Zheng-bin.Design and implementation of wireless video surveillance system based on ARM-Linux[J].Journal of Yangtze University:Nat Sci Edit,2010,7(3):605-607.)
[4]吳新生.基于ARM/WIFI/QT的無線視頻監控系統的開發[J].計算機應用系統,2013,22(8):76-79.(Wu Xin-sheng.Development of wireless video monitoring system based on ARM/WiFi/QT[J].Computer System&Application,2013,22(8):76-79.)[5]郭素敏,向鳳紅.基于CAN總線的智能數據采集系統設計[J].昆明理工大學學報,2003,28(5):77-81.(Guo Su-min,Xiang Feng-hong.Design of the intelligent data acquisition system based on can bus[J].Journal of Kunming University of Science and Technology,2003,28(5):77-81.)
[6]張洪建,李正明,潘天紅.基于Qt/Embedded的嵌入式半自動生化分析儀人機界面設[J].機械設計與制造,2009(10):4-6.(Zhang Hong-jian,Li Zheng-ming,Pan Tian-hong.Design of embedded chemistry analyzer man-machine interface based on Qt/Embedded[J].Machinery Design&Manufacture,2009(10):4-6.)
[7]史永昌,王永樂.基于SQLite的嵌入式數據庫研究與應用[J].福建電腦,2008(8):151-148.(Shi Yong-chang,Wang Yong-le.Research and application of embedded database based on SQLite[J].Fujian Computer,2008(8):151-148.)
[8]李婧,李亞,任建勛.基于SQLite數據庫的水文信息存儲方法探討[J].計算機光盤軟件與應用,2014(2):149-151.(Li Jing,Li Ya,Ren Jian-xiong.Probe the storage of hydrological information based on SQLite database[J].Computer CD Software and Application,2014(2):149-151.)
[9]劉君瑞,陳穎圖,樊曉椏.基于先到先服務的二維動態優先級信令排隊算法[J].計算機科學,2011(5):89-92.(Liu Jun-rui,Chen Ying-tu,Fan Xiao-ya.Two dimensional dynamic priority-based FCFS token-queuing algorithm[J].Computer Science,2011(5):89-92.)
[10]葉宗文.維修行業中排隊模型的應用[J].四川兵工學報,2009(10):65-67.(Ye Zong-wen.Application of queuing model in repair industry[J].Journal of Sichuan Ordnance,2009(10):65-67.)