基于微信小程序的寵物自動(dòng)喂食系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
現(xiàn)代家庭常有飼養(yǎng)寵物的習(xí)慣,但寵物的喂養(yǎng)卻成了一大難題,一方面是飼養(yǎng)者通常需要在工作日外出上班導(dǎo)致無(wú)法及時(shí)喂食;另一方面,人工喂食的量不易控制,飼養(yǎng)者因?yàn)槠渌虑橥浲段挂矔r(shí)常發(fā)生。這些問(wèn)題都極大地影響了人與動(dòng)物的和諧相處,更增添了飼養(yǎng)者的煩惱。為解決以上問(wèn)題,筆者基于 STM32嵌入式核心設(shè)計(jì)并制作了一套聯(lián)網(wǎng)自動(dòng)喂食系統(tǒng),不同于以往的脫機(jī)自動(dòng)喂食器,本系統(tǒng)通過(guò)接入互聯(lián)網(wǎng),可有效將設(shè)置計(jì)劃- 進(jìn)行投喂 - 寵物取食- 推送通知反饋形成閉環(huán)消息鏈路實(shí)現(xiàn)對(duì)寵物喂食的自動(dòng)化控制,將熱愛(ài)寵物卻忙于工作的“上班族”解救出來(lái)
1 自動(dòng)喂食系統(tǒng)的設(shè)計(jì)
1.1 整體框架
自動(dòng)喂食系統(tǒng)結(jié)構(gòu)如圖 1 所示
1.2 控制部分
自動(dòng)喂食系統(tǒng)的控制部分以 STM32F103VET6 大容量增強(qiáng)型芯片為核心。該型號(hào)的嵌入式核心為 ARM Cortex-M3 架構(gòu), 具備 512 kb FLASH,64 kb RAM, 足以支撐 STemWin 圖形界面的運(yùn)轉(zhuǎn),十分適合移植 μC/OS-II 嵌入式實(shí)時(shí)系統(tǒng)此外, 該核心還含有 4 個(gè)用于控制TFT-LCD 屏幕的 FSMC 接口以及 80 多個(gè)I/O 口,能夠十分方便地操作市面上常見(jiàn)的TFT-LCD 觸摸屏且不會(huì)造成 I/O 口緊張。系統(tǒng)會(huì)在上電后初始化網(wǎng)絡(luò)模塊和本地 GUI 模塊,從服務(wù)器獲取本設(shè)備的計(jì)劃任務(wù),最后保存至本地,即使網(wǎng)絡(luò)斷開(kāi),喂食器也能從本地緩存中讀取計(jì)劃進(jìn)行投喂
1.3 通信部分
無(wú)線網(wǎng)絡(luò)通信芯片采用國(guó)產(chǎn)的 ESP-WROOM-02 模組該模組由樂(lè)鑫公司生產(chǎn)。基于 ESP8266EX 芯片設(shè)計(jì)開(kāi)發(fā)的物聯(lián)網(wǎng)模組集成有 TCP/IP 協(xié)議棧,32 位低功耗單片機(jī),10 bits ADC 及UART,HSPI,I2C,I2S,PWM 接口。此外,該模組的長(zhǎng)和寬僅為 18 mm 及 20 mm,易于集成到空間受限的產(chǎn)品當(dāng)中。ESP-WROOM-02 的低功耗模式性能優(yōu)異,保持WiFi 連接僅需 1.2 mW,同時(shí),該模組還配置了 16 Mbits 的SPI 閃存可用于存儲(chǔ)用戶程序和固件
1.4 機(jī)械部分
對(duì)于定量出料的喂食器,其出料料斗必須具備精準(zhǔn)控制出料量的能力,因此參考醫(yī)院的氣閘室,設(shè)計(jì)雙門(mén)結(jié)構(gòu)料斗從一個(gè)大容器中取料,在保證兩個(gè)方向的門(mén)不會(huì)同時(shí)開(kāi)啟后,即可實(shí)現(xiàn)緩沖及定量取料
2 自動(dòng)喂食系統(tǒng)的具體實(shí)現(xiàn)
2.1 自動(dòng)喂食系統(tǒng)控制部分的軟件實(shí)現(xiàn)
系統(tǒng)上電后首先將操作系統(tǒng)及圖形化界面(GUI)初始化,若存在已經(jīng)連接過(guò)的無(wú)線網(wǎng)絡(luò)則嘗試自動(dòng)連接,否則等待用戶通過(guò)本地設(shè)置界面連接。聯(lián)網(wǎng)后將生成兩個(gè)進(jìn)程,其中一個(gè)使用HTTP 協(xié)議訪問(wèn)指定的 PHP 頁(yè)面,通過(guò) GET 方式獲取當(dāng)前的網(wǎng)絡(luò)時(shí)間和計(jì)劃任務(wù),在此之后將進(jìn)入 5 s 一次的輪詢狀態(tài)以隨時(shí)感知計(jì)劃變更。另一任務(wù)則是判斷當(dāng)前時(shí)間是否為投喂時(shí)間,如果是則按照設(shè)定的次數(shù)進(jìn)行投喂。自動(dòng)喂食系統(tǒng)控制部分流程如圖 2 所示
圖 2 自動(dòng)喂食系統(tǒng)控制部分流程
STM32 主 控 芯 片 與 ESP8266EX 模 組 ( 即 ESP- WROOM-02)通過(guò)串口上的字符串指令——“AT”進(jìn)行控制當(dāng)系統(tǒng)初始化完畢后,STM32 將發(fā)送指令使無(wú)線網(wǎng)絡(luò)模塊進(jìn)入透?jìng)髂J?,此時(shí)等效于主控芯片直接與服務(wù)器通信,可快速傳遞數(shù)據(jù),包括飼料余量、取食狀態(tài)等。自動(dòng)喂食系統(tǒng)狀態(tài)流程如圖 3 所示
2.2 自動(dòng)喂食系統(tǒng)的電路實(shí)現(xiàn)
2.2.1 ESP-WROOM-02電路設(shè)計(jì)
自動(dòng)喂食系統(tǒng)通信模塊電路如圖 4 所示。本電路將 ESP- WROOM-02 的多個(gè) I/O 口引出, 并將 TXD/RXD 串口與CH340G 連接,實(shí)現(xiàn)在電腦等上位機(jī)中進(jìn)行程序燒錄及協(xié)議分析。ASM1117 為正向低壓降 LDO 穩(wěn)壓電源,量產(chǎn)時(shí)間早,價(jià)格低廉,性能穩(wěn)定,常用于輸出電流小于1 A 的場(chǎng)景,本系統(tǒng)將其作為 ESP-WROOM-02 無(wú)線網(wǎng)絡(luò)模塊的電源
2.2.2 喂食驅(qū)動(dòng)電路設(shè)計(jì)
喂食驅(qū)動(dòng)電路采用四 IR2104 芯片及 IR7843 場(chǎng)效應(yīng)管搭建雙 H 橋進(jìn)行驅(qū)動(dòng)。IR2104 是由美國(guó) International Rectifier 公司生產(chǎn)的半橋驅(qū)動(dòng)器,可通過(guò)控制輸入 PWM 信號(hào)的占空比來(lái)控制驅(qū)動(dòng)輸出的電流大小,通過(guò)IN1,IN2 的反轉(zhuǎn)控制電機(jī)的轉(zhuǎn)動(dòng)方向。自動(dòng)喂食系統(tǒng)驅(qū)動(dòng)模塊電路如圖 5 所示,具體組合方式見(jiàn)表 1 所列
2.3 自動(dòng)喂食系統(tǒng)的機(jī)械實(shí)現(xiàn)
初始狀態(tài)時(shí),由于儲(chǔ)糧容器中貓糧的重力作用,料斗處于水平狀態(tài),并與瓶口緊貼,使得飼料不會(huì)外漏。預(yù)備存儲(chǔ)時(shí)的投喂料斗如圖 6 所示
投料時(shí),料斗后退,由于斜板的阻擋作用,料斗將順勢(shì)上移并開(kāi)口向下,又因?yàn)榱隙废路降拈_(kāi)口并沒(méi)有阻擋,因此料斗內(nèi)的飼料可順利下落。此時(shí)料斗結(jié)構(gòu)的擋板同時(shí)后退,封閉儲(chǔ)糧瓶口,使得儲(chǔ)糧容器飼料不外漏。出料時(shí)投喂料斗示意圖如圖 7 所示。通過(guò)反復(fù)設(shè)計(jì)和調(diào)整,將每次滿載的料斗所能承載的重量設(shè)定為 M 克,這樣就可以得到投喂量 Efeed 容器內(nèi)飼料余量 Eremain 與電機(jī)運(yùn)行次數(shù) C 的關(guān)系
使用以上兩式可以計(jì)算出本次投喂電機(jī)需要運(yùn)行的次數(shù)及容器內(nèi)的余量,在飼料余量不足時(shí)通知飼養(yǎng)者,同時(shí)用于程序計(jì)算以顯示余量
2.4 自動(dòng)喂食系統(tǒng)的遠(yuǎn)程控制端
本系統(tǒng)的遠(yuǎn)程控制端使用微信小程序實(shí)現(xiàn)。每套喂食器擁有唯一的 PIN 碼和對(duì)應(yīng) SN 碼,用戶注冊(cè)賬號(hào)后,輸入設(shè)備的 SN 和 PIN 碼,通過(guò) HASH 計(jì)算無(wú)誤后成功綁定該設(shè)備,此后該設(shè)備的所有操作及狀態(tài)都會(huì)與綁定的微信號(hào)關(guān)聯(lián),包括投喂、取食、余量不足等信息都會(huì)推送至綁定的用戶微信,讓飼養(yǎng)者隨時(shí)掌握自動(dòng)喂食系統(tǒng)的狀態(tài)。每個(gè)用戶可以綁定多套設(shè)備,分別設(shè)置不同的計(jì)劃,方便使用不同食盆的寵物按照自己的習(xí)慣進(jìn)食。喂食系統(tǒng)的遠(yuǎn)程控制端界面如圖 8 所示。
2.5 自動(dòng)喂食系統(tǒng)的實(shí)物測(cè)試
根據(jù)上述設(shè)計(jì)方法,我們制作了如圖 9 所示的實(shí)物。其中上部為飼料容器,左中部為 LCD 屏幕及開(kāi)發(fā)板,右中部為出料斜坡,左下方為 ESP-WROOM2-02 無(wú)線網(wǎng)絡(luò)模塊,右下方為接料容器,寵物將直接在該容器中進(jìn)食。圖 10 所示為本地設(shè)置所用的 GUI 界面,使用者可以直接觸屏控制,使用自行編寫(xiě)的軟鍵盤(pán)進(jìn)行輸入。
完成實(shí)物制作后,我們進(jìn)行了一系列的出料穩(wěn)定性測(cè)試出料穩(wěn)定性主要由料斗等出料機(jī)械設(shè)計(jì)決定,鑒于存放飼料的容器有兩種邊界狀態(tài),即滿載和空載,而實(shí)際應(yīng)用時(shí)因?yàn)槲故称鲿?huì)及時(shí)提醒,所以正常情況下不會(huì)出現(xiàn)完全空載的情況使用者加料時(shí)通常也不會(huì)完全填滿容器,所以我們選取了接近臨界狀態(tài)的兩種情況進(jìn)行出料穩(wěn)定性測(cè)試,通過(guò)設(shè)定不同的出料量,比較實(shí)際出料量和理論出料量的差別并計(jì)算其誤差百分比。穩(wěn)定性測(cè)試結(jié)果見(jiàn)表 2 所列
由上文可知,系統(tǒng)在容器較滿時(shí)更加穩(wěn)定,單次出料量較大。
3 結(jié) 語(yǔ)
自動(dòng)寵物喂食系統(tǒng)以雙門(mén)單開(kāi)結(jié)構(gòu)的出料機(jī)械結(jié)構(gòu)為基礎(chǔ),以高性能 STM32 嵌入式芯片為核心,以 ESP-WROOM-02無(wú)線網(wǎng)絡(luò)模塊為關(guān)鍵拓展,以微信小程序為用戶頂層界面,從底層到頂層、從具體到抽象,實(shí)現(xiàn)了本系統(tǒng)的所有預(yù)期功能,適用具體人群的具體問(wèn)題,具有一定的社會(huì)經(jīng)濟(jì)效益。
5049.5.0