趙春波 李超 侯學梅 馬雪

摘要:針對養魚養花愛好者因對魚、花不甚了解或因工作繁忙無暇照看而導致魚或花死亡的問題,本文介紹了一款基于STM32單片機控制的家庭智能生態水族箱。該系統通過其多種傳感器實時獲取魚缸中的水體狀態(溫度、ph)與花盆中土壤(土壤濕度)的狀態,并利用ESP8266-12E通過無線傳輸技術傳送到用戶手機端APP。除此之外,手機端APP還可以提供遠程澆花、換水等一系列功能,以實現對水族箱的自動控制;同時還可通過用戶輸入的魚的種類、數量、大小以及花的品種等參數,通過數據推算為用戶提供最佳設置參數并可一鍵應用至硬件系統,為用戶提供便利。該系統具有很強的移植性,可廣泛應用于家庭水族箱、商業性魚池等。
[關鍵詞]生態水族箱遠程控制智能控制數據分析
隨著國民經濟的發展及人民生活水平的提高,家居環境的個性化與生態化越來越受人們重視,而能給人帶來寬松舒適的美感的魚缸與植物受到人們的廣泛喜愛。但由于多數養殖者對魚與植物的生活環境不甚了解,或因工作繁忙無暇照顧而時常導致所養魚、植物死亡。對于昂貴的觀賞性魚與植物,其死亡會帶來不小的經濟損失,而對于商業性養殖池,損失更是不可估量,與之相適應,近幾年國內外的“智能魚缸”逐漸出現。目前,國內外的智能魚缸所能提供功能有:水溫恒溫控制、充氧控制、過濾控制等,該類智能魚缸的出現在一定程度上解決了“魚類壽命過短”這一問題,但其提供的功能過少、靈活性差,無法根據所養魚的種類、數量、大小等靈活變換魚缸中水體參數,更無法為不懂魚、植物的用戶提供合理的養殖建議。
針對上述問題,本文提出一種基于STM32單片機控制、多種傳感器協同工作、可遠程控制的智能生態養殖系統一智能生態水族箱。
1系統功能設計
該系統是一個集養魚與養花于一體的生態系統,養魚產生的“廢水”用來澆花,進行廢物再利用,突出了節水和環保的特點。
手機端軟件可遠程控制魚缸以實現“一鍵澆花、一鍵水循環、一鍵充氧、一鍵獲取系統狀態、設置魚缸水體ph、設置魚缸水體溫度、設置澆花以及喂魚周期”等一系列功能。除此之外,該軟件還可在輸入魚的品種、數量、大小以及花的種類的基礎上,通過數據推算給出最合適的各項設置參數并可一鍵應用,解決了大多數人不了解魚與植物生活習性的煩惱。如圖1所示。
2系統硬件的實現
硬件系統的中央控制器為STM32,編程語言為C語言。
2.1系統電源
系統各模塊用到的電壓不同,有220V、5V、3.3V。對于220V用電器可由市電直接供電,其次通過一級穩壓模塊將220V轉化為5V給5V用電器供電,最后通過LM2596S模塊進行二級穩壓將5V轉換為3.3V為3.3V用電器供電。如圖2所示。
2.2無線通信
采用ESP8266-12E模塊進行手機軟件與.硬件系統之間的通信:該模塊可以工作在AP模式下與Station模式下。工作在Station模式時該模塊可連接Wi-Fi,通過Wi-Fi連接至公網,手機便可以通過Wi-Fi或4G網絡與模塊通信。工作在AP模式時該模塊可發出Wi-Fi信號,手機連接模塊的Wi-Fi信號即可通信。因本系統傳輸的數據量小且要求可靠性高,因此通信協議選擇TCP協議。
2.3溫度、ph的測控與土壤濕度測量
水溫采用DS18B20防水封裝型傳感器進行測量,水體ph值通過E-201型ph傳感器進行測量,土壤濕度則通過LY69型土壤濕度傳感器進行測量。其中,ph傳感器與土壤濕度傳感器的輸出為模擬量,采用PCF8591進行AD轉換。三者的測量數據均可在執行“一鍵獲取”功能時傳至手機APP進行顯示。
手機端APP可設置水溫與ph值,在硬件系統接收到水溫設置值后首先啟動一次溫度測量并與接收到的設定值進行比較,若測量值小于設置值則使加熱棒工作60s后再次測量水溫,若水溫達到設定值則停止加熱,若仍未達到設定值則加熱棒繼續工作。同理,硬件接收到ph設置值后先進行一次水體ph值測量,若測量值小于設定值則啟動6s水循環,通過補充新鮮水源的方式調節ph。
2.4投食/澆花周期的控制
對于周期的控制均通過單片機內部定時/計數器實現:在硬件接收到軟件端設置的投食1澆花周期后單片機內部定時/計數器開始工作,當達到設置周期時,30r/min的減速馬達帶動投食盒工作2s,旋轉一周來投食;而水泵1與水泵2自動接通3s實現澆花功能。
2.5充氧泵與水泵的控制
因充氧泵與水泵均為220V用電器,因此單片機通過上拉電阻增加IO口驅動能力的方式控制繼電器來間接控制充氧泵與水泵抽水。
對充氧泵的控制可實現魚缸充氧功能;水泵1與水泵2同時工作實現“一鍵澆花”,水泵1與水泵3同時工作可實現“一鍵水循環”。如圖3所示。
3系統軟件的實現
系統的軟件部分的編程采用Java與Android。
3.1數據庫的實現
SQLite是一一個輕量級的數據庫,它最初是嵌入式設計的,占用的資源很少,在內存中只需要占用幾百KB的存儲空間,Android移動設備大多采用sQLite,這也是我們選擇SQLite的主要原因之一。
在數據庫操作中,當待辦查詢涉及多表查詢的時候,連接查詢無疑優于嵌套查詢,這是因為在得到相同結果的前提下,連接查詢需要掃描查詢表的次數要遠遠小于嵌套查詢掃描的次數,連接查詢只是將大部分時間花在了Join操作上。當單表的數據量很大的時候,連接查詢的優勢則更為明顯。所以當出現這種情況,選擇優先使用連接查詢。
3.2UI設計
UI界面是用戶和手機數據傳遞和交互的重要媒介和對話接口,利用button,TextView,EditView等實現功能的需求,利用LinearLayout,RelativeLayout等布局和設計好的圖片以及標題欄等細節的設計實現界面的美化。
3.3數據類型轉換
傳輸的數據數量和類型不確定,都是先轉化成byte類型進行傳輸,根據硬件的發送時間間隔的要求,利用Thread類的靜態方法sleep()和異常處理機制,實現與硬件的數據傳輸。
4結論
本文設計的智能生態水族箱可為用戶提供家庭魚、花自動智能養殖的諸多功能,軟件端數據庫可為用戶提供魚缸設置參數,減少養殖者的煩惱,“集養魚、養花為一體”的設計思路實現了生態循環和節約用水。除此之外,無線通信技術的引入可為用戶提供遠程控制的服務,為工作繁忙或出差在外的用戶提供了便利。
與傳統的智能魚缸相比,本系統增加了養魚養花一體化、養殖技巧與方法推送、分享等功能,具有較高的實用性和市場價值。
參考文獻
[1]張濤.C8051F020單片機與GPS接收板串行通信的設計[J].計算機與數學工程,2011(08):9-191.
[2]王華祥,張淑英.傳感器原理及應用[M].天津大學出版社,2017:66-79.
[3]耿祥義,張躍平.Java2實用教程[M].清華大學出版社,2106:36-119
[4]傳智播客高教產品研發部.Android移動應用基礎教程[M].中國鐵道出版社,2015:45-98.