在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計(jì)的智能魚缸

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2025-01-06 15:21 ? 次閱讀

一、前言

1.1 項(xiàng)目介紹

【1】項(xiàng)目開發(fā)背景

隨著現(xiàn)代生活節(jié)奏的加快和人們對于生活質(zhì)量追求的提高,越來越多的家庭選擇養(yǎng)魚作為放松心情、增添生活樂趣的方式之一。 傳統(tǒng)的魚缸維護(hù)往往需要定期的人工干預(yù),包括水質(zhì)檢測、溫度調(diào)節(jié)、喂食等,這不僅耗時(shí)費(fèi)力,而且對專業(yè)知識有一定要求,使得很多潛在愛好者望而卻步。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展以及智能家居概念的普及,市場對于更加智能、便捷的家居設(shè)備需求日益增長。

在此背景下,開發(fā)一款基于STM32單片機(jī)控制的智能魚缸系統(tǒng)顯得尤為重要。本項(xiàng)目利用先進(jìn)的嵌入式技術(shù)和無線通信手段,結(jié)合傳感器技術(shù),打造一個(gè)能夠自動監(jiān)測并調(diào)節(jié)魚缸內(nèi)環(huán)境參數(shù)的智能化解決方案。通過集成水質(zhì)檢測、溫度控制、過濾循環(huán)、自動喂食及光照管理等多項(xiàng)功能,該系統(tǒng)簡化用戶操作流程,降低維護(hù)難度,同時(shí)提升魚類及其他水生生物的生活質(zhì)量。考慮到當(dāng)今社會智能手機(jī)的高度普及率及其強(qiáng)大的計(jì)算能力,本方案還特別強(qiáng)調(diào)了與移動終端的良好兼容性,允許用戶通過專門設(shè)計(jì)的應(yīng)用程序無線監(jiān)控和調(diào)整魚缸狀態(tài),真正實(shí)現(xiàn)了隨時(shí)隨地的便捷管理。

這款智能魚缸項(xiàng)目的提出是基于當(dāng)前市場需求和技術(shù)發(fā)展趨勢的綜合考量。它不僅響應(yīng)了消費(fèi)者對于更高質(zhì)量生活的向往,同時(shí)也為推動智能家居領(lǐng)域創(chuàng)新應(yīng)用提供了新的思路。通過實(shí)現(xiàn)對傳統(tǒng)魚缸管理方式的根本變革,我們希望能夠?yàn)閺V大養(yǎng)魚愛好者帶來前所未有的使用體驗(yàn),并促進(jìn)整個(gè)行業(yè)的進(jìn)一步發(fā)展。

【2】設(shè)計(jì)實(shí)現(xiàn)的功能

水質(zhì)監(jiān)測與報(bào)警 :

  • 采用渾濁度傳感器實(shí)時(shí)監(jiān)測魚缸水質(zhì)狀況。
  • 當(dāng)檢測到的水質(zhì)數(shù)值超過用戶預(yù)設(shè)的最大值時(shí),系統(tǒng)將自動點(diǎn)亮紅色LED燈作為警告信號,提示用戶需要清潔或更換過濾材料。

溫度監(jiān)控 :

  • 配備了防水式溫度傳感器來測量水溫。
  • 溫度數(shù)據(jù)將在OLED顯示屏上持續(xù)顯示,讓用戶隨時(shí)掌握當(dāng)前水溫情況。

高效過濾及循環(huán)系統(tǒng) :

  • 內(nèi)置高效的過濾裝置能夠去除水中的有害物質(zhì)和雜質(zhì)。
  • 結(jié)合循環(huán)水泵使用,確保水質(zhì)保持清潔,同時(shí)減少換水頻率,理想情況下一缸水可維持長達(dá)半年之久。

自動喂食機(jī)制 :

  • 支持用戶設(shè)置定時(shí)投喂計(jì)劃,根據(jù)魚類種類和需求定制食物供給時(shí)間表。
  • 系統(tǒng)會按照預(yù)定的時(shí)間間隔自動投放適量的食物,保證魚類獲得規(guī)律且充足的營養(yǎng)供應(yīng)。

光照控制 :

  • 提供可調(diào)節(jié)的照明燈光,不僅有助于觀賞效果,還能促進(jìn)水草等植物的生長。
  • 模擬自然晝夜周期變化,增強(qiáng)水體中溶解氧含量,有利于整個(gè)生態(tài)系統(tǒng)的健康發(fā)展。

信息展示 :

  • OLED顯示屏作為主要的信息輸出界面,清晰地展示了包括但不限于水質(zhì)百分比、實(shí)際水溫、光照強(qiáng)度等關(guān)鍵參數(shù)。
  • 顯示屏還提供了額外頁面,用于查看和調(diào)整如水溫閾值、水質(zhì)閾值以及增氧操作的時(shí)間間隔等設(shè)置項(xiàng)。

手機(jī)管理與配置 :

  • 通過HC05藍(lán)牙模塊,所有收集的數(shù)據(jù)可以上傳至用戶的Android手機(jī)APP。
  • 利用Qt框架開發(fā)的應(yīng)用程序允許用戶輕松訪問魚缸狀態(tài)并進(jìn)行相關(guān)設(shè)置調(diào)整,例如更改水質(zhì)和溫度的警戒線、設(shè)定自動喂食周期等。
  • 手機(jī)應(yīng)用程序提供了一個(gè)直觀友好的用戶界面,使得即使不在家也能方便地管理和監(jiān)控魚缸環(huán)境。

【3】項(xiàng)目硬件模塊組成

本項(xiàng)目的智能魚缸系統(tǒng)由多個(gè)硬件模塊組成,每個(gè)模塊都承擔(dān)著特定的功能,共同協(xié)作以實(shí)現(xiàn)系統(tǒng)的智能化管理。

以下是該項(xiàng)目的主要硬件模塊組成:

1. 主控模塊 - STM32F103RCT6微控制器

  • 作為整個(gè)系統(tǒng)的核心,STM32F103RCT6負(fù)責(zé)處理所有傳感器數(shù)據(jù)、執(zhí)行邏輯判斷、控制各個(gè)外圍設(shè)備,并通過藍(lán)牙與手機(jī)APP通信
  • 采用C語言進(jìn)行編程,利用寄存器級編程風(fēng)格以提高效率,開發(fā)環(huán)境使用Keil5。

2. 顯示模塊 - OLED顯示屏

  • 用于顯示水質(zhì)百分比、水溫、光照強(qiáng)度等實(shí)時(shí)信息。
  • 提供用戶界面,展示當(dāng)前設(shè)置和狀態(tài)信息,如水質(zhì)閾值、水溫閥值及增氧間隔時(shí)間。

3. 水質(zhì)檢測模塊 - 渾濁度傳感器

  • 實(shí)時(shí)監(jiān)測魚缸內(nèi)的水質(zhì)狀況,輸出相應(yīng)的信號給主控芯片。
  • 當(dāng)水質(zhì)超過預(yù)設(shè)標(biāo)準(zhǔn)時(shí),觸發(fā)報(bào)警機(jī)制(紅色LED燈)。

4. 溫度檢測模塊 - 防水式溫度傳感器

  • 安裝于魚缸內(nèi)部,持續(xù)監(jiān)測水溫變化,并將數(shù)據(jù)傳遞給STM32單片機(jī)處理后在OLED上顯示。

5. 過濾與循環(huán)模塊 - 過濾裝置+循環(huán)水泵

  • 包括一個(gè)高效的過濾系統(tǒng)和一個(gè)循環(huán)水泵,確保水質(zhì)清潔并促進(jìn)氧氣溶解。
  • 循環(huán)水泵保持水流循環(huán),有助于維持良好的水質(zhì)條件。

6. 自動喂食模塊 - 定時(shí)投喂裝置

  • 可設(shè)定的定時(shí)器控制自動喂食器,按照預(yù)定的時(shí)間表投放飼料。
  • 保證魚類獲得規(guī)律的食物供給。

