姚云凱
(閩江學院 數學與數據科學學院,福建 福州 350100)
據《2019年中國寵物行業白皮書》(消費報告)顯示,2019年中國城鎮寵物(犬貓)消費市場突破2 000億的關卡,整體消費規模達到2 024億元,比2018年增長18.5%。2015年—2019年5年內行業市場規模翻了2倍多,年復合增長率接近20%。從寵物類別看,寵物犬消費市場規模為1 244億元,比去年增長17.8%;寵物貓消費市場規模為780億元,增幅達19.6%,超過寵物犬消費市場規模增速。
養寵數量方面,2019年全國城鎮寵物犬貓數量達到9 915萬只,比2018年增長766萬只。其中寵物犬數量為5 503萬只,比2018年增長8.2%;寵物貓數量為4 412萬只,比2018年增長8.6%,寵物貓數量增幅超過寵物犬的增幅。
《2019年中國寵物行業白皮書》(消費報告)特別選取了一、二線的四大代表城市——北京、上海、西安、成都,并對這4個城市的養寵消費進行了調研和分析。研究顯示,北京、上海、西安、成都四大城市2019年養寵消費市場規模達486億元。一線城市是養寵消費的絕對主力,而二線城市養寵消費不斷增長。其中2019年上海養寵(犬貓)市場消費規模達197億元,位于此次調研4個城市的首位,而北京、成都和西安緊隨其后。
縱觀為寵物所設計和研發的產品,各種類別,不同型號都表現出人對寵物生活、生存狀態的密切關注。智能喂食寵物裝置通過比較當今市場現有產品,針對寵物生活需求,提出了更好更優的解決方案。通過對該課題的研究,計劃制作出一款新型的寵物喂食器,能夠對市場上的產品做出功能上的完善與創新,進而改善寵物喂食方式,可以讓寵物處于定時喂食狀態,還可以查看寵物的現狀,與寵物互動等,讓照顧寵物變得沒有距離。
該喂食器采用了物聯網遠程操控技術且在功能設計上彌補了現有寵物喂食喂水器的不足,增添新的功能創意,具有很好的商業價值和研究發展空間。
在第二屆中國北京國際寵物用品展覽會上,自動喂食器成為展示焦點,這也說明,自動化、智能化已成為寵物用品市場發展趨勢。德國特瑞士中國運營中心、青島特瑞士國際貿易有限公司此次在特裝展臺亮相,展示了多款自動喂食器等寵物用品。展商均認為,人類相關生活用品一定會向便捷化發展,自動化和智能化已成為寵物用品市場發展趨勢,而單片微機在這方面的應用帶來了“智能化”,使控制更靈活、設備更精確,并符合“綠色”電子的要求。
中國是世界寵物用品的出口大國之一,如果美國國內近十年寵物行業的發展可稱為迅猛,那么中國近十年的發展的速度則堪稱驚人。針對目前市場上喂食器功能單一、價格高昂、普及率不高等因素,令中國的大眾消費者難以接受,本設計基于單片機以人性化和關愛寵物為理念,設計了這款寵物自動喂食器。由于單片機具有體積小、速度快、抗干擾能力強、環境要求不高、性能可靠和價格低廉等優點,通常在其外部配置外圍電路就可構成一完整的控制系統,根據此特點贏得了廣泛應用,為單片機的發展奠定了基礎,成為單片機發展進程中的一個重要階段,具有良好的使用前景。
物聯網(IoT,Internet of things)即“萬物相連的互聯網”,是互聯網基礎上延伸和擴展的網絡,將各種信息傳感設備與互聯網結合起來而形成的一個巨大網絡,實現在任何時間、任何地點,人、機、物的互聯互通。物聯網的大量使用,為研究智能喂食寵物裝置提供了很好的解決方案。
喂食器作為自動控制設備及信息傳感設備,在自動執行一些任務的同時,將采集到的信息通過物聯網發送到手機App展示給人,同時,人也可通過App發送指令到喂食器,為其分配任務,使其執行喂食、上報模塊數據等操作,當然,作為智能終端,攝像頭查看寵物生活狀態,遠程與寵物娛樂等功能也均能實現,其他功能也會不斷擴展疊加。
本裝置的工作內容包含如下幾點:①壓力傳感器和擋板舵機模塊可實現對托盤上的飼料進行稱重,當達到要求重量時單片機控制擋板舵機,從而使飼料停止下落。②定時裝置可實現產品定時投放食物和水的功能。③光電傳感器與水位傳感器用來實現產品監測食物和水剩余量的功能。④攝像頭模塊是為了實時觀察寵物的情況。⑤托盤馬達模塊用來實現控制產品底部盛放食物與水的托盤的伸縮功能。⑥網絡模塊、服務器及App用來實現產品的手機端操控和觀察的功能。
喂食器以iTOP-4412作為主控制器,使用四核ARM處理器,能夠實現多線程的任務,這是單片機無法做到的。iTOP-4412核心板是迅為電子推出的一款高端四核核心板,配備三星Exynos 4412四核處理器,主頻為1.4 GHz,內置8 GB存儲空間(見圖1)。

