張杰斌,謝澤奇
(鄭州西亞斯學(xué)院 電子信息工程學(xué)院,河南 鄭州450000)
隨著信息技術(shù)的不斷發(fā)展,智能化裝置進(jìn)入人們的視野,智能化設(shè)備給人們帶來很多便利,高效、可靠和方便的智能化裝置在生產(chǎn)生活中的應(yīng)用越來越廣泛,同時(shí)其在軍事、交通、家居、農(nóng)業(yè)、經(jīng)濟(jì)等領(lǐng)域已經(jīng)表現(xiàn)出巨大的發(fā)展?jié)摿ΑM瑫r(shí)國(guó)家政策的大力扶持與5G 時(shí)代的到來,AI 和IoT 兩大技術(shù)落地,未來物聯(lián)網(wǎng)發(fā)展將會(huì)突飛猛進(jìn)。并且在5G 環(huán)境下網(wǎng)絡(luò)速率、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)便捷性能夠促進(jìn)物聯(lián)網(wǎng)的發(fā)展。
盡管智能化設(shè)備已經(jīng)滲透到生活的方方面面,并且在智能家居方面已經(jīng)形成了相對(duì)完整的系統(tǒng),市場(chǎng)上的智能家居設(shè)備大多都服務(wù)于人們的衣食住行,但是市場(chǎng)上針對(duì)寵物服務(wù)的設(shè)備卻很少,目前市場(chǎng)上已有的寵物自動(dòng)投喂裝置已經(jīng)難以滿足寵物主人的需求。
寵物是人類忠實(shí)的朋友,同時(shí)也是人類精神的寄托。研究與設(shè)計(jì)基于STM32 的寵物智能投喂裝置,其目的是為了更好的照顧到寵物的日常生活,本文研究與設(shè)計(jì)的基于STM32 的寵物智能投喂裝置是以STM32 為核心,集溫度傳感器、光照傳感器、WiFi 模塊、實(shí)時(shí)時(shí)鐘模塊等模塊為一體,配以相對(duì)應(yīng)的軟件系統(tǒng)??梢詫?shí)現(xiàn)根據(jù)處于不同年齡段的寵物、每天進(jìn)行定時(shí)定量的精準(zhǔn)投喂一定量的食物和水,定時(shí)檢測(cè)寵物的生活環(huán)境并且如果檢測(cè)到高溫環(huán)境并及時(shí)進(jìn)行報(bào)警,寵物主人也可以通過智能設(shè)備隨時(shí)隨地的了解寵物在家生活情況、為寵物加餐等功能。
STM32 系列處理器是意法半導(dǎo)體ST 公司生產(chǎn)的一種基于ARMv7 架構(gòu)的32 位、支持實(shí)時(shí)仿真和跟蹤的微控制器[1]。本文所介紹的基于STM32 的寵物智能投喂裝置采用的是以STM32F103ZET6 芯片為核心的單片機(jī),由實(shí)時(shí)時(shí)鐘模塊、溫度傳感器、光敏傳感器、WiFi 模塊、邏輯控制單元和動(dòng)作執(zhí)行單元等模塊組成。圖1 為基于STM32 的寵物智能投喂裝置結(jié)構(gòu)圖。
本裝置使用的實(shí)時(shí)時(shí)鐘模塊是一個(gè)STM32 內(nèi)部的、采用精度較高的晶體振蕩器作為時(shí)鐘源的獨(dú)立定時(shí)器,可以提供精準(zhǔn)的實(shí)時(shí)時(shí)間。同時(shí),該模塊具有一組連續(xù)計(jì)數(shù)的計(jì)數(shù)器,可以根據(jù)當(dāng)前的時(shí)間,自己修改計(jì)數(shù)器的值,從而達(dá)到重新設(shè)置系統(tǒng)時(shí)間和日期的目的。
RTC 不能斷電,如果RTC 斷電的話,時(shí)間數(shù)據(jù)就會(huì)丟失,導(dǎo)致時(shí)間不精準(zhǔn)。RTC 模塊和時(shí)鐘配置系統(tǒng)是在后備區(qū)域,不管裝置在什么狀態(tài)(運(yùn)行,關(guān)閉或者復(fù)位狀態(tài)等),只要保證后備區(qū)域正常供電,即使在裝置斷電情況下,也會(huì)啟動(dòng)后備電源(后備電源是一個(gè)紐扣電池,在裝置斷電時(shí),為RTC 時(shí)鐘供電),保證RTC 時(shí)鐘不停的運(yùn)行,所以我們獲得的時(shí)間和日期都是比較精準(zhǔn)的[2]。
圖1 裝置結(jié)構(gòu)圖
溫度傳感器是能感受溫度并轉(zhuǎn)化成數(shù)字信號(hào)的傳感器。STM32 的內(nèi)部溫度傳感器與ADC 的通道16 相連接,通過AD 轉(zhuǎn)換將傳感器輸出的電壓轉(zhuǎn)化為數(shù)值,達(dá)到測(cè)量CPU 及周圍溫度的目的[3]。STM32 的內(nèi)部溫度傳感器能夠測(cè)量到的最高溫度為125℃,最低溫度為-40℃,其測(cè)量誤差為±1.5℃。
STM32 的溫度傳感器是固定在STM32 開發(fā)板上邊的,用于測(cè)量CPU 及周圍的溫度。在使用STM32 內(nèi)部溫度傳感器之前,首先要激活A(yù)DC 的內(nèi)部通道,并且使能其相對(duì)應(yīng)ADC 的內(nèi)部通道,通過設(shè)置ADC_CR2 的AWDEN 位為1 來啟用內(nèi)部溫度傳感器,然后設(shè)置只讀取ADC 的通道16 的值,得到的數(shù)據(jù)就是溫度傳感器返回來的電壓值,根據(jù)這個(gè)值,經(jīng)過一定的公式,就可以計(jì)算出當(dāng)前溫度。
光敏傳感器是生活中最常見的傳感器之一,光敏傳感器是使用光敏元件將光信號(hào)轉(zhuǎn)化為電信號(hào)的傳感器。光敏傳感器是利用光敏二極管的特性,可以利用光照強(qiáng)度的強(qiáng)弱來改變電路中的電流,以測(cè)量光敏二極管兩端電壓值的大小,通過ADC 讀取電壓值,從而判斷光線的強(qiáng)弱。本文所介紹的基于STM32 寵物智能投喂裝置是使用STM32 的ADC3 的通道6 來讀取光敏二極管的電壓變化,從而獲得光照強(qiáng)度。
ATK-ESP8266 是一款高性能的UART-WiFi(串口-無線)模塊,使用其透?jìng)鞴δ芸梢赃M(jìn)行數(shù)據(jù)傳輸,并且有很高的可靠性[4]。ATK-ESP8266WiFi 模塊功能強(qiáng)大,ATK-ESP8266 模塊支持LVTTL 串口,只需簡(jiǎn)單的配置即可通過網(wǎng)絡(luò)與串口設(shè)備傳輸數(shù)據(jù)。
ATK-ESP8266 模塊支持STA/AP/STA+AP 三種工作模式。
AP 模式:該模塊作為熱點(diǎn),手機(jī)、電腦或者其他智能設(shè)備可以通過WiFi 連接熱點(diǎn),與模塊進(jìn)行數(shù)據(jù)傳送或者局域網(wǎng)無線控制。
STA 模式:該模塊通過路由器連接互聯(lián)網(wǎng),手機(jī)、電腦或者其他智能設(shè)備通過接入互聯(lián)網(wǎng),與模塊進(jìn)行通信或遠(yuǎn)程控制。
AP+STA:兩種模式共存,既可以實(shí)現(xiàn)局域網(wǎng)內(nèi)連接熱點(diǎn)進(jìn)行通信或無線控制,也可以實(shí)現(xiàn)智能設(shè)備聯(lián)網(wǎng)進(jìn)行通信或遠(yuǎn)程控制,這樣的好處是可以實(shí)現(xiàn)局域網(wǎng)與廣域網(wǎng)的無縫切換,使操作更加方便,適用場(chǎng)景更加廣泛。
每個(gè)模式又包含TCP 服務(wù)器,TCP 客戶端,UDP 三個(gè)子模式,既可以作為客戶端,也可以作為服務(wù)器。
動(dòng)作執(zhí)行功能由舵機(jī)完成。使用的是MG995 舵機(jī),工作電流為100mA,使用電壓為3~7.2V,結(jié)構(gòu)材質(zhì)為金屬銅齒、空心杯電機(jī),雙滾珠軸承,轉(zhuǎn)動(dòng)角度最大為180度,脈沖寬度范圍為0.5ms 到2.5ms 時(shí),舵機(jī)轉(zhuǎn)動(dòng)范圍-90°到90°,舵機(jī)轉(zhuǎn)動(dòng)的角度與脈沖寬度為正比[5]。在使用舵機(jī)之前,需要給舵機(jī)一個(gè)20ms 的時(shí)基脈沖,通過調(diào)節(jié)PWM 信號(hào)的占空比控制其轉(zhuǎn)過不同的角度,如圖2 為舵機(jī)的輸出轉(zhuǎn)軸角與輸入信號(hào)的脈沖寬度之間的關(guān)系圖。
圖2 舵機(jī)的輸出轉(zhuǎn)軸角與輸入信號(hào)的脈沖寬度之間的關(guān)系圖
在該寵物投喂器中通過定時(shí)器與PWM 同時(shí)控制MG995 舵機(jī)打開固定的角度和固定的時(shí)間后關(guān)閉,以達(dá)到定時(shí)為寵物投喂適量的食物。
邏輯控制單元采用STM32F103ZET6 芯片。該芯片是基于CortexTM-M3 核心、有512K 字節(jié)閃存、64k 靜態(tài)隨機(jī)存取存儲(chǔ)器的32 位微控制單元[6]。STM32 擁有超多的外設(shè),并且具有極高的集成度,本文中提到的基于STM32的寵物智能投喂裝置的研究與設(shè)計(jì)使用到的有:ADC、DAC、USB、RTC、TIMER、GPIO 等外設(shè)及功能。
邏輯控制單元是該裝置的核心,目前已經(jīng)實(shí)現(xiàn)的功能有:
功能一:通過按鍵選擇模式針對(duì)不同年齡段的寵物進(jìn)行投喂(若未檢測(cè)到按鍵,則在30s 后自動(dòng)進(jìn)入普通模式),進(jìn)入工作模式后,定時(shí)采集與分析寵物生活的環(huán)境信息,有危險(xiǎn)的話會(huì)發(fā)出警報(bào)。
功能二:然后通過判斷是否在寵物的飯點(diǎn)和定時(shí)器精準(zhǔn)定時(shí),來控制舵機(jī)旋轉(zhuǎn)一定的時(shí)間以達(dá)到自動(dòng)投喂適合當(dāng)前模式年齡段的寵物的目的。
功能三:然后通過互聯(lián)網(wǎng)與模塊將工作時(shí)間和得到的環(huán)境數(shù)據(jù)發(fā)送給寵物主人,使主人隨時(shí)隨地了解寵物的生活情況,寵物主人也可以根據(jù)寵物的生活情況隨時(shí)隨地通過手機(jī)對(duì)寵物進(jìn)行加餐。
自上而下方框中的數(shù)據(jù)分別為開機(jī)自動(dòng)獲取的日期時(shí)間及環(huán)境數(shù)據(jù)、輸入指令date 獲取的環(huán)境數(shù)據(jù)、輸入指令work 執(zhí)行動(dòng)作后獲得的數(shù)據(jù)。圖3 為功能測(cè)試結(jié)果圖,說明已經(jīng)完成了該裝置的預(yù)期功能。
圖3 功能測(cè)試結(jié)果圖
圖4 工作流程圖
首先,當(dāng)系統(tǒng)上電后會(huì)反饋寵物生活環(huán)境數(shù)據(jù)(包括溫度、光照強(qiáng)度、實(shí)時(shí)時(shí)間)。然后會(huì)有30s 的時(shí)間,進(jìn)行選擇工作模式,會(huì)提示選擇到的工作模式適用于哪個(gè)年齡段的寵物,如果選錯(cuò)了,我們可以通過按裝置上的RESET 鍵進(jìn)行復(fù)位。最后,根據(jù)選擇的模式進(jìn)行每天定時(shí)定量的投喂和定時(shí)進(jìn)行環(huán)境檢測(cè)及高溫報(bào)警,如果接收到智能終端設(shè)備發(fā)送的指令,就會(huì)根據(jù)指令,進(jìn)行相對(duì)的操作,然后反饋操作信息。
本文所介紹的基于STM32 的寵物智能投喂裝置有三個(gè)優(yōu)勢(shì):
優(yōu)勢(shì)一:該裝置打破了傳統(tǒng)人工飼養(yǎng)寵物的方法,使用寵物智能投喂,分別有三個(gè)模式針對(duì)不同年齡段的寵物進(jìn)行定時(shí)定量的投喂。
優(yōu)勢(shì)二:具有環(huán)境監(jiān)測(cè)及高溫報(bào)警功能,時(shí)時(shí)刻刻保證寵物生活環(huán)境安全,也顯得其更具有人性化。
優(yōu)勢(shì)三:手機(jī)等智能設(shè)備可以通過WIFI 模塊隨時(shí)隨地查看寵物生活環(huán)境數(shù)據(jù),以及給寵物加餐,顯得其更加智能化。
基于STM32 的寵物智能投喂裝置是在互聯(lián)網(wǎng)影響之下物聯(lián)化的體現(xiàn)。本設(shè)計(jì)所研究的寵物智能投喂裝置不僅僅是一款智能設(shè)備,它更是連接主人與愛寵的紐帶,而且功能強(qiáng)大,時(shí)刻檢測(cè)寵物的生活環(huán)境,照顧到寵物的健康飲食。并且通過APP 將寵物與主人聯(lián)系在一起,未來基于STM32 的寵物智能投喂裝置會(huì)基于投喂和環(huán)境監(jiān)測(cè)等基礎(chǔ)功能之上進(jìn)一步開拓新的空間。