劉永濤 孫瑞志 王見 劉佳 郭昉
摘? 要: 共享睡眠艙作為最近兩年興起的一個物聯(lián)網(wǎng)應(yīng)用設(shè)備,從產(chǎn)生之初就存在著一些政策和技術(shù)方面的問題,諸如實名認(rèn)證、艙內(nèi)人員檢測、公共衛(wèi)生及消防安全等問題。針對此類問題設(shè)計了一種共享睡眠艙的整體應(yīng)用解決方案,采用中移物聯(lián)云服務(wù)器,基于NodeMCU物聯(lián)網(wǎng)平臺eLua開源項目,底層使用ESP8266 sdk完成了系統(tǒng)平臺設(shè)計,解決了用戶使用微信掃描二維碼技術(shù),通過小程序即可完成睡眠艙的使用,達(dá)到了方便、快捷、安全、衛(wèi)生的目的。
關(guān)鍵詞: 共享睡眠艙; 智能感知; 邊緣計算; 中移物聯(lián)網(wǎng); 云服務(wù)器; NodeMCU
中圖分類號: TN99?34? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標(biāo)識碼: A? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)11?0033?04
Research and design of shared sleeping cabin system based on CMIOT
LIU Yongtao1, 2, SUN Ruizhi1, WANG Jian3, LIU Jia2, GUO Fang2
(1. College of Information and Electrical Engineering, China Agricultural University, Beijing 100083, China;
2. North China Institute of Science and Technology, Beijing 065201, China;
3. Beijing Weibo Yidao Network Technology Co., Ltd., Beijing 100035, China)
Abstract: As an Internet of Things (IOT) application device that has emerged in the last two years, the shared sleeping cabin has been troubled by some policy and technical issues since its inception, such as real?name authentication, in?cabin personnel detection, public health and fire safety. In view of the above, an overall application solution of shared sleeping cabin is designed, and the system platform design is completed on the basis of the cloud server of China Mobile IOT (CMIOT), the open source project of eLua based NodeMCU IOT platform and ESP8266 sdk adopted in the bottom layer, which enables users to scan the two?dimensional code with WeChat. Therefore, the users can use the sleeping cabin by a mini program, which achieves the purposes of convenience, high?speed, safety and hygiene.
Keywords: sharing sleeping cabin; intelligent perception; edge computing; CMIOT; cloud server; NodeMCU
0? 引? 言
隨著城市人口的增加,工作節(jié)奏的加快,人們越來越需要一個可以隨時隨地休息的場所,城市工作人員在午后,只能在桌子上趴著睡覺,既不雅觀,也不舒服。在健康生活方式的追求下,共享睡眠艙應(yīng)運而生。
共享經(jīng)濟模式能夠極大地促進社會的進步與資源的有效利用,因此,基于互聯(lián)網(wǎng)+的共享經(jīng)濟應(yīng)用迅速發(fā)展[1]。共享睡眠艙能夠提供24 h在線服務(wù),用戶只需掃碼付費就能享受到一個高質(zhì)量的睡眠時光。目前,現(xiàn)有共享睡眠艙并沒有相匹配的智能化監(jiān)控設(shè)備,由于共享睡眠艙為封閉式且內(nèi)部空間狹小,沒有一種有效的智能化監(jiān)控設(shè)備,造成管理、安全、衛(wèi)生上的缺陷。針對以上情況設(shè)計一種共享睡眠艙的控制系統(tǒng),可以實現(xiàn)艙內(nèi)人體檢測,艙內(nèi)煙霧火災(zāi)報警,紫外線殺菌,艙內(nèi)換氣,艙體電磁鎖監(jiān)控,艙體狀態(tài)指示,通過4G/WiFi技術(shù)實現(xiàn)遠(yuǎn)程監(jiān)控和計費管理等功能。
1? 睡眠艙總體結(jié)構(gòu)設(shè)計
共享睡眠艙的整體實現(xiàn)分為三層結(jié)構(gòu):
1) 物理層完成一組上下兩個睡眠艙的檢測和控制;
2) 網(wǎng)絡(luò)層可以通過WiFi信號放大器連接到設(shè)備場地WiFi,在場地WiFi信號不好的情況下可以通過工業(yè)4G轉(zhuǎn)WiFi流量模塊最終鏈接至后臺服務(wù)器;
3) 系統(tǒng)層通過云服務(wù)器作為后臺,保證系統(tǒng)穩(wěn)定和數(shù)據(jù)安全。
各層結(jié)構(gòu)如圖1所示。
由于目前一些地方政策要求睡眠艙不允許安裝在公共場所開放使用,因此,采取與各個公司合作,免費提供給有場地安放且對睡眠休息有需求的公司。共享睡眠艙的安放要求有一定的隱私性且不會對公司辦公場地造成影響,一般安放在邊角或者獨立的小房間里面。這樣的放置環(huán)境往往WiFi信號不理想,并且為了管理方便全部統(tǒng)一采用WiFi信號放大器,這樣可以和4G?WiFi模塊采用統(tǒng)一的賬號及密碼,方便系統(tǒng)設(shè)置。
系統(tǒng)設(shè)計從用戶角度出發(fā),盡量簡化流程和提高用戶體驗。第一次使用者只需要打開微信掃一掃或者安裝睡眠艙小程序掃一掃,進行實名制認(rèn)證注冊,實名注冊成功后就可以開始掃碼使用了。首先掃碼打開艙門,按下自動更換床單按鍵,更換完成后進入艙內(nèi),關(guān)閉艙門開始休息。休息結(jié)束后,在艙內(nèi)按下開鍵打開艙門,出艙推動艙門上鎖,在手機端點擊結(jié)束按鈕即可完成此次消費。后臺檢測到本次消費結(jié)束后自動控制該艙內(nèi)紫外線燈,開始1 min殺菌作業(yè)。
2? 系統(tǒng)硬件結(jié)構(gòu)設(shè)計
睡眠艙中控裝置的硬件部分采用了雙處理器設(shè)計,分為主處理器和協(xié)處理器,使用的ESP8266?12F與 STM32F103RBT6之間的通信采用基于AT指令的串口通信方式[2],中控硬件結(jié)構(gòu)如圖2所示。
主處理器采用基于ESP8266?12F的NodeMCU,NodeMCU是一個開源的基于lua的固件,用于espressf的ESP8266 WiFi soc,并使用基于模塊上閃存的spiffs文件系統(tǒng)。
處理器ESP8266?12F無線模塊支持標(biāo)準(zhǔn)的IEEE 802.11b/g/n協(xié)議,此外,還集成了包括天線開關(guān)、電源管理等硬件單元,不僅能解決單個系統(tǒng)中的網(wǎng)絡(luò)連接問題,也可以避免節(jié)點到服務(wù)器通信中任何類型的故障[3]。
ESP8266 WiFi模塊總共有17個GPIO管腳,通過給這些管腳配置不同的寄存器,可以給這些管腳分配不一樣的功能,每個關(guān)鍵的狀態(tài)可以設(shè)置成三種形式,即內(nèi)部上拉、內(nèi)部下拉和高阻態(tài)。每個GPIO都可以配置為內(nèi)部上拉/下拉,或者被設(shè)置為高阻。
主處理器主要用來完成一組睡眠艙兩個艙體的電磁鎖狀態(tài)檢測和通斷控制、休息空間主門電磁鎖狀態(tài)檢測和通斷控制以及艙體內(nèi)熱釋電紅外人體檢測。艙內(nèi)電磁鎖控制開關(guān)采用雙重開艙保障,常閉觸點保證了開關(guān)按下電磁鎖強制斷電開鎖,但需要按下開關(guān)同時拉開艙門才能進行開艙操作;長開觸點經(jīng)過光電隔離電路進入處理器,當(dāng)開關(guān)按下時給予處理器信號,處理器控制電磁鎖繼電器斷電10 s,方便期間用戶進行開艙操作。
HC?SR501傳感器是基于紅外線技術(shù)的自動控制模塊,廣泛應(yīng)用于各類自動感應(yīng)電器設(shè)備外部接口領(lǐng)域中[4]。這里用于檢測艙內(nèi)是否有人以及在用戶掃碼完成并打開艙門檢測到有效信號后給電磁鎖通電。如果掃碼開門采用延時方式,由于用戶動作快慢差距較大,開鎖延時短則可能會出現(xiàn)用戶未及時開艙門又自動再次上鎖;開鎖延時長則可能會出現(xiàn)用戶進艙后由于電磁鎖未供電而無法上鎖的不良體驗,所以軟件設(shè)計采用熱釋電紅外檢測的方式,保證用戶打開艙門后電磁鎖才會供電鎖艙。
協(xié)處理器采用ARM內(nèi)核的STM32F103RBT6嵌入式處理器。嵌入式技術(shù)因其成本低廉且功能強大而廣泛應(yīng)用于物聯(lián)網(wǎng)生態(tài)的各個領(lǐng)域[5]。中控中的協(xié)處理器主要完成艙內(nèi)超重(多人)檢測,紫外線殺菌燈控制和無紡布床單的自動更換控制等功能。
睡眠艙的安放都是以一組艙體(兩艙)作為最小單元,為了配置靈活,中控模塊也采取了相應(yīng)的配套硬件結(jié)構(gòu)。
3? 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包含中控終端軟件設(shè)計、微信小程序軟件設(shè)計和服務(wù)器軟件設(shè)計。
3.1? 主處理器軟件設(shè)計調(diào)試
中控終端軟件設(shè)計中NodeMCU是在C語言中實現(xiàn)的,采用ESPlorer V0.2.0作為編譯和下載調(diào)試環(huán)境,并且是在espressf non?ossdk上分層?;贓SP8266的NodeMCU通過NodeMCU?PyFlasher?2.0加載了sdk 2.2版本固件。
主處理器軟件中首先要建立網(wǎng)絡(luò)鏈接,模塊代碼中輸入本地鏈接的WiFi賬號、密碼和中國移動物聯(lián)ID。為了系統(tǒng)標(biāo)準(zhǔn)化,系統(tǒng)的WiFi賬號和密碼進行了統(tǒng)一設(shè)置,分別寫入代碼的ssid和pwd函數(shù)中。
config = {wifi = {
ssid = "yskj",
pwd? = "yskj5151"
},
clientid = ′19938944′
}
服務(wù)器后臺在新安置網(wǎng)點需要創(chuàng)建對應(yīng)的空間,輸入空間安裝地理位置、名稱、計費規(guī)則等信息,如圖3所示。
每個模塊唯一的中移物聯(lián)ID從系統(tǒng)后臺服務(wù)器獲得后寫入模塊clinentie函數(shù)中,ID在創(chuàng)建艙體時自動生成,如圖4所示。一個ID下綁定兩個睡眠艙二維碼,分別對應(yīng)一組睡眠艙的上艙和下艙,艙碼從服務(wù)器后臺生成后打印粘貼至對應(yīng)艙體上供用戶掃描使用。
為了現(xiàn)場安裝調(diào)試方便,主處理器通過定時發(fā)送的方式向USB代碼下載口輸出兩組電磁鎖體狀態(tài)和熱釋電紅外傳感器狀態(tài)。安裝人員通過界面數(shù)據(jù)可以快速矯正電磁鎖體和熱釋電傳感器的安裝方位角度等,查詢狀態(tài)界面如圖5所示。
3.2? 服務(wù)器后臺軟件設(shè)計調(diào)試
服務(wù)器后臺監(jiān)測軟件部分主要完成開艙、結(jié)算和保修的命令監(jiān)聽,軟件流程如圖6所示。
當(dāng)有用戶掃碼開艙時,小程序或者APP端將該掃碼信息發(fā)送至服務(wù)器端,服務(wù)器收到信息后判斷該艙體是否能正常使用,若能使用,則向該艙體中控發(fā)送對應(yīng)艙體的開鎖指令,艙體收到指令后執(zhí)行開艙操作及后續(xù)工作。
當(dāng)有用戶結(jié)束訂單時,同樣小程序或者APP端將該艙碼結(jié)束訂單信息發(fā)送至服務(wù)器端,服務(wù)器收到信息后可以從圖4后臺查詢用戶是否真正離開艙體并已經(jīng)上鎖,兩者都滿足的前提下才能順利結(jié)束本次訂單消費,防止有消費者作弊。