蒲小年 戚慧珊 李智豪 陳澤業(yè) 梁廣彬 唐小煜
摘 要:文中設(shè)計了一款以STM32F103XE嵌入式系統(tǒng)為核心,將ESP-WROOM-02無線網(wǎng)絡(luò)模塊作為網(wǎng)絡(luò)接入端,帶減速齒輪的直流電機(jī)及雙門單開結(jié)構(gòu)的料斗為機(jī)械驅(qū)動結(jié)構(gòu),以微信小程序為遠(yuǎn)程控制端的智能家居系統(tǒng),由此實現(xiàn)對家中寵物按計劃定時定量自動投喂、取食反饋等功能?;讦藽/OS-II和STemWin搭建本地控制界面,以便同時實現(xiàn)網(wǎng)絡(luò)遠(yuǎn)程管理和本地設(shè)置計劃、覆蓋、緩存等功能。實物化后,經(jīng)過長時間的聯(lián)網(wǎng)測試表明,該系統(tǒng)已具備較高的穩(wěn)定性,初步具備了部署能力,可成功實現(xiàn)預(yù)期目標(biāo)。
關(guān)鍵詞:物聯(lián)網(wǎng);智能家居;微信小程序;自動控制;嵌入式系統(tǒng)
中圖分類號:TP273 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2018)09-00-03
0 引 言
現(xiàn)代家庭常有飼養(yǎng)寵物的習(xí)慣,但寵物的喂養(yǎng)卻成了一大難題,一方面是飼養(yǎng)者通常需要在工作日外出上班導(dǎo)致無法及時喂食;另一方面,人工喂食的量不易控制,飼養(yǎng)者因為其他事情忘記投喂也時常發(fā)生。這些問題都極大地影響了人與動物的和諧相處,更增添了飼養(yǎng)者的煩惱。為解決以上問題,筆者基于STM32嵌入式核心設(shè)計并制作了一套聯(lián)網(wǎng)自動喂食系統(tǒng),不同于以往的脫機(jī)自動喂食器,本系統(tǒng)通過接入互聯(lián)網(wǎng),可有效將設(shè)置計劃-進(jìn)行投喂-寵物取食-推送通知反饋形成閉環(huán)消息鏈路,實現(xiàn)對寵物喂食的自動化控制,將熱愛寵物卻忙于工作的“上班族”解救出來。
1 自動喂食系統(tǒng)的設(shè)計
1.1 整體框架
自動喂食系統(tǒng)結(jié)構(gòu)如圖1所示。
1.2 控制部分
自動喂食系統(tǒng)的控制部分以STM32F103VET6大容量增強(qiáng)型芯片為核心。該型號的嵌入式核心為ARM Cortex-M3架構(gòu),具備512 kb FLASH,64 kb RAM,足以支撐STemWin圖形界面的運轉(zhuǎn),十分適合移植μC/OS-II嵌入式實時系統(tǒng)。此外,該核心還含有4個用于控制TFT-LCD屏幕的FSMC接口以及80多個I/O口,能夠十分方便地操作市面上常見的TFT-LCD觸摸屏且不會造成I/O口緊張。系統(tǒng)會在上電后初始化網(wǎng)絡(luò)模塊和本地GUI模塊,從服務(wù)器獲取本設(shè)備的計劃任務(wù),最后保存至本地,即使網(wǎng)絡(luò)斷開,喂食器也能從本地緩存中讀取計劃進(jìn)行投喂。
1.3 通信部分
無線網(wǎng)絡(luò)通信芯片采用國產(chǎn)的ESP-WROOM-02模組,該模組由樂鑫公司生產(chǎn)?;贓SP8266EX芯片設(shè)計開發(fā)的物聯(lián)網(wǎng)模組集成有TCP/IP協(xié)議棧,32位低功耗單片機(jī),10 bits ADC及UART,HSPI,I2C,I2S,PWM接口。此外,該模組的長和寬僅為18 mm及20 mm,易于集成到空間受限的產(chǎn)品當(dāng)中。ESP-WROOM-02的低功耗模式性能優(yōu)異,保持WiFi連接僅需1.2 mW,同時,該模組還配置了16 Mbits的SPI閃存,可用于存儲用戶程序和固件。
1.4 機(jī)械部分
對于定量出料的喂食器,其出料料斗必須具備精準(zhǔn)控制出料量的能力,因此參考醫(yī)院的氣閘室,設(shè)計雙門結(jié)構(gòu)料斗從一個大容器中取料,在保證兩個方向的門不會同時開啟后,即可實現(xiàn)緩沖及定量取料。
2 自動喂食系統(tǒng)的具體實現(xiàn)
2.1 自動喂食系統(tǒng)控制部分的軟件實現(xiàn)
系統(tǒng)上電后首先將操作系統(tǒng)及圖形化界面(GUI)初始化,若存在已經(jīng)連接過的無線網(wǎng)絡(luò)則嘗試自動連接,否則等待用戶通過本地設(shè)置界面連接。聯(lián)網(wǎng)后將生成兩個進(jìn)程,其中一個使用HTTP協(xié)議訪問指定的PHP頁面,通過GET方式獲取當(dāng)前的網(wǎng)絡(luò)時間和計劃任務(wù),在此之后將進(jìn)入5 s一次的輪詢狀態(tài)以隨時感知計劃變更。另一任務(wù)則是判斷當(dāng)前時間是否為投喂時間,如果是則按照設(shè)定的次數(shù)進(jìn)行投喂。自動喂食系統(tǒng)控制部分流程如圖2所示。
STM32主控芯片與ESP8266EX模組(即ESP-WROOM-02)通過串口上的字符串指令——“AT”進(jìn)行控制,當(dāng)系統(tǒng)初始化完畢后,STM32將發(fā)送指令使無線網(wǎng)絡(luò)模塊進(jìn)入透傳模式,此時等效于主控芯片直接與服務(wù)器通信,可快速傳遞數(shù)據(jù),包括飼料余量、取食狀態(tài)等。自動喂食系統(tǒng)狀態(tài)流程如圖3所示。
2.2 自動喂食系統(tǒng)的電路實現(xiàn)
2.2.1 ESP-WROOM-02電路設(shè)計
自動喂食系統(tǒng)通信模塊電路如圖4所示。本電路將ESP-WROOM-02的多個I/O口引出,并將TXD/RXD串口與CH340G連接,實現(xiàn)在電腦等上位機(jī)中進(jìn)行程序燒錄及協(xié)議分析。ASM1117為正向低壓降LDO穩(wěn)壓電源,量產(chǎn)時間早,價格低廉,性能穩(wěn)定,常用于輸出電流小于1 A的場景,本系統(tǒng)將其作為ESP-WROOM-02無線網(wǎng)絡(luò)模塊的電源。
2.2.2 喂食驅(qū)動電路設(shè)計
喂食驅(qū)動電路采用四IR2104芯片及IR7843場效應(yīng)管搭建雙H橋進(jìn)行驅(qū)動。IR2104是由美國International Rectifier公司生產(chǎn)的半橋驅(qū)動器,可通過控制輸入PWM信號的占空比來控制驅(qū)動輸出的電流大小,通過IN1,IN2的反轉(zhuǎn)控制電機(jī)的轉(zhuǎn)動方向。自動喂食系統(tǒng)驅(qū)動模塊電路如圖5所示,具體組合方式見表1所列。
2.3 自動喂食系統(tǒng)的機(jī)械實現(xiàn)
初始狀態(tài)時,由于儲糧容器中貓糧的重力作用,料斗處于水平狀態(tài),并與瓶口緊貼,使得飼料不會外漏。預(yù)備存儲時的投喂料斗如圖6所示。
投料時,料斗后退,由于斜板的阻擋作用,料斗將順勢上移并開口向下,又因為料斗下方的開口并沒有阻擋,因此料斗內(nèi)的飼料可順利下落。此時料斗結(jié)構(gòu)的擋板同時后退,封閉儲糧瓶口,使得儲糧容器飼料不外漏。出料時投喂料斗示意圖如圖7所示。通過反復(fù)設(shè)計和調(diào)整,將每次滿載的料斗所能承載的重量設(shè)定為M克,這樣就可以得到投喂量Efeed、容器內(nèi)飼料余量Eremain與電機(jī)運行次數(shù)C的關(guān)系:
使用以上兩式可以計算出本次投喂電機(jī)需要運行的次數(shù)及容器內(nèi)的余量,在飼料余量不足時通知飼養(yǎng)者,同時用于程序計算以顯示余量。
2.4 自動喂食系統(tǒng)的遠(yuǎn)程控制端
本系統(tǒng)的遠(yuǎn)程控制端使用微信小程序?qū)崿F(xiàn)。每套喂食器擁有唯一的PIN碼和對應(yīng)SN碼,用戶注冊賬號后,輸入設(shè)備的SN和PIN碼,通過HASH計算無誤后成功綁定該設(shè)備,此后該設(shè)備的所有操作及狀態(tài)都會與綁定的微信號關(guān)聯(lián),包括投喂、取食、余量不足等信息都會推送至綁定的用戶微信,讓飼養(yǎng)者隨時掌握自動喂食系統(tǒng)的狀態(tài)。每個用戶可以綁定多套設(shè)備,分別設(shè)置不同的計劃,方便使用不同食盆的寵物按照自己的習(xí)慣進(jìn)食。喂食系統(tǒng)的遠(yuǎn)程控制端界面如圖8所示。
2.5 自動喂食系統(tǒng)的實物測試
根據(jù)上述設(shè)計方法,我們制作了如圖9所示的實物。其中上部為飼料容器,左中部為LCD屏幕及開發(fā)板,右中部為出料斜坡,左下方為ESP-WROOM2-02無線網(wǎng)絡(luò)模塊,右下方為接料容器,寵物將直接在該容器中進(jìn)食。圖10所示為本地設(shè)置所用的GUI界面,使用者可以直接觸屏控制,使用自行編寫的軟鍵盤進(jìn)行輸入。
完成實物制作后,我們進(jìn)行了一系列的出料穩(wěn)定性測試。出料穩(wěn)定性主要由料斗等出料機(jī)械設(shè)計決定,鑒于存放飼料的容器有兩種邊界狀態(tài),即滿載和空載,而實際應(yīng)用時因為喂食器會及時提醒,所以正常情況下不會出現(xiàn)完全空載的情況,使用者加料時通常也不會完全填滿容器,所以我們選取了接近臨界狀態(tài)的兩種情況進(jìn)行出料穩(wěn)定性測試,通過設(shè)定不同的出料量,比較實際出料量和理論出料量的差別并計算其誤差百分比。穩(wěn)定性測試結(jié)果見表2所列。
由上文可知,系統(tǒng)在容器較滿時更加穩(wěn)定,單次出料量較大。
3 結(jié) 語
自動寵物喂食系統(tǒng)以雙門單開結(jié)構(gòu)的出料機(jī)械結(jié)構(gòu)為基礎(chǔ),以高性能STM32嵌入式芯片為核心,以ESP-WROOM-02無線網(wǎng)絡(luò)模塊為關(guān)鍵拓展,以微信小程序為用戶頂層界面,從底層到頂層、從具體到抽象,實現(xiàn)了本系統(tǒng)的所有預(yù)期功能,適用具體人群的具體問題,具有一定的社會經(jīng)濟(jì)效益。
參考文獻(xiàn)
[1]凱文.R.福爾. TCP/IP詳解(卷一)[M]. 北京:機(jī)械工業(yè)出版社,2017.
[2]謝希仁.計算機(jī)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2013.
[3]榮蓉.實戰(zhàn)微信小程序(第六版)[M].北京:電子工業(yè)出版社,2017.
[4]楊家軍.機(jī)械原理(第2版)[M].北京:北京大學(xué)出版社,2010.
[5]王田苗.嵌入式系統(tǒng)設(shè)計與實例開發(fā)(第3版)[M].北京:清華大學(xué)出版社,2007.
[6]周鼎,曹以龍.基于Web版微信與ZigBee網(wǎng)絡(luò)的智能家居設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2018,8(1):105-107.
[7]鄭艷華,蔡佳林.一種基于微信平臺的智能家居系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2016,6(12):45-47.
[8]張雪云,牟艷,張九博.基于微信小程序的電源監(jiān)測管理系統(tǒng)設(shè)計[J].計算機(jī)與現(xiàn)代化,2017(12):98-102.