7. 照明模塊 - LED燈光控制系統(tǒng)

  • 由可調(diào)節(jié)亮度的LED燈構(gòu)成,模擬自然光照周期,支持植物生長并增加水中溶解氧含量。
  • 可通過主控芯片調(diào)整光強(qiáng)和開啟/關(guān)閉時(shí)間。

8. 無線通信模塊 - HC05藍(lán)牙模塊

  • 用于建立魚缸系統(tǒng)與Android手機(jī)之間的無線連接。
  • 支持?jǐn)?shù)據(jù)傳輸,允許用戶通過手機(jī)APP查看魚缸狀態(tài)和配置各項(xiàng)參數(shù)。

9. 報(bào)警提示模塊 - LED指示燈

  • 用于水質(zhì)超標(biāo)時(shí)發(fā)出視覺警告,提醒用戶采取相應(yīng)措施。

10. 電源模塊

  • 為整個(gè)系統(tǒng)提供穩(wěn)定可靠的電力供應(yīng),包括電池、適配器供電方式。

1.2 設(shè)計(jì)思路

本項(xiàng)目的設(shè)計(jì)思路圍繞著提供一個(gè)全面、智能且用戶友好的魚缸管理系統(tǒng)展開。考慮到傳統(tǒng)養(yǎng)魚過程中常見的問題,如水質(zhì)監(jiān)控不足、溫度控制不精確以及定期喂食和清潔的繁瑣,決定采用先進(jìn)的傳感器技術(shù)和自動化解決方案來解決這些問題。通過集成渾濁度傳感器、防水式溫度傳感器等設(shè)備,系統(tǒng)能夠?qū)崟r(shí)監(jiān)測魚缸內(nèi)的關(guān)鍵環(huán)境參數(shù),并將這些信息清晰地展示在OLED顯示屏上,讓用戶一目了然。

為了進(jìn)一步提升用戶體驗(yàn),引入了自動化的概念,包括過濾系統(tǒng)的智能化管理以及自動喂食功能。過濾裝置與循環(huán)水泵協(xié)同工作,不僅凈化水質(zhì),還能促進(jìn)水體循環(huán),提高氧氣溶解率,從而創(chuàng)造更加健康的生活環(huán)境。同時(shí),定時(shí)投喂機(jī)制允許用戶根據(jù)魚類的具體需求設(shè)定合理的喂食計(jì)劃,確保營養(yǎng)供給的規(guī)律性。此外,照明控制系統(tǒng)也經(jīng)過精心設(shè)計(jì),模擬自然光照變化,不僅美化觀賞效果,還促進(jìn)了水生植物的光合作用,間接增加了水中溶解氧含量,有利于整個(gè)生態(tài)系統(tǒng)的平衡發(fā)展。

考慮到現(xiàn)代人對移動互聯(lián)的需求,注重手機(jī)APP與魚缸系統(tǒng)的無縫連接。通過HC05藍(lán)牙模塊,實(shí)現(xiàn)了數(shù)據(jù)的無線傳輸,使得用戶可以通過智能手機(jī)遠(yuǎn)程查看魚缸狀態(tài)并調(diào)整設(shè)置。基于Qt框架開發(fā)的Android應(yīng)用程序提供了直觀易用的界面,讓用戶可以輕松配置水質(zhì)和溫度閾值、查看歷史數(shù)據(jù)記錄及接收異常警報(bào)通知,極大地方便了日常管理。這樣的設(shè)計(jì)不僅滿足了用戶對于便捷性的追求,也為長期維護(hù)提供了可靠的技術(shù)支持。

本項(xiàng)目的整體設(shè)計(jì)思路是結(jié)合當(dāng)前先進(jìn)的嵌入式技術(shù)、傳感技術(shù)和物聯(lián)網(wǎng)通信手段,打造一個(gè)集水質(zhì)監(jiān)測、溫度控制、自動喂食、光照調(diào)節(jié)等功能于一體的智能魚缸系統(tǒng)。通過優(yōu)化用戶體驗(yàn),簡化操作流程,最終目標(biāo)是為用戶提供一種更為高效、舒適的家庭養(yǎng)魚體驗(yàn)。

1.3 系統(tǒng)功能總結(jié)

已開源的全部工具軟件、源碼、教程文檔、視頻都已經(jīng)上傳到網(wǎng)盤【內(nèi)容一直在更新】。
https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink

序號功能模塊描述實(shí)現(xiàn)方式/技術(shù)
1水質(zhì)檢測通過渾濁度傳感器實(shí)時(shí)監(jiān)測水質(zhì),當(dāng)水質(zhì)數(shù)值超過預(yù)設(shè)最大值時(shí),LED燈亮紅警示。渾濁度傳感器、紅色LED燈、STM32F103RCT6
2溫度檢測使用防水式溫度傳感器監(jiān)測水溫,并在OLED顯示屏上顯示當(dāng)前水溫。防水溫度傳感器、OLED顯示屏、STM32F103RCT6
3過濾系統(tǒng)采用高效的過濾裝置凈化水質(zhì),去除有害物質(zhì),配合循環(huán)水泵工作,減少換水頻率。過濾裝置、循環(huán)水泵、STM32F103RCT6
4水泵系統(tǒng)保持水體循環(huán),促進(jìn)氧氣溶解,維持水質(zhì)清潔。循環(huán)水泵、STM32F103RCT6
5自動喂食支持設(shè)定定時(shí)投喂計(jì)劃,確保魚類獲得規(guī)律的食物供應(yīng)。定時(shí)器、自動喂食器、STM32F103RCT6
6照明燈光可調(diào)節(jié)的LED燈光模擬晝夜周期,促進(jìn)植物生長,增加水中溶解氧含量。LED燈光控制系統(tǒng)、STM32F103RCT6
7顯示屏信息展示OLED顯示屏展示水質(zhì)百分比、水溫、光照強(qiáng)度等關(guān)鍵參數(shù),并提供設(shè)置頁面。OLED顯示屏、STM32F103RCT6
8手機(jī)監(jiān)測與控制通過藍(lán)牙將數(shù)據(jù)上傳至Android手機(jī)APP,用戶可以遠(yuǎn)程查看狀態(tài)并調(diào)整設(shè)置。HC05藍(lán)牙模塊、Qt開發(fā)的Android APP

1.4 開發(fā)工具的選擇

【1】設(shè)備端開發(fā)

STM32的編程語言選擇C語言,C語言執(zhí)行效率高,大學(xué)里主學(xué)的C語言,C語言編譯出來的可執(zhí)行文件最接近于機(jī)器碼,匯編語言執(zhí)行效率最高,但是匯編的移植性比較差,目前在一些操作系統(tǒng)內(nèi)核里還有一些低配的單片機(jī)使用的較多,平常的單片機(jī)編程還是以C語言為主。C語言的執(zhí)行效率僅次于匯編,語法理解簡單、代碼通用性強(qiáng),也支持跨平臺,在嵌入式底層、單片機(jī)編程里用的非常多,當(dāng)前的設(shè)計(jì)就是采用C語言開發(fā)。

開發(fā)工具選擇Keil,keil是一家世界領(lǐng)先的嵌入式微控制器軟件開發(fā)商,在2015年,keil被ARM公司收購。因?yàn)楫?dāng)前芯片選擇的是STM32F103系列,STMF103是屬于ARM公司的芯片構(gòu)架、Cortex-M3內(nèi)核系列的芯片,所以使用Kile來開發(fā)STM32是有先天優(yōu)勢的,而keil在各大高校使用的也非常多,很多教科書里都是以keil來教學(xué),開發(fā)51單片機(jī)、STM32單片機(jī)等等。目前作為MCU芯片開發(fā)的軟件也不只是keil一家獨(dú)大,IAR在MCU微處理器開發(fā)領(lǐng)域里也使用的非常多,IAR擴(kuò)展性更強(qiáng),也支持STM32開發(fā),也支持其他芯片,比如:CC2530,51單片機(jī)的開發(fā)。從軟件的使用上來講,IAR比keil更加簡潔,功能相對少一些。如果之前使用過keil,而且使用頻率較多,已經(jīng)習(xí)慣再使用IAR是有點(diǎn)不適應(yīng)界面的。

