賴東鋒 葉鐵英 楊 都 張光旭
(珠海格力電器股份有限公司 珠海 519070)
多聯(lián)機(jī)空調(diào)系統(tǒng)(亦稱多聯(lián)機(jī)系統(tǒng))是由一套空調(diào)室外機(jī)和多臺空調(diào)室內(nèi)機(jī)組成的空調(diào)系統(tǒng)[1],用戶可以通過線控器控制空調(diào),以及獲取空調(diào)的狀態(tài)信息,常見的多聯(lián)機(jī)系統(tǒng)的網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
圖1 多聯(lián)機(jī)系統(tǒng)的網(wǎng)絡(luò)拓?fù)?/p>
隨著二維碼在不同領(lǐng)域的應(yīng)用,人們享受到越來越多便利的服務(wù),比如掃碼支付、掃碼查偽、掃碼登錄網(wǎng)站等[2]。越來越多的商品都會在包裝上或者本體上貼一個紙質(zhì)二維碼,掃碼可以獲取商品相關(guān)信息[2],但是獲取的信息往往比較單一,比如掃碼后只是進(jìn)入商品對應(yīng)公司的官網(wǎng),或者商品相關(guān)的公眾號等。
對于多聯(lián)機(jī)空調(diào),由于室外機(jī)安裝于室外,室內(nèi)機(jī)安裝于天花或吊頂,如果在室外機(jī)或室內(nèi)機(jī)機(jī)身上粘貼二維碼,用戶難以掃描;如果粘貼在用戶說明書上,每次用戶掃描二維碼還要找出說明書,也不便于掃碼;如果貼于線控器上,一是會影響線控器的外觀,二是紙質(zhì)的靜態(tài)二維碼包含的信息是固定的,二維碼不能區(qū)分不同室內(nèi)機(jī)的信息,也不能包含機(jī)組實(shí)時變化的狀態(tài)信息,所以靜態(tài)二維碼能發(fā)揮的作用受到很大局限。另外,紙質(zhì)二維碼容易丟失和老化顯示不清,影響用戶體驗(yàn)。
所以,我們設(shè)計了多聯(lián)機(jī)動態(tài)二維碼應(yīng)用系統(tǒng),極大方便了多聯(lián)機(jī)空調(diào)二維碼的展示,擴(kuò)充了二維碼包含的信息,豐富了掃碼后獲得的增值功能和服務(wù)。
多聯(lián)機(jī)空調(diào)的室內(nèi)機(jī)的控制器主板在出廠前,會進(jìn)行條碼燒錄,每臺室內(nèi)機(jī)都有唯一的條碼。通過二維碼管理平臺網(wǎng)站,將室內(nèi)機(jī)的條碼跟機(jī)型信息綁定,并將不同室內(nèi)機(jī)機(jī)型的產(chǎn)品介紹、電子說明書、服務(wù)手冊等信息上傳至該平臺。
多聯(lián)機(jī)空調(diào)上電后,線控器通過多聯(lián)機(jī)通訊網(wǎng)絡(luò)獲取室內(nèi)機(jī)的條碼,并在空調(diào)運(yùn)行過程中,實(shí)時獲取機(jī)組的狀態(tài)信息,動態(tài)生成二維碼,并將二維碼顯示在顯示屏。
手機(jī)微信掃描二維碼后,微信小程序獲取該室內(nèi)機(jī)的設(shè)備信息,通過二維碼管理平臺數(shù)據(jù)庫進(jìn)行機(jī)型匹配和信息獲取,進(jìn)而在微信小程序獲取豐富的功能和服務(wù),比如查看空調(diào)產(chǎn)品信息和說明書、一鍵報修、預(yù)約保養(yǎng)等。
多聯(lián)機(jī)動態(tài)二維碼應(yīng)用系統(tǒng)框架如圖2所示。
圖2 多聯(lián)機(jī)動態(tài)二維碼應(yīng)用系統(tǒng)框架
用于生成多聯(lián)機(jī)動態(tài)二維碼的數(shù)據(jù)中包含微信小程序根域名、內(nèi)機(jī)條碼、內(nèi)機(jī)工程編號、故障信息、保養(yǎng)信息等字符串,線控器需要將這些字符串?dāng)?shù)據(jù)編碼為二維碼符號數(shù)據(jù)。
二維碼有多種碼制,多聯(lián)機(jī)線控器動態(tài)二維碼采用目前常用的QR Code(快速響應(yīng)矩陣式二維碼)。QR Code可以在小尺寸矩陣圖形中存儲大容量信息,支持不同類型的數(shù)據(jù)(包括數(shù)字、英文、漢字等)[2,3]。
QR碼設(shè)有1到40的不同版本,每個版本都具備固有的碼元結(jié)構(gòu)(碼元數(shù),碼元是指構(gòu)成QR碼的方形黑白點(diǎn)),從版本1(21碼元×21碼元)開始,在縱向和橫向各自以4碼元為單位遞增,一直到版本40(177碼元×177碼元),版本越高,能存儲的信息越多[4]。所以線控器的顯示屏需有點(diǎn)陣顯示區(qū)域,點(diǎn)陣分辨率至少為21×21,才能顯示最小版本的二維碼,且二維碼包含的信息越多,需要越高版本的二維碼,即需要越大分辨率的點(diǎn)陣屏。
QR碼的各個版本能存儲的字符數(shù)還跟字符類型和糾錯級別有關(guān),同一版本的QR Code采用數(shù)字或英文的字符類型時,比起二進(jìn)制和漢字,可以存儲更多的字符數(shù)[4],所以線控器動態(tài)二維碼包含的字符盡量采用數(shù)字或英文,或者兩者混合,節(jié)省顯示屏的點(diǎn)陣數(shù)。另外,QR Code有四種糾錯級別,分別為“L”、“M”、“Q”、“H”,從左至右糾錯級別依次提高,對于同一版本的QR Code,糾錯級別越高,可以存儲的字符數(shù)越少[5],線控器動態(tài)二維碼可以根據(jù)實(shí)際情況選擇合適的糾錯級別,如果線控器的顯示屏有背光且顯示的二維碼很清晰,可以選擇較低的糾錯級別,否則應(yīng)該選擇較高的糾錯級別,保證手機(jī)能正常掃描線控器二維碼。
線控器采用Libqren code軟件庫生成QR Code,Libqren code是一個用C語言編寫的高效且緊湊的免費(fèi)開源軟件庫,用于將數(shù)據(jù)編碼為QR Code符號[6]。
線控器基于qrencode-3.4.4版本的Libqren code進(jìn)行移植開發(fā),Libqren code編譯后需占用17.2k ROM和10.2 k RAM(基于MDK-ARM Professional Version: 5.18優(yōu)化等級為0時的編譯),所以需確保線控器的MCU有足夠的ROM和RAM空間。
移植好Libqren code后,在應(yīng)用程序中定義一個QR code結(jié)構(gòu)體類型的指針變量,用于存儲二維碼的版本、寬度(即縱向和橫向碼元數(shù))和數(shù)據(jù),調(diào)用QR code_encodeString()對需生成二維碼的字符串進(jìn)行編碼,并將編碼后的數(shù)據(jù)存儲到定義的QR code類型變量中。調(diào)用QR code_encodeString()時需輸入二維碼的版本、糾錯級別、編碼模式、是否區(qū)分大小寫,根據(jù)實(shí)際情況進(jìn)行賦值,二維碼版本賦值為0時,QR Code編碼算法會根據(jù)實(shí)際的字符數(shù)自動計算所需的版本。
QR Code編碼完成后,根據(jù)編碼后QR code類型變量存儲的二維碼寬度和數(shù)據(jù)進(jìn)行數(shù)據(jù)解析并顯示到點(diǎn)陣屏,對應(yīng)的碼元數(shù)據(jù)為0時顯示白色點(diǎn),碼元數(shù)據(jù)為1時顯示黑色點(diǎn)。根據(jù)點(diǎn)陣屏的分辨率和像素點(diǎn)的大小,可以用一個像素點(diǎn)或多個像素點(diǎn)(多個像素點(diǎn)需組成一個正方形點(diǎn)陣圖案)表示一個碼元。
線控器軟件實(shí)現(xiàn)二維碼生成和顯示的流程圖如圖3所示。
圖3 線控器二維碼生成和顯示軟件實(shí)現(xiàn)流程圖
為了保證用戶空調(diào)機(jī)組設(shè)備信息的安全性,防止設(shè)備信息被他人通過線控器二維碼惡意獲取和利用,線控器采用AES加密算法對二維碼中的內(nèi)機(jī)條碼數(shù)據(jù)進(jìn)行加密,即線控器二維碼中的內(nèi)機(jī)條碼數(shù)據(jù)是經(jīng)過AES加密后的數(shù)據(jù),其他不存在安全風(fēng)險的數(shù)據(jù)無需加密。AES(Advanced Encryption Standard,高級加密標(biāo)準(zhǔn))是一種廣泛使用的數(shù)據(jù)加密算法,具有安全、高效的良好性能,可以通過C語言實(shí)現(xiàn)[7],對MCU資源占用小,適用于多聯(lián)機(jī)線控器的單片機(jī)平臺。
手機(jī)微信掃描線控器二維碼后,微信小程序獲取到的是經(jīng)過加密的內(nèi)機(jī)條碼數(shù)據(jù),需通過加密時相同的密鑰進(jìn)行AES數(shù)據(jù)解密,再利用解密后的內(nèi)機(jī)條碼從服務(wù)器獲取對應(yīng)空調(diào)機(jī)組的信息。
根據(jù)空調(diào)的運(yùn)行狀態(tài)和使用人群,我們將動態(tài)二維碼顯示分為幾種場景:正常場景、故障場景、保養(yǎng)場景、售后場景和調(diào)試場景,如圖4所示。多聯(lián)機(jī)室外機(jī)和室內(nèi)機(jī)在不同運(yùn)行狀態(tài)下,發(fā)送不同的狀態(tài)數(shù)據(jù)給對應(yīng)的線控器,線控器再動態(tài)生成并顯示對應(yīng)場景的二維碼。
圖4 多聯(lián)機(jī)動態(tài)二維碼的應(yīng)用場景
空調(diào)正常運(yùn)行時,線控器顯示正常場景二維碼,二維碼包含空調(diào)機(jī)組的條碼,手機(jī)微信掃描二維碼后進(jìn)入微信小程序主頁后,直接就能看到該室內(nèi)機(jī)型號對應(yīng)的產(chǎn)品頁面,可以快速查看機(jī)型信息和說明書、查找附近商家或聯(lián)系客服、進(jìn)入產(chǎn)品配件商城、了解商家和品牌信息、反饋產(chǎn)品使用意見等。
空調(diào)有故障時,線控器顯示故障代碼和故障場景二維碼,二維碼包含空調(diào)故障信息,掃描故障場景二維碼后可以直接進(jìn)入微信小程序的故障指引頁面,用戶可以查看對應(yīng)故障的詳細(xì)說明,并通過該頁面進(jìn)入空調(diào)報修頁面,實(shí)現(xiàn)快速故障報修,還可查詢維修進(jìn)度和收費(fèi)標(biāo)準(zhǔn)。
空調(diào)需要保養(yǎng)時,線控器顯示保養(yǎng)提醒圖標(biāo)和保養(yǎng)場景二維碼,二維碼包含空調(diào)機(jī)組的保養(yǎng)信息,掃描保養(yǎng)場景二維碼后可以直接進(jìn)入微信小程序的空調(diào)保養(yǎng)預(yù)約頁面,用戶可以快速查看保養(yǎng)項(xiàng)目、收費(fèi)標(biāo)準(zhǔn),并進(jìn)行服務(wù)預(yù)約。
對于售后人員,在安裝調(diào)試或維修保養(yǎng)多聯(lián)機(jī)過程中,可以通過線控器隱藏的特殊操作(防止普通用戶操作),讓整個多聯(lián)機(jī)系統(tǒng)中的所有線控器顯示售后或調(diào)試場景二維碼。售后人員掃描售后場景二維碼后,進(jìn)入微信小程序的售后服務(wù)頁面,可以快速獲取機(jī)組條碼信息(用于機(jī)組解密或信息確認(rèn)),方便地查看對應(yīng)空調(diào)機(jī)型的故障排查指南、技術(shù)服務(wù)手冊、服務(wù)收費(fèi)標(biāo)準(zhǔn)、維修保養(yǎng)操作規(guī)范等,極大提高售后服務(wù)的效率。另外,多聯(lián)機(jī)如果用到集控系統(tǒng),需要將每臺室內(nèi)機(jī)的編號和所在房間對應(yīng)起來,售后人員調(diào)試的時候掃描調(diào)試場景二維碼,可以快速錄入室內(nèi)機(jī)編號和房間號的對應(yīng)信息,方便了多聯(lián)機(jī)集控系統(tǒng)的安裝調(diào)試。
對于有WiFi聯(lián)網(wǎng)模塊的多聯(lián)機(jī),需要對WiFi模塊進(jìn)行配網(wǎng)(連接路由器),通過手機(jī)掃描動態(tài)二維碼獲取WiFi設(shè)備信息,微信小程序直接彈出配網(wǎng)界面,輸入路由器的WiFi賬號密碼后即可完成快速配網(wǎng),省略了繁瑣的手動選擇WiFi設(shè)備的步驟。
多聯(lián)機(jī)聯(lián)網(wǎng)后掃描不同線控器的二維碼可以快速綁定室內(nèi)機(jī)和房間的對應(yīng)關(guān)系,解決了多聯(lián)機(jī)聯(lián)網(wǎng)后難以將不同室內(nèi)機(jī)和房間一一對應(yīng)的問題,輕松實(shí)現(xiàn)手機(jī)遠(yuǎn)程控制多聯(lián)機(jī)空調(diào)。
基于動態(tài)二維碼的多聯(lián)機(jī)聯(lián)網(wǎng)系統(tǒng)框圖如圖5所示。
圖5 基于動態(tài)二維碼的多聯(lián)機(jī)聯(lián)網(wǎng)系統(tǒng)框圖
另外,如果多聯(lián)機(jī)連接了分戶計費(fèi)系統(tǒng),用戶需要向物業(yè)查詢用電費(fèi)用和繳交電費(fèi)[8],基于上述多聯(lián)機(jī)聯(lián)網(wǎng)系統(tǒng),用戶可以很方便查詢和繳納電費(fèi),只需掃描線控器的動態(tài)二維碼,就可以通過微信小程序查詢對應(yīng)室內(nèi)機(jī)的用電情況,并進(jìn)行電費(fèi)繳交。
在多聯(lián)機(jī)空調(diào)線控器上生成并顯示包含機(jī)組信息的動態(tài)二維碼,讓用戶很方便地掃描二維碼,進(jìn)入微信小程序獲取豐富的產(chǎn)品增值功能和服務(wù),極大方便了用戶使用多聯(lián)機(jī)空調(diào),同時也方便了售后人員安裝、調(diào)試、維修和保養(yǎng)多聯(lián)機(jī)。
動態(tài)二維碼在多聯(lián)機(jī)上的應(yīng)用,不但提升了多聯(lián)機(jī)空調(diào)使用的用戶體驗(yàn),而且拉近了商家和產(chǎn)品跟用戶之間的距離,除了本文闡述的應(yīng)用場景,基于線控器二維碼的動態(tài)性和可擴(kuò)展性,動態(tài)二維碼在多聯(lián)機(jī)系統(tǒng)中將會有更廣闊的應(yīng)用前景,并且動態(tài)二維碼的應(yīng)用也可以推廣到其他帶顯示屏的電器設(shè)備當(dāng)中。