一、前言
1.1 項目介紹
【1】項目開發(fā)背景
隨著現(xiàn)代生活節(jié)奏的加快和人們對于生活質(zhì)量追求的提高,越來越多的家庭選擇養(yǎng)魚作為放松心情、增添生活樂趣的方式之一。 傳統(tǒng)的魚缸維護往往需要定期的人工干預(yù),包括水質(zhì)檢測、溫度調(diào)節(jié)、喂食等,這不僅耗時費力,而且對專業(yè)知識有一定要求,使得很多潛在愛好者望而卻步。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展以及智能家居概念的普及,市場對于更加智能、便捷的家居設(shè)備需求日益增長。
在此背景下,開發(fā)一款基于STM32單片機控制的智能魚缸系統(tǒng)顯得尤為重要。本項目利用先進的嵌入式技術(shù)和無線通信手段,結(jié)合傳感器技術(shù),打造一個能夠自動監(jiān)測并調(diào)節(jié)魚缸內(nèi)環(huán)境參數(shù)的智能化解決方案。通過集成水質(zhì)檢測、溫度控制、過濾循環(huán)、自動喂食及光照管理等多項功能,該系統(tǒng)簡化用戶操作流程,降低維護難度,同時提升魚類及其他水生生物的生活質(zhì)量。考慮到當今社會智能手機的高度普及率及其強大的計算能力,本方案還特別強調(diào)了與移動終端的良好兼容性,允許用戶通過專門設(shè)計的應(yīng)用程序無線監(jiān)控和調(diào)整魚缸狀態(tài),真正實現(xiàn)了隨時隨地的便捷管理。
這款智能魚缸項目的提出是基于當前市場需求和技術(shù)發(fā)展趨勢的綜合考量。它不僅響應(yīng)了消費者對于更高質(zhì)量生活的向往,同時也為推動智能家居領(lǐng)域創(chuàng)新應(yīng)用提供了新的思路。通過實現(xiàn)對傳統(tǒng)魚缸管理方式的根本變革,我們希望能夠為廣大養(yǎng)魚愛好者帶來前所未有的使用體驗,并促進整個行業(yè)的進一步發(fā)展。
【2】設(shè)計實現(xiàn)的功能
水質(zhì)監(jiān)測與報警 :
- 采用渾濁度傳感器實時監(jiān)測魚缸水質(zhì)狀況。
- 當檢測到的水質(zhì)數(shù)值超過用戶預(yù)設(shè)的最大值時,系統(tǒng)將自動點亮紅色LED燈作為警告信號,提示用戶需要清潔或更換過濾材料。
溫度監(jiān)控 :
高效過濾及循環(huán)系統(tǒng) :
- 內(nèi)置高效的過濾裝置能夠去除水中的有害物質(zhì)和雜質(zhì)。
- 結(jié)合循環(huán)水泵使用,確保水質(zhì)保持清潔,同時減少換水頻率,理想情況下一缸水可維持長達半年之久。
自動喂食機制 :
- 支持用戶設(shè)置定時投喂計劃,根據(jù)魚類種類和需求定制食物供給時間表。
- 系統(tǒng)會按照預(yù)定的時間間隔自動投放適量的食物,保證魚類獲得規(guī)律且充足的營養(yǎng)供應(yīng)。
光照控制 :
- 提供可調(diào)節(jié)的照明燈光,不僅有助于觀賞效果,還能促進水草等植物的生長。
- 模擬自然晝夜周期變化,增強水體中溶解氧含量,有利于整個生態(tài)系統(tǒng)的健康發(fā)展。
信息展示 :
- OLED顯示屏作為主要的信息輸出界面,清晰地展示了包括但不限于水質(zhì)百分比、實際水溫、光照強度等關(guān)鍵參數(shù)。
- 顯示屏還提供了額外頁面,用于查看和調(diào)整如水溫閾值、水質(zhì)閾值以及增氧操作的時間間隔等設(shè)置項。
手機管理與配置 :
- 通過HC05藍牙模塊,所有收集的數(shù)據(jù)可以上傳至用戶的Android手機APP。
- 利用Qt框架開發(fā)的應(yīng)用程序允許用戶輕松訪問魚缸狀態(tài)并進行相關(guān)設(shè)置調(diào)整,例如更改水質(zhì)和溫度的警戒線、設(shè)定自動喂食周期等。
- 手機應(yīng)用程序提供了一個直觀友好的用戶界面,使得即使不在家也能方便地管理和監(jiān)控魚缸環(huán)境。
【3】項目硬件模塊組成
本項目的智能魚缸系統(tǒng)由多個硬件模塊組成,每個模塊都承擔著特定的功能,共同協(xié)作以實現(xiàn)系統(tǒng)的智能化管理。
以下是該項目的主要硬件模塊組成:
1. 主控模塊 - STM32F103RCT6微控制器
- 作為整個系統(tǒng)的核心,STM32F103RCT6負責處理所有傳感器數(shù)據(jù)、執(zhí)行邏輯判斷、控制各個外圍設(shè)備,并通過藍牙與手機APP通信。
- 采用C語言進行編程,利用寄存器級編程風格以提高效率,開發(fā)環(huán)境使用Keil5。
2. 顯示模塊 - OLED顯示屏
- 用于顯示水質(zhì)百分比、水溫、光照強度等實時信息。
- 提供用戶界面,展示當前設(shè)置和狀態(tài)信息,如水質(zhì)閾值、水溫閥值及增氧間隔時間。
3. 水質(zhì)檢測模塊 - 渾濁度傳感器
- 實時監(jiān)測魚缸內(nèi)的水質(zhì)狀況,輸出相應(yīng)的信號給主控芯片。
- 當水質(zhì)超過預(yù)設(shè)標準時,觸發(fā)報警機制(紅色LED燈)。
4. 溫度檢測模塊 - 防水式溫度傳感器
- 安裝于魚缸內(nèi)部,持續(xù)監(jiān)測水溫變化,并將數(shù)據(jù)傳遞給STM32單片機處理后在OLED上顯示。
5. 過濾與循環(huán)模塊 - 過濾裝置+循環(huán)水泵
- 包括一個高效的過濾系統(tǒng)和一個循環(huán)水泵,確保水質(zhì)清潔并促進氧氣溶解。
- 循環(huán)水泵保持水流循環(huán),有助于維持良好的水質(zhì)條件。
6. 自動喂食模塊 - 定時投喂裝置
- 可設(shè)定的定時器控制自動喂食器,按照預(yù)定的時間表投放飼料。
- 保證魚類獲得規(guī)律的食物供給。
7. 照明模塊 - LED燈光控制系統(tǒng)
- 由可調(diào)節(jié)亮度的LED燈構(gòu)成,模擬自然光照周期,支持植物生長并增加水中溶解氧含量。
- 可通過主控芯片調(diào)整光強和開啟/關(guān)閉時間。
8. 無線通信模塊 - HC05藍牙模塊
- 用于建立魚缸系統(tǒng)與Android手機之間的無線連接。
- 支持數(shù)據(jù)傳輸,允許用戶通過手機APP查看魚缸狀態(tài)和配置各項參數(shù)。
9. 報警提示模塊 - LED指示燈
- 用于水質(zhì)超標時發(fā)出視覺警告,提醒用戶采取相應(yīng)措施。
10. 電源模塊
- 為整個系統(tǒng)提供穩(wěn)定可靠的電力供應(yīng),包括電池、適配器供電方式。
1.2 設(shè)計思路
本項目的設(shè)計思路圍繞著提供一個全面、智能且用戶友好的魚缸管理系統(tǒng)展開。考慮到傳統(tǒng)養(yǎng)魚過程中常見的問題,如水質(zhì)監(jiān)控不足、溫度控制不精確以及定期喂食和清潔的繁瑣,決定采用先進的傳感器技術(shù)和自動化解決方案來解決這些問題。通過集成渾濁度傳感器、防水式溫度傳感器等設(shè)備,系統(tǒng)能夠?qū)崟r監(jiān)測魚缸內(nèi)的關(guān)鍵環(huán)境參數(shù),并將這些信息清晰地展示在OLED顯示屏上,讓用戶一目了然。
為了進一步提升用戶體驗,引入了自動化的概念,包括過濾系統(tǒng)的智能化管理以及自動喂食功能。過濾裝置與循環(huán)水泵協(xié)同工作,不僅凈化水質(zhì),還能促進水體循環(huán),提高氧氣溶解率,從而創(chuàng)造更加健康的生活環(huán)境。同時,定時投喂機制允許用戶根據(jù)魚類的具體需求設(shè)定合理的喂食計劃,確保營養(yǎng)供給的規(guī)律性。此外,照明控制系統(tǒng)也經(jīng)過精心設(shè)計,模擬自然光照變化,不僅美化觀賞效果,還促進了水生植物的光合作用,間接增加了水中溶解氧含量,有利于整個生態(tài)系統(tǒng)的平衡發(fā)展。
考慮到現(xiàn)代人對移動互聯(lián)的需求,注重手機APP與魚缸系統(tǒng)的無縫連接。通過HC05藍牙模塊,實現(xiàn)了數(shù)據(jù)的無線傳輸,使得用戶可以通過智能手機遠程查看魚缸狀態(tài)并調(diào)整設(shè)置。基于Qt框架開發(fā)的Android應(yīng)用程序提供了直觀易用的界面,讓用戶可以輕松配置水質(zhì)和溫度閾值、查看歷史數(shù)據(jù)記錄及接收異常警報通知,極大地方便了日常管理。這樣的設(shè)計不僅滿足了用戶對于便捷性的追求,也為長期維護提供了可靠的技術(shù)支持。
本項目的整體設(shè)計思路是結(jié)合當前先進的嵌入式技術(shù)、傳感技術(shù)和物聯(lián)網(wǎng)通信手段,打造一個集水質(zhì)監(jiān)測、溫度控制、自動喂食、光照調(diào)節(jié)等功能于一體的智能魚缸系統(tǒng)。通過優(yōu)化用戶體驗,簡化操作流程,最終目標是為用戶提供一種更為高效、舒適的家庭養(yǎng)魚體驗。
1.3 系統(tǒng)功能總結(jié)
已開源的全部工具軟件、源碼、教程文檔、視頻都已經(jīng)上傳到網(wǎng)盤【內(nèi)容一直在更新】。
https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
序號 | 功能模塊 | 描述 | 實現(xiàn)方式/技術(shù) |
---|---|---|---|
1 | 水質(zhì)檢測 | 通過渾濁度傳感器實時監(jiān)測水質(zhì),當水質(zhì)數(shù)值超過預(yù)設(shè)最大值時,LED燈亮紅警示。 | 渾濁度傳感器、紅色LED燈、STM32F103RCT6 |
2 | 溫度檢測 | 使用防水式溫度傳感器監(jiān)測水溫,并在OLED顯示屏上顯示當前水溫。 | 防水溫度傳感器、OLED顯示屏、STM32F103RCT6 |
3 | 過濾系統(tǒng) | 采用高效的過濾裝置凈化水質(zhì),去除有害物質(zhì),配合循環(huán)水泵工作,減少換水頻率。 | 過濾裝置、循環(huán)水泵、STM32F103RCT6 |
4 | 水泵系統(tǒng) | 保持水體循環(huán),促進氧氣溶解,維持水質(zhì)清潔。 | 循環(huán)水泵、STM32F103RCT6 |
5 | 自動喂食 | 支持設(shè)定定時投喂計劃,確保魚類獲得規(guī)律的食物供應(yīng)。 | 定時器、自動喂食器、STM32F103RCT6 |
6 | 照明燈光 | 可調(diào)節(jié)的LED燈光模擬晝夜周期,促進植物生長,增加水中溶解氧含量。 | LED燈光控制系統(tǒng)、STM32F103RCT6 |
7 | 顯示屏信息展示 | OLED顯示屏展示水質(zhì)百分比、水溫、光照強度等關(guān)鍵參數(shù),并提供設(shè)置頁面。 | OLED顯示屏、STM32F103RCT6 |
8 | 手機監(jiān)測與控制 | 通過藍牙將數(shù)據(jù)上傳至Android手機APP,用戶可以遠程查看狀態(tài)并調(diào)整設(shè)置。 | HC05藍牙模塊、Qt開發(fā)的Android APP |
1.4 開發(fā)工具的選擇
【1】設(shè)備端開發(fā)
STM32的編程語言選擇C語言,C語言執(zhí)行效率高,大學(xué)里主學(xué)的C語言,C語言編譯出來的可執(zhí)行文件最接近于機器碼,匯編語言執(zhí)行效率最高,但是匯編的移植性比較差,目前在一些操作系統(tǒng)內(nèi)核里還有一些低配的單片機使用的較多,平常的單片機編程還是以C語言為主。C語言的執(zhí)行效率僅次于匯編,語法理解簡單、代碼通用性強,也支持跨平臺,在嵌入式底層、單片機編程里用的非常多,當前的設(shè)計就是采用C語言開發(fā)。
開發(fā)工具選擇Keil,keil是一家世界領(lǐng)先的嵌入式微控制器軟件開發(fā)商,在2015年,keil被ARM公司收購。因為當前芯片選擇的是STM32F103系列,STMF103是屬于ARM公司的芯片構(gòu)架、Cortex-M3內(nèi)核系列的芯片,所以使用Kile來開發(fā)STM32是有先天優(yōu)勢的,而keil在各大高校使用的也非常多,很多教科書里都是以keil來教學(xué),開發(fā)51單片機、STM32單片機等等。目前作為MCU芯片開發(fā)的軟件也不只是keil一家獨大,IAR在MCU微處理器開發(fā)領(lǐng)域里也使用的非常多,IAR擴展性更強,也支持STM32開發(fā),也支持其他芯片,比如:CC2530,51單片機的開發(fā)。從軟件的使用上來講,IAR比keil更加簡潔,功能相對少一些。如果之前使用過keil,而且使用頻率較多,已經(jīng)習(xí)慣再使用IAR是有點不適應(yīng)界面的。
【2】上位機開發(fā)
本項目中使用的Qt開發(fā)環(huán)境是一個跨平臺的應(yīng)用程序開發(fā)框架,它允許開發(fā)者使用C++語言來創(chuàng)建高性能的圖形用戶界面(GUI)應(yīng)用程序。Qt不僅支持桌面操作系統(tǒng)如Windows、macOS和Linux,還廣泛應(yīng)用于嵌入式系統(tǒng)和移動設(shè)備,包括Android和iOS平臺。對于本項目的智能魚缸系統(tǒng)而言,我們選擇了Qt 5.12.6版本來開發(fā)與魚缸硬件通信的Android手機應(yīng)用程序。
跨平臺能力 :
Qt的一個重要特點是其強大的跨平臺能力。這意味著同一個代碼庫可以被編譯成不同操作系統(tǒng)的可執(zhí)行文件,極大地提高了開發(fā)效率并簡化了維護工作。在本項目中,雖然主要目標是Android平臺,但未來如果需要擴展到其他平臺,Qt的這一特性將提供極大的便利。
豐富的API和工具集 :
Qt提供了大量的類庫和API,涵蓋了從網(wǎng)絡(luò)通信、數(shù)據(jù)庫訪問到多媒體處理等多個方面。對于本項目而言,Qt的網(wǎng)絡(luò)模塊尤為重要,因為它支持通過藍牙協(xié)議進行數(shù)據(jù)傳輸,使得手機APP能夠無縫地與基于STM32單片機的魚缸控制系統(tǒng)連接。此外,Qt Quick和QML等技術(shù)也便于快速構(gòu)建現(xiàn)代化的用戶界面,為用戶提供直觀的操作體驗。
集成開發(fā)環(huán)境 - Qt Creator :
Qt自帶了一個功能齊全的集成開發(fā)環(huán)境(IDE),即Qt Creator。它集成了項目管理、代碼編輯、UI設(shè)計、調(diào)試等多種功能于一體,極大地簡化了軟件開發(fā)流程。在開發(fā)過程中,我們可以利用Qt Designer來可視化地設(shè)計應(yīng)用程序界面,同時借助Qt Creator的強大調(diào)試工具快速定位并解決代碼中的問題。
社區(qū)支持與文檔資源 :
Qt擁有一個活躍且龐大的開發(fā)者社區(qū),這意味著當遇到技術(shù)難題時,可以很容易找到相關(guān)的解決方案或獲得幫助。此外,Qt官方提供的詳盡文檔和示例代碼也為新手開發(fā)者提供了一個很好的學(xué)習(xí)起點,有助于快速上手并深入理解Qt的各項特性和最佳實踐。
選擇Qt作為本項目Android應(yīng)用程序的開發(fā)環(huán)境,主要是看中了它的跨平臺能力、豐富的功能庫以及高效的開發(fā)工具。這些優(yōu)勢結(jié)合在一起,為實現(xiàn)一個既美觀又實用的智能魚缸管理應(yīng)用奠定了堅實的基礎(chǔ)。通過Qt開發(fā)的手機APP,用戶不僅可以方便地監(jiān)控魚缸狀態(tài),還能輕松調(diào)整各項設(shè)置,真正享受到智能家居帶來的便捷生活。
1.5 模塊的技術(shù)詳情介紹
【1】渾濁度傳感器
在本項目中,渾濁度傳感器用于實時監(jiān)測魚缸內(nèi)的水質(zhì)狀況。渾濁度是指水體中懸浮顆粒物的數(shù)量和大小,這些顆粒物可以是泥土、藻類、微生物或其他有機和無機物質(zhì)。渾濁度的增加通常意味著水質(zhì)的惡化,可能對魚類和其他水生生物的健康產(chǎn)生不利影響。
渾濁度傳感器的工作原理基于光的散射效應(yīng)。具體來說,傳感器內(nèi)部有一個光源(通常是紅外LED或激光二極管)和一個光電探測器。光源發(fā)出的光線穿過水樣時,會與水中的懸浮顆粒發(fā)生相互作用,導(dǎo)致光線被散射。散射的程度取決于水中懸浮顆粒的數(shù)量和大小。光電探測器則用來檢測散射光的強度。
當水中的懸浮顆粒較多時,更多的光線會被散射,光電探測器接收到的散射光強度也會相應(yīng)增加。反之,如果水中的懸浮顆粒較少,散射光強度則會降低。通過測量光電探測器接收到的散射光強度,傳感器可以間接地推算出水樣的渾濁度。
傳感器輸出的信號通常是模擬電壓信號,這個信號與水樣的渾濁度成正比。在實際應(yīng)用中,該模擬信號會被送入STM32單片機的模數(shù)轉(zhuǎn)換器(ADC),轉(zhuǎn)換為數(shù)字信號進行進一步處理。單片機會根據(jù)預(yù)設(shè)的閾值來判斷水質(zhì)是否超標,并采取相應(yīng)的控制措施,如點亮紅色LED燈提醒用戶需要清理過濾系統(tǒng)。
渾濁度傳感器具有響應(yīng)速度快、精度高、易于集成等優(yōu)點,非常適合用于實時監(jiān)測水質(zhì)變化。通過使用這種傳感器,本項目能夠及時發(fā)現(xiàn)水質(zhì)問題并采取措施,從而確保魚缸內(nèi)環(huán)境的清潔和穩(wěn)定,提升魚類及其他水生生物的生活質(zhì)量。
【2】照明燈的作用
在智能魚缸項目中,添加照明燈不僅提升了觀賞效果,還對魚類和水生植物的健康生長起到了重要作用。
以下是照明燈在魚缸中的主要含義和作用:
- 促進水生植物生長
- 光合作用 :照明燈模擬自然光照,為水生植物提供必要的光照條件,使其能夠進行光合作用。光合作用是植物生長的基礎(chǔ),通過這一過程,植物可以吸收二氧化碳并釋放氧氣,同時產(chǎn)生能量供自身生長。
- 營養(yǎng)供給 :適當?shù)墓庹諒姸群凸庹罩芷谟兄谒参锖铣伤璧臓I養(yǎng)物質(zhì),如糖類、蛋白質(zhì)等,從而保持其健康生長。
- 模擬晝夜周期
- 生物鐘調(diào)節(jié) :魚類和其他水生生物都有一定的生物鐘,需要遵循一定的晝夜節(jié)律。通過定時開關(guān)照明燈,可以模擬自然界的晝夜變化,幫助魚類維持正常的生理節(jié)奏,包括進食、休息和繁殖行為。
- 減少應(yīng)激反應(yīng) :穩(wěn)定的光照周期有助于減少魚類的應(yīng)激反應(yīng),使它們更加適應(yīng)環(huán)境,減少疾病的發(fā)生。
- 提高水中溶解氧含量
- 光合作用產(chǎn)氧 :水生植物在光合作用過程中會產(chǎn)生氧氣,這些氧氣會溶解在水中,增加水體中的溶解氧含量。這對于魚類和其他需氧生物來說是非常重要的,因為充足的溶解氧有助于它們的呼吸和新陳代謝。
- 促進微生物活動 :適當?shù)墓庹者€能促進有益微生物的活動,這些微生物在分解有機物和維持水質(zhì)平衡方面起著關(guān)鍵作用。
- 增強觀賞效果
- 美觀展示 :照明燈不僅可以照亮魚缸內(nèi)的景物,還能通過不同顏色和亮度的變化,創(chuàng)造出豐富多彩的視覺效果,提升魚缸的整體美感。
- 突出特色 :通過調(diào)整燈光的顏色和角度,可以突出魚缸內(nèi)特定的景觀或裝飾,使整個魚缸看起來更加生動和有層次感。
- 便于觀察和管理
- 夜間觀察 :在夜間或光線較暗的情況下,照明燈可以提供足夠的光線,方便用戶觀察魚缸內(nèi)部的情況,及時發(fā)現(xiàn)和處理問題。
- 維護操作 :良好的照明條件有助于用戶在清潔魚缸或更換過濾材料時更好地查看細節(jié),確保操作的準確性。
1.6 市場產(chǎn)品的技術(shù)調(diào)研結(jié)果
【1】技術(shù)大綱
系統(tǒng)設(shè)計
基于物聯(lián)網(wǎng)技術(shù)
STM32單片機作為核心
傳感器采集數(shù)據(jù)
數(shù)據(jù)處理與分析
云平臺通信
功能實現(xiàn)
自動溫控
自動喂食
水質(zhì)監(jiān)測
自動換水
光照調(diào)節(jié)
用戶交互
手機APP遠程控制
短信報警功能
實時數(shù)據(jù)查看
應(yīng)用場景
家用觀賞魚缸
物聯(lián)網(wǎng)家居系統(tǒng)集成
智能生態(tài)水族箱
技術(shù)優(yōu)勢
成本低廉,操作簡便
可靠性高,穩(wěn)定運行測試表明穩(wěn)定可靠
未來發(fā)展方向
智能化飼養(yǎng)管理系統(tǒng)擴展
【2】主要集中的功能總結(jié)
- 控制核心 :大多數(shù)設(shè)計都采用了STM32單片機作為控制核心。STM32單片機因其高性能和豐富的外設(shè)接口,能夠有效地處理魚缸環(huán)境中的各種傳感器數(shù)據(jù),并控制相應(yīng)的執(zhí)行機構(gòu)。
- 環(huán)境監(jiān)測 :系統(tǒng)通常包括對魚缸內(nèi)溫度、水位、水質(zhì)(如PH值、溶氧量、渾濁度)等環(huán)境參數(shù)的監(jiān)測。例如,都提到了對這些參數(shù)的監(jiān)測和控制。
- 自動控制功能 :智能魚缸系統(tǒng)能夠?qū)崿F(xiàn)自動調(diào)節(jié)水溫、自動供氧、自動喂食等功能。如等都提到了這些自動控制功能。
- 遠程監(jiān)控與控制 :通過物聯(lián)網(wǎng)技術(shù),用戶可以遠程監(jiān)控魚缸環(huán)境并進行控制。例如,都提到了遠程監(jiān)控和控制的功能。
- 用戶界面 :系統(tǒng)通常配備有手機APP或網(wǎng)頁界面,用戶可以通過這些界面查看魚缸狀態(tài)并進行操作。如等都提到了用戶界面的設(shè)計。
- 生態(tài)平衡 :一些設(shè)計還考慮到了魚缸生態(tài)系統(tǒng)的平衡,如提到的智能生態(tài)魚缸系統(tǒng),包含了恒溫、投食、水位檢測、光照、水質(zhì)檢測等多個子系統(tǒng),形成了一個立體的智能生態(tài)景觀。
1.7 研究意義
隨著現(xiàn)代生活節(jié)奏的加快和人們對于生活質(zhì)量要求的提高,養(yǎng)魚作為一種休閑活動越來越受到歡迎。然而,傳統(tǒng)的魚缸維護工作繁瑣且需要定期的人工干預(yù),這不僅耗時費力,還要求一定的專業(yè)知識。智能魚缸系統(tǒng)的開發(fā)能夠顯著簡化這些維護任務(wù),提升用戶體驗,使更多人能夠輕松享受養(yǎng)魚的樂趣。通過集成多種傳感器和自動化裝置,智能魚缸系統(tǒng)可以實時監(jiān)測水質(zhì)、溫度等關(guān)鍵參數(shù),并自動執(zhí)行必要的操作,如過濾、增氧和定時喂食。這種自動化管理不僅提高了魚缸內(nèi)環(huán)境的穩(wěn)定性,還能確保魚類和其他水生生物的健康。
本項目的研究意義不僅僅在于提供一個便捷的養(yǎng)魚解決方案,還在于推動智能家居技術(shù)的發(fā)展。隨著物聯(lián)網(wǎng)(IoT)技術(shù)的普及,越來越多的家庭設(shè)備實現(xiàn)了智能化管理。智能魚缸系統(tǒng)作為智能家居的一個重要組成部分,展示了如何將先進的傳感技術(shù)、嵌入式系統(tǒng)和無線通信技術(shù)結(jié)合在一起,為用戶提供更加高效、舒適的生活體驗。通過藍牙模塊實現(xiàn)與智能手機的連接,用戶可以遠程監(jiān)控和控制魚缸狀態(tài),這種遠程管理能力極大地提升了系統(tǒng)的靈活性和便利性。
此外,本項目還具有重要的經(jīng)濟和社會價值。一方面,智能魚缸系統(tǒng)的開發(fā)可以帶動相關(guān)產(chǎn)業(yè)鏈的發(fā)展,包括傳感器制造、嵌入式系統(tǒng)開發(fā)、移動應(yīng)用開發(fā)等多個領(lǐng)域,促進技術(shù)創(chuàng)新和產(chǎn)業(yè)升級。另一方面,智能魚缸系統(tǒng)的推廣和應(yīng)用可以減少傳統(tǒng)養(yǎng)魚過程中因人工干預(yù)不足導(dǎo)致的資源浪費和環(huán)境污染問題,有助于實現(xiàn)可持續(xù)發(fā)展。同時,智能魚缸系統(tǒng)還可以應(yīng)用于教育和科研領(lǐng)域,為學(xué)生和研究人員提供一個直觀的教學(xué)和實驗平臺,增強他們對生態(tài)環(huán)境保護的認識。
從長遠來看,本項目的成功實施不僅可以為用戶提供一個高效、便捷且易于管理的養(yǎng)魚解決方案,還能為智能家居領(lǐng)域的其他應(yīng)用提供寶貴的經(jīng)驗和技術(shù)支持。通過對智能魚缸系統(tǒng)的研究和開發(fā),我們希望能夠激發(fā)更多的創(chuàng)新思維,推動智能家居技術(shù)的進一步發(fā)展,為未來智慧生活的實現(xiàn)奠定堅實的基礎(chǔ)。
1.8 參考文獻
1. 張勝男,楊榮國.物聯(lián)網(wǎng)魚缸智能控制系統(tǒng)設(shè)計[J].現(xiàn)代商貿(mào)工業(yè),2020.
2. 朱炯健,張喜洋,楊樹輝等.基于STM32的遠程無線智能魚缸控制系統(tǒng)設(shè)計[J].科技風,2019.
3. 向鎳鋅,郭平,曹旬.基于STM32智能魚缸監(jiān)控系統(tǒng)的設(shè)計[J].科技視界,2020.
4. 張志輝,張小花,王嘉輝等.基于物聯(lián)網(wǎng)的智能魚缸遠程控制系統(tǒng)設(shè)計及開發(fā)[J].電子技術(shù)與軟件工程,2019.
5. 彭炫.基于STM32單片機的智能魚缸設(shè)計與研究[J].電子世界,2020.
6. 柳春林.基于ONENET云平臺的智能魚缸研究報告[J].科學(xué)技術(shù)創(chuàng)新,2019.
7. 劉偉,林開司,劉安勇.基于物聯(lián)網(wǎng)的魚缸智能控制系統(tǒng)設(shè)計與實現(xiàn)[J].淮海工學(xué)院學(xué)報(自然科學(xué)版),2016.
8. 邱義.基于STM32的智能魚缸遠程控制系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2020.
9. 何鋒,蘭慧.基于手機遙控的智能魚缸控制系統(tǒng)的設(shè)計 附視頻[J].電腦知識與技術(shù),2024.
10. 白春雨,吳紅海,趙懷冬等.基于GSM的可調(diào)節(jié)智能魚缸生態(tài)系統(tǒng)[J].科技風,2017.
11. 張勝男,楊榮國.一種基于STM32物聯(lián)網(wǎng)家居控制的魚缸監(jiān)控系統(tǒng)[J].現(xiàn)代商貿(mào)工業(yè),2022.
12. 郭宇豪,朱宵月,田晨陽等.基于STM32的家用智慧魚缸系統(tǒng)設(shè)計[J].新型工業(yè)化,2021.
13. 吳海青,何滿塘,周朝陽等.基于STM32單片機的智能魚缸控制系統(tǒng)設(shè)計[J].機械工程與自動化,2022.
14. 宋英路,張玉薇,李政林等.基于物聯(lián)網(wǎng)的魚缸智能控制系統(tǒng)[J].數(shù)字技術(shù)與應(yīng)用,2019.
15. 王宇鑫,胡曉華,黃淑燕等.基于STM32的智能生態(tài)魚缸系統(tǒng)設(shè)計與實現(xiàn)[J].冶金管理,2021.
16. 無錫學(xué)院自動化學(xué)院.基于STM32的智能魚缸的設(shè)計與實現(xiàn)[J].微處理機,2023.
17. 華蕊,單超穎,趙凱等.基于物聯(lián)網(wǎng)的智能魚缸[J].湖北農(nóng)機化,2020.
18. 徐漢林,丁國超,孫殿棋等.基于STM32的智能魚缸養(yǎng)殖系統(tǒng)[J].現(xiàn)代化農(nóng)業(yè),2022.
19. 趙春波,李超,侯學(xué)梅等.智能生態(tài)水族箱的設(shè)計與實現(xiàn)[J].電子技術(shù)與軟件工程,2019.
20. 徐喆.一款家用魚缸智能控制系統(tǒng)設(shè)計[D].西南交通大學(xué),2017.
21. WANG Yun-lei,QI Yu-ming.Design of Intelligent Aquarium System based on Embedded System[J].International Journal of Plant Engineering and Management,2017.
22. 梁順可,黃志明,徐奕森等.基于4G的物聯(lián)魚缸系統(tǒng)設(shè)計[J].現(xiàn)代制造技術(shù)與裝備,2021.
23. You Luo, Jiajun Ren et al. “Design and Realization of Intelligent Fish Tank System based on STM32 Microcontroller.” Journal of Big Data and Computing(2024).
24. 張云達.智能生態(tài)魚缸系統(tǒng)設(shè)計與實現(xiàn)[D].浙江海洋大學(xué),2023.
25. 基于STM32與FreeRTOS的物聯(lián)網(wǎng)魚缸.
26. Zihao Wu, Lin Zhong et al. “A multi-functional fish tank remote monitoring system based on STM32.” International Journal of Frontiers in Engineering Technology(2022).
27. 1. 山西農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院2. 山西農(nóng)業(yè)大學(xué)工學(xué)院.基于STM32的水下自主巡游機器魚的設(shè)計與實現(xiàn)[J].山西電子技術(shù),2019.
28. Xi Xie, Wei-zhong Jiang. “Intelligent Fishpond Monitoring System Based on STM32 and Zigbsee.” Research Journal of Applied Sciences, Engineering and Technology(2016).
29. Improvement of Smart Farm by using IoT for Ornamental Fishes and Aquatic Animals Store.International Journal of Innovative Technology and Exploring Engineering(2020).
30. Ananto Indra Nugraha, Yesy Diah Rosita et al. “PROTOTIPE SMART AKUARIUM BERBASIS IOT DENGAN PEMANFAATAN ESP32.” SEMINAR NASIONAL FAKULTAS TEKNIK(2023).
二、硬件選型
1. 主控芯片 - STM32F103RCT6
- 型號 : STM32F103RCT6
- 特性 :
- 選擇理由 :
- 性能強大,足以處理復(fù)雜的傳感器數(shù)據(jù)處理任務(wù)。
- 豐富的外設(shè)支持,便于連接各種傳感器和執(zhí)行機構(gòu)。
- 成本效益高,廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)。
2. 顯示屏 - OLED顯示屏
- 型號 : 0.96寸OLED顯示屏
- 特性 :
- 分辨率:128x64像素。
- I2C或SPI接口。
- 低功耗,自發(fā)光,對比度高。
- 選擇理由 :
- 尺寸適中,易于集成到魚缸面板上。
- 高清晰度顯示,即使在光線較暗的環(huán)境下也能清晰閱讀。
- 低功耗特性延長了電池壽命或降低了電源需求。
3. 水質(zhì)檢測 - 渾濁度傳感器
- 型號 : TDS/Turbidity Sensor
- 特性 :
- 輸出模擬信號,表示水質(zhì)的渾濁程度。
- 可以通過電壓值來判斷水質(zhì)狀況。
- 選擇理由 :
- 簡單可靠,成本低廉。
- 直接輸出模擬信號,便于與STM32的ADC接口相連。
4. 溫度檢測 - 防水式溫度傳感器
- 型號 : DS18B20 或類似的防水數(shù)字溫度傳感器
- 特性 :
- 數(shù)字輸出,精度可達±0.5°C。
- 單總線接口,簡化布線。
- 防水設(shè)計,適用于水下環(huán)境。
- 選擇理由 :
5. 過濾與循環(huán) - 過濾裝置 + 循環(huán)水泵
- 過濾裝置 :
- 類型 : 多層過濾系統(tǒng),包含物理過濾、化學(xué)過濾和生物過濾。
- 選擇理由 : 綜合過濾效果好,能夠有效去除雜質(zhì)和有害物質(zhì)。
- 循環(huán)水泵 :
- 類型 : 低噪音直流泵
- 特性 : 低功耗、長壽命、靜音運行
- 選擇理由 : 保證水流循環(huán)的同時,減少對魚類的影響。
6. 自動喂食 - 定時投喂裝置
- 類型 : 電動旋轉(zhuǎn)喂食器
- 特性 :
- 可設(shè)定多個時間段自動投喂。
- 能夠儲存一定量的飼料。
- 選擇理由 :
- 結(jié)構(gòu)簡單,易于控制。
- 可以根據(jù)需要調(diào)整投喂量和時間,適應(yīng)不同種類的魚類。
7. 照明 - LED燈光控制系統(tǒng)
- 類型 : RGB LED燈條
- 特性 :
- 可調(diào)亮度和顏色。
- 通過PWM信號控制。
- 選擇理由 :
- 提供多樣的光照條件,模擬自然光照周期。
- PWM控制可以精確調(diào)節(jié)光強,節(jié)省能源。
8. 無線通信 - HC05藍牙模塊
- 型號 : HC05
- 特性 :
- 串行通信接口(UART)。
- 工作電壓3.3V~6V。
- 支持藍牙2.0協(xié)議。
- 選擇理由 :
- 體積小,便于集成。
- 功耗低,穩(wěn)定性好。
- 價格合理,廣泛應(yīng)用于物聯(lián)網(wǎng)項目。
9. 報警提示 - LED指示燈
- 類型 : 紅色LED燈
- 特性 :
- 低功耗,亮度高。
- 通過GPIO直接控制。
- 選擇理由 :
- 簡單直觀的報警方式。
- 低成本,易于集成。
10. 電源管理
- 電源供應(yīng) :
- 類型 : 5V DC電源適配器
- 選擇理由 : 為整個系統(tǒng)提供穩(wěn)定的電源,同時支持其他低電壓器件的工作。
- 備用電源 :
- 類型 : 可充電鋰電池
- 選擇理由 : 在斷電情況下作為應(yīng)急電源使用,保持系統(tǒng)的部分功能繼續(xù)運行。
三、上位機開發(fā)
為了方便查看設(shè)備上傳的數(shù)據(jù),接下來利用Qt開發(fā)一款A(yù)ndroid手機APP
3.1 Qt開發(fā)環(huán)境安裝
Qt的中文官網(wǎng): https://www.qt.io/zh-cn/
QT5.12.6的下載地址:https://download.qt.io/archive/qt/5.12/5.12.6
打開下載鏈接后選擇下面的版本進行下載:
qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details
軟件安裝時斷網(wǎng)安裝,否則會提示輸入賬戶。
安裝的時候,第一個復(fù)選框里勾選一個mingw 32
編譯器即可,其他的不管默認就行,直接點擊下一步繼續(xù)安裝。
選擇MinGW 32-bit 編譯器: (一定要看清楚了)
說明: 我這里只是介紹PC端,也就是Windows系統(tǒng)下的Qt環(huán)境搭建。 Android的開發(fā)環(huán)境比較麻煩,如果想學(xué)習(xí)Android開發(fā),想編譯Android程序的APP,需要自己去搭建Android環(huán)境。
也可以看下面這篇文章,不過這個文章是在Qt開發(fā)專欄里付費的,需要訂閱專欄才可以看。 如果不想付費看,也可以自行找其他教程,自己搭建好必須的環(huán)境就行了
Android環(huán)境搭建的博客鏈接: https://blog.csdn.net/xiaolong1126626497/article/details/117254453
3.2 新建上位機工程
前面2講解了需要用的API接口,接下來就使用Qt設(shè)計上位機,設(shè)計界面,完成整體上位機的邏輯設(shè)計。
【1】新建工程
【2】設(shè)置項目的名稱。
【3】選擇編譯系統(tǒng)
【4】選擇默認繼承的類
【5】選擇編譯器
【6】點擊完成
【7】工程創(chuàng)建完成
3.3 設(shè)計UI界面與工程配置
【1】打開UI文件
打開默認的界面如下:
【2】開始設(shè)計界面
根據(jù)自己需求設(shè)計界面。
3.4 編譯Windows上位機
點擊軟件左下角的綠色三角形按鈕進行編譯運行。
3.5 配置Android環(huán)境
如果想編譯Android手機APP,必須要先自己配置好自己的Android環(huán)境。(搭建環(huán)境的過程可以網(wǎng)上找下教程學(xué)習(xí)配置)
然后才可以進行下面的步驟。
【1】選擇Android編譯器
【2】創(chuàng)建Android配置文件
創(chuàng)建完成。
【3】配置Android圖標與名稱
【3】編譯Android上位機
Qt本身是跨平臺的,直接選擇Android的編譯器,就可以將程序編譯到Android平臺。
然后點擊構(gòu)建。
成功之后,在目錄下可以看到生成的apk
文件,也就是Android手機的安裝包,電腦端使用QQ
發(fā)送給手機QQ,手機登錄QQ接收,就能直接安裝。
生成的apk
的目錄在哪里呢? 編譯完成之后,在控制臺會輸出APK文件的路徑。
知道目錄在哪里之后,在Windows的文件資源管理器里,找到路徑,具體看下圖,找到生成的apk文件。
D:/linux-share-dir/QT/build-app_Huawei_Eco_tracking-Android_for_arm64_v8a_Clang_Qt_5_12_6_for_Android_ARM64_v8a-Release/android-build//build/outputs/apk/debug/android-build-debug.apk
四、STM32代碼開發(fā)
4.1 藍牙與串口的配置代碼
串口初始化代碼(USART1 115200波特率)
#include "stm32f10x.h"
void USART1_Init(void) {
// 1. 開啟時鐘
RCC- >APB2ENR |= RCC_APB2ENR_IOPAEN; // 開啟GPIOA時鐘
RCC- >APB2ENR |= RCC_APB2ENR_USART1EN; // 開啟USART1時鐘
// 2. 配置PA9(TX)為復(fù)用推挽輸出,PA10(RX)為浮空輸入
GPIOA- >CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9); // 清除之前配置
GPIOA- >CRH |= (GPIO_CRH_MODE9_1 | GPIO_CRH_CNF9_1); // 配置PA9為50MHz復(fù)用推挽輸出
GPIOA- >CRH &= ~(GPIO_CRH_MODE10 | GPIO_CRH_CNF10); // 清除之前配置
GPIOA- >CRH |= GPIO_CRH_CNF10_0; // 配置PA10為浮空輸入
// 3. 設(shè)置波特率
// 波特率計算: BaudRate = Fck / (16 * USARTDIV)
// 假設(shè)Fck為72MHz,設(shè)定波特率為115200:
// USARTDIV = 72MHz / (16 * 115200) = 39.0625
// 將39.0625拆分為39整數(shù)部分(0x27)和1/16小數(shù)部分(0x1)
USART1- >BRR = (39 < < 4) | 1;
// 4. 配置USART1
USART1- >CR1 |= USART_CR1_TE; // 使能發(fā)送功能
USART1- >CR1 |= USART_CR1_RE; // 使能接收功能
USART1- >CR1 |= USART_CR1_UE; // 使能USART
// 5. 使能RXNE中斷
USART1- >CR1 |= USART_CR1_RXNEIE;
NVIC_EnableIRQ(USART1_IRQn); // 開啟USART1中斷
}
void USART1_IRQHandler(void) {
if (USART1- >SR & USART_SR_RXNE) {
uint8_t data = USART1- >DR; // 讀取接收到的數(shù)據(jù)
// 這里可以添加數(shù)據(jù)處理邏輯
}
}
void USART1_SendChar(char c) {
while (!(USART1- >SR & USART_SR_TXE)); // 等待發(fā)送緩沖區(qū)空
USART1- >DR = c;
}
void USART1_SendString(char* str) {
while (*str) {
USART1_SendChar(*str++);
}
}
HC05 藍牙模塊配置
HC05藍牙模塊的基本配置通常是在串口上進行簡單的AT命令配置。在初始化完成后,可以發(fā)送AT指令來配置藍牙模塊。
void HC05_Init(void) {
USART1_SendString("ATrn"); // 發(fā)送AT指令,測試藍牙是否響應(yīng)
// 添加延時或等待響應(yīng)
USART1_SendString("AT+UART=115200,0,0rn"); // 設(shè)置藍牙波特率為115200, 無校驗位,1個停止位
// 等待藍牙返回OK
USART1_SendString("AT+ROLE=0rn"); // 將藍牙設(shè)置為從機模式
// 等待藍牙返回OK
USART1_SendString("AT+NAME=SmartFishTankrn"); // 設(shè)置藍牙設(shè)備名稱為"SmartFishTank"
// 等待藍牙返回OK
}
- 串口初始化 :串口1初始化時,設(shè)置波特率為115200,使用STM32的寄存器進行配置。使用PA9作為TX引腳,PA10作為RX引腳。
- HC05配置 :通過USART1發(fā)送AT指令對HC05藍牙模塊進行配置,包括波特率設(shè)置、角色設(shè)置、藍牙名稱設(shè)置等。
這段代碼可以用于實現(xiàn)HC05藍牙模塊的初始化與通信,之后可以通過Android手機APP通過藍牙與STM32進行通信。
4.2 主函數(shù)里的項目邏輯代碼
下面是項目的主函數(shù)里的項目邏輯代碼(其他子模塊的代碼太多,文檔無法全部貼出)。
可以去網(wǎng)盤里下載傳感器模塊的代碼:https://pan.quark.cn/s/145a9b3f7f53
以下是智能魚缸項目的 main.c
邏輯代碼框架,所有子模塊(如水質(zhì)檢測、溫度檢測、OLED顯示、自動喂食、藍牙通信等)已經(jīng)編寫好之后,可以根據(jù)項目需求直接調(diào)用相應(yīng)的函數(shù)。
main.c
邏輯代碼
#include "stm32f10x.h"
#include "usart.h" // 假設(shè)這里有串口驅(qū)動
#include "oled.h" // OLED顯示屏驅(qū)動
#include "bluetooth.h" // 藍牙模塊驅(qū)動
#include "sensor.h" // 傳感器(如水質(zhì)、溫度傳感器等)
#include "feeder.h" // 自動喂食模塊
#include "pump.h" // 水泵系統(tǒng)
// 閥值設(shè)定
#define MAX_WATER_QUALITY 40 // 水質(zhì)最大值(%)
#define MAX_WATER_TEMP 23 // 水溫最大值(攝氏度)
// 全局變量,存儲當前水質(zhì)、水溫等狀態(tài)
float water_quality = 0;
float water_temp = 0;
uint8_t light_intensity = 0;
uint32_t next_oxygen_time = 0; // 下次增氧時間
void SystemClock_Config(void);
void Update_OLED_Display_Page1(void);
void Update_OLED_Display_Page2(void);
int main(void) {
// 初始化系統(tǒng)時鐘
SystemClock_Config();
// 初始化相關(guān)模塊
USART1_Init(); // 初始化串口用于藍牙通信
OLED_Init(); // 初始化OLED顯示
Sensor_Init(); // 初始化水質(zhì)、溫度傳感器等
Feeder_Init(); // 初始化自動喂食系統(tǒng)
Pump_Init(); // 初始化水泵系統(tǒng)
HC05_Init(); // 初始化藍牙模塊
// 主循環(huán)
while (1) {
// 1. 獲取傳感器數(shù)據(jù)
water_quality = Get_Water_Quality(); // 獲取水質(zhì)數(shù)據(jù)
water_temp = Get_Water_Temperature(); // 獲取水溫數(shù)據(jù)
light_intensity = Get_Light_Intensity(); // 獲取光照強度
// 2. 更新OLED顯示屏
Update_OLED_Display_Page1(); // 更新顯示屏第一頁內(nèi)容
// 可根據(jù)具體按鍵切換到第二頁顯示
// Update_OLED_Display_Page2();
// 3. 檢查水質(zhì),超過閥值時報警(例如點亮紅色LED)
if (water_quality > MAX_WATER_QUALITY) {
LED_SetColor(RED); // 假設(shè)存在LED驅(qū)動模塊
} else {
LED_SetColor(GREEN);
}
// 4. 自動增氧(根據(jù)設(shè)定的增氧間隔時間執(zhí)行)
if (Check_Oxygen_Time(next_oxygen_time)) {
Pump_Oxygen(); // 啟動增氧水泵
next_oxygen_time = Get_Next_Oxygen_Time(); // 設(shè)定下次增氧時間
}
// 5. 自動喂食
if (Check_Feeding_Time()) {
Feeder_Start(); // 觸發(fā)喂食動作
}
// 6. 藍牙通信,將當前狀態(tài)通過藍牙發(fā)送到手機APP
Send_Bluetooth_Data(water_quality, water_temp, light_intensity, next_oxygen_time);
// 延時一段時間,減少循環(huán)頻率
Delay_ms(1000);
}
}
// 更新OLED第1頁顯示內(nèi)容
void Update_OLED_Display_Page1(void) {
OLED_Clear();
OLED_ShowString(0, 0, "物聯(lián)網(wǎng)智能魚缸");
OLED_ShowString(0, 2, "水質(zhì) ");
OLED_ShowNum(64, 2, water_quality, 3);
OLED_ShowString(90, 2, "%");
OLED_ShowString(0, 3, "水溫 ");
OLED_ShowNum(64, 3, water_temp, 3);
OLED_ShowString(90, 3, "C");
OLED_ShowString(0, 4, "光強 ");
OLED_ShowNum(64, 4, light_intensity, 3);
OLED_ShowString(90, 4, "lux");
OLED_ShowString(0, 5, "下次增氧時間");
OLED_ShowTime(64, 5, next_oxygen_time); // 自定義的時間顯示函數(shù)
}
// 更新OLED第2頁顯示內(nèi)容
void Update_OLED_Display_Page2(void) {
OLED_Clear();
OLED_ShowString(0, 0, "物聯(lián)網(wǎng)智能魚缸");
OLED_ShowString(0, 2, "水溫閥值 ");
OLED_ShowNum(90, 2, MAX_WATER_TEMP, 3);
OLED_ShowString(120, 2, "C");
OLED_ShowString(0, 3, "水質(zhì)閥值 ");
OLED_ShowNum(90, 3, MAX_WATER_QUALITY, 3);
OLED_ShowString(120, 3, "%");
OLED_ShowString(0, 4, "增氧間隔 ");
OLED_ShowNum(90, 4, 3); // 假設(shè)增氧間隔為3分鐘
OLED_ShowString(120, 4, "min");
}
// 系統(tǒng)時鐘配置
void SystemClock_Config(void) {
// 配置系統(tǒng)時鐘為72MHz
RCC- >CFGR |= RCC_CFGR_SW_PLL; // 使用PLL作為系統(tǒng)時鐘
RCC- >CR |= RCC_CR_PLLON; // 打開PLL
while (!(RCC- >CR & RCC_CR_PLLRDY)); // 等待PLL穩(wěn)定
}
// 其他可能用到的輔助函數(shù)
uint32_t Get_Next_Oxygen_Time(void) {
// 假設(shè)返回下次增氧時間,增加3分鐘
return Get_Current_Time() + 180; // 180秒 = 3分鐘
}
uint8_t Check_Oxygen_Time(uint32_t next_time) {
// 檢查是否到了設(shè)定的增氧時間
return Get_Current_Time() >= next_time;
}
代碼說明:
- 系統(tǒng)初始化: 初始化系統(tǒng)時鐘和各個外設(shè)模塊(如串口、OLED、水質(zhì)傳感器、溫度傳感器、水泵、喂食器等)。
- 主循環(huán):
- 獲取水質(zhì)和溫度傳感器的數(shù)據(jù)。
- 更新OLED屏幕的顯示內(nèi)容。
- 根據(jù)水質(zhì)檢測的結(jié)果,判斷是否需要報警(如使用LED燈指示)。
- 控制自動增氧系統(tǒng)。
- 控制自動喂食系統(tǒng)。
- 通過藍牙模塊將數(shù)據(jù)發(fā)送到手機端。
- 頁面更新: 提供了兩個OLED頁面的更新函數(shù),分別顯示魚缸的實時數(shù)據(jù)和閥值設(shè)定情況。
- 輔助功能: 包括系統(tǒng)時鐘配置函數(shù)、增氧時間檢查函數(shù)等。
五、總結(jié)
本項目開發(fā)一款基于STM32F103RCT6單片機控制的智能魚缸系統(tǒng),集成水質(zhì)監(jiān)測、溫度控制、自動喂食以及光照調(diào)節(jié)等多種功能于一體。該系統(tǒng)利用先進的傳感器技術(shù)來實時監(jiān)控魚缸內(nèi)的環(huán)境參數(shù),通過直觀的OLED顯示屏向用戶展示這些信息。系統(tǒng)采用渾濁度傳感器進行水質(zhì)檢測,當水質(zhì)指標超過預(yù)設(shè)閾值時,將通過紅色LED燈提醒用戶需要清理過濾系統(tǒng);防水式溫度傳感器用于測量水溫并在主面板上顯示當前數(shù)值,確保魚類生活在適宜的溫度條件下。高效的過濾系統(tǒng)與循環(huán)水泵協(xié)同工作,不僅能夠凈化水質(zhì)去除有害物質(zhì),還能延長換水周期至半年一次,顯著減少維護成本。
為了進一步增強用戶體驗,項目包括了自動喂食機制,允許用戶設(shè)定定時投喂計劃,從而保證魚類獲得規(guī)律的食物供應(yīng)。照明方面,設(shè)計考慮到了植物生長的需求,設(shè)置了可調(diào)節(jié)強度和模擬晝夜變化的燈光,促進光合作用,增加水中溶解氧含量,有利于整個生態(tài)系統(tǒng)的健康穩(wěn)定。所有這些關(guān)鍵數(shù)據(jù)都將通過一塊易于閱讀的OLED屏幕呈現(xiàn)給用戶,其中包括水質(zhì)百分比、實際水溫和光照強度等重要指標。
智能魚缸還支持藍牙通信,通過HC05藍牙模塊實現(xiàn)與Android手機APP的數(shù)據(jù)交換。借助于Qt框架開發(fā)的應(yīng)用程序,用戶可以在智能手機上遠程查看魚缸狀態(tài)并調(diào)整各項設(shè)置,比如水質(zhì)及水溫閾值、增氧間隔時間等。這樣既簡化了日常管理流程,也使得養(yǎng)魚變得更加便捷有趣。整體而言,這一綜合解決方案致力于提供一個更加智能化且易于管理的家庭養(yǎng)魚體驗。
審核編輯 黃宇
-
單片機
+關(guān)注
關(guān)注
6063文章
44920瀏覽量
646918 -
STM32
+關(guān)注
關(guān)注
2289文章
11012瀏覽量
362366
發(fā)布評論請先 登錄
基于STM32 人群定位、調(diào)速智能風扇設(shè)計(程序、設(shè)計報告、視頻演示)
STM32項目分享:STM32智能語音分類垃圾桶

智能魚缸仿真設(shè)計
基于STM32設(shè)計的智能臺燈

STM32項目實戰(zhàn):基于STM32U5的智能大棚溫控系統(tǒng)(LVGL),附項目教程/源碼

STM32項目實戰(zhàn):基于STM32U5的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

STM32項目實戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

基于STM32的智能加濕器

霍爾開關(guān)在魚缸LED燈中的應(yīng)用
基于STM32的智能風扇系統(tǒng)設(shè)計

評論