吳可測,陳偉漢,毋茂盛
(肇慶學院 計算機學院,廣東 肇慶 526061)
隨著計算機技術(shù)和通信技術(shù)的發(fā)展,手機已經(jīng)變成了人們生活的標配,基于手機的各種家庭智能化控制技術(shù)也成了工程師們研究的熱點[1-3]。隨著物流行業(yè)的快速發(fā)展,目前使用手機進行購物和點餐已成了許多人的生活習慣。據(jù)中國互聯(lián)網(wǎng)信息中心(CNNIC)發(fā)布的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》顯示,截至2020年3月,我國手機網(wǎng)絡(luò)購物用戶規(guī)模達7.07億,較2018年底增長1.16億。外賣的訂單也同樣在快速地增長[4]。因此,如何及時接收到快遞和外賣的問題變得日益突出[5]。
為了解決這個問題,本文設(shè)計了一個用手機遠程控制的可升降快遞外賣接收系統(tǒng)。當物品的主人不在家或因腿腳不方便下樓時,可以通過手機的APP控制收納箱從樓上放下,然后通過升降裝置將快遞物品運至主人家中,實現(xiàn)遠程接收快遞或外賣等物品。
系統(tǒng)主要由阿里云服務(wù)器、手機APP、控制電路、收納箱、升降裝置等組成,具體結(jié)構(gòu)如圖1所示。服務(wù)器端包括服務(wù)器控制程序和數(shù)據(jù)庫;手機端包括基于安卓系統(tǒng)的手機及APP;控制電路部分包括主控電路和控制程序;收納箱部分包括雙控門箱子、傳感器、控制電路板及相關(guān)控制程序;升降裝置包括電機、牽引線以及相關(guān)硬件電路等。
圖1 系統(tǒng)整體結(jié)構(gòu)
(1)手機APP進入綁定模塊,通過掃描特定二維碼實現(xiàn)與主控電路的通信,并將家中路由器的名字與密碼發(fā)送給主控電路;然后,通過無線方式分別與路由器和收納箱進行連接。收納箱通過主控電路實現(xiàn)與服務(wù)器的通信,將實時狀態(tài)與視頻信息發(fā)給服務(wù)器。收納箱與主控電路通過輪詢的方式不斷獲取服務(wù)器的指令信息,并執(zhí)行響應(yīng)的動作。
(2)手機APP注冊賬戶并登錄后,服務(wù)器中的數(shù)據(jù)庫會保存用戶的注冊信息。APP在運行時通過輪詢服務(wù)器來獲取設(shè)備的當前狀態(tài),并將狀態(tài)實時顯示在手機上。同時,當用戶點擊功能按鈕后,APP會向服務(wù)器發(fā)出對應(yīng)指令。在設(shè)備下一次輪詢后將執(zhí)行服務(wù)器中的指令,并將執(zhí)行結(jié)果返回給服務(wù)器,最終通過APP進行顯示。
電子收納箱控制電路主要由圖像采集模塊、主控電路、門控制模塊和狀態(tài)檢測模塊等組成。門控制模塊由步進電機、電鎖和傳統(tǒng)機械鎖等組成。電子收納箱硬件結(jié)構(gòu)如圖2所示。
2.1.1 主控電路板開發(fā)
主控電路板的功能主要是負責控制收納箱開關(guān)門單元、指示燈單元、傳感器單元以及啟停圖像采集模塊,并負責與服務(wù)器的WiFi通信。圖像采集模塊主要由硬件電路及專用攝像頭組成,負責采集圖像信息,并將信息上傳至服務(wù)器。開關(guān)門單元由步進電機、傳統(tǒng)鎖和電鎖等組成,實現(xiàn)收納箱門的自動打開和關(guān)閉。
圖2 硬件結(jié)構(gòu)設(shè)計框圖
主控電路板采用ESP32作為控制器。該芯片是一款高集成度、高性價比、功耗超低、主打安全的單核WiFi SoC,其除了含有CPU外,還集成了2.4 GHz WiFi、藍牙模塊、豐富的 I/O口以及ROM、SRAM等,穩(wěn)定性好、可靠性高,適用于多種應(yīng)用場景[6-8],使用方便,功能強大。ESP32通過內(nèi)置WiFi功能與路由器相連,實現(xiàn)與服務(wù)器通信。本設(shè)計中,主控電路通過串行口與圖像采集模塊進行通信,使用了8個I/O口,其中5個為輸出,分別用于控制電鎖開關(guān)、步進電機脈沖、旋轉(zhuǎn)方向、步進電機電源和WiFi指示燈;另外3個為輸入,分別用于檢測開關(guān)門狀態(tài)、攝像頭狀態(tài)和WiFi重置按鈕。
2.1.2 圖像采集模塊
圖像采集模塊通過串口與主控芯片進行通信,完成WiFi配置、指令接收和狀態(tài)返回。當接收到APP發(fā)出視頻采集指令時,圖像采集模塊啟動,并通過服務(wù)器將圖像信息傳到手機APP上。
2.1.3 門控制模塊
門控制模塊由傳統(tǒng)機械鎖、電控鎖、電機、牽引線、傳感器等組成。當設(shè)備發(fā)生故障或者停電時,物主可以通過傳統(tǒng)方法開鎖;電鎖用于遠程的開、關(guān)收納箱;傳感器用于采集門的當前狀態(tài)信息。
本設(shè)計中,服務(wù)器采用的是阿里ECS服務(wù)器,部署Tomcat、MySQL數(shù)據(jù)庫和搭建nginx-rtmp環(huán)境,進行視頻推流,并使用Java編寫服務(wù)器代碼。
2.2.1 創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫包括:添加用戶信息表,存儲客戶信息,如賬號、密碼、密保、電話、地址等;添加指令表,存放控制收納箱及攝像頭的指令及狀態(tài)。
2.2.2 Web程序設(shè)計
本文采用JDBC的方法編寫控制數(shù)據(jù)庫操作代碼,實現(xiàn)手機APP的在線注冊、登錄、修改密碼以及傳送指令等功能。獲取指令代碼程序段如下:
升降裝置模塊包括升降機電結(jié)構(gòu)與控制驅(qū)動電路等。驅(qū)動電路通過服務(wù)器獲取升降指令,然后,通過驅(qū)動升降無刷電機來實現(xiàn)收納箱的升降,并將設(shè)備狀態(tài)回傳給服務(wù)器。
2.3.1 收納箱控制電路板設(shè)計
收納箱控制電路板同樣使用ESP32作為控制器,主要負責獲取指令并驅(qū)動電機,同時,作為收納箱的中繼通信電路,轉(zhuǎn)發(fā)相關(guān)的指令。
2.3.2 機械裝置
機械裝置主要由固定支架、無刷電機、絞盤、緩沖結(jié)構(gòu)、滑輪和纜繩等組成,整體結(jié)構(gòu)如圖3所示。無刷電機為箱子升降的提供力量。緩沖結(jié)構(gòu)主要用于減少在箱子收回時電機的持續(xù)作用力對裝置的性能影響;同時,用于化解啟停時產(chǎn)生的抖動,確保箱子可以平穩(wěn)升降。絞盤、滑輪和纜繩組成了一個基本的滑輪組結(jié)構(gòu)。
圖3 牽引收納箱機械結(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è)備的路由名稱和密碼。用戶信息模塊包括:登錄注冊、找回和修改密碼等功能。設(shè)備控制模塊APP可通過服務(wù)器獲取設(shè)備狀態(tài)信息并顯示,也可通過APP發(fā)出命令,經(jīng)過服務(wù)器后控制設(shè)備開關(guān)門、啟停攝像頭等。APP 功能框圖如圖4所示。
圖4 手機APP設(shè)計框圖
2.4.1 用戶信息處理
用戶信息模塊基本功能包括:注冊、登錄、密碼修改等。用戶將APP輸入的用戶信息通過網(wǎng)絡(luò)上傳給服務(wù)器保存。用戶也可以通過修改窗口對自己已上傳的信息進行修改。APP與服務(wù)器通信部分代碼如下:
2.4.2 綁定設(shè)備程序設(shè)計
這個功能主要用于給設(shè)備設(shè)置路由的名稱和密碼。設(shè)備在初始時為熱點模式,APP可通過掃描二維碼獲取設(shè)備熱點名稱與密碼,并進行連接通信。掃碼配置部分代碼如下:
2.4.3 控制設(shè)備程序設(shè)計
控制界面包括顯示區(qū)域和控制區(qū)域。頂部是攝像頭和門狀態(tài)的指示燈,中間是視頻顯示區(qū)域,下方是各個功能控制按鈕。程序運行界面如圖5所示。
APP通過不斷輪詢服務(wù)器方法[10]獲取設(shè)備的實時狀態(tài)。APP在控制設(shè)備時,如發(fā)現(xiàn)某個按鈕被按下,對應(yīng)的命令就會被發(fā)送給服務(wù)器,指令會被保存在對應(yīng)的數(shù)據(jù)庫中。部分APP輪詢代碼如下:
圖5 程序運行界面
本文設(shè)計了一個可升降快遞、外賣收納箱遠程監(jiān)控系統(tǒng),可以通過手機遠程接收快遞和外賣。經(jīng)過團隊的努力,已將設(shè)備圖像延時控制在了3 s以內(nèi)。本系統(tǒng)研究的技術(shù)除了用于接收外賣和快遞外,還可以將上街采購的小件物品如購置的菜和小袋面粉自動運到家中,對住樓梯房的老年人特別有用。如果加大驅(qū)動力量并加裝安全裝置,甚至可以用作私人電梯。