吳可測(cè),陳偉漢,毋茂盛
(肇慶學(xué)院 計(jì)算機(jī)學(xué)院,廣東 肇慶 526061)
隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的發(fā)展,手機(jī)已經(jīng)變成了人們生活的標(biāo)配,基于手機(jī)的各種家庭智能化控制技術(shù)也成了工程師們研究的熱點(diǎn)[1-3]。隨著物流行業(yè)的快速發(fā)展,目前使用手機(jī)進(jìn)行購物和點(diǎn)餐已成了許多人的生活習(xí)慣。據(jù)中國(guó)互聯(lián)網(wǎng)信息中心(CNNIC)發(fā)布的《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至2020年3月,我國(guó)手機(jī)網(wǎng)絡(luò)購物用戶規(guī)模達(dá)7.07億,較2018年底增長(zhǎng)1.16億。外賣的訂單也同樣在快速地增長(zhǎng)[4]。因此,如何及時(shí)接收到快遞和外賣的問題變得日益突出[5]。
為了解決這個(gè)問題,本文設(shè)計(jì)了一個(gè)用手機(jī)遠(yuǎn)程控制的可升降快遞外賣接收系統(tǒng)。當(dāng)物品的主人不在家或因腿腳不方便下樓時(shí),可以通過手機(jī)的APP控制收納箱從樓上放下,然后通過升降裝置將快遞物品運(yùn)至主人家中,實(shí)現(xiàn)遠(yuǎn)程接收快遞或外賣等物品。
系統(tǒng)主要由阿里云服務(wù)器、手機(jī)APP、控制電路、收納箱、升降裝置等組成,具體結(jié)構(gòu)如圖1所示。服務(wù)器端包括服務(wù)器控制程序和數(shù)據(jù)庫;手機(jī)端包括基于安卓系統(tǒng)的手機(jī)及APP;控制電路部分包括主控電路和控制程序;收納箱部分包括雙控門箱子、傳感器、控制電路板及相關(guān)控制程序;升降裝置包括電機(jī)、牽引線以及相關(guān)硬件電路等。

圖1 系統(tǒng)整體結(jié)構(gòu)
(1)手機(jī)APP進(jìn)入綁定模塊,通過掃描特定二維碼實(shí)現(xiàn)與主控電路的通信,并將家中路由器的名字與密碼發(fā)送給主控電路;然后,通過無線方式分別與路由器和收納箱進(jìn)行連接。收納箱通過主控電路實(shí)現(xiàn)與服務(wù)器的通信,將實(shí)時(shí)狀態(tài)與視頻信息發(fā)給服務(wù)器。收納箱與主控電路通過輪詢的方式不斷獲取服務(wù)器的指令信息,并執(zhí)行響應(yīng)的動(dòng)作。
(2)手機(jī)APP注冊(cè)賬戶并登錄后,服務(wù)器中的數(shù)據(jù)庫會(huì)保存用戶的注冊(cè)信息。APP在運(yùn)行時(shí)通過輪詢服務(wù)器來獲取設(shè)備的當(dāng)前狀態(tài),并將狀態(tài)實(shí)時(shí)顯示在手機(jī)上。同時(shí),當(dāng)用戶點(diǎn)擊功能按鈕后,APP會(huì)向服務(wù)器發(fā)出對(duì)應(yīng)指令。在設(shè)備下一次輪詢后將執(zhí)行服務(wù)器中的指令,并將執(zhí)行結(jié)果返回給服務(wù)器,最終通過APP進(jìn)行顯示。
電子收納箱控制電路主要由圖像采集模塊、主控電路、門控制模塊和狀態(tài)檢測(cè)模塊等組成。門控制模塊由步進(jìn)電機(jī)、電鎖和傳統(tǒng)機(jī)械鎖等組成。電子收納箱硬件結(jié)構(gòu)如圖2所示。
2.1.1 主控電路板開發(fā)
主控電路板的功能主要是負(fù)責(zé)控制收納箱開關(guān)門單元、指示燈單元、傳感器單元以及啟停圖像采集模塊,并負(fù)責(zé)與服務(wù)器的WiFi通信。圖像采集模塊主要由硬件電路及專用攝像頭組成,負(fù)責(zé)采集圖像信息,并將信息上傳至服務(wù)器。開關(guān)門單元由步進(jìn)電機(jī)、傳統(tǒng)鎖和電鎖等組成,實(shí)現(xiàn)收納箱門的自動(dòng)打開和關(guān)閉。

