董立國,王文蓉
(廣州科技貿易職業學院智能制造學院,廣州 511442)
根據最新的人口普查,人口老齡化將成為我國人口結構的新特征。據悉,隨著老年人口的逐年增加,其在人口中的比例達到近12%。與此同時,獨生子女的比率在計劃生育的政策實施之后,也是屢創新高,并且由于社會經濟的快速改變,人民生活方式發生了巨大變化,許多年輕人為了給家庭提供更好的物質條件,不得不外出打工,也就是說,為了生計,子女根本不可能留在家里照顧年邁的父母,導致“空巢老人雙雙離世無人知曉”的事件屢有發生。為了避免類似事件發生,必須重視空巢老人的生活,使老人的生活質量得到提升,使其過上便捷、安全、健康的老年生活,那么研究一款智能的關愛老人助手系統,是具有迫切性和必要性的。
目前,市面上的關愛老人產品,功能都較為單一,且操作繁瑣,受年齡或知識等客觀因素限制,老人群體不愿使用諸如此類的關愛產品。另外,為了滿足老人日常的多種需求,多款產品交叉使用,更增加了該群體的使用難度,令老年人苦不堪言。為了迎合老年人群的特殊需求,該設計以移動電話App 為切入點,以語音識別及指紋識別來保證其操作的簡便性,利用ZigBee、WiFi、4G 等通信技術的各自優點,保障關愛功能的實現。最終開發的系統集合了多種功能,最大程度滿足關愛老人的各種需求,也使老年人對智能產品的操作變得得心應手。
系統總體設計方案如圖1所示。
圖1 系統功能框圖Fig.1 System functional block diagram
按照實際需求確定該助手具有個人信息、數據采集、家電控制、追蹤定位、監控等5 個功能子系統,具體如下:個人信息子系統通過移動電話App 注冊及存儲個人信息;數據采集子系統利用傳感器采集相關數據;家電控制子系統通過語音識別能控制相關家電的開啟與關閉;追蹤定位子系統能確定老人的位置,防止老人丟失;安全子系統包括實時監控老人的生活起居、指紋智能開鎖和防盜竊。按照上述功能,確定硬件結構如圖2所示。
圖2 系統硬件結構框圖Fig.2 System hardware structure block diagram
(1)主控單元:項目根據節約開發成本、具有較高性價比、能夠連接較多的外設等來選擇主控單元,最終選取了STM32F439作為項目主控單元[1-2]。
(2)通信模塊:在搭建物聯網組網過程中,項目選取目前能夠組網數量較多的ZigBee 作為組網通信技術[3-4]。為了使移動電話App與硬件設備實現通信,項目選用WiFi 與4G 兩種通信技術保障兩者通信;WiFi 模塊則是選取億佰特ESP8266,從而簡化了WiFi 功能的設計,加速了產品上市[5];ZigBee 技術的芯片選取要求為具有通信穩定性好,性價比高,最終選擇了某公司的CC2530[6]。
(3)傳感器:用熱釋電紅外感應模塊檢測是否有人通過門窗入門行竊,其型號為HC-SR501;為了檢測空氣中可燃氣體濃度,最終選擇了MQ-2 型煙霧傳感器;檢測溫度濕度選用型號為HTU21的傳感器。
(4)指紋與語音識別:指紋識別采用光學指紋識別模塊AS608;語音識別模塊型號為LD3320。
通過以上方案論證的選型,最終確定了系統的硬件組成結構,具體如圖3所示。
圖3 系統硬件連接拓撲結構Fig.3 System hardware connection topology
按照功能設計[7],移動電話App 的具體功能如圖4所示。
圖4 移動電話App功能框圖Fig.4 Mobile App functional block diagram
根據設計要求,來進行相關的軟件開發。下面將具體闡述主要的軟件開發內容。
在項目中,http 服務器和TCP 服務端軟件組成了私有云服務器。其中,TCP 服務端軟件程序流程如圖5 所示。該服務端軟件主要通過SOCKET 套接字的API 獲取TCP/IP 五層模型協議中的傳輸層的TCP 協議,通過6001端口創建TCP 服務端,并且通過線程等待TCP 客戶端的連接,當TCP 客戶端請求連接時,TCP 服務端則進行請求accept 操作,并且創建線程,進行對應客戶端的數據收發。
圖5 TCP服務端軟件程序流程Fig.5 TCP server software program flow chart
通過socket 套接字編程,獲取傳輸層的TCP 傳輸協議,從而進行用戶層的業務邏輯處理,利用內核空間網絡通信軟件的支持,最終將處理結果發送到API 即可,其中該API為ESP8266自帶的封裝接口。
在軟件設計過程中,需要考慮攝像頭被多個線程訪問的情況,互斥和同步問題成為設計的關鍵。利用互斥體和讀寫鎖的方法,解決了上述問題。對寫鎖和讀鎖同時進行上鎖操作,來解決緩沖區從視頻設備中取圖片的操作,圖片獲取完畢后再釋放讀鎖。為了解決多線程的互斥問題[8-9],采取其中一個線程需要獲取圖片時,則對互斥體進行上鎖操作,當這個線程獲取完圖片后,對互斥體進行解鎖操作,應用程序流程如圖6所示。
圖6 網絡視頻傳輸應用軟件程序流程Fig.6 Network video transmission applicationsoftware program flow chart
結合串口通信、網絡通信和視頻采集的技術,開發了多重門禁識別軟件。當有人按下門前的指紋模塊,系統將進行指紋配對,如果成功,主控單元通過串口向WiFi 模塊發出人臉識別指令,攝像頭接收指令后將進行人臉信息采集,并將該信息發送給WiFi模塊。WiFi模塊通過串口收到信息后,解析請求信息獲得家庭編號并通過http 請求SDK 向API 圖片地址發出GET 請求,解析返回結果,如果返回結果為0 則向主控單元發出允許開門信息,否則發出拒絕開門信息。應用程序流程如圖7所示。
圖7 多重門禁識別應用程序流程Fig.7 Flowchart of multiple accesscontrol recognition application program
在該模塊設計中,通過安卓HTTP,請求SDK 向視頻監控WEB_API發出GET請求,與此同時創建線程。在線程中循環接收視頻服務端發送的buf 字節數組,對buf字節數組進行http 響應解析,解析出JPG 格式圖片數據,并把圖片數據顯示在安卓的SurfaceView 控件中。應用程序流程如圖8所示。
圖8 安卓視頻監控應用程序流程Fig.8 Flow chart of android video surveillance application
為了驗證系統性能,進行了軟硬件之間的聯調聯試,以此來查看各個模塊之間的通信狀況、功能狀況等是否正常。關愛老人助手系統實物如圖9 所示。
圖9 系統實物Fig.9 System physical map
系統上電后,WiFi 模塊會自動連接先前設置好的無線路由器。與此同時,移動電話也通過WiFi連接無線路由器,打開關愛老人助手移動電話App 并且登陸用戶。在硬件端,同時觸碰兩個裝置在門窗外的紅外傳感器,此時,移動電話App 會在通知欄彈出室內老人危險的通知,點擊此通知即可查看室內的視頻監控,通過代碼打印的調試信息可以查看到視頻監控的顯示幀數在29~31幀/s 之間,而人體能識別的不卡頓的幀率在24 幀/s,因此查看到的視頻監控肉眼是無法感覺到卡頓。經過測試,功能與預期效果相符。如圖10所示。
圖10 視頻監控測試Fig.10 Video surveillance test chart
多重門禁識別模塊測試中,家人對指紋識別模塊進行識別操作,當指紋識別成功后,承載著攝像頭模塊的舵機云臺會進行180°的旋轉,對開門人進行拍照驗證;當人臉識別成功后[10-12],門旁邊的白色LED 亮起(以白色LED 的亮滅表示門的開關狀態)。測試結果如表1 所示。系統經過測試后,多重門禁識別模塊軟件功能與預期效果相符。
表1 多重門禁識別測試用例Tab.1 Multiple access control recognition test case table
在移動電話App 上用戶登錄成功后,系統便會直接在數據庫中獲取相對應的燈光開關、窗簾開關、大門開關等數據的情況,并分別將得到的數據顯示在首頁相對應的位置上。于此同時,也可通過語音識別對上述開關進行控制。其測試用例表如表2所示。
表2 開關控制功能測試用例Tab.2 Switch control function test case table
在用戶登錄成功后,系統便會自動獲取位置信息,并將得到的信息顯示在相對應的頁面上。測試界面如圖11所示。
圖11 位置追蹤模塊測試界面Fig.11 Location tracking module test interface
本文設計的系統利用ZigBee、WiFi與4G等多種通信技術各自的優勢,保障了關愛功能的實現;移動電話App、語音識別、指紋識別等技術手段,使老年人群在系統操作上更為簡便,能夠較好地滿足老年群體的特殊需求;與此同時,實時監控與百度地圖的使用,起到了觀察老人起居生活的作用。可以說,系統既具有智能家居的功能,又具有安全防護的監控作用,真正實現了關愛老人。通過測試,系統的各項功能正常,且體驗感優良,是一款實用性較強的產品,具有較高的社會與經濟效益。