【2】上位機(jī)開發(fā)

本項(xiàng)目中使用的Qt開發(fā)環(huán)境是一個(gè)跨平臺的應(yīng)用程序開發(fā)框架,它允許開發(fā)者使用C++語言來創(chuàng)建高性能的圖形用戶界面(GUI)應(yīng)用程序。Qt不僅支持桌面操作系統(tǒng)如Windows、macOS和Linux,還廣泛應(yīng)用于嵌入式系統(tǒng)和移動設(shè)備,包括Android和iOS平臺。對于本項(xiàng)目的智能魚缸系統(tǒng)而言,我們選擇了Qt 5.12.6版本來開發(fā)與魚缸硬件通信的Android手機(jī)應(yīng)用程序。

跨平臺能力 :
Qt的一個(gè)重要特點(diǎn)是其強(qiáng)大的跨平臺能力。這意味著同一個(gè)代碼庫可以被編譯成不同操作系統(tǒng)的可執(zhí)行文件,極大地提高了開發(fā)效率并簡化了維護(hù)工作。在本項(xiàng)目中,雖然主要目標(biāo)是Android平臺,但未來如果需要擴(kuò)展到其他平臺,Qt的這一特性將提供極大的便利。

豐富的API和工具集 :
Qt提供了大量的類庫和API,涵蓋了從網(wǎng)絡(luò)通信、數(shù)據(jù)庫訪問到多媒體處理等多個(gè)方面。對于本項(xiàng)目而言,Qt的網(wǎng)絡(luò)模塊尤為重要,因?yàn)樗С滞ㄟ^藍(lán)牙協(xié)議進(jìn)行數(shù)據(jù)傳輸,使得手機(jī)APP能夠無縫地與基于STM32單片機(jī)的魚缸控制系統(tǒng)連接。此外,Qt Quick和QML等技術(shù)也便于快速構(gòu)建現(xiàn)代化的用戶界面,為用戶提供直觀的操作體驗(yàn)。

集成開發(fā)環(huán)境 - Qt Creator :
Qt自帶了一個(gè)功能齊全的集成開發(fā)環(huán)境(IDE),即Qt Creator。它集成了項(xiàng)目管理、代碼編輯、UI設(shè)計(jì)、調(diào)試等多種功能于一體,極大地簡化了軟件開發(fā)流程。在開發(fā)過程中,我們可以利用Qt Designer來可視化地設(shè)計(jì)應(yīng)用程序界面,同時(shí)借助Qt Creator的強(qiáng)大調(diào)試工具快速定位并解決代碼中的問題。

社區(qū)支持與文檔資源 :
Qt擁有一個(gè)活躍且龐大的開發(fā)者社區(qū),這意味著當(dāng)遇到技術(shù)難題時(shí),可以很容易找到相關(guān)的解決方案或獲得幫助。此外,Qt官方提供的詳盡文檔和示例代碼也為新手開發(fā)者提供了一個(gè)很好的學(xué)習(xí)起點(diǎn),有助于快速上手并深入理解Qt的各項(xiàng)特性和最佳實(shí)踐。

選擇Qt作為本項(xiàng)目Android應(yīng)用程序的開發(fā)環(huán)境,主要是看中了它的跨平臺能力、豐富的功能庫以及高效的開發(fā)工具。這些優(yōu)勢結(jié)合在一起,為實(shí)現(xiàn)一個(gè)既美觀又實(shí)用的智能魚缸管理應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。通過Qt開發(fā)的手機(jī)APP,用戶不僅可以方便地監(jiān)控魚缸狀態(tài),還能輕松調(diào)整各項(xiàng)設(shè)置,真正享受到智能家居帶來的便捷生活。

1.5 模塊的技術(shù)詳情介紹

【1】渾濁度傳感器

在本項(xiàng)目中,渾濁度傳感器用于實(shí)時(shí)監(jiān)測魚缸內(nèi)的水質(zhì)狀況。渾濁度是指水體中懸浮顆粒物的數(shù)量和大小,這些顆粒物可以是泥土、藻類、微生物或其他有機(jī)和無機(jī)物質(zhì)。渾濁度的增加通常意味著水質(zhì)的惡化,可能對魚類和其他水生生物的健康產(chǎn)生不利影響。

渾濁度傳感器的工作原理基于光的散射效應(yīng)。具體來說,傳感器內(nèi)部有一個(gè)光源(通常是紅外LED或激光二極管)和一個(gè)光電探測器。光源發(fā)出的光線穿過水樣時(shí),會與水中的懸浮顆粒發(fā)生相互作用,導(dǎo)致光線被散射。散射的程度取決于水中懸浮顆粒的數(shù)量和大小。光電探測器則用來檢測散射光的強(qiáng)度。

當(dāng)水中的懸浮顆粒較多時(shí),更多的光線會被散射,光電探測器接收到的散射光強(qiáng)度也會相應(yīng)增加。反之,如果水中的懸浮顆粒較少,散射光強(qiáng)度則會降低。通過測量光電探測器接收到的散射光強(qiáng)度,傳感器可以間接地推算出水樣的渾濁度。

傳感器輸出的信號通常是模擬電壓信號,這個(gè)信號與水樣的渾濁度成正比。在實(shí)際應(yīng)用中,該模擬信號會被送入STM32單片機(jī)的模數(shù)轉(zhuǎn)換器ADC),轉(zhuǎn)換為數(shù)字信號進(jìn)行進(jìn)一步處理。單片機(jī)會根據(jù)預(yù)設(shè)的閾值來判斷水質(zhì)是否超標(biāo),并采取相應(yīng)的控制措施,如點(diǎn)亮紅色LED燈提醒用戶需要清理過濾系統(tǒng)。

渾濁度傳感器具有響應(yīng)速度快、精度高、易于集成等優(yōu)點(diǎn),非常適合用于實(shí)時(shí)監(jiān)測水質(zhì)變化。通過使用這種傳感器,本項(xiàng)目能夠及時(shí)發(fā)現(xiàn)水質(zhì)問題并采取措施,從而確保魚缸內(nèi)環(huán)境的清潔和穩(wěn)定,提升魚類及其他水生生物的生活質(zhì)量。

【2】照明燈的作用

在智能魚缸項(xiàng)目中,添加照明燈不僅提升了觀賞效果,還對魚類和水生植物的健康生長起到了重要作用。

