沈建強(qiáng) 黃興平 仲崇高 張彬 王瑩瑩
摘要:當(dāng)今社會(huì),寵物是人們獲得快樂、緩解壓力的一個(gè)重要來源,越來越多的人選擇飼養(yǎng)寵物,但在出差和旅游等情況下無法及時(shí)地照顧它們,尤其是在飲食方面無法及時(shí)顧及寵物,所以人們需要一個(gè)有投喂功能的寵物喂養(yǎng)系統(tǒng)能夠幫助他們投喂飼養(yǎng)寵物。文章設(shè)計(jì)了一種基于STM32的智能寵物喂養(yǎng)系統(tǒng),該系統(tǒng)在硬件方面使用STM32F103C8T6單片機(jī)作為主要控制器,由Wi-Fi模塊、按鍵模塊、投喂模塊、報(bào)警模塊等模塊組成。該系統(tǒng)在軟件方面可以通過手機(jī)App查看聯(lián)機(jī)狀態(tài)、食物重量、水位高低,以及設(shè)定遠(yuǎn)程投喂時(shí)間和投喂數(shù)量。當(dāng)缺少食物或者缺少水時(shí),手機(jī)App會(huì)提醒用戶,并且在微信公眾號(hào)上也會(huì)提醒用戶。
關(guān)鍵詞:寵物;投喂;STM32單片機(jī);智慧喂養(yǎng)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)05-0004-03
0 引言
隨著現(xiàn)代科學(xué)技術(shù)的進(jìn)步與發(fā)展,物聯(lián)網(wǎng)技術(shù)的發(fā)展給寵物喂食器與飲水機(jī)等寵物領(lǐng)域帶來了新的發(fā)展機(jī)會(huì)[1]。本設(shè)計(jì)基于STM32F103的智能寵物喂養(yǎng)系統(tǒng),主要分為主控模塊、Wi-Fi模塊、報(bào)警模塊、顯示模塊、投喂模塊等模塊。該系統(tǒng)能實(shí)現(xiàn)自動(dòng)投喂功能,因此該系統(tǒng)的設(shè)計(jì)具有實(shí)時(shí)性和智能性。
1 系統(tǒng)總體設(shè)計(jì)
該智能寵物喂養(yǎng)系統(tǒng)采用基于STM32F103的設(shè)計(jì)方案,旨在實(shí)現(xiàn)投喂和提醒功能[2]。各個(gè)模塊之間通過STM32F103單片機(jī)進(jìn)行交互和通信。STM32F103 單片機(jī)通過傳感器模塊采集數(shù)據(jù),對(duì)其進(jìn)行處理并反饋給各模塊,同時(shí)各模塊通過與STM32F103單片機(jī)連接實(shí)現(xiàn)各模塊的互聯(lián)互通,從而實(shí)現(xiàn)智能寵物喂養(yǎng)系統(tǒng)的投喂與提醒功能[3]。系統(tǒng)框架圖如圖1所示,通過稱重、水量檢測等傳感器采集數(shù)據(jù),檢測或者設(shè)置系統(tǒng)初始狀態(tài),單片機(jī)數(shù)據(jù)處理并傳給投喂、顯示等模塊,實(shí)現(xiàn)系統(tǒng)各模塊的功能。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)主要由主控模塊電路設(shè)計(jì)、按鍵模塊電路設(shè)計(jì)、Wi-Fi模塊電路設(shè)計(jì)、報(bào)警模塊電路設(shè)計(jì)、時(shí)鐘電路模塊電路設(shè)計(jì)等部分組成。
2.1 主控模塊電路設(shè)計(jì)
智能寵物喂養(yǎng)系統(tǒng)最為關(guān)鍵的設(shè)計(jì)在于主控模塊。主控模塊也叫主要控制器模塊,其作用是通過控制其他模塊,以確保整個(gè)系統(tǒng)功能的穩(wěn)定運(yùn)行。智能寵物喂養(yǎng)系統(tǒng)的主要控制器選用意法半導(dǎo)體公司的STM32F103RCT6超低功耗32位微處理器作為主控芯片。該模塊設(shè)計(jì)的電路圖如圖2所示。PA8用于連接水量報(bào)警傳感器,在缺水時(shí)進(jìn)行報(bào)警,PA9、PA10用于連接Wi-Fi模塊,PA11、PA12、PA13用于連接時(shí)鐘電路模塊,PA15用于連接蜂鳴器,PB0、PB1、PB2用于連接按鍵模塊,PB5、PB4、PB3 用于連接顯示模塊,PB10、PB11用于連接稱重模塊[4],PB12、PB13、PB14、PB15用于連接投喂模塊進(jìn)行投喂飼料。
2.2 按鍵模塊電路設(shè)計(jì)
在本次設(shè)計(jì)中使用三個(gè)按鍵來設(shè)定投喂時(shí)間、投喂數(shù)量。按鍵分別為S_SET 按鍵、S_UP 按鍵和S_DOWN按鍵,并且采用了獨(dú)立按鍵的設(shè)計(jì)方法。將三個(gè)按鍵分別與STM32F103C8T6 單片機(jī)的PB0、PB1、PB2的引腳相連接,按下按鍵后,在代碼中增加20ms的延時(shí),保證按鍵操作掃描每20ms更新一次,以便確定能轉(zhuǎn)到該鍵的功能處理程序。
2.3 Wi-Fi 模塊電路設(shè)計(jì)
本系統(tǒng)中手機(jī)作為一個(gè)無線接入點(diǎn)與ESP8266Wi-Fi模塊連接實(shí)現(xiàn)數(shù)據(jù)傳輸,簡單來講就是ESP8266Wi-Fi模塊通過串口與STM32連接,獲取當(dāng)前水位、食物重量等參數(shù)信息,通過Wi-Fi熱點(diǎn),ESP8266將參數(shù)信息傳送給云平臺(tái)[5-6],手機(jī)通過云平臺(tái)可以顯示相應(yīng)參數(shù)信息,進(jìn)而實(shí)現(xiàn)監(jiān)測水位與食量等功能,如缺少水或食物時(shí),會(huì)在微信公眾號(hào)上提醒缺水或食物。
2.4 報(bào)警模塊電路設(shè)計(jì)
智能寵物喂養(yǎng)系統(tǒng)的報(bào)警模塊主要是在檢測到水量不足,或者食物缺少的情況下,觸發(fā)蜂鳴器報(bào)警。該模塊有兩個(gè)傳感器用于檢測數(shù)據(jù):水量報(bào)警傳感器、HX711稱重傳感器。水量報(bào)警傳感器采用上拉模式,高電平時(shí)使其導(dǎo)通,說明缺少水量。水量報(bào)警傳感器與單片機(jī)的PA8的引腳相連接。HX711稱重傳感器有2個(gè)引腳,即H_DT數(shù)據(jù)引腳和H_SCK時(shí)鐘引腳,分別與單片機(jī)的PB10、PB11引腳相連接。
2.5 投喂模塊電路設(shè)計(jì)
本系統(tǒng)是關(guān)于智能喂養(yǎng)的設(shè)計(jì),其中投喂模塊電路設(shè)計(jì)是本系統(tǒng)重要的設(shè)計(jì),該模塊需要實(shí)現(xiàn)控制投喂飼料的數(shù)量。投喂模塊也可以看作步進(jìn)電機(jī)模塊,通過步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng),可以很好地控制出食量。ULN2003驅(qū)動(dòng)器的MOTOR_1、MOTOR_2、MOTOR_3、MOTOR_4引腳分別與STM32F103C8T6 單片機(jī)的PB12、PB13、PB14、PB15引腳相連,通過ULN2003驅(qū)動(dòng)器控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn),從而控制出食量,實(shí)現(xiàn)投喂功能。
3 終端應(yīng)用設(shè)計(jì)
首先初始化各個(gè)模塊,比如初始化與LCD1602連接的硬件接口、初始化各個(gè)端口、初始化稱重模塊等。之后再利用串口、I/O口,將采集到的數(shù)據(jù)傳輸給各個(gè)模塊,以便進(jìn)行后續(xù)的處理和控制。
3.1 按鍵模塊設(shè)計(jì)
STM32F103單片機(jī)的PB0、PB1、PB2引腳連接了按鍵模塊的S_SET 按鍵、S_UP 按鍵和S_DOWN按鍵,可以設(shè)置日期、實(shí)時(shí)時(shí)間、稱重清零、自動(dòng)投喂時(shí)間等參數(shù)。通過STM32F103 單片機(jī)的PB0、PB1、PB2引腳,將修改的參數(shù)傳給相應(yīng)模塊,完成參數(shù)的實(shí)時(shí)更新。
3.2 Wi-Fi 模塊設(shè)計(jì)
智能寵物喂養(yǎng)系統(tǒng)需要實(shí)現(xiàn)遠(yuǎn)程投喂的功能,因此本模塊通過采用一個(gè)云平臺(tái)作為手機(jī)App和ESP8266之間的通信渠道。為了確保硬件和手機(jī)可以進(jìn)行可靠安全的數(shù)據(jù)傳輸,本方案選擇使用點(diǎn)燈科技平臺(tái)[7]。手機(jī)、STM32、ESP8266 Wi-Fi模塊之間的通信連接如圖3,本設(shè)計(jì)選擇AP模式,因?yàn)楣ぷ髟贏P模式下的ESP8266就像是一個(gè)熱點(diǎn),手機(jī)可以連接到此“熱點(diǎn)”,從而實(shí)現(xiàn)手機(jī)等設(shè)備與ESP8266進(jìn)行局域網(wǎng)的無線通信。
3.3 報(bào)警模塊設(shè)計(jì)
本模塊需要實(shí)現(xiàn)在水量不足或者食物不足的情況下提醒用戶。STM32F103C8T6單片機(jī)的PA8引腳連接水量報(bào)警傳感器,STM32F103C8T6 單片機(jī)的PA15引腳連接蜂鳴器。在缺水或者缺少食物時(shí),蜂鳴器會(huì)鳴叫,進(jìn)行報(bào)警,STM32F103C8T6單片機(jī)在接收到缺水或缺少食物的提醒時(shí),會(huì)通過Wi-Fi模塊與點(diǎn)燈科技平臺(tái)進(jìn)行連接,點(diǎn)燈科技平臺(tái)向手機(jī)的微信公眾號(hào)發(fā)送提醒信息,手機(jī)App會(huì)顯示缺少食物或缺少水。
3.4 投喂模塊設(shè)計(jì)
本系統(tǒng)中,投喂模塊部分的軟件設(shè)計(jì)是本系統(tǒng)重要的軟件設(shè)計(jì),該模塊需要實(shí)現(xiàn)設(shè)置投喂時(shí)間和投喂數(shù)量的功能,此功能通過步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),模擬出將食物投喂給寵物的過程。感應(yīng)到脈沖信號(hào)的輸入后,步進(jìn)電機(jī)會(huì)將其轉(zhuǎn)換成對(duì)應(yīng)的角位移。因此,每個(gè)角度的轉(zhuǎn)動(dòng)都需要接收到一個(gè)脈沖信號(hào)。
4 系統(tǒng)功能測試
本智能喂養(yǎng)系統(tǒng)如果在功能測試過程中發(fā)現(xiàn)異常,需要調(diào)試至正常情況。以下是本系統(tǒng)的硬件測試。
4.1 Wi-Fi 模塊測試
打開手機(jī)→設(shè)置→個(gè)人熱點(diǎn)→WLAN熱點(diǎn),點(diǎn)擊打開WLAN熱點(diǎn),進(jìn)行手機(jī)與硬件的連接,若連接失敗,在熱點(diǎn)配置中點(diǎn)擊AP頻段,選擇2.4GHz熱點(diǎn)頻段。連接成功后,設(shè)置的個(gè)人熱點(diǎn)界面顯示硬件設(shè)備名稱,且硬件設(shè)備上的數(shù)據(jù)自動(dòng)發(fā)送和顯示在手機(jī)上,手機(jī)點(diǎn)燈App的寵物喂養(yǎng)系統(tǒng)會(huì)顯示聯(lián)機(jī)正常。表1為測試表,通過測試可以發(fā)現(xiàn),App上的數(shù)據(jù)和LCD1602顯示屏上的數(shù)據(jù)在表1所示的范圍內(nèi)基本一致。
4.2 按鍵模塊測試
按鍵模塊,設(shè)有三個(gè)按鍵,分別為設(shè)置、增加、減少按鍵,按鍵模塊的測試主要包括設(shè)置日月、時(shí)分和投喂時(shí)間,測試按鍵模塊的數(shù)據(jù)表結(jié)果如圖4所示。設(shè)置投喂時(shí)間進(jìn)行測試,通過按下設(shè)置按鍵,使光標(biāo)移動(dòng)到投喂時(shí)間,按下增加按鍵或者減少按鍵可以設(shè)置投喂時(shí)間,投喂模塊測試可以觀察到投喂時(shí)間設(shè)置為15:10時(shí),搖臂轉(zhuǎn)動(dòng),投喂成功。
4.3 報(bào)警模塊測試
報(bào)警模塊,在水量不足或者食物不足時(shí),蜂鳴器會(huì)鳴叫,手機(jī)App會(huì)提醒水位不足或者食物不足,并且會(huì)在微信公眾號(hào)上提醒。先測試食物低于100g時(shí),報(bào)警模塊的狀態(tài),如圖5、圖6所示。
4.4 投喂模塊測試
投喂模塊采用步進(jìn)電機(jī)模擬投喂功能,通過舵機(jī)塑料搖臂轉(zhuǎn)動(dòng)的圈數(shù)模擬投喂次數(shù),搖臂轉(zhuǎn)動(dòng)一圈代表一次投喂。在模擬投喂時(shí),搖臂轉(zhuǎn)動(dòng),投喂完成后,搖臂回到初始狀態(tài)。投喂方式有兩種,一種是通過按鍵設(shè)置,按鍵設(shè)置15:05分投喂。另一種是手機(jī)自動(dòng)投喂,見測試表2,離線與在線兩種狀態(tài),在線時(shí)手機(jī)設(shè)置15:10投喂,系統(tǒng)支持投喂功能。
5 結(jié)束語
在經(jīng)過硬件和軟件的測試后,驗(yàn)證了本設(shè)計(jì)的功能基本能夠?qū)崿F(xiàn),硬件接上電源,Wi-Fi熱點(diǎn)打開,使得硬件與手機(jī)能夠數(shù)據(jù)傳輸。本系統(tǒng)在硬件上,可以顯示具體時(shí)間,包括月日時(shí)分,也可以顯示食物重量、水位高低、預(yù)定投喂時(shí)間,并且也可以修改時(shí)間、預(yù)定投喂時(shí)間,在缺少食物或者水量的時(shí)候,蜂鳴器會(huì)鳴叫,提醒食物或水量不足;本系統(tǒng)在軟件上可以查看具體信息,比如聯(lián)機(jī)狀態(tài)、食物重量、水位高低,也可以設(shè)定投喂時(shí)間、投喂數(shù)量,從而實(shí)現(xiàn)遠(yuǎn)程投喂的功能。
參考文獻(xiàn):
[1] 孟艷艷,陳偉海,賈長洪,等.智能寵物喂食喂水系統(tǒng)研究與設(shè)計(jì)[J].中國高新科技,2020(21):137-141.
[2] 洪熠,徐婷,何睿,等.基于STM32單片機(jī)的智能寵物系統(tǒng)的未來發(fā)展[J].電腦知識(shí)與技術(shù),2021,17(14):199-200.
[3] 魏忠強(qiáng).智能化的家養(yǎng)寵物喂食器設(shè)計(jì)要點(diǎn)探討[J].新型工業(yè)化,2022,12(4):18-21,26.
[4] 葛海江.基于HX711的高精度電子稱重研究[J].電子測試,2019(10):31-32.
[5] 管嘉誠,李曉烽,黃志芳,等.基于ESP8266與機(jī)智云的物聯(lián)網(wǎng)智能家居[J].物聯(lián)網(wǎng)技術(shù),2023,13(3):140-142.
[6] 令曉靜.敏捷分布式WiFi技術(shù)研究及應(yīng)用[J].中國新通信,2021,23(20):66-67.
[7] 郭佳潤,宮雨夢,劉易坤,等.基于單片機(jī)的多功能背包的設(shè)計(jì)[J].科技創(chuàng)新與生產(chǎn)力,2023(1):107-109,113.
【通聯(lián)編輯:梁書】