胡名睿,郝曉健,王昊辰,李佳靜,周雨笛,張小輝
(合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院,安徽合肥,230601)
隨著社會(huì)經(jīng)濟(jì)的不斷發(fā)展,越來越多的人選擇購買并喂養(yǎng)寵物,寵物已經(jīng)變成他們的生活寄托[1]。然而我們意識(shí)到,現(xiàn)在有許許多多獨(dú)居,并且養(yǎng)寵物的年輕人,由于繁忙的工作、學(xué)習(xí),他們可能沒有足夠的時(shí)間于精力隨時(shí)照看寵物[2],那么寵物身體不適乃至生病等狀況就有可能發(fā)生。因此我們認(rèn)為,在需要寵物獨(dú)處的這段時(shí)間中,如何飼養(yǎng)寵物已經(jīng)成為了這些用戶的一大難題。為此,我們需要設(shè)計(jì)出一款能夠解決用戶困難的產(chǎn)品。
經(jīng)過前期的市場調(diào)研,我們發(fā)現(xiàn):隨著飼養(yǎng)寵物的人數(shù)越來越多,寵物相關(guān)行業(yè)得到了快速發(fā)展,專門為寵物設(shè)計(jì)的用品呈現(xiàn)多元化,但智能寵物用品的研發(fā)情況相對(duì)較少。經(jīng)過我們團(tuán)隊(duì)的討論,我們決定自行設(shè)計(jì)一款智能寵物自動(dòng)喂食器,幫助用戶仔細(xì)照顧寵物,方便用戶的個(gè)人生活。
根據(jù)我們團(tuán)隊(duì)討論的結(jié)果,我們準(zhǔn)備制作的產(chǎn)品如下:利用STM32單片機(jī)作為嵌入式開發(fā)平臺(tái)。STM32單片機(jī)是以ARMCortex為基礎(chǔ)架構(gòu)的STMicroelectronics嵌入式32位微處理器, 具有成本低、性能高、功能多,能耗少等優(yōu)點(diǎn)[3],還包含定時(shí)器程序存儲(chǔ)器等硬件,不需要外接其他存儲(chǔ)器芯片和定時(shí)器件,方便構(gòu)成一個(gè)最小系統(tǒng)[4];通過連接HX711壓力傳感器模塊、OLED顯示模塊、SYN6288語音播報(bào)模塊、DS1302實(shí)時(shí)時(shí)鐘模塊、HC-SR501紅外檢測模塊、EC20物聯(lián)網(wǎng)模塊等電子元件,實(shí)現(xiàn)稱量寵物飼料、顯示操作界面、語音提示當(dāng)前操作、顯示時(shí)間、檢測寵物活動(dòng)以及向用戶手機(jī)發(fā)送短信,提示當(dāng)前寵物進(jìn)食數(shù)據(jù)等功能。在短信的提示下,用戶可以對(duì)寵物的身體狀況做出大致的判斷。我們相信,在這些具有強(qiáng)大功能的模塊的組合下,我們的產(chǎn)品一定能夠代替用戶照顧好每一只寵物,能夠很好的解決無人在家時(shí)的寵物喂養(yǎng)功能, 成為主人和寵物之間良好的“中間體”[5]。
根據(jù)我們團(tuán)隊(duì)討論的結(jié)果,我們制作了一張整體工作流程圖,如圖1所示。
圖1 寵物喂食器的整體工作流程圖
首先OLED顯示模塊會(huì)顯示當(dāng)前的實(shí)時(shí)時(shí)間。我們采用紅外傳感器模塊探測寵物是否處在喂食器的前方。如果寵物在喂食器的前方停留時(shí)間超過5秒,那么我們認(rèn)為寵物處于饑餓狀態(tài),需要進(jìn)食,此時(shí)喂食器內(nèi)置的存放飼料的儲(chǔ)物箱會(huì)打開。當(dāng)飼料投放到喂食器的底部托盤中時(shí),托盤下方的壓力傳感器模塊就會(huì)測量飼料的質(zhì)量,并且顯示在OLED顯示屏上。當(dāng)寵物進(jìn)食完成后,壓力傳感器模塊會(huì)再次測量剩余食物的質(zhì)量,兩次測得的值只差就是寵物進(jìn)食的質(zhì)量。接下來,EC20物聯(lián)網(wǎng)4G模塊上傳至阿里云或OneNet等云端進(jìn)行處理。當(dāng)用戶登錄云端賬戶時(shí),就能通過這些信息了解所有的進(jìn)食信息,再根據(jù)相關(guān)論文支撐能對(duì)寵物身體狀況做出大致的推測判斷。
另外,我們的產(chǎn)品還會(huì)提供人工設(shè)置功能。產(chǎn)品上自帶4個(gè)按鍵,便于用戶修改時(shí)間、修改食物投放質(zhì)量等參數(shù);同時(shí),由于顯示界面中存在多級(jí)菜單,因此按鍵也有著前往下一級(jí)或返回上一級(jí)的功能。產(chǎn)品同時(shí)自帶LED小燈,用于顯示供電是否正確、硬件是否存在故障。
圖2 寵物喂食器的模塊構(gòu)成詳解圖
根據(jù)我們團(tuán)隊(duì)討論的結(jié)果,我們利用XMind軟件制作了一張所需模塊的構(gòu)思圖,如圖2所示。
我們給出整體實(shí)物圖如圖3所示。
圖3 寵物喂食器整體實(shí)物圖
下面將依次介紹該系統(tǒng)的主要模塊組成及測試。
2.2.1 OLED顯示模塊
OLED顯示模塊(2.42寸)的核心芯片為SSD1309,該模塊具有低功耗、超高對(duì)比度等特點(diǎn),利用IIC協(xié)議與單片機(jī)進(jìn)行通信。這里我們采用軟件IIC的形式實(shí)現(xiàn)通信。
接下來我們對(duì)這一模塊進(jìn)行測試。當(dāng)程序下載入單片機(jī)時(shí),OLED會(huì)顯示當(dāng)前時(shí)間。當(dāng)我們按下按鍵后,可以進(jìn)入初始目錄,通過按鍵的控制,我們可以控制指示箭頭指向不同的操作指令,如圖4所示。
2.2.2 HC-SR501紅外檢測模塊
HC-SR501紅外檢測模塊的數(shù)據(jù)引腳可輸出高、低兩種電平。當(dāng)模塊檢測到有物體在模塊前活動(dòng)時(shí)輸出高電平,若檢測不到輸出低電平。
接下來我們對(duì)這一模塊進(jìn)行測試。我們規(guī)定,當(dāng)模塊檢測到運(yùn)動(dòng)的物體時(shí),綠色的LED燈亮,反之紅色LED燈亮。由于初始測試時(shí)輸出的電平不穩(wěn)定,LED燈不斷變換顏色,因此依照按鍵的消抖原理,我們在輸出電平前添加了延時(shí)語句。通過我們的測試,當(dāng)我們在模塊前方活動(dòng)時(shí),綠色的LED燈能夠正常顯示;而當(dāng)我們遠(yuǎn)離模塊時(shí),紅色的LED燈能夠正常顯示,此時(shí)模塊輸出的電平穩(wěn)定,如圖5所示。
2.2.3 SYN6288語音播報(bào)模塊
SYN6288語音播報(bào)模塊采用UART通信方式,操作簡單,只需要向串口發(fā)送固定文本,該模塊就能通過外接揚(yáng)聲器播放文本。
圖4 OLED模塊顯示主界面
圖5 SYN6288模塊檢測到人物活動(dòng)
接下來我們對(duì)這一模塊進(jìn)行測試。我們在主函數(shù)中設(shè)置固定語音文本“溫馨提示正在補(bǔ)充食物”,給單片機(jī)上電后我們發(fā)現(xiàn)模塊能夠正常閱讀文本;另外我們使用串口調(diào)試助手軟件,可以發(fā)現(xiàn)模塊的串口能夠正常的接收數(shù)據(jù),如圖6-7所示。
圖6 SYN6288模塊可播放聲音
2.2.4 HX711壓力傳感器模塊
HX711壓力傳感器模塊采用SPI通信的變式方式。根據(jù)芯片手冊提供的資料,時(shí)鐘引腳會(huì)輸出25個(gè)到27個(gè)不等的時(shí)鐘脈沖,其中前24位時(shí)鐘信號(hào)用于發(fā)送數(shù)據(jù),第25位到27位用于選擇下一次的A/D轉(zhuǎn)換通道與增益。
圖7 串口接收數(shù)據(jù)為固定文本
接下來我們對(duì)這一模塊進(jìn)行測試。我們打開電腦中的串口調(diào)試助手,規(guī)定波特率115200,8位數(shù)據(jù)位,1位停止位,打開串口后,我們可以發(fā)現(xiàn)在接收窗口中出現(xiàn)了模塊上方重物的質(zhì)量,如圖8-9所示。
圖8 HX711連接STM32
圖9 串口調(diào)試助手接收到重物的質(zhì)量
2.2.5 DS1302實(shí)時(shí)時(shí)鐘模塊
DS1302實(shí)時(shí)時(shí)鐘模塊采用SPI通信方式,內(nèi)置8個(gè)寄存器,用于存放年、月、日等時(shí)間的BCD碼。這里我們采用軟件IIC的形式實(shí)現(xiàn)通信。
接下來我們對(duì)這一模塊進(jìn)行測試。我們首先對(duì)DS1302初始化,向其中寫入0時(shí)0分,我們利用SPI的底層讀字節(jié)函數(shù),將8個(gè)寄存器的值讀出,并顯示在OLED顯示模塊上,我們可以發(fā)現(xiàn)顯示模塊能夠正常顯示,如圖10所示。
2.2.6 EC20物聯(lián)網(wǎng)模塊
EC20物聯(lián)網(wǎng)4G模塊采用USB協(xié)議進(jìn)行通信,同時(shí)內(nèi)置了MQTT協(xié)議。MQTT傳輸協(xié)議具有簡潔、小巧、可擴(kuò)展性強(qiáng)、省流量、低功耗等特點(diǎn),可確保MQTT客戶端的持久耐用[6]。實(shí)現(xiàn)了將其他傳感器模塊上檢測到的數(shù)據(jù)傳送到OneNet云端的功能,通過壓力傳感器、溫濕度傳感器等模塊采集到溫度、濕度以及寵物吃掉的食物的重量,將這些數(shù)據(jù)傳送到OneNet云端做進(jìn)一步處理。
圖10 DS1302模塊顯示當(dāng)前時(shí)間
接下來我們對(duì)該模塊進(jìn)行測試。在單片機(jī)上電后會(huì)發(fā)送注冊信息到OneNet,請求注冊設(shè)備,注冊成功會(huì)返回設(shè)備ID。然后讀取溫濕度,轉(zhuǎn)換為MQTT數(shù)據(jù)進(jìn)行發(fā)送,將采集到的溫度和濕度的數(shù)據(jù)通過EC20模塊傳送到OneNet云端,在相應(yīng)的OneNet控制端接收到來自單片機(jī)傳送過來的溫濕度的數(shù)據(jù),如圖11-12所示。
圖11 EC20模塊連接STM32
圖12 EC20模塊向OneNet平臺(tái)傳輸數(shù)據(jù)
我們研制的產(chǎn)品主要的創(chuàng)新點(diǎn)在于:使用到了EC20模塊。我們用到了MQTT協(xié)議,將EC20模塊與我們的開發(fā)板進(jìn)行相連,使用netassist軟件進(jìn)行數(shù)據(jù)的傳輸。將寵物的進(jìn)食信息上傳至云端,并對(duì)寵物的健康狀態(tài)進(jìn)行初步判斷,通過信息處理使得寵物信息數(shù)據(jù)可視化,便于用戶及時(shí)發(fā)現(xiàn)寵物的身體異常。
在引言中我們也提到,目前養(yǎng)寵物的人越來越多,與寵物相關(guān)的市場逐漸擴(kuò)大,同時(shí),受到越來越大的生活壓力以及以996為代表的加班文化的影響,人們越來越傾向于選擇機(jī)器代替人工,寵物喂食器也會(huì)被更多用戶選擇。同時(shí),我們對(duì)寵物喂食器的前景進(jìn)行了預(yù)測。我們認(rèn)為,將來的寵物家電必將涉足于目前一片空白的寵物健康監(jiān)測領(lǐng)域。這不僅因?yàn)楦鞣N健康監(jiān)測技術(shù)的逐步完善,更有我國特殊國情——高額的寵物醫(yī)療收費(fèi)的影響。雖然受制于技術(shù)因素,當(dāng)前寵物健康監(jiān)測設(shè)備還難以推廣,但我們的喂食器通過另外一種方式達(dá)到了類似效果:喂食器將通過大數(shù)據(jù)比對(duì),及時(shí)監(jiān)測出寵物異常進(jìn)食,并對(duì)寵物的健康狀況做出初步判斷,若使得寵物在患病初期便能及時(shí)發(fā)現(xiàn)異常,做到早發(fā)現(xiàn)早治療,在保護(hù)寵物健康的同時(shí)減少用戶在醫(yī)療方面的開支。除此之外,寵物喂食器配套的APP還會(huì)添加社區(qū)功能,所有用戶都能發(fā)表心得、寵物常見疾病和相關(guān)急救措施,這樣能夠構(gòu)建和睦的軟硬件生態(tài)。綜上,我們認(rèn)為我們的寵物喂食器有著非常良好的應(yīng)用前景。
本論文詳細(xì)介紹了以STM32為開發(fā)平臺(tái)的寵物自動(dòng)喂食器,通過HX711壓力傳感器、OLED顯示模塊、SYN6288語音播報(bào)模塊、DS1302實(shí)時(shí)時(shí)鐘模塊、HCSR501紅外檢測模塊、EC20物聯(lián)網(wǎng)模塊等電子元件,實(shí)現(xiàn)稱量寵物飼料、顯示操作界面、語音提示當(dāng)前操作、顯示時(shí)間、檢測寵物活動(dòng)以及向用戶手機(jī)發(fā)送短信,提示當(dāng)前寵物進(jìn)食數(shù)據(jù)等功能。經(jīng)過我們的驗(yàn)證,本產(chǎn)品能夠初步實(shí)現(xiàn)寵物自動(dòng)喂食功能,方便用戶的生活。