圖2 硬件結(jié)構(gòu)設(shè)計(jì)框圖
主控電路板采用ESP32作為控制器。該芯片是一款高集成度、高性價(jià)比、功耗超低、主打安全的單核WiFi SoC,其除了含有CPU外,還集成了2.4 GHz WiFi、藍(lán)牙模塊、豐富的 I/O口以及ROM、SRAM等,穩(wěn)定性好、可靠性高,適用于多種應(yīng)用場(chǎng)景[6-8],使用方便,功能強(qiáng)大。ESP32通過內(nèi)置WiFi功能與路由器相連,實(shí)現(xiàn)與服務(wù)器通信。本設(shè)計(jì)中,主控電路通過串行口與圖像采集模塊進(jìn)行通信,使用了8個(gè)I/O口,其中5個(gè)為輸出,分別用于控制電鎖開關(guān)、步進(jìn)電機(jī)脈沖、旋轉(zhuǎn)方向、步進(jìn)電機(jī)電源和WiFi指示燈;另外3個(gè)為輸入,分別用于檢測(cè)開關(guān)門狀態(tài)、攝像頭狀態(tài)和WiFi重置按鈕。
2.1.2 圖像采集模塊
圖像采集模塊通過串口與主控芯片進(jìn)行通信,完成WiFi配置、指令接收和狀態(tài)返回。當(dāng)接收到APP發(fā)出視頻采集指令時(shí),圖像采集模塊啟動(dòng),并通過服務(wù)器將圖像信息傳到手機(jī)APP上。
2.1.3 門控制模塊
門控制模塊由傳統(tǒng)機(jī)械鎖、電控鎖、電機(jī)、牽引線、傳感器等組成。當(dāng)設(shè)備發(fā)生故障或者停電時(shí),物主可以通過傳統(tǒng)方法開鎖;電鎖用于遠(yuǎn)程的開、關(guān)收納箱;傳感器用于采集門的當(dāng)前狀態(tài)信息。
本設(shè)計(jì)中,服務(wù)器采用的是阿里ECS服務(wù)器,部署Tomcat、MySQL數(shù)據(jù)庫和搭建nginx-rtmp環(huán)境,進(jìn)行視頻推流,并使用Java編寫服務(wù)器代碼。
2.2.1 創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫包括:添加用戶信息表,存儲(chǔ)客戶信息,如賬號(hào)、密碼、密保、電話、地址等;添加指令表,存放控制收納箱及攝像頭的指令及狀態(tài)。
2.2.2 Web程序設(shè)計(jì)
本文采用JDBC的方法編寫控制數(shù)據(jù)庫操作代碼,實(shí)現(xiàn)手機(jī)APP的在線注冊(cè)、登錄、修改密碼以及傳送指令等功能。獲取指令代碼程序段如下:

升降裝置模塊包括升降機(jī)電結(jié)構(gòu)與控制驅(qū)動(dòng)電路等。驅(qū)動(dòng)電路通過服務(wù)器獲取升降指令,然后,通過驅(qū)動(dòng)升降無刷電機(jī)來實(shí)現(xiàn)收納箱的升降,并將設(shè)備狀態(tài)回傳給服務(wù)器。
2.3.1 收納箱控制電路板設(shè)計(jì)
收納箱控制電路板同樣使用ESP32作為控制器,主要負(fù)責(zé)獲取指令并驅(qū)動(dòng)電機(jī),同時(shí),作為收納箱的中繼通信電路,轉(zhuǎn)發(fā)相關(guān)的指令。
2.3.2 機(jī)械裝置
機(jī)械裝置主要由固定支架、無刷電機(jī)、絞盤、緩沖結(jié)構(gòu)、滑輪和纜繩等組成,整體結(jié)構(gòu)如圖3所示。無刷電機(jī)為箱子升降的提供力量。緩沖結(jié)構(gòu)主要用于減少在箱子收回時(shí)電機(jī)的持續(xù)作用力對(duì)裝置的性能影響;同時(shí),用于化解啟停時(shí)產(chǎn)生的抖動(dòng),確保箱子可以平穩(wěn)升降。絞盤、滑輪和纜繩組成了一個(gè)基本的滑輪組結(jié)構(gòu)。