以下是照明燈在魚缸中的主要含義和作用:

  1. 促進(jìn)水生植物生長
  • 光合作用 :照明燈模擬自然光照,為水生植物提供必要的光照條件,使其能夠進(jìn)行光合作用。光合作用是植物生長的基礎(chǔ),通過這一過程,植物可以吸收二氧化碳并釋放氧氣,同時(shí)產(chǎn)生能量供自身生長。
  • 營養(yǎng)供給 :適當(dāng)?shù)墓庹諒?qiáng)度和光照周期有助于水生植物合成所需的營養(yǎng)物質(zhì),如糖類、蛋白質(zhì)等,從而保持其健康生長。
  1. 模擬晝夜周期
  • 生物鐘調(diào)節(jié) :魚類和其他水生生物都有一定的生物鐘,需要遵循一定的晝夜節(jié)律。通過定時(shí)開關(guān)照明燈,可以模擬自然界的晝夜變化,幫助魚類維持正常的生理節(jié)奏,包括進(jìn)食、休息和繁殖行為。
  • 減少應(yīng)激反應(yīng) :穩(wěn)定的光照周期有助于減少魚類的應(yīng)激反應(yīng),使它們更加適應(yīng)環(huán)境,減少疾病的發(fā)生。
  1. 提高水中溶解氧含量
  • 光合作用產(chǎn)氧 :水生植物在光合作用過程中會產(chǎn)生氧氣,這些氧氣會溶解在水中,增加水體中的溶解氧含量。這對于魚類和其他需氧生物來說是非常重要的,因?yàn)槌渥愕娜芙庋跤兄谒鼈兊暮粑托玛惔x。
  • 促進(jìn)微生物活動 :適當(dāng)?shù)墓庹者€能促進(jìn)有益微生物的活動,這些微生物在分解有機(jī)物和維持水質(zhì)平衡方面起著關(guān)鍵作用。
  1. 增強(qiáng)觀賞效果
  • 美觀展示 :照明燈不僅可以照亮魚缸內(nèi)的景物,還能通過不同顏色和亮度的變化,創(chuàng)造出豐富多彩的視覺效果,提升魚缸的整體美感。
  • 突出特色 :通過調(diào)整燈光的顏色和角度,可以突出魚缸內(nèi)特定的景觀或裝飾,使整個(gè)魚缸看起來更加生動和有層次感。
  1. 便于觀察和管理
  • 夜間觀察 :在夜間或光線較暗的情況下,照明燈可以提供足夠的光線,方便用戶觀察魚缸內(nèi)部的情況,及時(shí)發(fā)現(xiàn)和處理問題。
  • 維護(hù)操作 :良好的照明條件有助于用戶在清潔魚缸或更換過濾材料時(shí)更好地查看細(xì)節(jié),確保操作的準(zhǔn)確性。

1.6 市場產(chǎn)品的技術(shù)調(diào)研結(jié)果

【1】技術(shù)大綱

系統(tǒng)設(shè)計(jì)

基于物聯(lián)網(wǎng)技術(shù)

STM32單片機(jī)作為核心

傳感器采集數(shù)據(jù)

數(shù)據(jù)處理與分析

云平臺通信

功能實(shí)現(xiàn)

自動溫控

自動喂食

水質(zhì)監(jiān)測

自動換水

光照調(diào)節(jié)

用戶交互

手機(jī)APP遠(yuǎn)程控制

短信報(bào)警功能

實(shí)時(shí)數(shù)據(jù)查看

應(yīng)用場景

家用觀賞魚缸

物聯(lián)網(wǎng)家居系統(tǒng)集成

智能生態(tài)水族箱

技術(shù)優(yōu)勢

成本低廉,操作簡便

可靠性高,穩(wěn)定運(yùn)行測試表明穩(wěn)定可靠

未來發(fā)展方向

智能化飼養(yǎng)管理系統(tǒng)擴(kuò)展

【2】主要集中的功能總結(jié)

  1. 控制核心 :大多數(shù)設(shè)計(jì)都采用了STM32單片機(jī)作為控制核心。STM32單片機(jī)因其高性能和豐富的外設(shè)接口,能夠有效地處理魚缸環(huán)境中的各種傳感器數(shù)據(jù),并控制相應(yīng)的執(zhí)行機(jī)構(gòu)。
  2. 環(huán)境監(jiān)測 :系統(tǒng)通常包括對魚缸內(nèi)溫度、水位、水質(zhì)(如PH值、溶氧量、渾濁度)等環(huán)境參數(shù)的監(jiān)測。例如,都提到了對這些參數(shù)的監(jiān)測和控制。
  3. 自動控制功能 :智能魚缸系統(tǒng)能夠?qū)崿F(xiàn)自動調(diào)節(jié)水溫、自動供氧、自動喂食等功能。如等都提到了這些自動控制功能。
  4. 遠(yuǎn)程監(jiān)控與控制 :通過物聯(lián)網(wǎng)技術(shù),用戶可以遠(yuǎn)程監(jiān)控魚缸環(huán)境并進(jìn)行控制。例如,都提到了遠(yuǎn)程監(jiān)控和控制的功能。
  5. 用戶界面 :系統(tǒng)通常配備有手機(jī)APP或網(wǎng)頁界面,用戶可以通過這些界面查看魚缸狀態(tài)并進(jìn)行操作。如等都提到了用戶界面的設(shè)計(jì)。
  6. 生態(tài)平衡 :一些設(shè)計(jì)還考慮到了魚缸生態(tài)系統(tǒng)的平衡,如提到的智能生態(tài)魚缸系統(tǒng),包含了恒溫、投食、水位檢測、光照、水質(zhì)檢測等多個(gè)子系統(tǒng),形成了一個(gè)立體的智能生態(tài)景觀。

1.7 研究意義

隨著現(xiàn)代生活節(jié)奏的加快和人們對于生活質(zhì)量要求的提高,養(yǎng)魚作為一種休閑活動越來越受到歡迎。然而,傳統(tǒng)的魚缸維護(hù)工作繁瑣且需要定期的人工干預(yù),這不僅耗時(shí)費(fèi)力,還要求一定的專業(yè)知識。智能魚缸系統(tǒng)的開發(fā)能夠顯著簡化這些維護(hù)任務(wù),提升用戶體驗(yàn),使更多人能夠輕松享受養(yǎng)魚的樂趣。通過集成多種傳感器和自動化裝置,智能魚缸系統(tǒng)可以實(shí)時(shí)監(jiān)測水質(zhì)、溫度等關(guān)鍵參數(shù),并自動執(zhí)行必要的操作,如過濾、增氧和定時(shí)喂食。這種自動化管理不僅提高了魚缸內(nèi)環(huán)境的穩(wěn)定性,還能確保魚類和其他水生生物的健康。

本項(xiàng)目的研究意義不僅僅在于提供一個(gè)便捷的養(yǎng)魚解決方案,還在于推動智能家居技術(shù)的發(fā)展。隨著物聯(lián)網(wǎng)(IoT)技術(shù)的普及,越來越多的家庭設(shè)備實(shí)現(xiàn)了智能化管理。智能魚缸系統(tǒng)作為智能家居的一個(gè)重要組成部分,展示了如何將先進(jìn)的傳感技術(shù)、嵌入式系統(tǒng)和無線通信技術(shù)結(jié)合在一起,為用戶提供更加高效、舒適的生活體驗(yàn)。通過藍(lán)牙模塊實(shí)現(xiàn)與智能手機(jī)的連接,用戶可以遠(yuǎn)程監(jiān)控和控制魚缸狀態(tài),這種遠(yuǎn)程管理能力極大地提升了系統(tǒng)的靈活性和便利性。

此外,本項(xiàng)目還具有重要的經(jīng)濟(jì)和社會價(jià)值。一方面,智能魚缸系統(tǒng)的開發(fā)可以帶動相關(guān)產(chǎn)業(yè)鏈的發(fā)展,包括傳感器制造、嵌入式系統(tǒng)開發(fā)、移動應(yīng)用開發(fā)等多個(gè)領(lǐng)域,促進(jìn)技術(shù)創(chuàng)新和產(chǎn)業(yè)升級。另一方面,智能魚缸系統(tǒng)的推廣和應(yīng)用可以減少傳統(tǒng)養(yǎng)魚過程中因人工干預(yù)不足導(dǎo)致的資源浪費(fèi)和環(huán)境污染問題,有助于實(shí)現(xiàn)可持續(xù)發(fā)展。同時(shí),智能魚缸系統(tǒng)還可以應(yīng)用于教育和科研領(lǐng)域,為學(xué)生和研究人員提供一個(gè)直觀的教學(xué)和實(shí)驗(yàn)平臺,增強(qiáng)他們對生態(tài)環(huán)境保護(hù)的認(rèn)識。

從長遠(yuǎn)來看,本項(xiàng)目的成功實(shí)施不僅可以為用戶提供一個(gè)高效、便捷且易于管理的養(yǎng)魚解決方案,還能為智能家居領(lǐng)域的其他應(yīng)用提供寶貴的經(jīng)驗(yàn)和技術(shù)支持。通過對智能魚缸系統(tǒng)的研究和開發(fā),我們希望能夠激發(fā)更多的創(chuàng)新思維,推動智能家居技術(shù)的進(jìn)一步發(fā)展,為未來智慧生活的實(shí)現(xiàn)奠定堅(jiān)實(shí)的基礎(chǔ)。

