文/張志輝 張小花 王嘉輝 黃澤鴻
隨著物聯網技術及軟件技術的普及,國內外嵌入式應用發展迅速,各種智能家居隨之進入了我們的生活,緊跟而來的是市場上蒸蒸日上的智能魚缸使用。本研究通過單片機對智能魚缸進行控制,并實現服務器與上位機的搭建以及單片機與上位機的之間的遠程通訊,從而對魚缸進行遠程監測及控制。由中央處理器執行相關操作,調控魚缸的水體環境,為魚兒提供最佳的生存環境。在溫度等參數處于異常時,由中央處理器發出指令對其進行調控。從而實現科學自動喂養,在功能上表現出良好的穩定性與可靠性。

圖1:系統硬件結構圖
系統的總體設計方案分為基于單片機對魚缸的水體環境控制和基于Python的客戶端對魚缸環境參數的查看。通過單片機實現對魚缸環境的智能控制,控制的部分包括:溫度,PH值,渾濁度,照明,氧氣。在溫度,PH值等過高或過低時由中央處理器發出相關指令進行控制。同時完成基于C/S的客戶端設計,用戶可以通過客戶端查看魚缸的溫度,PH,渾濁度等相關數據,也可直接通過魚缸上的顯示器查看。另外在上位機設置控制命令,如升降溫、升降PH值、升降溶氧量、開關排水裝置,實現對智能魚缸的遠程控制。

圖2:智能魚缸硬件圖
本次項目設計主要由傳感器獲取環境內溫度等因子數值,獲取之后傳輸給中央處理器,再通過SIM900A無線傳輸模塊與服務器、上位機進行交互,實現遠程監測、控制的功能。

圖3:上位機24小時對溶氧量的監控圖
STM32單片機硬件外設資源十分豐富,具有高性能、低功耗的優點。單片機控制器通過溫度傳感器、PH值檢測裝置、溶氧量傳感器、渾濁度傳感器檢測裝置獲取環境因子。單片機通過分析采集到的數據智能啟停換水系統開關、喂食系統開關、增氧系統開關、照明系統開關等操作以維持魚缸生態平衡,同時接收服務器下發的指令完成相對應的操作。系統硬件設計結構圖整體設計思路如圖1所示,硬件實物圖如圖2。
SIM900A通訊模塊主要完成服務器與單片機數據的交互,負責數據的上傳和接收。首先需要搭建服務器以及上位機,再通過套接字實現兩者的傳輸。當能夠成功連接時,就可以借助SIM900A模塊通過TCP傳輸協議與單片機進行數據傳輸。為了響應外部請求,單片機系統采取中斷響應的方法。
由于單片機內部儲存區域比較少,無法實現大批量存儲,所以數據需要保存在服務器中。單片機只負責執行接收,比較和發送,當單片機接收來自傳感器的數據后,相隔一定的時間,通過無線傳輸的網絡模塊向服務器傳輸數據,以便用戶需要時能及時地接收到信息。當用戶對魚缸控制系統發送控制命令時,數據會先上傳到服務器,再由服務器和無線網絡模塊傳輸到單片機系統,最后再由單片機系統執行相關操作。
通過上位機直接發出控制指令,傳遞給下位機,完成對各個模塊的遠程控制、監測。在上位機界面中,不僅可以實時獲取當前時間,也可以持續顯示從單片機外圍的眾多傳感器所獲取的最終數據,實現遠距離地獲取魚缸水體內的溫度、PH值等傳感器信息。通過上位機的界面,也能夠實現與單片機的交互控制,遠程對單片機發送命令,從而對單片機所監控的水體環境進行控制。上位機程序支持將歷史的數據保存在本地,并存儲為CSV文件以供用戶方便查看。上位機界面通過Python程序語言進行開發,通過無線傳輸數據的方式即可實現無線監控。當用戶輸入正確的IP地址以及指定端口登錄后,后臺系統開始運行。用戶可以在上位機中通過控件查看最近24小時的溫度變化、PH值變化、溶氧量變化、渾濁度變化。當需要對單片機進行升溫、排水時,用戶也可以按下“升高溫度”、“降低PH值”等控件進行控制。24小時溶氧量監控效果圖如圖3所示。
本文是根據國內外市場上魚缸的情況,在原有設備的基礎上,加入了遠程智能監測,用戶可以在不考慮地理位置的情況下觀察魚缸水體環境的情況并根據實際情況進行控制。并且將多個傳感器集成于同一微處理器中,體現了設計靈活、結構簡單等優勢。系統測試表明設計方案切實可行,具有較高的實用價值。