【IoT畢業(yè)設(shè)計】STM32開發(fā)板+機智云IoT+實現(xiàn)智能鴿籠控制
摘要:在賽鴿養(yǎng)殖中,飼養(yǎng)者因為工作生活繁忙等原因?qū)o法按時喂養(yǎng)鴿子,同時賽鴿的養(yǎng)殖往往需要直接接觸鴿子羽毛排泄物等,衛(wèi)生問題尤為突出,選育優(yōu)秀乳鴿的賽鴿計時設(shè)備價格高昂。為了解決上述問題,讓人員可以及時了解鴿舍的情況,提出了一種利用物聯(lián)網(wǎng)技術(shù)飼養(yǎng)選育賽鴿的方法。
基于機智云物聯(lián)網(wǎng)平臺的互聯(lián)鴿籠控制系統(tǒng),采用STM32L476RG為主控芯片,esp8266WiFi模塊與云端的通信,將采集到的溫濕度、歸巢時間、告警信號等發(fā)送到手機App端,同時在鴿子歸巢時通過撥打人員電話,在斷網(wǎng)的情況下可以進行按鍵操作。實驗表明,通過物聯(lián)網(wǎng)控制的方式能夠?qū)慀澾M行有效的飼養(yǎng)選育。
引言
隨著賽鴿競技運動的不斷發(fā)展,越來越多的普通家庭開始飼養(yǎng)賽鴿,由于很多業(yè)余賽鴿愛好者平常無法及時飼養(yǎng)賽鴿導(dǎo)致賽鴿大量死亡,在喂養(yǎng)賽鴿時需要進入鴿籠中與鴿子的糞便和羽毛等直接接觸,衛(wèi)生問題令人堪憂。在優(yōu)秀乳鴿的選擇上,通常采用給鴿子佩戴高昂的賽鴿計時裝置。此外,鴿舍內(nèi)的溫濕度直接影響著賽鴿的健康,需要及時對鴿舍內(nèi)的溫濕度進行調(diào)節(jié)。
研究可知,采用互聯(lián)網(wǎng)技術(shù)和STM32實現(xiàn)設(shè)備的智能化管理成為目前學(xué)界的一個熱點方向[1-2]?;诖?本文提出了一種利用物聯(lián)網(wǎng)技術(shù)對鴿舍內(nèi)的裝置進行控制的方法,該系統(tǒng)以STM32L476RG為主控芯片,利用機智云物聯(lián)網(wǎng)平臺進行數(shù)據(jù)的傳輸交換,設(shè)計了專為賽鴿進籠檢測的裝置,將WiFi模塊與SIM800C通信模塊相結(jié)合達到賽鴿歸巢時間的計時與通知,采用DHT11模塊和風(fēng)扇模塊組成溫濕度的調(diào)節(jié)系統(tǒng),在手機App端可以實時查看溫濕度變動和控制設(shè)備狀態(tài),同時還能在按鍵模塊上對設(shè)備進行操作,在電腦端可以登錄機智云官網(wǎng)查看數(shù)據(jù)點歷史記錄。
1總體方案設(shè)計
本文設(shè)計了一種基于機智云Aiot開發(fā)平臺的多功能鴿籠控制系統(tǒng),系統(tǒng)主要由溫濕度傳感器、步進電機、光電傳感器模塊、WiFi模塊、控制器、繼電器模塊、風(fēng)扇構(gòu)成。用戶通過手機App軟件控制鴿籠門的開關(guān),手動和自動地喂食、喂水,同時通過溫濕度傳感器模塊監(jiān)控鴿舍內(nèi)的溫濕度的情況,將鴿籠內(nèi)的環(huán)境數(shù)據(jù)上傳至機智云平臺。當(dāng)溫濕度超過設(shè)定值時,App頁面端會產(chǎn)生告警標(biāo)志。
如果用戶需要對鴿子進行訓(xùn)飛計時,文中為此專門研發(fā)了一種可安放的進籠檢測裝置,當(dāng)進行單鴿訓(xùn)飛時,只要將鴿籠門打開將裝置擺放在鴿籠門口就可以進行歸巢時間的檢測,將鴿子歸巢的時間傳至手機App端,并且通過GSM模塊給訓(xùn)飛人員撥打電話。為了防止斷網(wǎng)導(dǎo)致鴿籠設(shè)備無法正常工作,訓(xùn)飛人員可以通過機智云網(wǎng)站方便地查看鴿舍內(nèi)部的歷史數(shù)據(jù)。此外,本文中還設(shè)計了按鍵模塊,可以對開關(guān)鴿籠門和喂水、喂食進行按鍵操作。綜上可得互聯(lián)鴿籠的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1互聯(lián)鴿籠系統(tǒng)結(jié)構(gòu)圖
2系統(tǒng)的硬件設(shè)計
2.1喂食喂水系統(tǒng)
喂食喂水系統(tǒng)采用手動和定時自動、遠程和近程的方式相結(jié)合,可以通過手機App遠程控制定時喂食和手動喂食的方式。為了防止斷網(wǎng)而使喂食喂水系統(tǒng)受到波及,在μC/OS-ΙΙ操作系統(tǒng)按鍵模塊中分為開關(guān)糧食、開關(guān)水閥、開關(guān)鴿籠門五個,可以在無網(wǎng)的情況下有效保證近距離飼養(yǎng)鴿子的基本條件。對此可做研究分述如下。
2.1.1喂食系統(tǒng)
喂食系統(tǒng)的食物出口采用了蝴蝶閥狀開關(guān)加上5V步進電機的控制方式。由步進電機驅(qū)動蝴蝶閥門轉(zhuǎn)動一定的角度使得糧食從儲糧盒中落入食槽,存儲盒采用漏斗形狀,方便與糧食出口控制裝置相結(jié)合。喂食系統(tǒng)的結(jié)構(gòu)示意圖如圖2所示。
圖2喂食系統(tǒng)結(jié)構(gòu)圖
該裝置采用型號為24BYJ485V驅(qū)動的步進電機,單組脈沖產(chǎn)生的步進角ω有如下的關(guān)系:
控制糧食蝴蝶閥需要轉(zhuǎn)動的角度為90°,故而需要的脈沖個數(shù)N為:
自動喂食則是通過STM32RTC實時時鐘中斷完成,根據(jù)實際情況每天喂兩次,將實時時鐘中斷設(shè)定為12h中斷一次,進行一次蝴蝶閥的開關(guān)動作。
2.1.2喂水系統(tǒng)
喂水系統(tǒng)由5V繼電器和12V的電磁閥構(gòu)成。電磁閥連接塑料水管上端續(xù)接到一個小型水箱,下端放置喝水水槽,繼電器的控制端口連接至控制器的PA2口。電磁閥的供電電源采用220VAC轉(zhuǎn)12VDC的電源電路,由微控制器控制電源電路輸出線路的通斷來調(diào)控整個喂水系統(tǒng)。
2.2溫濕度檢測調(diào)節(jié)系統(tǒng)
高溫高濕影響鴿子的熱調(diào)節(jié),加劇了高溫的不良反應(yīng),破壞鴿子的熱平衡。高溫的時候,鴿子體內(nèi)靠蒸發(fā)散熱,而蒸發(fā)散熱正比于鴿子體內(nèi)蒸發(fā)面皮膚和呼吸道水汽壓與空氣水汽壓之差,舍內(nèi)空氣濕度大,空氣水汽壓升高,鴿子蒸發(fā)面水汽壓與空氣水汽壓之差變小,不利于鴿子的蒸發(fā)散熱,加重集體熱調(diào)節(jié)負擔(dān),熱反應(yīng)更加嚴(yán)重;高溫高濕,鴿子體內(nèi)的抵抗力下降,有利于傳染病的發(fā)生。良好的鴿舍溫濕度應(yīng)該為溫度≤40℃,濕度≤70%。
本此研究中采用了DHT11溫濕度檢測模塊,DHT11模塊包含一個電阻式感濕元件和一個NTC測溫元件,可同時對溫度和濕度進行測量,溫度測量范圍為0℃~50℃,濕度測量范圍為20%RH~90%RH,采用IIC通信方式能很好地與微控制器進行通信,滿足系統(tǒng)對溫濕度檢測的設(shè)計要求[2]。溫濕度的調(diào)節(jié)采用排風(fēng)風(fēng)扇的方式,排風(fēng)扇運用5V電壓驅(qū)動控制端接入PA2,當(dāng)溫濕度超過設(shè)定的值時,PA2口輸出高電平,排風(fēng)扇開啟;當(dāng)溫濕度小于設(shè)定值時,輸出低電平,排風(fēng)扇關(guān)閉。同時在手機App端就可以實時查看當(dāng)前的溫濕度的情況。
2.3通信模塊
通信模塊的設(shè)計主要采用ATK-ESP8266WiFi模塊和SIM800CGSM模塊,初始化STM32L476的2個串口UART1和UART2,分別連接2個模塊。ATK-ESP8266WiFi模塊是一款高性能的UART-WiFi模塊,串口兼容3.3V和5V單片機,串口通過簡單的配置就可以進行WiFi數(shù)據(jù)的傳輸,采用WiFi模塊將數(shù)據(jù)傳送到云端的同時,并與WiFi模塊中下載的機智云GAgent通信協(xié)議發(fā)生交互,可進行云端的數(shù)據(jù)交換和設(shè)備的控制[3-4]。
SIM800CGSM模塊是一款高性能的工業(yè)級GSM/GPRS模塊,可以低功耗實現(xiàn)語音、****、彩信、藍牙傳輸?shù)裙δ?支持5~24V的超寬工作范圍,可以很方便地與單片機相連接。在進行單鴿的訓(xùn)飛計時的過程中,鴿子通過時間檢測裝置時,微控制器將通過AT指令與模塊通過撥打人員的電話,及時告知鴿子已經(jīng)飛回鴿舍。
2.4進籠檢測裝置
進籠檢測裝置主要用于檢測單鴿歸巢時間。裝置是前后相通、上方插入活絡(luò)門的盒型裝置,旁邊安放有光電傳感模塊,當(dāng)要對鴿子進行歸巢時間計時的時候,通過手機App或者按鍵將由步進電機控制的鴿籠小門開啟,同時將檢測裝置放置在鴿子的進出門口,由于進籠檢測裝置采用活絡(luò)門的方式,光電感應(yīng)模塊放置在活絡(luò)門的前方,有效防止鴿舍內(nèi)的鴿子對進籠檢測裝置的干擾。
當(dāng)鴿子進入檢測裝置時,光電傳感模塊將向微控制器發(fā)送一個低電平,微控制器就將此時的RTC實時時鐘數(shù)據(jù)發(fā)送到手機App端,同時通過AT指令撥打人員電話。如圖3所示,光電感應(yīng)模塊放置在活絡(luò)門擋桿的前面,系統(tǒng)設(shè)計的活絡(luò)門結(jié)構(gòu)使得鴿子進去之后就無法再出來,防止其它鴿子對檢測裝置產(chǎn)生干擾。這里,即給出了光電感應(yīng)模塊電路設(shè)計如圖4所示。
圖3進籠檢測裝置
圖4光電感應(yīng)模塊電路
3系統(tǒng)軟件設(shè)計
3.1軟件設(shè)計方法
本文設(shè)計的基于云平臺的互聯(lián)鴿籠控制系統(tǒng)要完成的遠程控制和數(shù)據(jù)的傳輸?shù)墓δ?選用了機智云AIoT開發(fā)平臺。首先需要在機智云平臺的開發(fā)中心建立項目,同時在項目中心添加數(shù)據(jù)點,數(shù)據(jù)點的作用是對系統(tǒng)的某種功能進行抽象化,采用不同的數(shù)據(jù)類型表示,例如簡單的設(shè)備的“開關(guān)”,其功能為開啟和關(guān)閉,將這個功能抽象為布爾類型性的數(shù)據(jù)點,0表示關(guān)閉,1表示開啟[5-7]。
數(shù)據(jù)點是機智云中重要的屬性,通過機智云與設(shè)備相聯(lián)系的第一步就是需要將整個系統(tǒng)的功能進行完整的羅列,并通過機智云平臺將所描述的功能通過數(shù)據(jù)點的方式進行表示。后續(xù)通過機智云平臺會根據(jù)創(chuàng)建好的數(shù)據(jù)點生成用于開發(fā)的MCU協(xié)議,在生成的協(xié)議的基礎(chǔ)上進行μC/OS-ΙΙ操作系統(tǒng)下的程序設(shè)計開發(fā)。
3.2數(shù)據(jù)點的建立
根據(jù)系統(tǒng)的設(shè)計要求,在機智云端建立好數(shù)據(jù)點,在手機App端可供操作的功能具體為:開關(guān)籠門、開關(guān)水閥、開關(guān)糧食、自動喂食、開關(guān)燈、溫濕度的顯示與告警和飛回時間的顯示。因此按照上述的功能進行云端的數(shù)據(jù)點的設(shè)置,詳見表1。
表1數(shù)據(jù)點設(shè)置
由表1可知,對于籠門開關(guān)、糧食開關(guān)、水閥開關(guān)、燈開關(guān)類型的數(shù)據(jù)點為布爾類型,對于溫濕度、飛回時間的顯示采用數(shù)值類型數(shù)據(jù)點,溫濕度告警采用告警類型數(shù)據(jù)點。
在機智云平臺對相應(yīng)的數(shù)據(jù)點做出設(shè)置,就可在機智云端生成相應(yīng)的數(shù)據(jù)點的端口定義文件,將生成的端口定義文件添加到所創(chuàng)建的程序中,即可完成云端數(shù)據(jù)點與手機App端的聯(lián)系。在機智云端下載完畢的文件中有與App端相聯(lián)系的數(shù)據(jù)點信息,當(dāng)與機智云端有數(shù)據(jù)交換時,機智云協(xié)議文件中的相應(yīng)的標(biāo)志變量隨即將發(fā)生改變,如通過自動喂食開關(guān)量由0x00到0x01的變化,并利用判定語句完成對RTC實時時鐘中斷標(biāo)志位的設(shè)置。
3.3μC/OS-Ⅱ操作系統(tǒng)的移植
本系統(tǒng)的程序包括多項任務(wù)操作,諸如:溫濕度檢測與上傳、按鍵模塊的掃描、手機App端的控制、光電模塊信號的檢測,AT指令的傳輸?shù)?。嵌入式操作系統(tǒng)具有高實時性,并且支持多任務(wù)的管理,對程序的開發(fā)也更加便捷,提高系統(tǒng)的穩(wěn)定性與可靠性。UC/OS操作系統(tǒng)免費,且可以很方便地移植到STM32。移植過的要點是需要將UC/OS操作系統(tǒng)的所有文件添加到Keil5工程中,同時修改os_cpu.h、os_cpu_a.asm、os_cpu_c.c三個程序文件[8]。
其中,os_cpu.h文件包括了數(shù)據(jù)類型的定義以及與處理器相關(guān)的代碼和函數(shù)原型的**,需要修改數(shù)據(jù)代碼的類型,使得編譯器和處理器以及編譯器數(shù)據(jù)類型做到了相互通用;os_cpu_a.asm需要使用匯編語言將文件中的部分函數(shù)進行編寫,主要是進行任務(wù)間的切換;os_cpu_c.c定義了用戶的鉤子函數(shù),同時需要把文件中的相關(guān)系統(tǒng)時鐘中斷函數(shù)的部分注釋掉,因為系統(tǒng)時鐘在主程序中已經(jīng)給出了定義。
3.4μC/OS-Ⅱ操作系統(tǒng)下的任務(wù)建立
本系統(tǒng)分為6個任務(wù),分別是:溫濕度檢測上傳任務(wù)、按鍵掃描任務(wù)、光電信號檢測任務(wù)、App開關(guān)判定任務(wù)、歸巢時間上傳任務(wù)、撥打電話任務(wù),任務(wù)的設(shè)計功能可表述如下:
(1)溫濕度檢測任務(wù):將讀取到的DHT11模塊的溫濕度數(shù)值上傳到機智云端,當(dāng)溫濕度超過設(shè)定值時在手機App端將會呈現(xiàn)告警標(biāo)志,同時通過消息郵箱的方式將溫濕度數(shù)據(jù)傳送給風(fēng)扇控制程序,優(yōu)先級定義為5。
(2)按鍵掃描任務(wù):系統(tǒng)將籠門、糧食和水閥這6個開關(guān)接入到微控制器的6個I/O口,從而保證在斷網(wǎng)的情況下也能提供鴿舍內(nèi)的正??刂?優(yōu)先級定義為4。
(3)光電信號檢測任務(wù):進行單鴿訓(xùn)飛計時時,鴿子進入檢測裝置后,光電信號模塊向微控制器發(fā)送一個低電平,任務(wù)會通過信號量的方式將低電平消息傳回、再撥打電話給任務(wù)巢,因此任務(wù)優(yōu)先級定義為3。
(4)App開關(guān)執(zhí)行任務(wù):手機App端有多個開關(guān),此任務(wù)將通過判定機智云通信協(xié)議中的標(biāo)志變量是0或者1,執(zhí)行相應(yīng)的動作,優(yōu)先級定義為6。
(5)撥打電話任務(wù):等待光電信號檢測任務(wù)傳遞的低電平消息后,通過AT指令與SIM800C通信撥打人員電話,優(yōu)先級定義為7。
(6)風(fēng)扇控制任務(wù):接收溫濕度檢測單元傳來的溫濕度數(shù)據(jù),判定溫濕度是否超過設(shè)定值,用于控制風(fēng)扇的關(guān)停,優(yōu)先級定義為9。系統(tǒng)的軟件整體流程如圖5所示。
圖5軟件整體工作模式
4系統(tǒng)測試
由于本文所討論的是對鴿舍內(nèi)各個設(shè)備進行控制,故而鴿籠的大小對于系統(tǒng)的控制并沒有影響,為了模擬鴿舍控制系統(tǒng)的運行效果,對實際鴿舍進行縮微化設(shè)計,具體如圖6所示。
對縮小型的鴿舍進行控制,圖6中鴿籠大門可從右邊全部打開從事清掃等工作,平常對鴿子的放飛只采用鴿籠小門,利用步進電機控制籠門的上揚下降,并且小門可放置進籠檢測裝置,溫濕度采用模擬加濕加熱的方式。
第一次上電連接時,選用機智云協(xié)議中的airlink連接方式,同時手機App端啟動WiFi搜索,將會搜到最近的可連接的設(shè)備[9]。機智云協(xié)議自帶有WiFi通信方式和GPRS通信方式,手機端可以選擇連接WiFi和GPRS,方便人員進行遠程操控,通過微控制器的復(fù)位鍵可以將App數(shù)據(jù)清零。圖7顯示了鴿籠飛到時間的顯示為6月5日12時。圖8又展現(xiàn)了手機App發(fā)送的溫濕度的告警情況。
圖6 鴿舍模擬實物圖
圖7 手機APP的鴿子歸巢時間顯示
圖8手機APP端溫濕度告警
同時,用戶還可以通過電腦登錄機智云官網(wǎng)的設(shè)備日志中查看各個數(shù)據(jù)點的歷史值。
5 結(jié)束語
本文研究和設(shè)計了一種基于物聯(lián)網(wǎng)云平臺的互聯(lián)鴿籠控制系統(tǒng),可以通過手機App與近距離的按鍵方式對鴿籠內(nèi)的設(shè)備進行控制,同時采用SIM800C模塊與WiFi模塊相結(jié)合的方式,對單鴿的歸巢時間進行計時和通知,手機App端可以實時地看到鴿舍內(nèi)的溫濕度情況與發(fā)出警報,本系統(tǒng)解決了長期以來喂養(yǎng)賽鴿需要頻繁與鴿子直接接觸所帶來的衛(wèi)生問題,同時采用物聯(lián)網(wǎng)的方式飼養(yǎng)賽鴿實現(xiàn)遠程飼養(yǎng),減少了人力,避免了更多愛好者無暇飼養(yǎng)鴿子所面對的困擾。
雖然市場上有專門的賽鴿計時器,但是其功能單一且市值不菲,互聯(lián)鴿籠控制系統(tǒng)采用光電模塊代替了專用賽鴿計時器,價格低廉、且效果較好。在物聯(lián)網(wǎng)平臺的選擇上采用了機智云平臺,機智云平臺對數(shù)據(jù)點歷史記錄進行了云端的存儲,用戶只要登錄電腦就可查看。
經(jīng)過實驗測試,該系統(tǒng)性能穩(wěn)定可靠。然而,本系統(tǒng)的實驗環(huán)境只是采用模型化模擬的方式,雖然運用于實際環(huán)境中具有相同功能,但是與實際的鴿舍運用還是存在一定的差別,亟需后續(xù)的改進與進一步完善。例如,在實際的規(guī)?;馁慀濔B(yǎng)殖中,單鴿的計時上傳遠不能滿足要求,需要采用模式識別等的方式對多只賽鴿歸巢的時間進行上傳,所以本系統(tǒng)只是適用于在小型家庭化的賽鴿養(yǎng)殖中使用。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
pid控制器相關(guān)文章:pid控制器原理
光電開關(guān)相關(guān)文章:光電開關(guān)原理