向鎳鋅 郭 平 曹 旬
(西昌學(xué)院信息技術(shù)學(xué)院,四川 涼山615013)
隨著電子類產(chǎn)品的不斷迭代更新,社會節(jié)奏隨之逐漸加快,人們在享受快節(jié)奏的同時希望在家庭和辦環(huán)境中營造慢的、愜意的生活。因此,在家庭、辦公場所、商場等地,能看到不同型號、功能的魚缸,為人們帶來視覺上的放松體驗(yàn)。目前市面上此類產(chǎn)品的換水、喂食、加熱等功能往往還依賴于用戶的手動控制,并非智能化的整體系統(tǒng),給人們的生活帶來了很大的不便[1-2]。資料顯示,目前全世界觀賞魚缸正以每年超過10%的速度增長,我國以觀賞魚缸為龍頭的水族產(chǎn)業(yè)發(fā)展雖已有十余年,但規(guī)模不大,還存在巨大的市場發(fā)展?jié)摿3]。
本系統(tǒng)由三大模塊構(gòu)成,分別是服務(wù)器、移動終端App、系統(tǒng)硬件。服務(wù)器端由服務(wù)器程序與數(shù)據(jù)庫組成,作為系統(tǒng)橋梁,具有解析App的請求信息、發(fā)送Wi-Fi無線模塊數(shù)據(jù)信息、存儲信息等功能。移動終端App為用戶提供遠(yuǎn)程觀測數(shù)據(jù)、遠(yuǎn)程控制魚缸進(jìn)行換水和喂食的操作界面。系統(tǒng)硬件由STM32微控制器、Wi-Fi模塊、溫度傳感器模塊、水位傳感器模塊、換水模塊、喂食模塊、OLED顯示屏模塊組成,為本系統(tǒng)監(jiān)測魚缸環(huán)境提供實(shí)時的底層數(shù)據(jù)。
如圖1為本系統(tǒng)的設(shè)計(jì)框圖。溫度與水位傳感器將采集的數(shù)據(jù)傳輸?shù)絊TM32微控制器,并通過顯示屏顯示數(shù)據(jù)信息。微控制器通過Wi-Fi模塊將數(shù)據(jù)發(fā)送到服務(wù)器端。移動端App發(fā)送數(shù)據(jù)請求與控制命令到服務(wù)器,當(dāng)數(shù)據(jù)超過預(yù)設(shè)閾值時,用戶可通過移動端遠(yuǎn)程發(fā)送控制命令到服務(wù)器,服務(wù)器再通過無線模塊回傳控制信息至微控制器,實(shí)現(xiàn)為魚缸換水和喂食的功能。
圖1 智能魚缸監(jiān)控系統(tǒng)設(shè)計(jì)框圖
系統(tǒng)硬件包括主控制器模塊、無線通訊模塊、傳感器采集模塊、顯示模塊、換水模塊、投喂模塊幾部分,通過對以上各模塊進(jìn)行設(shè)計(jì)完成魚缸內(nèi)環(huán)境數(shù)據(jù)檢測、數(shù)據(jù)顯示、數(shù)據(jù)傳輸、遠(yuǎn)程移動端訪問、遠(yuǎn)程控制換水與投喂,實(shí)現(xiàn)智能魚缸的自動監(jiān)控功能的目的。
系統(tǒng)選用以ARM為內(nèi)核的STM32F103C8T6芯片的最小系統(tǒng)模塊作為硬件設(shè)計(jì)的核心,其具有高性能、低時延、低功耗、低電壓、穩(wěn)定性高、集成度高等特點(diǎn)[4],能為本系統(tǒng)提供及時、高效的處理。
Wi-Fi模塊是用戶與單片機(jī)通訊的核心組件,本項(xiàng)目選擇ESP8266 Wi-Fi模塊,通過發(fā)送AT指令的方式可對ESP8266 Wi-Fi模塊進(jìn)行配置,方便快捷。該模塊共有六個引腳,除電源和接地引腳外,只需要將 其RXD和TXD引腳,與單片機(jī)的TXD、RXD連接,使用AT指令即可進(jìn)行數(shù)據(jù)傳輸[5]。設(shè)置模塊進(jìn)入透傳模式后,使用TCP/IP協(xié)議,可實(shí)現(xiàn)與服務(wù)器的網(wǎng)絡(luò)通信。
溫度傳感器需要深入水中對魚的生活環(huán)境溫度進(jìn)行監(jiān)測,因此本設(shè)計(jì)選用專用液體溫度傳感器DS18B20數(shù)字溫度傳感器探頭,其測量溫度為-55℃~+125℃,工作電壓為3 V~5 V。魚的普遍適宜養(yǎng)殖溫度為+20℃~+32℃,因此該溫度傳感器探頭完全滿足溫度測量范圍,且測量結(jié)果以9~12位數(shù)據(jù)量的方式串行傳送[6],單片機(jī)可直接將信息傳輸?shù)接脩舨榭础?/p>
水位傳感器的主要作用是實(shí)時傳送水位信息到單片機(jī),到達(dá)系統(tǒng)預(yù)定時間或移動端發(fā)送換水操作時,進(jìn)行換水操作,所以本設(shè)計(jì)選擇成本低,靈敏度高的水位傳感器,該水位傳感器的工作電壓為3~5 V,工作電流小于20 mA,不會對魚兒產(chǎn)生影響,安全可靠。
系統(tǒng)換水與喂食模塊以舵機(jī)為基礎(chǔ),通過執(zhí)行單片機(jī)的控制命令達(dá)到換水與喂食的目的。換水模塊通過接收單片機(jī)的控制命令,轉(zhuǎn)動舵機(jī)至對應(yīng)角度,使魚缸放出對應(yīng)缺口,提供放水功能,同時在進(jìn)水口設(shè)置一根連動桿,連接水源,進(jìn)行加水操作,當(dāng)換水時長達(dá)到要求后,換水模塊自動復(fù)原。喂食模塊與換水模塊原理類似。用戶可在移動端設(shè)置喂食間隔時間,也可立即進(jìn)行喂食操作。服務(wù)器收到移動端控制信息后判斷喂食時刻,若滿足條件則向單片機(jī)發(fā)送控制指令,旋轉(zhuǎn)舵機(jī),飼料落下進(jìn)行喂食,喂食完畢后恢復(fù)初始狀態(tài)。
系統(tǒng)軟件設(shè)計(jì)包括服務(wù)器的開發(fā)、系統(tǒng)硬件編程和移動端App的設(shè)計(jì)。服務(wù)器端的開發(fā),主要實(shí)現(xiàn)信息的存儲、數(shù)據(jù)庫的調(diào)用、命令的轉(zhuǎn)發(fā);系統(tǒng)硬件程序主要實(shí)現(xiàn)水溫的檢測、水位的檢測、Wi-Fi模塊的啟動、OLED模塊的顯示、舵機(jī)的運(yùn)轉(zhuǎn);移動端App的設(shè)計(jì),主要實(shí)現(xiàn)登陸、注冊、水溫水位信息的顯示、控制指令的發(fā)送。
系統(tǒng)硬件程序設(shè)計(jì)流程如圖2所示。上電后,單片機(jī)系統(tǒng)、Wi-Fi模塊、傳感器模塊、顯示模塊首先進(jìn)行初始化,并進(jìn)入工作狀態(tài)。傳感器采集到數(shù)據(jù)信息后,將信息發(fā)送到單片機(jī)后通過顯示屏顯示,Wi-Fi模塊將信息發(fā)送至服務(wù)器,當(dāng)服務(wù)器接收到控制指令后判斷是喂食還是換水操作,并控制單片機(jī)驅(qū)動舵機(jī)進(jìn)行相應(yīng)操作。
移動端app開發(fā)采用C++語言進(jìn)行設(shè)計(jì),利用QT軟件作為開發(fā)環(huán)境[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++進(jìn)行開發(fā),其設(shè)計(jì)框圖如圖3所示。
進(jìn)入App后,用戶可進(jìn)行注冊與登錄,若為正確的賬號密碼則跳轉(zhuǎn)至控制界面。控制界面上實(shí)時顯示當(dāng)前魚缸溫度與水位信息,并可通過界面中換水與投食圖標(biāo)發(fā)送控制信息至服務(wù)器,從而控制單片機(jī)進(jìn)行相應(yīng)操作,設(shè)計(jì)完成的界面如圖4所示。
圖2 系統(tǒng)硬件程序流程圖
本系統(tǒng)基于STM32單片機(jī)對家用魚缸進(jìn)行智能化設(shè)計(jì),完成對魚缸中的水溫、水位實(shí)時檢測,實(shí)現(xiàn)了對魚缸的遠(yuǎn)程監(jiān)控,降低了觀賞魚的喂養(yǎng)風(fēng)險(xiǎn)。系統(tǒng)在功耗、體積上都較小,且設(shè)計(jì)成本低,滿足實(shí)際應(yīng)用需求,具有良好的市場前景。
圖4 移動端App界面
圖3 移動端設(shè)計(jì)框圖