圖1 智能喂食裝置主控制器
開發板上使用的是QT文件系統,支持交叉編譯的QT桌面應用。項目中使用到的外設模塊都是作為字符類驅動加載的,字符類驅動是最為常用的驅動類型,主要實現以下功能:①測溫測濕度。為了檢測寵物食物的可食性,用這個模塊來探測寵物的食物是否發潮,然后發送消息給用戶提示報告當天的情況。需要借助C語言,編寫模塊并加載為字符驅動,然后燒入內核。②檢測余糧。使用壓力傳感器HX711來記錄寵物近期的食用量,然后判斷寵物近期有沒有好好吃飯和寵物的健康情況,還可以每天定時放糧。編寫驅動過程類似于溫度傳感器一樣。③本地給寵物拍照。可選擇性上傳到服務器或保存到本地相冊。攝像頭模塊用的是OV5640,該傳感器支持輸出最大為500萬像素的圖像(2 592×1 944分辨率),支持使用VGA時序輸出圖像數據,輸出圖像的數據格式支持RGB565及JPEG等格式。④精準計算投糧動作。使用步進電機,根據脈沖數控制旋轉的角度,再加上壓力傳感器反饋的數據來做到精準投糧的動作。⑤檢測是否卡糧。通過Wi-Fi模塊與服務器通信,紅外對管防卡糧,為了保證糧食的順利下滑,在出糧口做了一個紅外對管傳感器,以此來檢測是否卡糧。⑥樹莓派玩具與寵物互動。它是一款基于ARM的微型電腦主板,以SD/Micro SD卡為內存硬盤,卡片主板周圍有1/2/4個USB接口和一個10/100以太網接口(A型沒有網口),可連接鍵盤、鼠標和網線,同時擁有視頻模擬信號的電視輸出接口和配套攝像頭輸入接口,可拓展的IO口,將樹莓派裝上攝像頭,接兩個可移動的輪子,可追蹤寵物,實現任意方位拍照,也可以用手機人為控制其與寵物玩耍。⑦減少軸承及絲桿摩擦阻力。軸承是為了旋轉體減小阻力、順利進行而選擇的,在喂食扇葉活動、托盤進出等控制都會用到,經過對喂食器尺寸的研究,選擇了604 ZZ軸承(見圖2)。

圖2 604 ZZ軸承
有了絲桿的幫助,控制喂食托盤進出會很簡單,結合軸承的尺寸,本次選擇T4絲桿(見圖3)。

圖3 T4絲桿
綜合以上所需硬件,對其進行了3 D建模,經過調整,外觀如圖4所示。

圖4 喂食器整體外觀
其中,控制喂食部分為本次設計的重點,由電機、扇葉、軸承、齒輪等部件組成。儲糧部分底部有一孔,與食物滑槽的尺寸吻合,當與齒輪相嚙合的齒輪不動時,食物保持在桶內,旋轉時,食物通過扇葉空隙落入導槽,然后進入底部托盤,托盤再由另外一個電機控制滑出,完成喂食(見圖5、圖6)。

圖5 儲糧桶俯視圖

圖6 食物滑槽拆解圖
如圖7所示的設計為可移動的玩具,可由App控制其運動,上面安裝攝像頭(通過前面一個小孔獲得圖像)、麥克風及揚聲器,可以由手機App發起視頻查看寵物,可以跟寵物說話,寵物的聲音也可以通過麥克風返回到手機App,由于顯示器空間大,所以來自手機App的主人視頻流,則轉發到喂食器上的顯示器顯示,可以控制玩具引導寵物到視頻前面看主人在做什么,設計封裝良好,可以移動逗寵物去追趕,寵物玩具后面的尾巴,一是使重心下移和阻止扭力,防止運動過程中間轉而兩側輪子不轉,二是可以控制其上下輪動,調整前面攝像頭的視角,容易為寵物拍照。

