摘要
本智能鴿籠控制系統(tǒng)由貴州大學(xué)電氣工程專(zhuān)業(yè)的劉磊、王民慧設(shè)計(jì)開(kāi)發(fā)完成,基于STM32+機(jī)智云AIoT云平臺(tái)設(shè)計(jì)專(zhuān)為賽鴿進(jìn)籠檢測(cè)的裝置,利用機(jī)智云平臺(tái)進(jìn)行數(shù)據(jù)的傳輸交換,通過(guò) WiFi 模塊與云端的通信,將采集到的溫濕度、歸巢時(shí)間、告警信號(hào)等發(fā)送到手機(jī) APP 端,同時(shí)在鴿子歸巢時(shí)通過(guò)撥打人員電話,在斷網(wǎng)的情況下可以進(jìn)行按鍵操作,最終以物聯(lián)網(wǎng)控制的方式能夠?qū)慀澾M(jìn)行有效的飼養(yǎng)選育。
正文內(nèi)容
在賽鴿養(yǎng)殖中,飼養(yǎng)者因?yàn)楣ぷ魃罘泵Φ仍驅(qū)o(wú)法按時(shí)喂養(yǎng)鴿子,同時(shí)賽鴿的養(yǎng)殖往往需要直接接觸鴿子羽毛排泄物等,衛(wèi)生問(wèn)題尤為突出。在優(yōu)秀乳鴿的選擇上,通常采用給鴿子佩戴高昂的賽鴿計(jì)時(shí)裝置,此外鴿舍內(nèi)的溫濕度直接影響著賽鴿的健康,需要及時(shí)對(duì)鴿舍內(nèi)的溫濕度進(jìn)行調(diào)節(jié)。為此,本設(shè)計(jì)提出了一種利用物聯(lián)網(wǎng)技術(shù)對(duì)鴿舍內(nèi)的裝置進(jìn)行控制的方法,該系統(tǒng)以STM32L476RG為主控芯片,利用機(jī)智云AIoT平臺(tái)進(jìn)行數(shù)據(jù)的傳輸交換,設(shè)計(jì)了專(zhuān)為賽鴿進(jìn)籠檢測(cè)的裝置,將WiFi模塊與SIM800C通信模塊相結(jié)合達(dá)到賽鴿歸巢時(shí)間的計(jì)時(shí)與通知。采用DHT11模塊和風(fēng)扇模塊組成溫濕度的調(diào)節(jié)系統(tǒng),在手機(jī)App端可以實(shí)時(shí)查看溫濕度變動(dòng)和控制設(shè)備狀態(tài),同時(shí)還能在按鍵模塊上對(duì)設(shè)備進(jìn)行操作,在電腦端可以登錄機(jī)智云官網(wǎng)查看數(shù)據(jù)點(diǎn)歷史記錄。
系統(tǒng)整體方案設(shè)計(jì)
本文設(shè)計(jì)了一種基于機(jī)智云AIoT開(kāi)發(fā)平臺(tái)的多功能鴿籠控制系統(tǒng),系統(tǒng)主要由溫濕度傳感器、步進(jìn)電機(jī)、光電傳感器模塊、WiFi模塊、控制器、繼電器模塊及排風(fēng)風(fēng)扇構(gòu)成。用戶通過(guò)手機(jī)APP端控制鴿籠門(mén)的開(kāi)關(guān),可實(shí)現(xiàn)手動(dòng)和自動(dòng)地喂食、喂水,同時(shí)通過(guò)溫濕度傳感器模塊監(jiān)控鴿舍內(nèi)的溫濕度的情況,將鴿籠內(nèi)的環(huán)境數(shù)據(jù)上傳至機(jī)智云平臺(tái)。當(dāng)溫濕度超過(guò)設(shè)定值時(shí),APP頁(yè)面端會(huì)產(chǎn)生告警標(biāo)志。
考慮用戶需要對(duì)鴿子進(jìn)行訓(xùn)飛計(jì)時(shí),為此專(zhuān)門(mén)研發(fā)了一種可安放的進(jìn)籠檢測(cè)裝置。當(dāng)進(jìn)行單鴿訓(xùn)飛時(shí),只要將鴿籠門(mén)打開(kāi)將裝置擺放在鴿籠門(mén)口就可以進(jìn)行歸巢時(shí)間的檢測(cè),將鴿子歸巢的時(shí)間傳至手機(jī)APP端,并且通過(guò)GSM模塊給訓(xùn)飛人員撥打電話。為了防止斷網(wǎng)導(dǎo)致鴿籠設(shè)備無(wú)法正常工作,訓(xùn)飛人員可以通過(guò)機(jī)智云網(wǎng)站方便地查看鴿舍內(nèi)部的歷史數(shù)據(jù)。此外本文中還設(shè)計(jì)了按鍵模塊,可以對(duì)開(kāi)關(guān)鴿籠門(mén)和喂水、喂食進(jìn)行按鍵操作?;ヂ?lián)鴿籠的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 鴿籠系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)硬件設(shè)計(jì)
喂食喂水系統(tǒng)鴿籠喂食喂水系統(tǒng)采用手動(dòng)和定時(shí)自動(dòng)、遠(yuǎn)程和近程控制的方式相結(jié)合,通過(guò)手機(jī)APP遠(yuǎn)程控制定時(shí)喂食和手動(dòng)喂食的兩種飼養(yǎng)方式。為了防止斷網(wǎng)而使喂食喂水系統(tǒng)受到波及,在操作系統(tǒng)按鍵模塊中分為開(kāi)關(guān)糧食、開(kāi)關(guān)水閥、五個(gè)開(kāi)關(guān)鴿籠門(mén),可以在無(wú)網(wǎng)的情況下有效保證近距離飼養(yǎng)鴿子的基本條件。對(duì)此可做研究分述如下。
喂食系統(tǒng)
喂食系統(tǒng)的食物出口采用了蝴蝶閥狀開(kāi)關(guān)加上5V步進(jìn)電機(jī)的控制方式。由步進(jìn)電機(jī)驅(qū)動(dòng)蝴蝶閥門(mén)轉(zhuǎn)動(dòng)一定的角度使得糧食從儲(chǔ)糧盒中落入食槽,存儲(chǔ)盒采用漏斗形狀,方便與糧食出口控制裝置相結(jié)合。喂食系統(tǒng)的結(jié)構(gòu)示意圖如圖2所示。
圖2 喂食系統(tǒng)結(jié)構(gòu)圖該裝置采用型號(hào)為24BYJ485V驅(qū)動(dòng)的步進(jìn)電機(jī),自動(dòng)喂食則是通過(guò)STM32RTC實(shí)時(shí)時(shí)鐘中斷完成,根據(jù)實(shí)際情況每天喂兩次,將實(shí)時(shí)時(shí)鐘中斷設(shè)定為12h中斷一次,進(jìn)行一次蝴蝶閥的開(kāi)關(guān)動(dòng)作。
喂水系統(tǒng)
喂水系統(tǒng)由5V繼電器和12V的電磁閥構(gòu)成。電磁閥連接塑料水管上端續(xù)接到一個(gè)小型水箱,下端放置喝水水槽,繼電器的控制端口連接至控制器的PA2口。電磁閥的供電電源采用220VAC轉(zhuǎn)12VDC的電源電路,由微控制器控制電源電路輸出線路的通斷來(lái)調(diào)控整個(gè)喂水系統(tǒng)。
溫濕度檢測(cè)調(diào)節(jié)系統(tǒng)高溫高濕影響鴿子的熱調(diào)節(jié),加劇了高溫的不良反應(yīng),破壞鴿子的熱平衡。高溫的時(shí)候,鴿子體內(nèi)靠蒸發(fā)散熱,而蒸發(fā)散熱正比于鴿子體內(nèi)蒸發(fā)面皮膚和呼吸道水汽壓與空氣水汽壓之差,舍內(nèi)空氣濕度大,空氣水汽壓升高,鴿子蒸發(fā)面水汽壓與空氣水汽壓之差變小,不利于鴿子的蒸發(fā)散熱,從而加重集體熱調(diào)節(jié)負(fù)擔(dān),熱反應(yīng)更加嚴(yán)重。高溫高濕,鴿子體內(nèi)的抵抗力下降,容易導(dǎo)出傳染病的發(fā)生。良好的鴿舍溫濕度應(yīng)該為溫度≤40℃、濕度≤70%。本設(shè)計(jì)采用了DHT11溫濕度檢測(cè)模塊,同時(shí)對(duì)溫度和濕度進(jìn)行測(cè)量。溫度測(cè)量范圍為0℃~50℃,濕度測(cè)量范圍為20%RH~90%RH,采用IIC通信方式能很好地與微控制器進(jìn)行通信,滿足系統(tǒng)對(duì)溫濕度檢測(cè)的設(shè)計(jì)要求。溫濕度的調(diào)節(jié)采用排風(fēng)風(fēng)扇的方式,排風(fēng)扇運(yùn)用5V電壓驅(qū)動(dòng)控制端接入PA2,當(dāng)溫濕度超過(guò)設(shè)定的值時(shí),PA2口輸出高電平,排風(fēng)扇開(kāi)啟;當(dāng)溫濕度小于設(shè)定值時(shí),輸出低電平,排風(fēng)扇關(guān)閉。同時(shí)在手機(jī)APP端就可以實(shí)時(shí)查看當(dāng)前的溫濕度的情況。
通信模塊通信模塊的設(shè)計(jì)主要采用ATK-ESP8266WiFi模塊和SIM800CGSM模塊。ATK-ESP8266WiFi模塊是一款高性能的UART-WiFi模塊,采用WiFi模塊將數(shù)據(jù)傳送到云端的同時(shí),并與WiFi模塊中下載的機(jī)智云GAgent通信協(xié)議發(fā)生交互,可進(jìn)行云端的數(shù)據(jù)交換和設(shè)備的控制。
SIM800CGSM模塊是一款高性能的工業(yè)級(jí)GSM/GPRS模塊。在進(jìn)行單鴿的訓(xùn)飛計(jì)時(shí)的過(guò)程中,鴿子通過(guò)時(shí)間檢測(cè)裝置時(shí),微控制器將通過(guò)AT指令與模塊通過(guò)撥打人員的電話,及時(shí)告知鴿子已經(jīng)飛回鴿舍。
進(jìn)籠檢測(cè)裝置進(jìn)籠檢測(cè)裝置主要用于檢測(cè)單鴿歸巢時(shí)間。裝置是前后相通、上方插入活絡(luò)門(mén)的盒型裝置,旁邊安放有光電傳感模塊。當(dāng)要對(duì)鴿子進(jìn)行歸巢時(shí)間計(jì)時(shí)的時(shí)候,通過(guò)手機(jī)APP或者按鍵將由步進(jìn)電機(jī)控制的鴿籠小門(mén)開(kāi)啟,同時(shí)將檢測(cè)裝置放置在鴿子的進(jìn)出門(mén)口。由于進(jìn)籠檢測(cè)裝置采用活絡(luò)門(mén)的方式,光電感應(yīng)模塊放置在活絡(luò)門(mén)的前方,有效防止鴿舍內(nèi)的鴿子對(duì)進(jìn)籠檢測(cè)裝置的干擾。當(dāng)鴿子進(jìn)入檢測(cè)裝置時(shí),光電傳感模塊將向微控制器發(fā)送一個(gè)低電平,微控制器就將此時(shí)的RTC實(shí)時(shí)時(shí)鐘數(shù)據(jù)發(fā)送到手機(jī)APP端,同時(shí)通過(guò)AT指令撥打人員電話。
圖3 進(jìn)籠檢測(cè)裝置如圖3所示,光電感應(yīng)模塊放置在活絡(luò)門(mén)擋桿的前面,系統(tǒng)設(shè)計(jì)的活絡(luò)門(mén)結(jié)構(gòu)使得鴿子進(jìn)去之后就無(wú)法再出來(lái),防止其它鴿子對(duì)檢測(cè)裝置產(chǎn)生干擾。光電感應(yīng)模塊電路設(shè)計(jì)如圖4所示。
圖4 光電感應(yīng)模塊電路
系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)方法基于云平臺(tái)的互聯(lián)鴿籠控制系統(tǒng)要完成的遠(yuǎn)程控制和數(shù)據(jù)的傳輸?shù)墓δ?,選用了機(jī)智云AIoT開(kāi)發(fā)平臺(tái)。首先需要在機(jī)智云平臺(tái)的開(kāi)發(fā)中心建立項(xiàng)目,同時(shí)在項(xiàng)目中心添加數(shù)據(jù)點(diǎn),數(shù)據(jù)點(diǎn)的作用是對(duì)系統(tǒng)的某種功能進(jìn)行抽象化,采用不同的數(shù)據(jù)類(lèi)型表示。例如簡(jiǎn)單的設(shè)備的“開(kāi)關(guān)”,其功能為開(kāi)啟和關(guān)閉,將這個(gè)功能抽象為布爾類(lèi)型性的數(shù)據(jù)點(diǎn),0表示關(guān)閉,1表示開(kāi)啟。
數(shù)據(jù)點(diǎn)是機(jī)智云中重要的屬性通,過(guò)機(jī)智云與設(shè)備相聯(lián)系的第一步就是需要將整個(gè)系統(tǒng)的功能進(jìn)行完整的羅列,并通過(guò)機(jī)智云平臺(tái)將所描述的功能通過(guò)數(shù)據(jù)點(diǎn)的方式進(jìn)行表示。后續(xù)通過(guò)機(jī)智云平臺(tái)會(huì)根據(jù)創(chuàng)建好的數(shù)據(jù)點(diǎn)生成用于開(kāi)發(fā)的MCU協(xié)議,在生成的協(xié)議的基礎(chǔ)上進(jìn)行操作系統(tǒng)下的程序設(shè)計(jì)開(kāi)發(fā)。
數(shù)據(jù)點(diǎn)的建立根據(jù)系統(tǒng)的設(shè)計(jì)要求,在機(jī)智云端建立好數(shù)據(jù)點(diǎn),在手機(jī)App端可供操作的功能具體為:開(kāi)關(guān)籠門(mén)、開(kāi)關(guān)水閥、開(kāi)關(guān)糧食、自動(dòng)喂食、開(kāi)關(guān)燈、溫濕度的顯示與告警和飛回時(shí)間的顯示。因此按照上述的功能進(jìn)行云端的數(shù)據(jù)點(diǎn)的設(shè)置,詳見(jiàn)表1。
表1 數(shù)據(jù)點(diǎn)設(shè)置由表1可知,對(duì)于籠門(mén)開(kāi)關(guān)、糧食開(kāi)關(guān)、水閥開(kāi)關(guān)、燈開(kāi)關(guān)類(lèi)型的數(shù)據(jù)點(diǎn)為布爾類(lèi)型,對(duì)于溫濕度、飛回時(shí)間的顯示采用數(shù)值類(lèi)型數(shù)據(jù)點(diǎn),溫濕度告警采用告警類(lèi)型數(shù)據(jù)點(diǎn)。在機(jī)智云平臺(tái)對(duì)相應(yīng)的數(shù)據(jù)點(diǎn)完成設(shè)置,就可在機(jī)智云端生成相應(yīng)的數(shù)據(jù)點(diǎn)的端口定義文件,將生成的端口定義文件添加到所創(chuàng)建的程序中,即可完成云端數(shù)據(jù)點(diǎn)與手機(jī)APP端的聯(lián)系。在機(jī)智云端下載完畢的文件中有與APP端相聯(lián)系的數(shù)據(jù)點(diǎn)信息,當(dāng)與機(jī)智云端有數(shù)據(jù)交換時(shí),機(jī)智云協(xié)議文件中的相應(yīng)的標(biāo)志變量隨即將發(fā)生改變,如通過(guò)自動(dòng)喂食開(kāi)關(guān)量由0x00到0x01的變化,并利用判定語(yǔ)句完成對(duì)RTC實(shí)時(shí)時(shí)鐘中斷標(biāo)志位的設(shè)置。
操作系統(tǒng)的移植本系統(tǒng)的程序包括多項(xiàng)任務(wù)操作,包括溫濕度檢測(cè)與上傳、按鍵模塊的掃描、手機(jī)App端的控制、光電模塊信號(hào)的檢測(cè),AT指令的傳輸?shù)取?a href="http://wenjunhu.com/soft/data/21-22/" target="_blank">嵌入式操作系統(tǒng)具有高實(shí)時(shí)性,并且支持多任務(wù)的管理,對(duì)程序的開(kāi)發(fā)也更加便捷,提高系統(tǒng)的穩(wěn)定性與可靠性。UC/OS操作系統(tǒng)免費(fèi),且可以很方便地移植到STM32。移植過(guò)的要點(diǎn)是需要將操作系統(tǒng)的所有文件添加到Keil5工程中,同時(shí)修改os_cpu.h、os_cpu_a.asm、os_cpu_c.c三個(gè)程序文件。
其中os_cpu.h文件包括了數(shù)據(jù)類(lèi)型的定義以及與處理器相關(guān)的代碼和函數(shù)原型的聲明,需要修改數(shù)據(jù)代碼的類(lèi)型,使得編譯器和處理器以及編譯器數(shù)據(jù)類(lèi)型做到了相互通用;os_cpu_a.asm需要使用匯編語(yǔ)言將文件中的部分函數(shù)進(jìn)行編寫(xiě),主要是進(jìn)行任務(wù)間的切換;os_cpu_c.c定義了用戶的鉤子函數(shù),同時(shí)需要把文件中的相關(guān)系統(tǒng)時(shí)鐘中斷函數(shù)的部分注釋掉,因?yàn)橄到y(tǒng)時(shí)鐘在主程序中已經(jīng)給出了定義。
操作系統(tǒng)下的任務(wù)建立
本系統(tǒng)分為6個(gè)任務(wù),分別是溫濕度檢測(cè)上傳任務(wù)、按鍵掃描任務(wù)、光電信號(hào)檢測(cè)任務(wù)、App開(kāi)關(guān)判定任務(wù)、歸巢時(shí)間上傳任務(wù)及撥打電話任務(wù),任務(wù)的設(shè)計(jì)功能可表述如下:
(1)溫濕度檢測(cè)任務(wù):將讀取到的DHT11模塊的溫濕度數(shù)值上傳到機(jī)智云端,當(dāng)溫濕度超過(guò)設(shè)定值時(shí)在手機(jī)App端將會(huì)呈現(xiàn)告警標(biāo)志,同時(shí)通過(guò)消息郵箱的方式將溫濕度數(shù)據(jù)傳送給風(fēng)扇控制程序,優(yōu)先級(jí)定義為5。
(2)按鍵掃描任務(wù):系統(tǒng)將籠門(mén)、糧食和水閥這6個(gè)開(kāi)關(guān)接入到微控制器的6個(gè)I/O口,從而保證在斷網(wǎng)的情況下也能提供鴿舍內(nèi)的正??刂疲瑑?yōu)先級(jí)定義為4。
(3)光電信號(hào)檢測(cè)任務(wù):進(jìn)行單鴿訓(xùn)飛計(jì)時(shí)時(shí),鴿子進(jìn)入檢測(cè)裝置后,光電信號(hào)模塊向微控制器發(fā)送一個(gè)低電平,任務(wù)會(huì)通過(guò)信號(hào)量的方式將低電平消息傳回、再撥打電話給任務(wù)巢,因此任務(wù)優(yōu)先級(jí)定義為3。
(4)App開(kāi)關(guān)執(zhí)行任務(wù):手機(jī)App端有多個(gè)開(kāi)關(guān),此任務(wù)將通過(guò)判定機(jī)智云通信協(xié)議中的標(biāo)志變量是0或者1,執(zhí)行相應(yīng)的動(dòng)作,優(yōu)先級(jí)定義為6。
(5)撥打電話任務(wù):等待光電信號(hào)檢測(cè)任務(wù)傳遞的低電平消息后,通過(guò)AT指令與SIM800C通信撥打人員電話,優(yōu)先級(jí)定義為7。
(6)風(fēng)扇控制任務(wù):接收溫濕度檢測(cè)單元傳來(lái)的溫濕度數(shù)據(jù),判定溫濕度是否超過(guò)設(shè)定值,用于控制風(fēng)扇的關(guān)停,優(yōu)先級(jí)定義為9。系統(tǒng)的軟件整體流程如圖5所示。
圖5軟件整體工作模式
系統(tǒng)測(cè)試
本系統(tǒng)實(shí)現(xiàn)對(duì)鴿舍內(nèi)各個(gè)設(shè)備進(jìn)行控制,為了模擬鴿舍控制系統(tǒng)的運(yùn)行效果,對(duì)實(shí)際鴿舍進(jìn)行縮微化設(shè)計(jì),具體如圖6所示。
圖6 鴿舍模擬實(shí)物圖對(duì)縮小型的鴿舍進(jìn)行控制,圖6中鴿籠大門(mén)可從右邊全部打開(kāi)從事清掃等工作,平常對(duì)鴿子的放飛只采用鴿籠小門(mén),利用步進(jìn)電機(jī)控制籠門(mén)的上揚(yáng)下降,并且小門(mén)可放置進(jìn)籠檢測(cè)裝置,溫濕度采用模擬加濕加熱的方式。第一次上電連接時(shí),選用機(jī)智云協(xié)議中的Airlink連接方式,同時(shí)手機(jī)App端啟動(dòng)WiFi搜索,將會(huì)搜到最近的可連接的設(shè)備。機(jī)智云協(xié)議自帶有WiFi通信方式和GPRS通信方式,手機(jī)端可以選擇連接WiFi和GPRS,方便人員進(jìn)行遠(yuǎn)程操控,通過(guò)微控制器的復(fù)位鍵可以將App數(shù)據(jù)清零。
圖7 手機(jī)APP的鴿子歸巢時(shí)間顯示
圖8手機(jī)APP端溫濕度告警同時(shí)用戶還可以通過(guò)電腦登錄機(jī)智云官網(wǎng)的設(shè)備日志中查看各個(gè)數(shù)據(jù)點(diǎn)的歷史值。
系統(tǒng)總結(jié)
基于機(jī)智云AIoT云平臺(tái)的互聯(lián)鴿籠控制系統(tǒng),可通過(guò)手機(jī)APP與近距離的按鍵方式對(duì)鴿籠內(nèi)的設(shè)備進(jìn)行控制,同時(shí)采用SIM800C模塊與WiFi模塊相結(jié)合的方式,對(duì)單鴿的歸巢時(shí)間進(jìn)行計(jì)時(shí)和通知,手機(jī)APP端可以實(shí)時(shí)地看到鴿舍內(nèi)的溫濕度情況與發(fā)出警報(bào)。有效解決了長(zhǎng)期以來(lái)喂養(yǎng)賽鴿需要頻繁與鴿子直接接觸所帶來(lái)的衛(wèi)生問(wèn)題,同時(shí)采用物聯(lián)網(wǎng)的方式飼養(yǎng)賽鴿實(shí)現(xiàn)遠(yuǎn)程飼養(yǎng),減少了人力,避免了更多愛(ài)好者無(wú)暇飼養(yǎng)鴿子所面對(duì)的困擾。
互聯(lián)鴿籠控制系統(tǒng)采用光電模塊代替了專(zhuān)用賽鴿計(jì)時(shí)器,價(jià)格低廉、且效果較好。在物聯(lián)網(wǎng)平臺(tái)的選擇上采用了機(jī)智云平臺(tái),云平臺(tái)對(duì)數(shù)據(jù)點(diǎn)歷史記錄進(jìn)行了云端的存儲(chǔ),用戶只要登錄電腦就可查看。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51099瀏覽量
753606 -
WIFI
+關(guān)注
關(guān)注
81文章
5297瀏覽量
203741 -
機(jī)智云
+關(guān)注
關(guān)注
2文章
590瀏覽量
26412 -
AIoT
+關(guān)注
關(guān)注
8文章
1408瀏覽量
30692
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論