周超琦 朱正羊 耿明翠
摘 要: 綜合運用物聯(lián)網(wǎng)技術(shù)和互聯(lián)網(wǎng)技術(shù),實現(xiàn)了“應答式洗衣機系統(tǒng)”。該系統(tǒng)通過傳感器、單片機等硬件技術(shù),以及網(wǎng)絡協(xié)議、數(shù)據(jù)庫、ASP.NET等軟件技術(shù)進行構(gòu)建,使用Visual Studio、Keil等工具開發(fā)實現(xiàn),最后以網(wǎng)站的形式展現(xiàn)。用戶可以通過網(wǎng)站查看洗衣機的工作狀態(tài),可在線預約和付款;可以通過微博查詢洗衣機工作狀態(tài)的剩余時間,獲得即時結(jié)果。應用該系統(tǒng)可實現(xiàn)應答式洗衣機的智能管理和使用。
關(guān)鍵詞: 物聯(lián)網(wǎng); 應答式系統(tǒng); 傳感器; 洗衣機; 微博
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2015)02-10-05
Responsive washer system based on IOT
Zhou Chaoqi, Zhu Zhengyang, Geng Mingcui
(Information College, Zhejiang University of Finance and Economics, Hangzhou, Zhejiang 310018, China)
Abstract: The "responsive washer system" is realized based on the integration of IOT and Internet. The system is constructed with the sensors, wireless transmission, SCM, network protocols, database and ASP.NET. It is developed through Visual Studio, Keil and other development tools. It displays itself to the users in the form of site. Users can not only use the functions of checking washers' working condition, booking and paying, but also inquire the rest of washing time and get the result immediately, to achieve intelligent management and utilization of washing machine.
Key words: IOT; responsive system; sensor; washer; weibo
0 引言
隨著時代的發(fā)展、社會生活節(jié)奏的加快,24小時不間斷營業(yè)、無人值守的自助經(jīng)營模式因其自主、自助、便利的特性,正被越來越多的人所接受。
洗衣服是一項耗時、耗力、耗神的工作,在歐美發(fā)達國家,由于時間珍貴以及追求個性化的生活,人們早已不愿為日常洗衣浪費時間,隨之而來的是大量洗衣房的出現(xiàn)。目前歐美、日韓生活區(qū),尤其是學生單身公寓,自助投幣洗衣機隨處可見,在我國的大學宿舍,有的也已安裝了這種機器。但是,在大學宿舍由于自助式洗衣機數(shù)量有限,排隊等待洗衣成了讓學生頭疼的問題。因此,我們開發(fā)了“基于物聯(lián)網(wǎng)的應答式洗衣機系統(tǒng)”,其目的是減少學生排隊等待而浪費的時間。學生可以通過網(wǎng)站查看宿舍樓下洗衣機的工作狀態(tài)、洗衣機工作剩余時間、排隊人數(shù),可以在網(wǎng)上預約洗衣機。洗衣機通過微博、微信“發(fā)布”信息——“空閑”或“正在使用,剩余XX分鐘”,“XXX同學,洗衣結(jié)束”等提示信息。
1 關(guān)鍵技術(shù)介紹
1.1 物聯(lián)網(wǎng)介紹
物聯(lián)網(wǎng)可定義為:通過射頻識別、紅外感應器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把物品與網(wǎng)絡連接起來進行信息交換和通信,以實現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡[1]。
物聯(lián)網(wǎng)雖然是基于互聯(lián)網(wǎng)的應用,卻比互聯(lián)網(wǎng)更加龐大,任何物體只要嵌入感應芯片,即是一個客戶端,物體數(shù)量可以達到成百上千億,而且物物之間也可“說話”,不論何時何地都可以即時獲取它們的信息。
物聯(lián)網(wǎng)在生活和工作中的應用,一方面提高了經(jīng)濟效益,大大降低了成本,另一方面可以為中國經(jīng)濟的提升提供技術(shù)動力。
1.2 OAuth協(xié)議
本系統(tǒng)一大亮點是將網(wǎng)站上的洗衣機狀態(tài)信息公布到時下流行的社會化媒體平臺——微博上,既方便用戶對信息即時獲取,又有效地宣傳了該網(wǎng)站。同時,如果用戶在微博上@WasherOnline,系統(tǒng)會自動分析該用戶,并回復與該用戶相關(guān)的洗衣機信息,如該用戶預約的洗衣機排隊人數(shù)、剩余時間等。本系統(tǒng)對微博的一系列操作都需要先完成OAuth這一授權(quán)協(xié)議才可進行。
OAuth協(xié)議為用戶資源的授權(quán)提供了一個安全的、開放而又簡易的標準。與以往的授權(quán)方式不同之處是OAuth的授權(quán)不會使第三方觸及到用戶的帳號信息,如用戶名與密碼,即第三方無需用戶名與密碼就可以申請獲得該用戶資源的授權(quán)。
Client指第三方應用,Resource Owner指用戶,Authorization Server是授權(quán)服務器,Resource Server是API服務器。
A. 第三方應用向用戶發(fā)送認證請求,請求資源擁有者給予授權(quán)許可。
B. 資源擁有者根據(jù)實際情況選擇對第三方應用授權(quán)內(nèi)容或者授權(quán)與否。
C. 第三方應用發(fā)送資源所有者的授權(quán)信息給授權(quán)服務器。
D. 授權(quán)服務器經(jīng)過校驗后確認有效給予訪問令牌。
E. 第三方應用利用獲得的訪問令牌訪問資源服務器獲取資料。
F. 資源服務器以JSON或者XML的形式把資料傳送給第三方應用。
OAuth2.0授權(quán)流程如圖1所示。
2 系統(tǒng)總體方案設(shè)計
2.1 系統(tǒng)總體方案
根據(jù)應答式洗衣機系統(tǒng)的功能與技術(shù)要求,我們決定采用硬件+軟件的系統(tǒng)結(jié)構(gòu)來設(shè)計,使用了傳感器、無線傳輸模塊、單片機等硬件技術(shù)和數(shù)據(jù)庫、ASP.NET、網(wǎng)絡協(xié)議等軟件技術(shù),通過Visual Studio、Keil等開發(fā)工具開發(fā)實現(xiàn)。系統(tǒng)總體方案為:洗衣機的工作信號由信號采集模塊采集,由無線傳輸模塊傳輸,由單片機信號轉(zhuǎn)換模塊加工后傳給服務器。這樣用戶既可以在網(wǎng)站上查看洗衣機的工作狀態(tài),又可以在微博上提問來查看洗衣機的工作狀態(tài)。
2.2 系統(tǒng)模塊
根據(jù)設(shè)計方案,我們將整個系統(tǒng)劃分為六個主要模塊:信號采集模塊、無線傳輸模塊、單片機信號轉(zhuǎn)換模塊、網(wǎng)站發(fā)布信息模塊、微博發(fā)布信息模塊。洗衣機的工作信號由信號采集模塊采集后,通過無線傳輸模塊傳給單片機進行加工轉(zhuǎn)換,之后傳給服務器進行存儲?;诓杉降臄?shù)據(jù),我們設(shè)計并實現(xiàn)了一個網(wǎng)站,用戶可以通過這個網(wǎng)站來查看洗衣機的工作狀態(tài),也可以使用其他功能,例如預約、付款等。用戶還可以通過微博提問來獲得預定的洗衣機工作的狀態(tài)。具體過程如圖2所示。
2.3 模塊功能詳細描述
⑴ 信號采集模塊
該模塊主要由一個帶TCRT5000的光傳感電路來完成。當洗衣機工作時,TCRT5000(見圖3)接收到光信號,電路輸出一個較高的電壓;當洗衣機空閑時,TCRT5000接收不到光信號,電路輸出一個較高的電壓。
⑵ 無線傳輸模塊
考慮到空間的距離,無線傳輸模塊主要作用是:利用nRF905(見圖4)實現(xiàn)將信號采集模塊采集到的信號傳輸給下一模塊。
⑶ 單片機信號轉(zhuǎn)換模塊
此模塊是將傳輸過來的信號作A/D轉(zhuǎn)換,即將模擬信號轉(zhuǎn)換為數(shù)字信號,再通過串口傳給下一模塊。單片機如圖5所示。
⑷ 網(wǎng)站發(fā)布信息模塊
將單片機傳送過來的信號存儲到數(shù)據(jù)庫中,需要用到信號采集串口傳輸存儲API函數(shù)。調(diào)用Microsoft Visual Studio中SerialPort類,在程序中設(shè)置一個中斷timer,每隔5秒進行一次串口的讀取。當在串口端讀取到一個“1”或“0”時,就把數(shù)據(jù)在數(shù)據(jù)庫中存儲起來,同時保存當前的時間。然后可以通過網(wǎng)站和微博把數(shù)據(jù)庫中洗衣機的工作狀態(tài)信息發(fā)布出去。
在分析了其功能和業(yè)務需求后,根據(jù)數(shù)據(jù)庫設(shè)計的原理[2],設(shè)計數(shù)據(jù)庫表目錄如表1。
該模塊是將洗衣機的狀態(tài)發(fā)布到微博、微信平臺,把信息公開化,還能實時回復用戶的提問,實現(xiàn)洗衣機的“應答”。
3 硬件設(shè)計
3.1 信號采集
采用TCRT5000一體化反射型光電探測器作為信號采集模塊,其發(fā)射器是一個砷化鎵紅外發(fā)光二極管,而接收器是一個高靈敏度的硅平面光電三極管。光傳感電路工作原理:右端為紅外線發(fā)射端,VCC端接入3.3V穩(wěn)壓電源發(fā)射紅外線,左端為紅外接收端,輸出端接單片機端口檢測10k電阻的電壓,當檢測到紅外線時接收端三極管的壓降減小,10K電阻的分壓增大。
3.2 無線傳輸
nRF905應用于信號采集與單片機之間的數(shù)據(jù)傳輸。nRF905采用Nordic公司的VLSI ShockBurst技術(shù),該技術(shù)使nRF905能夠提供高速的數(shù)據(jù)傳輸,而不需要昂貴的高速MCU來進行數(shù)據(jù)處理/時鐘覆蓋。通過將與RF協(xié)議有關(guān)的高速信號處理放到芯片內(nèi),nRF905提供給應用的微控制器一個SPI接口,速率由微控制器自己設(shè)定的接口速度決定。nRF905通過ShockBurst工作模式在RF以最大速率進行連接時降低數(shù)字應用部分的速度來降低在應用中的平均電流消耗。在ShockBurst RX模式中,地址匹配AM和數(shù)據(jù)準備就緒DR信號通知MCU一個有效的地址和數(shù)據(jù)包已經(jīng)各自接收完成。在ShockBurst TX模式中,nRF905自動產(chǎn)生前導碼和CRC校驗碼,數(shù)據(jù)準備就緒DR信號通知MCU數(shù)據(jù)傳輸已經(jīng)完成。總之,這意味著降低MCU的存儲器需求,也就是降低MCU成本,同時又縮短軟件開發(fā)時間。
3.3 單片機信號轉(zhuǎn)換模塊
我們可以把洗衣機的工作狀態(tài)視為模擬值,即工作狀態(tài)為“1”,空閑狀態(tài)為“0”。紅外傳感器時時檢測著洗衣機的工作指示燈,當在狀態(tài)“1”時,接收電路中分壓電阻上的電壓差會增大,通過反復測試后在2V以上,當在狀態(tài)“0”時,電壓差在2V以下。當調(diào)用ARM單片機上的ADC功能時,系統(tǒng)把接收到的電壓數(shù)字信號轉(zhuǎn)換成模擬信號,再次轉(zhuǎn)換成信號“1”與“0”。此時洗衣機的工作狀態(tài)就是一個方波圖形,如圖6在單片機的中斷函數(shù)中,再次調(diào)用ADC功能,讀出波形圖的上跳沿和下跳沿,每檢測到一個上跳沿,單片機就通過串口發(fā)送一個信號“1”,每檢測到一個下跳沿就發(fā)送一個信號“0”。此時單片機就成功完成了對洗衣機狀態(tài)的檢測,當洗衣機剛進入工作狀態(tài)那一刻,單片機就通過串口發(fā)送一個“1”給服務器,剛進入空閑狀態(tài)就發(fā)送一個“0”給服務器,見圖6。
4 軟件設(shè)計
4.1 系統(tǒng)軟件框圖
系統(tǒng)軟件框圖見圖7。
圖7 系統(tǒng)軟件框圖
4.2 應用程序開發(fā)
網(wǎng)站使用ASP.NET進行開發(fā),搭配SQL Server數(shù)據(jù)庫[3-4],功能實現(xiàn)過程如下。
⑴ 網(wǎng)站前臺主體結(jié)構(gòu)設(shè)置[5-6]
網(wǎng)站前臺主體結(jié)構(gòu)見圖8。
⑵ 網(wǎng)站后臺管理功能結(jié)構(gòu)設(shè)置
后臺的管理是整個平臺非常重要的一個環(huán)節(jié)。后臺功能強大,設(shè)計得好壞將直接影響到整個平臺的管理效率。團隊人員對項目平臺進行了詳細的策劃設(shè)計,具體結(jié)構(gòu)功能的設(shè)置如圖9所示。
⑶ 洗衣機狀態(tài)顯示功能
洗衣機狀態(tài)顯示見圖10。
⑷ 預約功能
用戶一旦在洗衣網(wǎng)站注冊并加為好友后,預付相應的費用后即可獲得預約功能權(quán)限。當用戶選擇預定功能后,網(wǎng)站會將用戶預定信息入庫,并通過相應的算法,對預定用戶進行通知排序,一旦洗衣機空閑時,網(wǎng)站便會發(fā)送信息或微博給排序最前的用戶,通知他們可以去使用洗衣機,并給予15分鐘為此用戶進行等待,若在15分鐘內(nèi)該用戶使用了洗衣機,則確認后扣除相應的費用;若該用戶沒有按時使用,則發(fā)送微博信息給該用戶通知預約時間已過,并返還其預付的費用,開始通知下一個用戶使用該洗衣機,依此類推。
在預約成功并使用洗衣機時,需進行身份確認,在洗衣機的旁邊放置一個刷卡機,只有當用戶身份和預約時的身份一致時,才進行扣費,并交付使用。
預約功能如圖11所示。
⑸ 付款功能
付款功能分刷卡付款和網(wǎng)上付款兩種,刷卡付款是指,每個用戶都有相應的身份ID卡,最常見的是高校中的學生一卡通,在洗衣機房內(nèi)進行刷卡付費,即可獲得該洗衣機的使用權(quán),并通過該卡的ID從而可以將該使用人的信息進行入庫,并記錄洗衣機的工作狀態(tài),發(fā)送微博通知好友用戶該洗衣機已被使用中;網(wǎng)上付款指用戶可以查詢各個洗衣機的工作狀態(tài),在某臺洗衣機上實現(xiàn)預定,并預付其洗衣費用。用戶在實地使用洗衣時,系統(tǒng)會完成扣款,若用戶超時未使用洗衣機,則返還其預付費用。
⑹ 微博發(fā)布信息
現(xiàn)在我們大都每天會關(guān)注微博,似乎微博已經(jīng)成為了我們生活中不可缺少的一部分,同時我們也看到很多利用微博營銷成功的例子。
該系統(tǒng)有一個功能是專為發(fā)微博而設(shè)計的。通過這個功能,系統(tǒng)自動發(fā)送微博記錄,從而實時顯示洗衣機的工作狀態(tài),網(wǎng)上用戶可以加此微博為好友,實時接收洗衣網(wǎng)站發(fā)送的內(nèi)容,內(nèi)容如下:
用戶預約洗衣機后,系統(tǒng)會自動發(fā)微博顯示該臺洗衣機當前的狀態(tài)“預約成功,XX地方的XX洗衣機當前剩余XX時間,您前面還有X人”;如果輪到該用戶使用洗衣機,系統(tǒng)會自動發(fā)微博提醒用戶去洗衣服“XX地方的XX洗衣機處于空閑狀態(tài),可以去洗衣物。”。
用戶(已注冊)在微博上發(fā)“@WasherOnline”,系統(tǒng)會自動檢索該用戶的信息,并把相關(guān)的信息發(fā)送給用戶。如該用戶正在使用洗衣機,微博會發(fā)送“您當前洗衣還剩余XX時間”;如果該用戶已預約,微博會發(fā)送“您預約的XX地方的XX洗衣機當前剩余XX時間,您前面還有X人”。
為了實現(xiàn)這一功能,我們引用新浪提供的C#.net版本的SDK,引導用戶完成基于OAuth2.0的授權(quán)認證[7]。這樣既保護了用戶的隱私,又可以通過調(diào)用微博開發(fā)平臺的API實現(xiàn)系統(tǒng)自動控制微博的功能。
調(diào)用的API有:
① OAuth2授權(quán)接口
oauth2/authorize 請求用戶授權(quán)Token
oauth2/access_token 獲取授權(quán)過的Access Token
oauth2/get_token_info 查詢用戶access_token的授權(quán)相關(guān)信息
② 微博接口
statuses/querymid 通過id獲取mid
statuses/queryid 通過mid獲取id
statuses/update 發(fā)布一條微博信息
statuses/mentions/ids 獲取@當前用戶的最新微博的ID
statuses/show_batch 根據(jù)微博ID批量獲取微博信息
③ 評論接口
comments/create 評論一條微博
④ 用戶接口
users/show 獲取用戶信息
⑤ 關(guān)系接口
friendships/create 關(guān)注某用戶
⑥ 賬號接口
account/get_uid OAuth授權(quán)之后獲取用戶UID
當用戶在微博上@WasherOnline,系統(tǒng)會根據(jù)當前洗衣機的使用狀況將結(jié)果自動回復給用戶,如圖12所示。
5 結(jié)束語
應答式洗衣機系統(tǒng)利用光傳感器和單片機采集傳輸洗衣機的工作狀態(tài)信號,并將信號通過服務器發(fā)布到網(wǎng)站。系統(tǒng)實時監(jiān)控,及時、有效地獲取信息,并將信息以人性化的方式發(fā)布在微博上,用戶可以快速、方便地得到信息。將微博的二維碼貼在洗衣機的顯要位置,顧客可以方便地加其為好友,查看洗衣機的工作狀態(tài)、洗衣店的位置信息等,既方便顧客,又起到了很好的宣傳作用。此外,用戶也可以在微博上與系統(tǒng)交互,系統(tǒng)將自動回復與該用戶相關(guān)的洗衣機信息。應答式洗衣機系統(tǒng)是利用物聯(lián)網(wǎng)技術(shù)和互聯(lián)網(wǎng)技術(shù),對現(xiàn)有的投幣洗衣機進行了改進,使之更符合大眾的生活節(jié)奏與習慣,為現(xiàn)代家庭的健康生活提供保障,減少了社會資源浪費,符合當代社會綠色環(huán)保的理念[8]。
參考文獻:
[1] 嚴萍,張興敢,柏業(yè)超,杜仲林.基于物聯(lián)網(wǎng)技術(shù)的智能家居系統(tǒng)[J].南
京大學學報,2012.1:26-32
[2] 王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].清華大學出版社,1998.
[3] 張躍廷,王小科,帖凌珍.ASP.NET程序開發(fā)范例寶典[M].人民郵電
出版社,2007.
[4] 于倩,羅靜.ASP.NET中ADO.NET對數(shù)據(jù)庫的管理[J].微計算機應
用,2004.25(3):372-376
[5] 趙宏中,應杭.基于ASP.NET技術(shù)的多層軟件體系架構(gòu)的實現(xiàn)[J].軟
件開發(fā)實務,2005.14:11-17
[6] Richard Anderson, Brlan FrMcis.ASP.NET高級編程[M].清華大學
出版社,2002.
[7] John Papa.Data Access Strategies Using ADO.NET and SQL[J].
MSDN Magazine,2005.20(5):101-103
[8] 吳方,袁浩杰,鐘海華,陳金安.基于物聯(lián)網(wǎng)的智能冰箱設(shè)計與實現(xiàn)[J].
現(xiàn)代計算機,2011.9(1):55-61