圖7 寵物玩具外觀
Docker是一個開源的應用容器引擎,基于Go語言并遵從Apache2.0協議開源。Docker可以讓開發者打包他們的應用及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口(類似iPhone的App),更重要的是容器性能開銷極低。
本項目的每個服務器都放在Docker的容器中,在相互隔離的同時又可以用IP相互訪問,便于管理,且達到一定的安全要求。具體實現方式如圖8所示。

圖8 服務器結構
3.4.1 物聯網服務器。典型的物聯網云平臺包括AWS IoT、IBM Watson、阿里物聯網套件和中國移動OneNet等,每個平臺都有各自的優勢與不足。眾所周知,阿里云提供諸多云服務包括數據存儲(各類云數據庫,Table Store)、數據分析(圖像識別、人臉識別)、規則引擎、短信服務等,而物聯網云平臺的本質無非節點托管、數據存儲、遠程控制,所以阿里索性把物聯云平臺當作一種服務集成到阿里云中,中國移動OneNet平臺簡單易用、入門快,作為一個單純的設備托管平臺還是不錯的。
然而,對接這些服務器過程都比較煩瑣,因此找到了一個比較好用的部署在自己服務器的開源物聯網服務器——EMQ X。EMQ X(Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP平臺開發的開源物聯網MQTT消息服務器。Erlang/OTP是出色的軟實時(Soft-Realtime)、低延時(Low-Latency)、分布式(Distributed)的語言平臺。MQTT是輕量的(Lightweight)、發布訂閱模式(PubSub)的物聯網消息協議。EMQ X設計目標是實現高可靠,并支持承載海量物聯網終端的MQTT連接,支持在海量物聯網設備間低延時消息路由:①穩定承載大規模的MQTT客戶端連接,單服務器節點支持50萬到100萬連接。②分布式節點集群,快速低延時的消息路由,單集群支持1 000萬規模的路由。③消息服務器內擴展,支持定制多種認證方式、高效存儲消息到后端數據庫。④完整物聯網協議支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket或私有協議支持。
3.4.2 數據庫服務器。數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。每個數據庫都有一個或多個不同的API用于創建、訪問、管理、搜索和復制所保存的數據,也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢。所以,現在使用關系型數據庫管理系統(RDBMS)來存儲和管理大數據量。所謂的關系型數據庫,是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。
RDBMS即關系數據庫管理系統(Relational Database Management System)的特點:①數據以表格的形式出現。②每行為各種記錄名稱。③每列為記錄名稱所對應的數據域。④許多的行和列組成一張表單。⑤若干的表單組成database。
數據庫在Docker安裝與EMQX安裝方法類似,拉取鏡像、安裝、運行,然后是設置用戶名與密碼。
3.4.3 媒體服務器。媒體服務器是下一代網絡的重要設備。該設備在控制設備(軟交換設備、應用服務器)的控制下,提供在IP網絡上實現各種業務所需的媒體資源功能,包括業務音提供、會議、交互式應答(IVR)、通知、統一消息、高級語音業務等。在應用服務器里,使用MSML(Media Server Markup Language,一種專用于媒體服務器交互的特殊xml)向媒體服務器發送放音等命令。媒體服務器具有很好的可裁剪性,可靈活實現一種或多種功能。
媒體服務器的性能和網速要求高,云服務器租賃貴;邏輯復雜,開發成本高。由于開發條件限制,沒有自己開發服務器,而是找到了一個專門提供音視頻服務的公司——聲網。
聲網Agora,一個專注移動端的高清實時通話云服務解決方案。聲網在全球部署了近百個數據中心和近千臺服務器,能夠保障跨大洲、跨國家、跨運營商網絡的實時數據傳輸質量。其團隊很有自信地宣稱,在語音通話的質量上,他們有信心打敗最有競爭力的技術對手,哪怕在硅谷。
由于是to b(to business)的云服務,聲網的盈利模式也相對簡單。聲網面向企業收費,標準是每1 000 min 0.99美元,國內海外統一。這個基于規模效益的定價貼近于產品的成本價格,遠低于客戶自己運營維護這類服務的成本。
聲網已經和國內許多產品在接洽合作,但團隊沒有透露具體已達成的合作。在國外,由于聲網的海外版上線更早,已經有合作一段時間的產品了,比如針對“語言技能交換”的語音社交應用HelloTalk。
使用方法:進入官網,注冊賬號,里面提供了很多開發者文檔,需要什么功能,直接按步驟進行,在此不敘述,將在手機App部分體現。
3.4.4 應用程序服務器。Django是一個由Python寫成的Web應用框架。Django的主要目的是簡便、快速地開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便地以“插件”形式服務于整個框架,Django有許多功能強大的第三方插件,甚至可以很方便地開發出自己的工具包。
Django的rest_framework框架是基于Django的,幫助快速開發符合restful規范的接口框架,它主要適用于前后端分離項目。rest_framework是一個能快速提供API接口,方便編程的框架。API是后端編程人員寫的,為了讓前端拿數據的一個接口,通常就是以url的形式存在。只需要給喂食器及手機App提供相應的URL,即可實現數據的交互,每個URL在服務器端有一個對應的邏輯處理。
整個服務器采用MVC編程模式。MVC是一種使用MVC(Model View Controller,模型-視圖-控制器)設計創建Web應用程序的模式:Model(模型)表示應用程序核心(比如數據庫記錄列表);View(視圖)顯示數據(數據庫記錄);Controller(控制器)處理輸入(寫入數據庫記錄)。
MVC分層有助于管理復雜的應用程序,因為您可以在一段時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注于視圖設計。同時也讓應用程序的測試更加容易。MVC分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和業務邏輯。
為了配合App及喂食器工作,一共設計了以下幾種API:用戶注冊、登錄、喂食器上報喂食記錄和手機App增刪改個人信息或者寵物和喂食器信息等。所有的API都是收到消息做數據庫操作,內容比較龐雜,在此以用戶注冊登錄為例,見圖9。

圖9 用戶注冊登錄
手機App軟件(App,英文Application的簡稱,即應用軟件,通常是指iPhone、安卓等手機應用軟件),主要指安裝在智能手機上的軟件,完善原始系統的不足與個性化。使手機完善其功能,為用戶提供更豐富的使用體驗的主要手段。手機軟件的運行需要有相應的手機系統,截至2017年6月1日,主要的手機系統包括蘋果公司的iOS、谷歌公司的Android(安卓)系統、塞班平臺和微軟平臺。每個系統的開發方式有所不同,由于國內用Android的人占大多數,因此,本項目先開發了一個Android系統的手機App軟件,以后再開發出其他系統的同款軟件。下面是手機開發的過程:①Java語言基礎。②Android的四大組件。Android開發的四大組件分別是:活動(activity),用于表現功能;服務(service),后臺運行服務,不提供界面呈現;廣播接收者(Broadcast Receive),用于接收廣播;內容提供者(Content Provider),支持多個應用中存儲和讀取數據,相當于數據庫。③Android五大存儲:內部存儲、外部存儲、網絡存儲、SharedPreferences和SQLite。④Android六大布局:線性布局(LinearLayout)、表格布局(TableLayout)、相對布局(RelativeLayout)、層布局(FrameLayout)、絕對布局(AbsoluteLayout)、網格布局(GridLayout)。⑤Android編譯工具。初學者使用IDE:Eclipse,PraneethVT,Android Studio,IntelliJ IDEA等。
由于手機App是面對用戶的,體驗很重要,需要不斷更新優化,目前,手機App已經開發出的功能有:管理寵物、管理喂食器、顯示個人信息、設置余糧不足提醒方式、視頻與寵物互動等。
為了突出該項目的特點與創新,調研了市面上的相關產品,見表1。

表1 產品性能對比

圖10 App的部分邏輯設計
模塊是已經集成好的,只需要按特定方式讀取。比如紅外對管,有卡糧時電平翻轉,獲得數字量;稱重傳感器,有重物時電阻值變化,以模擬量方式反應重物重量。然而,一個CPU要同時讀取這些模塊數據時,就得將程序邏輯設計好,防止出錯。
服務器對數據的操作,體現在數據庫的數據進行增刪改查。為了便于手機App及喂食器操作,且保證每次查詢數據庫花的時間盡量少,將所需的數據按對象分為多張表,主要有用戶個人信息表、寵物信息表、喂食器信息表和喂食記錄表。
為了節省流量,不用每次查看信息都從服務器獲取,手機App也使用了數據庫,與服務器的表對應起來,而且做相應的操作的時候,數據與服務器同步。手機App,節流、更新、永久化。
毫無疑問,智能喂食寵物裝置不僅僅是一款智能設備,它更是連接主人與愛寵的紐帶,而功能強大的App將萬千家庭集結到一起,相比單純的產品,這種基于興趣、圈子的應用與服務更能打動用戶,未來智能寵物喂食器的App還有很大優化的空間,而且還會基于游戲娛樂的基礎之上進一步開拓空間。
項目設計實現了多功能寵物自動喂食器的一整套系統,使用方便。但我們知道要想使寵物喂食器在實際生活中完全代替人工喂養,還必須對寵物進行適當的培訓,這是任何一款新產品都必須突破的瓶頸。也只有通過培訓,才能使該喂食器在日常生活中發揮更大的作用。