趙 青,許育恒,朱鵬飛,陳 錫
(南通職業(yè)大學(xué) 電子信息工程學(xué)院,江蘇 南通 226007)
生豬價(jià)格繼2021年出現(xiàn)大幅下跌后,于2022年3月再次探底。生豬價(jià)格大跌,加之人工成本與飼料成本較大幅度增加,生豬養(yǎng)殖行業(yè)人員流失,一些養(yǎng)殖企業(yè)、專業(yè)養(yǎng)殖戶面臨嚴(yán)重虧損甚至破產(chǎn)或停業(yè)的困境。為幫助養(yǎng)殖企業(yè)挺過(guò)難關(guān),設(shè)計(jì)一款基于物聯(lián)網(wǎng)的生豬智能養(yǎng)殖系統(tǒng),通過(guò)養(yǎng)殖環(huán)境自動(dòng)監(jiān)測(cè)控制、自動(dòng)喂養(yǎng)、自動(dòng)清掃、防火防盜等功能的實(shí)現(xiàn),以減少損失,降低生豬養(yǎng)殖成本,提高生豬瘦肉率,提高養(yǎng)殖戶收入。同時(shí),還可改善養(yǎng)殖人員工作環(huán)境,降低勞動(dòng)強(qiáng)度,幫助養(yǎng)殖企業(yè)留住員工。
智能養(yǎng)殖系統(tǒng)分硬件和軟件兩部分,總體構(gòu)成如圖1所示。以帶WIFI模塊的單片機(jī)為核心構(gòu)建防火、防盜、環(huán)境自動(dòng)調(diào)控、自動(dòng)喂養(yǎng)和自動(dòng)清掃等多個(gè)節(jié)點(diǎn),實(shí)現(xiàn)豬舍環(huán)境的自動(dòng)調(diào)控、自動(dòng)清掃,以及自動(dòng)喂養(yǎng)和防火防盜等功能。進(jìn)行移動(dòng)端APP開(kāi)發(fā),利用阿里云進(jìn)行數(shù)據(jù)的上報(bào)和下發(fā),實(shí)現(xiàn)遠(yuǎn)程查看和遠(yuǎn)程控制等功能。
圖1 智能養(yǎng)殖系統(tǒng)總體構(gòu)成
系統(tǒng)硬件設(shè)計(jì)具體包括單片機(jī)最小系統(tǒng)設(shè)計(jì)、電源設(shè)計(jì)、各節(jié)點(diǎn)單片機(jī)接口設(shè)計(jì)等。
單片機(jī)選用深圳安信可科技公司生產(chǎn)ESP 12F,該模塊內(nèi)核處理器為ESP8266EX,是一款高度集成的WiFi SOC。ESP12F使用3DBi的PCB板載天線,支持標(biāo)準(zhǔn)的IEEE802.11b/g/n協(xié)議,載波頻率為2.4 GHz,支持完整的TCP/IP協(xié)議[1],適用于智能家居、工業(yè)物聯(lián)網(wǎng)等領(lǐng)域。
為保證電路正常運(yùn)轉(zhuǎn),按照安信可設(shè)計(jì)指南,禁用ESP12F的pin9-pin14引腳。以ESP12F為基礎(chǔ),增加外圍復(fù)位電路和電容濾波儲(chǔ)能電路,并拉低GPIO15,設(shè)計(jì)圖2所示的單片機(jī)最小系統(tǒng),作為各節(jié)點(diǎn)控制核心。圖2中,K1為人機(jī)交互按鍵,K2為復(fù)位按鍵。
圖2 單片機(jī)最小系統(tǒng)
使用HLK-PM01穩(wěn)壓AC-DC隔離開(kāi)關(guān)電源模塊實(shí)現(xiàn)220 V市電轉(zhuǎn)5 V直流電,使用AMS1117-3.3線性穩(wěn)壓器,將5 V電壓降為單片機(jī)所需的穩(wěn)壓3.3 V,設(shè)計(jì)電源電路如圖3所示。
圖3 電源電路
防火節(jié)點(diǎn)由電源、單片機(jī)最小系統(tǒng)和火焰?zhèn)鞲衅鱗2]、煙霧傳感器MQ-2、HNB09A05-JX蜂鳴器模組等組成,用于實(shí)時(shí)檢測(cè)環(huán)境中有無(wú)火焰和煙霧,若有則蜂鳴器進(jìn)行報(bào)警。相應(yīng)單片機(jī)接口電路如圖4所示。
圖4 防火節(jié)點(diǎn)單片機(jī)接口電路
防盜節(jié)點(diǎn)由電源、單片機(jī)最小系統(tǒng)、人體紅外傳感器模塊HC-SR501[3]、CC6201磁力傳感器、HNB09A05-JX蜂鳴器模組等組成,置于陽(yáng)臺(tái)和門窗附近。若檢測(cè)到有人闖入或門窗被打開(kāi),蜂鳴器進(jìn)行報(bào)警。相應(yīng)單片機(jī)接口電路如圖5所示。
圖5 防盜節(jié)點(diǎn)單片機(jī)接口電路
環(huán)境自動(dòng)調(diào)控節(jié)點(diǎn)由電源、單片機(jī)最小系統(tǒng)、溫濕度傳感器SHTC3、4引腳OLED(IIC通信方式)、JC817C光 耦 模 塊、8050三 極 管、SRD-05VDC-SL-C繼電器模塊等組成,其單片機(jī)接口電路如圖6所示。單片機(jī)通過(guò)SHTC3實(shí)時(shí)檢測(cè)環(huán)境溫度和濕度數(shù)據(jù),由OLED顯示檢測(cè)結(jié)果。當(dāng)溫度或濕度過(guò)高,單片機(jī)引腳IO14輸出低電平,光耦模塊U10導(dǎo)通,輸出電流,三極管Q5導(dǎo)通,集電極產(chǎn)生電流,繼電器RLY5得電發(fā)生吸合動(dòng)作,公共觸點(diǎn)5與常開(kāi)觸點(diǎn)2相連,風(fēng)扇火線因此與市電火線相接,風(fēng)扇得電工作。當(dāng)溫度過(guò)低,單片機(jī)引腳IO13輸出低電平,光耦模塊U17導(dǎo)通,繼電器RLY8得電發(fā)生吸合動(dòng)作,驅(qū)動(dòng)加熱器工作。按鍵K3和K4用于設(shè)置溫度的上下限:短按K3一次,設(shè)置溫度上限;連續(xù)短按K3兩次,設(shè)置溫度下限;長(zhǎng)按K3,退出設(shè)置;每短按K4一次,對(duì)設(shè)定值加1;每長(zhǎng)按K4一次,對(duì)設(shè)定值減1。設(shè)置的溫度上下限存入ESP12F內(nèi)部FLASH,可實(shí)現(xiàn)掉電保護(hù)。環(huán)境自動(dòng)調(diào)控功能為生豬生長(zhǎng)提供合適的溫濕度,提高豬崽存活率,降低生豬得病率和病死率,幫助養(yǎng)殖戶減少相應(yīng)損失。
圖6 環(huán)境自動(dòng)調(diào)控節(jié)點(diǎn)單片機(jī)接口電路
自動(dòng)喂養(yǎng)節(jié)點(diǎn)由單片機(jī)最小系統(tǒng)、JC817C光耦模塊、8050三極管、SRD-05VDC-SL-C繼電器模塊、電源電路等組成,控制伺服電機(jī)、放水泵、喂食泵及攪拌電機(jī)有序工作。單片機(jī)接口電路如圖7所示。其中,伺服電機(jī)帶動(dòng)傳輸帶向攪拌槽投放飼料,放水泵向攪拌槽放水,攪拌電機(jī)將干飼料和水?dāng)嚢璩芍鄻訚耧暳?,喂食泵從攪拌槽抽取濕飼料送往飼料運(yùn)輸管。
圖7 自動(dòng)喂養(yǎng)節(jié)點(diǎn)單片機(jī)接口電路
單片機(jī)判斷按鍵K1是否被按下,若是,有序執(zhí)行以下操作:IO14輸出低電平,控制伺服電機(jī)工作,利用傳輸帶將干飼料送入攪拌槽;同時(shí)IO13產(chǎn)生低電平,驅(qū)動(dòng)放水泵工作,抽水送往攪拌槽;2分鐘后,IO5產(chǎn)生低電平,驅(qū)動(dòng)攪拌機(jī)工作;10分鐘后IO4引腳輸出低電平,驅(qū)動(dòng)喂食泵從攪拌槽抽取濕飼料送往飼料運(yùn)輸管道。自動(dòng)喂養(yǎng)模塊除了可以減少人工成本,還可根據(jù)生豬生長(zhǎng)周期控制飼料投喂量,進(jìn)行精準(zhǔn)喂養(yǎng),提高生豬瘦肉率,提高收入。
自動(dòng)清掃節(jié)點(diǎn)由電源電路、單片機(jī)最小系統(tǒng)、MQ137氨氣傳感器模塊、JC817C光耦模塊、8050三極管、SRD-05VDC-SL-C繼電器模塊和常閉型水用電磁閥等構(gòu)成,其單片機(jī)接口電路如圖8所示。由MQ137氨氣傳感器采集環(huán)境氨氣濃度,通過(guò)IO16引腳送往單片機(jī)進(jìn)行數(shù)據(jù)分析。豬舍內(nèi)糞便較多時(shí),環(huán)境氨氣濃度超標(biāo),IO13引腳輸出低電平,光耦模塊U14導(dǎo)通,繼電器RLY7發(fā)生吸合動(dòng)作,驅(qū)動(dòng)電磁閥打開(kāi)閥門,水進(jìn)入水龍頭噴頭,實(shí)現(xiàn)對(duì)豬舍的自動(dòng)清掃。每個(gè)豬舍都安裝自動(dòng)清掃節(jié)點(diǎn),通過(guò)自動(dòng)清掃確保生豬生長(zhǎng)環(huán)境衛(wèi)生,避免生豬因?yàn)榄h(huán)境臟而患病。另外,自動(dòng)清掃功能還可減少人工成本。
圖8 自動(dòng)清掃節(jié)點(diǎn)單片機(jī)接口電路
阿里云物聯(lián)網(wǎng)云平臺(tái)集成了設(shè)備管理、數(shù)據(jù)安全通信和消息訂閱等功能,向下支持連接海量設(shè)備,采集設(shè)備數(shù)據(jù)上傳,向上提供云端API,服務(wù)端可通過(guò)調(diào)用云端API將指令下發(fā)至設(shè)備端,實(shí)現(xiàn)遠(yuǎn)程控制。本文采用阿里云物聯(lián)網(wǎng)云平臺(tái)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)查看、遠(yuǎn)程喂養(yǎng)及遠(yuǎn)程清掃等功能。
在阿里云物聯(lián)網(wǎng)平臺(tái)創(chuàng)建 “產(chǎn)品” ,在 “產(chǎn)品” 中創(chuàng)建 “單片機(jī)設(shè)備” 和 “Android App設(shè)備” ,配置C Link SDK,實(shí)現(xiàn)設(shè)備端上報(bào)屬性和事件,并接收云平臺(tái)發(fā)送的設(shè)置屬性和調(diào)用服務(wù)的指令。
單片機(jī)設(shè)備利用AliyunIoTSDK庫(kù)和MQTT協(xié)議連接阿里云平臺(tái),APP設(shè)備利用Paho Android Service庫(kù)和MQTT協(xié)議連接阿里云平臺(tái)。MQTT是一種采用TCP/IP協(xié)議棧搭建的異步式數(shù)據(jù)電話報(bào)文協(xié)議,是一個(gè)輕量級(jí)的收發(fā)、訂閱報(bào)文數(shù)據(jù)傳輸技術(shù)協(xié)議。通過(guò)MQTT協(xié)議,報(bào)文發(fā)送和接收都不受時(shí)間和空間限制。制定單片機(jī)設(shè)備和APP設(shè)備間發(fā)布和訂閱的規(guī)則轉(zhuǎn)化,其數(shù)據(jù)可相互發(fā)布訂閱,即APP可獲取單片機(jī)上傳于云端的數(shù)據(jù),單片機(jī)可接收APP下發(fā)的指令。
環(huán)境自動(dòng)調(diào)控節(jié)點(diǎn)采集環(huán)境溫度、濕度數(shù)據(jù)并在OLED屏顯示,將環(huán)境數(shù)據(jù)實(shí)時(shí)上傳阿里云云平臺(tái),存儲(chǔ)于云端,實(shí)現(xiàn)對(duì)環(huán)境溫濕度的自動(dòng)調(diào)節(jié)。如溫度過(guò)高時(shí),繼電器驅(qū)動(dòng)風(fēng)扇工作,溫度過(guò)低時(shí)繼電器驅(qū)動(dòng)加熱器工作。環(huán)境自動(dòng)調(diào)控節(jié)點(diǎn)主程序流程如圖9所示。
圖9 環(huán)境自動(dòng)調(diào)控節(jié)點(diǎn)主程序流程
防火防天然氣泄漏節(jié)點(diǎn)采集火焰數(shù)據(jù)和煙霧濃度,若數(shù)值超標(biāo),則進(jìn)行報(bào)警,并將檢測(cè)的數(shù)據(jù)實(shí)時(shí)上傳阿里云云平臺(tái),存儲(chǔ)于云端。防火節(jié)點(diǎn)主程序流程如圖10所示。
圖10 防火節(jié)點(diǎn)主程序流程
防盜節(jié)點(diǎn)設(shè)置于陽(yáng)臺(tái)和門窗附近,利用人體紅外傳感器模塊HC-SR501采集人體紅外信號(hào),判斷有無(wú)外人闖入,通過(guò)CC6201霍爾傳感器檢測(cè)磁場(chǎng)有無(wú)變化以判斷門窗是否被打開(kāi)。若有,則進(jìn)行聲光報(bào)警,實(shí)現(xiàn)防盜防闖入的目的。同時(shí),將檢測(cè)數(shù)據(jù)實(shí)時(shí)上傳阿里云云平臺(tái),存儲(chǔ)于云端。其節(jié)點(diǎn)主程序流程如圖11所示。
圖11 防盜節(jié)點(diǎn)主程序流程
應(yīng)用Android studio開(kāi)發(fā)移動(dòng)APP “智能養(yǎng)殖” ,通過(guò)Java編程實(shí)現(xiàn)相應(yīng)功能。
創(chuàng)建一個(gè)user的活動(dòng)作為用戶登錄界面,用于填寫用戶信息,包括云平臺(tái)地址、設(shè)備名和產(chǎn)品名、用戶密碼、MQTT地址、MQTT關(guān)于訂閱和發(fā)布的主題等[4]。創(chuàng)建一個(gè)main活動(dòng),用于顯示環(huán)境信息和進(jìn)行遠(yuǎn)程控制。進(jìn)行MQTT初始化,調(diào)用MQTT Client類,獲取在user界面里存儲(chǔ)的數(shù)據(jù)。進(jìn)行MQTT連接設(shè)置,設(shè)置獲取用戶界面存儲(chǔ)的用戶名和密碼并進(jìn)行連接,設(shè)置超時(shí)時(shí)限,設(shè)置連接不到云平臺(tái)時(shí)的重新連接。云平臺(tái)連接成功后,獲取單片機(jī)上傳云端的數(shù)據(jù),通過(guò)正則表達(dá)式解析數(shù)據(jù),并對(duì)解析數(shù)據(jù)進(jìn)行判斷,若數(shù)據(jù)異常,進(jìn)行彈窗提示并發(fā)送報(bào)警信息。將數(shù)據(jù)進(jìn)一步處理,生成相應(yīng)信息并給界面元素賦值,實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)查看功能。通過(guò)云端向單片機(jī)下發(fā)指令,實(shí)現(xiàn)遠(yuǎn)程喂養(yǎng)控制、遠(yuǎn)程清掃控制功能。
“智能養(yǎng)殖” APP具有遠(yuǎn)程數(shù)據(jù)查看、遠(yuǎn)程控制等功能。實(shí)時(shí)更新豬舍環(huán)境數(shù)據(jù),數(shù)據(jù)異常時(shí)推送報(bào)警信息,第一時(shí)間提示用戶 “豬舍有危險(xiǎn)” 等。用戶無(wú)須進(jìn)入現(xiàn)場(chǎng)即可通過(guò)APP進(jìn)行遠(yuǎn)程喂養(yǎng)、遠(yuǎn)程控制噴頭對(duì)豬舍進(jìn)行清掃。APP界面效果如圖12所示。
圖12 智能養(yǎng)殖APP界面效果
基于物聯(lián)網(wǎng)的智能養(yǎng)殖系統(tǒng)可通過(guò)自動(dòng)喂養(yǎng)和自動(dòng)清掃減少人工成本;通過(guò)環(huán)境自動(dòng)調(diào)控和自動(dòng)清掃確保養(yǎng)殖環(huán)境衛(wèi)生舒適,可提高豬崽存活率,降低生豬患病率和病死率等,從而幫助養(yǎng)殖企業(yè)積極應(yīng)對(duì)生豬市場(chǎng)價(jià)格持續(xù)走低的不利局面;同時(shí),通過(guò)防火防盜功能減少異常損失。另外,進(jìn)行移動(dòng)端APP開(kāi)發(fā),利用阿里云進(jìn)行數(shù)據(jù)的上傳和下發(fā),實(shí)現(xiàn)了遠(yuǎn)程查看、遠(yuǎn)程喂養(yǎng)和遠(yuǎn)程清掃控制等功能,使得養(yǎng)殖工作簡(jiǎn)單而輕松。應(yīng)用實(shí)踐表明,該系統(tǒng)成本低、效果好、安裝方便,值得推廣。