向鎳鋅 郭 平 曹 旬
(西昌學院信息技術學院,四川 涼山615013)
隨著電子類產品的不斷迭代更新,社會節奏隨之逐漸加快,人們在享受快節奏的同時希望在家庭和辦環境中營造慢的、愜意的生活。因此,在家庭、辦公場所、商場等地,能看到不同型號、功能的魚缸,為人們帶來視覺上的放松體驗。目前市面上此類產品的換水、喂食、加熱等功能往往還依賴于用戶的手動控制,并非智能化的整體系統,給人們的生活帶來了很大的不便[1-2]。資料顯示,目前全世界觀賞魚缸正以每年超過10%的速度增長,我國以觀賞魚缸為龍頭的水族產業發展雖已有十余年,但規模不大,還存在巨大的市場發展潛力[3]。
本系統由三大模塊構成,分別是服務器、移動終端App、系統硬件。服務器端由服務器程序與數據庫組成,作為系統橋梁,具有解析App的請求信息、發送Wi-Fi無線模塊數據信息、存儲信息等功能。移動終端App為用戶提供遠程觀測數據、遠程控制魚缸進行換水和喂食的操作界面。系統硬件由STM32微控制器、Wi-Fi模塊、溫度傳感器模塊、水位傳感器模塊、換水模塊、喂食模塊、OLED顯示屏模塊組成,為本系統監測魚缸環境提供實時的底層數據。
如圖1為本系統的設計框圖。溫度與水位傳感器將采集的數據傳輸到STM32微控制器,并通過顯示屏顯示數據信息。微控制器通過Wi-Fi模塊將數據發送到服務器端。移動端App發送數據請求與控制命令到服務器,當數據超過預設閾值時,用戶可通過移動端遠程發送控制命令到服務器,服務器再通過無線模塊回傳控制信息至微控制器,實現為魚缸換水和喂食的功能。

圖1 智能魚缸監控系統設計框圖
系統硬件包括主控制器模塊、無線通訊模塊、傳感器采集模塊、顯示模塊、換水模塊、投喂模塊幾部分,通過對以上各模塊進行設計完成魚缸內環境數據檢測、數據顯示、數據傳輸、遠程移動端訪問、遠程控制換水與投喂,實現智能魚缸的自動監控功能的目的。
系統選用以ARM為內核的STM32F103C8T6芯片的最小系統模塊作為硬件設計的核心,其具有高性能、低時延、低功耗、低電壓、穩定性高、集成度高等特點[4],能為本系統提供及時、高效的處理。
Wi-Fi模塊是用戶與單片機通訊的核心組件,本項目選擇ESP8266 Wi-Fi模塊,通過發送AT指令的方式可對ESP8266 Wi-Fi模塊進行配置,方便快捷。該模塊共有六個引腳,除電源和接地引腳外,只需要將 其RXD和TXD引腳,與單片機的TXD、RXD連接,使用AT指令即可進行數據傳輸[5]。設置模塊進入透傳模式后,使用TCP/IP協議,可實現與服務器的網絡通信。
溫度傳感器需要深入水中對魚的生活環境溫度進行監測,因此本設計選用專用液體溫度傳感器DS18B20數字溫度傳感器探頭,其測量溫度為-55℃~+125℃,工作電壓為3 V~5 V。魚的普遍適宜養殖溫度為+20℃~+32℃,因此該溫度傳感器探頭完全滿足溫度測量范圍,且測量結果以9~12位數據量的方式串行傳送[6],單片機可直接將信息傳輸到用戶查看。
水位傳感器的主要作用是實時傳送水位信息到單片機,到達系統預定時間或移動端發送換水操作時,進行換水操作,所以本設計選擇成本低,靈敏度高的水位傳感器,該水位傳感器的工作電壓為3~5 V,工作電流小于20 mA,不會對魚兒產生影響,安全可靠。
系統換水與喂食模塊以舵機為基礎,通過執行單片機的控制命令達到換水與喂食的目的。換水模塊通過接收單片機的控制命令,轉動舵機至對應角度,使魚缸放出對應缺口,提供放水功能,同時在進水口設置一根連動桿,連接水源,進行加水操作,當換水時長達到要求后,換水模塊自動復原。喂食模塊與換水模塊原理類似。用戶可在移動端設置喂食間隔時間,也可立即進行喂食操作。服務器收到移動端控制信息后判斷喂食時刻,若滿足條件則向單片機發送控制指令,旋轉舵機,飼料落下進行喂食,喂食完畢后恢復初始狀態。
系統軟件設計包括服務器的開發、系統硬件編程和移動端App的設計。服務器端的開發,主要實現信息的存儲、數據庫的調用、命令的轉發;系統硬件程序主要實現水溫的檢測、水位的檢測、Wi-Fi模塊的啟動、OLED模塊的顯示、舵機的運轉;移動端App的設計,主要實現登陸、注冊、水溫水位信息的顯示、控制指令的發送。
系統硬件程序設計流程如圖2所示。上電后,單片機系統、Wi-Fi模塊、傳感器模塊、顯示模塊首先進行初始化,并進入工作狀態。傳感器采集到數據信息后,將信息發送到單片機后通過顯示屏顯示,Wi-Fi模塊將信息發送至服務器,當服務器接收到控制指令后判斷是喂食還是換水操作,并控制單片機驅動舵機進行相應操作。
移動端app開發采用C++語言進行設計,利用QT軟件作為開發環境[7]。搭 配 安 裝jdk-8u121-windows-x64配置、sdk-installer_r24.4.1-windows配置、ant-apache-ant-1.10.3-bin配置、ndk-androidndk-r14b-windows-x86_64配置,即可用C++進行開發,其設計框圖如圖3所示。
進入App后,用戶可進行注冊與登錄,若為正確的賬號密碼則跳轉至控制界面。控制界面上實時顯示當前魚缸溫度與水位信息,并可通過界面中換水與投食圖標發送控制信息至服務器,從而控制單片機進行相應操作,設計完成的界面如圖4所示。

圖2 系統硬件程序流程圖
本系統基于STM32單片機對家用魚缸進行智能化設計,完成對魚缸中的水溫、水位實時檢測,實現了對魚缸的遠程監控,降低了觀賞魚的喂養風險。系統在功耗、體積上都較小,且設計成本低,滿足實際應用需求,具有良好的市場前景。

圖4 移動端App界面

圖3 移動端設計框圖