1.8 參考文獻(xiàn)

1. 張勝男,楊榮國.物聯(lián)網(wǎng)魚缸智能控制系統(tǒng)設(shè)計(jì)[J].現(xiàn)代商貿(mào)工業(yè),2020. 
2. 朱炯健,張喜洋,楊樹輝等.基于STM32的遠(yuǎn)程無線智能魚缸控制系統(tǒng)設(shè)計(jì)[J].科技風(fēng),2019. 
3. 向鎳鋅,郭平,曹旬.基于STM32智能魚缸監(jiān)控系統(tǒng)的設(shè)計(jì)[J].科技視界,2020. 
4. 張志輝,張小花,王嘉輝等.基于物聯(lián)網(wǎng)的智能魚缸遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)及開發(fā)[J].電子技術(shù)與軟件工程,2019. 
5. 彭炫.基于STM32單片機(jī)的智能魚缸設(shè)計(jì)與研究[J].電子世界,2020. 
6. 柳春林.基于ONENET云平臺的智能魚缸研究報(bào)告[J].科學(xué)技術(shù)創(chuàng)新,2019. 
7. 劉偉,林開司,劉安勇.基于物聯(lián)網(wǎng)的魚缸智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].淮海工學(xué)院學(xué)報(bào)(自然科學(xué)版),2016. 
8. 邱義.基于STM32的智能魚缸遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)[J].信息技術(shù)與信息化,2020. 
9. 何鋒,蘭慧.基于手機(jī)遙控的智能魚缸控制系統(tǒng)的設(shè)計(jì) 附視頻[J].電腦知識與技術(shù),2024. 
10. 白春雨,吳紅海,趙懷冬等.基于GSM的可調(diào)節(jié)智能魚缸生態(tài)系統(tǒng)[J].科技風(fēng),2017. 
11. 張勝男,楊榮國.一種基于STM32物聯(lián)網(wǎng)家居控制的魚缸監(jiān)控系統(tǒng)[J].現(xiàn)代商貿(mào)工業(yè),2022. 
12. 郭宇豪,朱宵月,田晨陽等.基于STM32的家用智慧魚缸系統(tǒng)設(shè)計(jì)[J].新型工業(yè)化,2021. 
13. 吳海青,何滿塘,周朝陽等.基于STM32單片機(jī)的智能魚缸控制系統(tǒng)設(shè)計(jì)[J].機(jī)械工程與自動化,2022. 
14. 宋英路,張玉薇,李政林等.基于物聯(lián)網(wǎng)的魚缸智能控制系統(tǒng)[J].數(shù)字技術(shù)與應(yīng)用,2019. 
15. 王宇鑫,胡曉華,黃淑燕等.基于STM32的智能生態(tài)魚缸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].冶金管理,2021. 
16. 無錫學(xué)院自動化學(xué)院.基于STM32的智能魚缸的設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2023. 
17. 華蕊,單超穎,趙凱等.基于物聯(lián)網(wǎng)的智能魚缸[J].湖北農(nóng)機(jī)化,2020. 
18. 徐漢林,丁國超,孫殿棋等.基于STM32的智能魚缸養(yǎng)殖系統(tǒng)[J].現(xiàn)代化農(nóng)業(yè),2022. 
19. 趙春波,李超,侯學(xué)梅等.智能生態(tài)水族箱的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2019. 
20. 徐喆.一款家用魚缸智能控制系統(tǒng)設(shè)計(jì)[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ì)[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. 張?jiān)七_(dá).智能生態(tài)魚缸系統(tǒng)設(shè)計(jì)與實(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的水下自主巡游機(jī)器魚的設(shè)計(jì)與實(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
  • 特性 :
    • ARM Cortex-M3內(nèi)核,最高工作頻率72MHz。
    • 內(nèi)置512KB Flash和64KB SRAM
    • 多個(gè)定時(shí)器、ADC(模數(shù)轉(zhuǎn)換器)、USART(通用同步異步收發(fā)傳輸器)等外設(shè)。
    • 支持多種通信接口,包括SPI、I2CUSB等。
  • 選擇理由 :
    • 性能強(qiáng)大,足以處理復(fù)雜的傳感器數(shù)據(jù)處理任務(wù)。
    • 豐富的外設(shè)支持,便于連接各種傳感器和執(zhí)行機(jī)構(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 或類似的防水?dāng)?shù)字溫度傳感器
  • 特性 :
    • 數(shù)字輸出,精度可達(dá)±0.5°C。
    • 單總線接口,簡化布線。
    • 防水設(shè)計(jì),適用于水下環(huán)境。
  • 選擇理由 :

5. 過濾與循環(huán) - 過濾裝置 + 循環(huán)水泵

  • 過濾裝置 :
    • 類型 : 多層過濾系統(tǒng),包含物理過濾、化學(xué)過濾和生物過濾。
    • 選擇理由 : 綜合過濾效果好,能夠有效去除雜質(zhì)和有害物質(zhì)。
  • 循環(huán)水泵 :
    • 類型 : 低噪音直流泵
    • 特性 : 低功耗、長壽命、靜音運(yùn)行
    • 選擇理由 : 保證水流循環(huán)的同時(shí),減少對魚類的影響。

6. 自動喂食 - 定時(shí)投喂裝置

  • 類型 : 電動旋轉(zhuǎn)喂食器
  • 特性 :
    • 可設(shè)定多個(gè)時(shí)間段自動投喂。
    • 能夠儲存一定量的飼料。
  • 選擇理由 :
    • 結(jié)構(gòu)簡單,易于控制。
    • 可以根據(jù)需要調(diào)整投喂量和時(shí)間,適應(yīng)不同種類的魚類。

7. 照明 - LED燈光控制系統(tǒng)

  • 類型 : RGB LED燈條
  • 特性 :
    • 可調(diào)亮度和顏色。
    • 通過PWM信號控制。
  • 選擇理由 :
    • 提供多樣的光照條件,模擬自然光照周期。
    • PWM控制可以精確調(diào)節(jié)光強(qiáng),節(jié)省能源。

8. 無線通信 - HC05藍(lán)牙模塊

  • 型號 : HC05
  • 特性 :
    • 串行通信接口(UART)。
    • 工作電壓3.3V~6V。
    • 支持藍(lán)牙2.0協(xié)議。
  • 選擇理由 :
    • 體積小,便于集成。
    • 功耗低,穩(wěn)定性好。
    • 價(jià)格合理,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目。

9. 報(bào)警提示 - LED指示燈

  • 類型 : 紅色LED燈
  • 特性 :
    • 低功耗,亮度高。
    • 通過GPIO直接控制。
  • 選擇理由 :
    • 簡單直觀的報(bào)警方式。
    • 低成本,易于集成。

10. 電源管理

  • 電源供應(yīng) :
    • 類型 : 5V DC電源適配器
    • 選擇理由 : 為整個(gè)系統(tǒng)提供穩(wěn)定的電源,同時(shí)支持其他低電壓器件的工作。
  • 備用電源 :
    • 類型 : 可充電鋰電池
    • 選擇理由 : 在斷電情況下作為應(yīng)急電源使用,保持系統(tǒng)的部分功能繼續(xù)運(yùn)行。

三、上位機(jī)開發(fā)

為了方便查看設(shè)備上傳的數(shù)據(jù),接下來利用Qt開發(fā)一款A(yù)ndroid手機(jī)APP

3.1 Qt開發(fā)環(huán)境安裝

Qt的中文官網(wǎng): https://www.qt.io/zh-cn/image-20221207160550486

image-20221207160606892

QT5.12.6的下載地址:https://download.qt.io/archive/qt/5.12/5.12.6

打開下載鏈接后選擇下面的版本進(jìn)行下載:

qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details

軟件安裝時(shí)斷網(wǎng)安裝,否則會提示輸入賬戶。

安裝的時(shí)候,第一個(gè)復(fù)選框里勾選一個(gè)mingw 32編譯器即可,其他的不管默認(rèn)就行,直接點(diǎn)擊下一步繼續(xù)安裝。

image-20221203151742653

選擇MinGW 32-bit 編譯器: (一定要看清楚了)

image-20221203151750344

說明: 我這里只是介紹PC端,也就是Windows系統(tǒng)下的Qt環(huán)境搭建。 Android的開發(fā)環(huán)境比較麻煩,如果想學(xué)習(xí)Android開發(fā),想編譯Android程序的APP,需要自己去搭建Android環(huán)境。

也可以看下面這篇文章,不過這個(gè)文章是在Qt開發(fā)專欄里付費(fèi)的,需要訂閱專欄才可以看。 如果不想付費(fèi)看,也可以自行找其他教程,自己搭建好必須的環(huán)境就行了

Android環(huán)境搭建的博客鏈接: https://blog.csdn.net/xiaolong1126626497/article/details/117254453

3.2 新建上位機(jī)工程

前面2講解了需要用的API接口,接下來就使用Qt設(shè)計(jì)上位機(jī),設(shè)計(jì)界面,完成整體上位機(jī)的邏輯設(shè)計(jì)。

【1】新建工程

image-20240117144052547

【2】設(shè)置項(xiàng)目的名稱。

image-20240509195711965

【3】選擇編譯系統(tǒng)

image-20240117144239681

【4】選擇默認(rèn)繼承的類

image-20240117144302275

【5】選擇編譯器

image-20240314162137170

【6】點(diǎn)擊完成

image-20240117144354252

【7】工程創(chuàng)建完成

image-20230421094133333

3.3 設(shè)計(jì)UI界面與工程配置

【1】打開UI文件

image-20230421094815236

打開默認(rèn)的界面如下:

image-20240425194845233

【2】開始設(shè)計(jì)界面

根據(jù)自己需求設(shè)計(jì)界面。

3.4 編譯Windows上位機(jī)

點(diǎn)擊軟件左下角的綠色三角形按鈕進(jìn)行編譯運(yùn)行。

image-20240509202031739

3.5 配置Android環(huán)境

如果想編譯Android手機(jī)APP,必須要先自己配置好自己的Android環(huán)境。(搭建環(huán)境的過程可以網(wǎng)上找下教程學(xué)習(xí)配置)

然后才可以進(jìn)行下面的步驟。

【1】選擇Android編譯器

image-20240425232651515

image-20240509202408776

【2】創(chuàng)建Android配置文件

image-20240117144604025

image-20240117144635052

image-20240117144652014

創(chuàng)建完成。

【3】配置Android圖標(biāo)與名稱

image-20240612100947190

【3】編譯Android上位機(jī)

Qt本身是跨平臺的,直接選擇Android的編譯器,就可以將程序編譯到Android平臺。

然后點(diǎn)擊構(gòu)建。

image-20240509202534407

成功之后,在目錄下可以看到生成的apk文件,也就是Android手機(jī)的安裝包,電腦端使用QQ發(fā)送給手機(jī)QQ,手機(jī)登錄QQ接收,就能直接安裝。

生成的apk的目錄在哪里呢? 編譯完成之后,在控制臺會輸出APK文件的路徑。

知道目錄在哪里之后,在Windows的文件資源管理器里,找到路徑,具體看下圖,找到生成的apk文件。

image-20240509202712295

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 藍(lán)牙與串口的配置代碼

串口初始化代碼(USART1 115200波特率)

#include "stm32f10x.h"

void USART1_Init(void) {
    // 1. 開啟時(shí)鐘
    RCC- >APB2ENR |= RCC_APB2ENR_IOPAEN;   // 開啟GPIOA時(shí)鐘
    RCC- >APB2ENR |= RCC_APB2ENR_USART1EN; // 開啟USART1時(shí)鐘

    // 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è)置波特率
    // 波特率計(jì)算: 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 藍(lán)牙模塊配置

HC05藍(lán)牙模塊的基本配置通常是在串口上進(jìn)行簡單的AT命令配置。在初始化完成后,可以發(fā)送AT指令來配置藍(lán)牙模塊。

void HC05_Init(void) {
    USART1_SendString("ATrn");    // 發(fā)送AT指令,測試藍(lán)牙是否響應(yīng)
    // 添加延時(shí)或等待響應(yīng)

    USART1_SendString("AT+UART=115200,0,0rn");  // 設(shè)置藍(lán)牙波特率為115200, 無校驗(yàn)位,1個(gè)停止位
    // 等待藍(lán)牙返回OK

    USART1_SendString("AT+ROLE=0rn");  // 將藍(lán)牙設(shè)置為從機(jī)模式
    // 等待藍(lán)牙返回OK

    USART1_SendString("AT+NAME=SmartFishTankrn"); // 設(shè)置藍(lán)牙設(shè)備名稱為"SmartFishTank"
    // 等待藍(lán)牙返回OK
}
  1. 串口初始化 :串口1初始化時(shí),設(shè)置波特率為115200,使用STM32的寄存器進(jìn)行配置。使用PA9作為TX引腳,PA10作為RX引腳。
  2. HC05配置 :通過USART1發(fā)送AT指令對HC05藍(lán)牙模塊進(jìn)行配置,包括波特率設(shè)置、角色設(shè)置、藍(lán)牙名稱設(shè)置等。

這段代碼可以用于實(shí)現(xiàn)HC05藍(lán)牙模塊的初始化與通信,之后可以通過Android手機(jī)APP通過藍(lán)牙與STM32進(jìn)行通信。

4.2 主函數(shù)里的項(xiàng)目邏輯代碼

下面是項(xiàng)目的主函數(shù)里的項(xiàng)目邏輯代碼(其他子模塊的代碼太多,文檔無法全部貼出)。

可以去網(wǎng)盤里下載傳感器模塊的代碼:https://pan.quark.cn/s/145a9b3f7f53

以下是智能魚缸項(xiàng)目的 main.c 邏輯代碼框架,所有子模塊(如水質(zhì)檢測、溫度檢測、OLED顯示、自動喂食、藍(lán)牙通信等)已經(jīng)編寫好之后,可以根據(jù)項(xiàng)目需求直接調(diào)用相應(yīng)的函數(shù)。

main.c 邏輯代碼

#include "stm32f10x.h"
#include "usart.h"      // 假設(shè)這里有串口驅(qū)動
#include "oled.h"       // OLED顯示屏驅(qū)動
#include "bluetooth.h"  // 藍(lán)牙模塊驅(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  // 水溫最大值(攝氏度)

// 全局變量,存儲當(dāng)前水質(zhì)、水溫等狀態(tài)
float water_quality = 0;
float water_temp = 0;
uint8_t light_intensity = 0;
uint32_t next_oxygen_time = 0; // 下次增氧時(shí)間

void SystemClock_Config(void);
void Update_OLED_Display_Page1(void);
void Update_OLED_Display_Page2(void);

int main(void) {
    // 初始化系統(tǒng)時(shí)鐘
    SystemClock_Config();

    // 初始化相關(guān)模塊
    USART1_Init();      // 初始化串口用于藍(lán)牙通信
    OLED_Init();        // 初始化OLED顯示
    Sensor_Init();      // 初始化水質(zhì)、溫度傳感器等
    Feeder_Init();      // 初始化自動喂食系統(tǒng)
    Pump_Init();        // 初始化水泵系統(tǒng)
    HC05_Init();        // 初始化藍(lán)牙模塊

    // 主循環(huán)
    while (1) {
        // 1. 獲取傳感器數(shù)據(jù)
        water_quality = Get_Water_Quality(); // 獲取水質(zhì)數(shù)據(jù)
        water_temp = Get_Water_Temperature(); // 獲取水溫?cái)?shù)據(jù)
        light_intensity = Get_Light_Intensity(); // 獲取光照強(qiáng)度

        // 2. 更新OLED顯示屏
        Update_OLED_Display_Page1();  // 更新顯示屏第一頁內(nèi)容
        // 可根據(jù)具體按鍵切換到第二頁顯示
        // Update_OLED_Display_Page2(); 

        // 3. 檢查水質(zhì),超過閥值時(shí)報(bào)警(例如點(diǎn)亮紅色LED)
        if (water_quality > MAX_WATER_QUALITY) {
            LED_SetColor(RED); // 假設(shè)存在LED驅(qū)動模塊
        } else {
            LED_SetColor(GREEN);
        }

        // 4. 自動增氧(根據(jù)設(shè)定的增氧間隔時(shí)間執(zhí)行)
        if (Check_Oxygen_Time(next_oxygen_time)) {
            Pump_Oxygen(); // 啟動增氧水泵
            next_oxygen_time = Get_Next_Oxygen_Time(); // 設(shè)定下次增氧時(shí)間
        }

        // 5. 自動喂食
        if (Check_Feeding_Time()) {
            Feeder_Start();  // 觸發(fā)喂食動作
        }

        // 6. 藍(lán)牙通信,將當(dāng)前狀態(tài)通過藍(lán)牙發(fā)送到手機(jī)APP
        Send_Bluetooth_Data(water_quality, water_temp, light_intensity, next_oxygen_time);

        // 延時(shí)一段時(shí)間,減少循環(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, "光強(qiáng)    ");
    OLED_ShowNum(64, 4, light_intensity, 3);
    OLED_ShowString(90, 4, "lux");

    OLED_ShowString(0, 5, "下次增氧時(shí)間");
    OLED_ShowTime(64, 5, next_oxygen_time); // 自定義的時(shí)間顯示函數(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)時(shí)鐘配置
void SystemClock_Config(void) {
    // 配置系統(tǒng)時(shí)鐘為72MHz
    RCC- >CFGR |= RCC_CFGR_SW_PLL; // 使用PLL作為系統(tǒng)時(shí)鐘
    RCC- >CR |= RCC_CR_PLLON;      // 打開PLL
    while (!(RCC- >CR & RCC_CR_PLLRDY));  // 等待PLL穩(wěn)定
}

// 其他可能用到的輔助函數(shù)
uint32_t Get_Next_Oxygen_Time(void) {
    // 假設(shè)返回下次增氧時(shí)間,增加3分鐘
    return Get_Current_Time() + 180; // 180秒 = 3分鐘
}

uint8_t Check_Oxygen_Time(uint32_t next_time) {
    // 檢查是否到了設(shè)定的增氧時(shí)間
    return Get_Current_Time() >= next_time;
}

代碼說明:

  1. 系統(tǒng)初始化: 初始化系統(tǒng)時(shí)鐘和各個(gè)外設(shè)模塊(如串口、OLED、水質(zhì)傳感器、溫度傳感器、水泵、喂食器等)。
  2. 主循環(huán):
    • 獲取水質(zhì)和溫度傳感器的數(shù)據(jù)。
    • 更新OLED屏幕的顯示內(nèi)容。
    • 根據(jù)水質(zhì)檢測的結(jié)果,判斷是否需要報(bào)警(如使用LED燈指示)。
    • 控制自動增氧系統(tǒng)。
    • 控制自動喂食系統(tǒng)。
    • 通過藍(lán)牙模塊將數(shù)據(jù)發(fā)送到手機(jī)端。
  3. 頁面更新: 提供了兩個(gè)OLED頁面的更新函數(shù),分別顯示魚缸的實(shí)時(shí)數(shù)據(jù)和閥值設(shè)定情況。
  4. 輔助功能: 包括系統(tǒng)時(shí)鐘配置函數(shù)、增氧時(shí)間檢查函數(shù)等。

五、總結(jié)

本項(xiàng)目開發(fā)一款基于STM32F103RCT6單片機(jī)控制的智能魚缸系統(tǒng),集成水質(zhì)監(jiān)測、溫度控制、自動喂食以及光照調(diào)節(jié)等多種功能于一體。該系統(tǒng)利用先進(jìn)的傳感器技術(shù)來實(shí)時(shí)監(jiān)控魚缸內(nèi)的環(huán)境參數(shù),通過直觀的OLED顯示屏向用戶展示這些信息。系統(tǒng)采用渾濁度傳感器進(jìn)行水質(zhì)檢測,當(dāng)水質(zhì)指標(biāo)超過預(yù)設(shè)閾值時(shí),將通過紅色LED燈提醒用戶需要清理過濾系統(tǒng);防水式溫度傳感器用于測量水溫并在主面板上顯示當(dāng)前數(shù)值,確保魚類生活在適宜的溫度條件下。高效的過濾系統(tǒng)與循環(huán)水泵協(xié)同工作,不僅能夠凈化水質(zhì)去除有害物質(zhì),還能延長換水周期至半年一次,顯著減少維護(hù)成本。

為了進(jìn)一步增強(qiáng)用戶體驗(yàn),項(xiàng)目包括了自動喂食機(jī)制,允許用戶設(shè)定定時(shí)投喂計(jì)劃,從而保證魚類獲得規(guī)律的食物供應(yīng)。照明方面,設(shè)計(jì)考慮到了植物生長的需求,設(shè)置了可調(diào)節(jié)強(qiáng)度和模擬晝夜變化的燈光,促進(jìn)光合作用,增加水中溶解氧含量,有利于整個(gè)生態(tài)系統(tǒng)的健康穩(wěn)定。所有這些關(guān)鍵數(shù)據(jù)都將通過一塊易于閱讀的OLED屏幕呈現(xiàn)給用戶,其中包括水質(zhì)百分比、實(shí)際水溫和光照強(qiáng)度等重要指標(biāo)。

智能魚缸還支持藍(lán)牙通信,通過HC05藍(lán)牙模塊實(shí)現(xiàn)與Android手機(jī)APP的數(shù)據(jù)交換。借助于Qt框架開發(fā)的應(yīng)用程序,用戶可以在智能手機(jī)上遠(yuǎn)程查看魚缸狀態(tài)并調(diào)整各項(xiàng)設(shè)置,比如水質(zhì)及水溫閾值、增氧間隔時(shí)間等。這樣既簡化了日常管理流程,也使得養(yǎng)魚變得更加便捷有趣。整體而言,這一綜合解決方案致力于提供一個(gè)更加智能化且易于管理的家庭養(yǎng)魚體驗(yàn)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6055

    文章

    44795

    瀏覽量

    643579
  • STM32
    +關(guān)注

    關(guān)注

    2281

    文章

    10976

    瀏覽量

    360732
收藏 人收藏

    評論

    相關(guān)推薦

    STM32項(xiàng)目分享:STM32智能語音分類垃圾桶

    01—項(xiàng)目簡介1.功能詳解STM32智能語音分類垃圾桶功能如下:1.STM32F103C8T6單片機(jī)系統(tǒng)板作為主控單元2.舵機(jī)驅(qū)動垃
    的頭像 發(fā)表于 03-15 10:02 ?488次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>STM32</b><b class='flag-5'>智能</b>語音分類垃圾桶

    STM32項(xiàng)目分享:STM32智能語音臺燈

    —項(xiàng)目簡介1.功能詳解STM32智能語音臺燈功能如下:1.STM32F103C8T6單片機(jī)系統(tǒng)板作為主控單元2.按鍵切換模式,支
    的頭像 發(fā)表于 03-15 10:02 ?395次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>STM32</b><b class='flag-5'>智能</b>語音臺燈

    基于STM32單片機(jī)的智能燈電路圖設(shè)計(jì)

    基于STM32單片機(jī)的智能燈電路圖設(shè)計(jì) 獲取資料可下載附件哦!!!!
    發(fā)表于 03-13 14:29

    STM32項(xiàng)目分享:智能臺燈(機(jī)智云)系統(tǒng)

    01—項(xiàng)目簡介1.功能詳解STM32智能臺燈(機(jī)智云)系統(tǒng)功能如下:1.檢測功能:系統(tǒng)檢測周圍溫濕度數(shù)據(jù)、距離、人體信號、光照強(qiáng)度L
    的頭像 發(fā)表于 03-10 08:03 ?382次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>智能</b>臺燈(機(jī)智云)系統(tǒng)

    智能魚缸仿真設(shè)計(jì)

    51單片機(jī)智能魚缸溫度,ph值;使用pid算法控制溫度到設(shè)置值;普通控制ph值到設(shè)定值溫度低,啟動加熱;PH值過高,啟動進(jìn)水;PH值過低,啟動進(jìn)料。水位過高,啟動放水。可以設(shè)置溫度,ph和水位的閾值
    發(fā)表于 12-30 15:18 ?3次下載

    STM32項(xiàng)目分享:智能臺燈系統(tǒng)

    01—項(xiàng)目簡介1.功能詳解基于STM32智能臺燈系統(tǒng)。功能如下:亮度控制:按鍵控制照明燈的亮度(5擋亮度)計(jì)時(shí)功能:按鍵啟動計(jì)時(shí),累
    的頭像 發(fā)表于 11-29 01:02 ?1433次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>智能</b>臺燈系統(tǒng)

    基于STM32設(shè)計(jì)的智能臺燈

    當(dāng)前文章介紹了基于STM32F103RCT6主控芯片的智能臺燈的設(shè)計(jì)過程和實(shí)現(xiàn)原理。通過集成人體紅外感應(yīng)、光敏檢測和與手機(jī)APP連接的功能,實(shí)現(xiàn)了臺燈的自動開關(guān)和亮度調(diào)節(jié)等智能化操作。通過手機(jī)APP與藍(lán)牙模塊的連接,用戶可以遠(yuǎn)程
    的頭像 發(fā)表于 11-19 09:26 ?1903次閱讀
    基于<b class='flag-5'>STM32</b>設(shè)計(jì)的<b class='flag-5'>智能</b>臺燈

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

    智能大棚溫控系統(tǒng)_STM32U5》項(xiàng)目完整文檔、項(xiàng)目源碼,點(diǎn)擊下方鏈接免費(fèi)領(lǐng)取。項(xiàng)目資料領(lǐng)取https://s.c1ns.cn/F5XyUSTM32項(xiàng)目實(shí)戰(zhàn)之“智能大棚溫控系統(tǒng)
    的頭像 發(fā)表于 11-13 17:08 ?1289次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32</b>U5的<b class='flag-5'>智能</b>大棚溫控系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

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

    智能燈光控制系統(tǒng)_STM32U5》項(xiàng)目完整文檔、項(xiàng)目源碼,點(diǎn)擊免費(fèi)領(lǐng)取。項(xiàng)目資料領(lǐng)取:https://s.c1ns.cn/F5XyUSTM32項(xiàng)目實(shí)戰(zhàn)之“智能燈光控制系統(tǒng)”(基于
    的頭像 發(fā)表于 11-07 18:50 ?1744次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32</b>U5的<b class='flag-5'>智能</b>燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

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

    智能燈光控制系統(tǒng)_STM32F4》項(xiàng)目完整文檔、項(xiàng)目源碼,私信小雯老師免費(fèi)領(lǐng)取。STM32項(xiàng)目實(shí)戰(zhàn)之“智能燈光控制系統(tǒng)”(基于STM32F
    的頭像 發(fā)表于 10-17 16:16 ?1419次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目實(shí)戰(zhàn):基于<b class='flag-5'>STM32</b>F4的<b class='flag-5'>智能</b>燈光控制系統(tǒng)(LVGL),附項(xiàng)目教程/源碼

    基于STM32智能加濕器

    基于STM32的加濕器發(fā)展前景非常樂觀,這主要得益于其在技術(shù)、市場需求、應(yīng)用場景以及政策支持等多方面的優(yōu)勢。STM32微控制器具備強(qiáng)大的處理能力和豐富的外設(shè)接口,能夠?qū)崿F(xiàn)精確的濕度監(jiān)測和智能化控制
    的頭像 發(fā)表于 10-12 17:22 ?1045次閱讀
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>智能</b>加濕器

    霍爾開關(guān)在魚缸LED燈中的應(yīng)用

    水溫。 你知道嗎?霍爾開關(guān)在魚缸LED燈中起著關(guān)鍵性作用,霍爾開關(guān)是如何應(yīng)用于LED燈板中的呢? 在魚缸LED燈板中使用霍爾開關(guān),可以實(shí)現(xiàn)對燈板的智能控制。具體來說,可以通過霍爾開關(guān)檢測外部環(huán)境的變化,如光線強(qiáng)弱、人體移動等
    的頭像 發(fā)表于 10-09 09:59 ?457次閱讀

    STM32項(xiàng)目分享:智能門禁鎖系統(tǒng)

    01—項(xiàng)目簡介1.功能詳解基于STM32智能門禁鎖系統(tǒng)。功能如下:按鍵解鎖:系統(tǒng)通過4×4矩陣鍵盤模塊輸入密碼進(jìn)入主菜單門禁刷卡:通
    的頭像 發(fā)表于 09-12 08:04 ?2662次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>智能</b>門禁鎖系統(tǒng)

    基于STM32智能風(fēng)扇系統(tǒng)設(shè)計(jì)

    近年來,智能家居行業(yè)迅速發(fā)展,但許多市場上的風(fēng)扇功能依然簡單。我們的智能風(fēng)扇以STM32單片機(jī)為核心,提供三種工作模式:自動模式通過溫度傳感器檢測環(huán)境溫度變化,自動調(diào)整風(fēng)扇轉(zhuǎn)速以優(yōu)化效果;手動模式
    的頭像 發(fā)表于 08-30 12:15 ?4506次閱讀
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>智能</b>風(fēng)扇系統(tǒng)設(shè)計(jì)

    STM32項(xiàng)目分享:智能家居(機(jī)智云)系統(tǒng)

    STM32項(xiàng)目分享:智能家居(機(jī)智云)系統(tǒng)
    的頭像 發(fā)表于 07-28 08:10 ?2474次閱讀
    <b class='flag-5'>STM32</b>項(xiàng)目分享:<b class='flag-5'>智能</b>家居(機(jī)智云)系統(tǒng)
    主站蜘蛛池模板: wwwxxx亚洲| 色老板女色狠xx网 | 日本免费色网站 | 黄色日本视频网站 | 亚洲综合欧美日本另类激情 | 国产夜夜操 | 午夜性视频播放免费视频 | 色琪琪一本到影院 | 国产精品夜色一区二区三区 | 女同性进行性行为视频 | 日本三级网站在线线观看 | 久热国产精品视频 | 在线欧美成人 | 禁漫羞羞入口 | 天天操夜夜做 | 999毛片 | 夜夜春夜夜夜夜猛噜噜噜噜噜 | 亚洲福利视频一区二区 | 玖玖在线免费视频 | 夜夜爽毛片 | 亚洲狠狠网站色噜噜 | 国产精品第一页在线观看 | 欧美成人午夜影院 | 欧美在线区 | 日韩免费观看的一级毛片 | a级毛片免费观看网站 | 六月丁香婷婷激情国产 | 1024视频在线观看国产成人 | 特黄一级毛片 | 国产h在线| 日本黄色免费在线 | 亚洲人成网站色在线观看 | 爱爱帝国亚洲一区二区三区 | 亚洲综合色一区 | 国产精品久久久久久久久久免费 | 白丝丝袜高跟国产在线视频 | 狠狠操狠狠干 | 1024手机在线看 | 亚色中文 | 亚洲黄色三级 | 国产精品视频一区国模私拍 |