圖3 牽引收納箱機(jī)械結(jié)構(gòu)
本系統(tǒng)的APP編程主要基于安卓系統(tǒng),使用Java語言編程。Java支持Internet應(yīng)用的開發(fā),提供了網(wǎng)絡(luò)應(yīng)用編程的類庫等[9]。APP主要功能包括:設(shè)備綁定模塊、用戶信息模塊和設(shè)備控制模塊。其中設(shè)備綁定模塊可以通過掃描二維碼建立與設(shè)備的通信,并通過APP直接設(shè)置設(shè)備的路由名稱和密碼。用戶信息模塊包括:登錄注冊(cè)、找回和修改密碼等功能。設(shè)備控制模塊APP可通過服務(wù)器獲取設(shè)備狀態(tài)信息并顯示,也可通過APP發(fā)出命令,經(jīng)過服務(wù)器后控制設(shè)備開關(guān)門、啟停攝像頭等。APP 功能框圖如圖4所示。

圖4 手機(jī)APP設(shè)計(jì)框圖
2.4.1 用戶信息處理
用戶信息模塊基本功能包括:注冊(cè)、登錄、密碼修改等。用戶將APP輸入的用戶信息通過網(wǎng)絡(luò)上傳給服務(wù)器保存。用戶也可以通過修改窗口對(duì)自己已上傳的信息進(jìn)行修改。APP與服務(wù)器通信部分代碼如下:

2.4.2 綁定設(shè)備程序設(shè)計(jì)
這個(gè)功能主要用于給設(shè)備設(shè)置路由的名稱和密碼。設(shè)備在初始時(shí)為熱點(diǎn)模式,APP可通過掃描二維碼獲取設(shè)備熱點(diǎn)名稱與密碼,并進(jìn)行連接通信。掃碼配置部分代碼如下:

2.4.3 控制設(shè)備程序設(shè)計(jì)
控制界面包括顯示區(qū)域和控制區(qū)域。頂部是攝像頭和門狀態(tài)的指示燈,中間是視頻顯示區(qū)域,下方是各個(gè)功能控制按鈕。程序運(yùn)行界面如圖5所示。
APP通過不斷輪詢服務(wù)器方法[10]獲取設(shè)備的實(shí)時(shí)狀態(tài)。APP在控制設(shè)備時(shí),如發(fā)現(xiàn)某個(gè)按鈕被按下,對(duì)應(yīng)的命令就會(huì)被發(fā)送給服務(wù)器,指令會(huì)被保存在對(duì)應(yīng)的數(shù)據(jù)庫中。部分APP輪詢代碼如下:


圖5 程序運(yùn)行界面
本文設(shè)計(jì)了一個(gè)可升降快遞、外賣收納箱遠(yuǎn)程監(jiān)控系統(tǒng),可以通過手機(jī)遠(yuǎn)程接收快遞和外賣。經(jīng)過團(tuán)隊(duì)的努力,已將設(shè)備圖像延時(shí)控制在了3 s以內(nèi)。本系統(tǒng)研究的技術(shù)除了用于接收外賣和快遞外,還可以將上街采購的小件物品如購置的菜和小袋面粉自動(dòng)運(yùn)到家中,對(duì)住樓梯房的老年人特別有用。如果加大驅(qū)動(dòng)力量并加裝安全裝置,甚至可以用作私人電梯。