呂杰 梁鑒明
摘? 要:文章對魚缸控制系統(tǒng)進行了研究,設計了一套智能魚缸控制系統(tǒng),系統(tǒng)將分散的獨立模塊整合,以STM32單片機作為主控芯片,采用溫度傳感器DS18B20測量水溫,通過觸摸屏的圖形用戶界面(GUI)與魚缸進行人機交互,實現(xiàn)魚缸水溫檢測、加熱、換水、供氧、定時喂食等自動控制功能。同時還在手機開發(fā)了微信控制小程序,實現(xiàn)對魚缸的無線遠程控制。
關鍵詞:智能魚缸;STM32單片機;圖形交互界面;無線遠程控制
中圖分類號:TP273? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)20-0013-05
Design of an Intelligent Fish Tank Control System Based on STM32 MCU
LYU Jie,LIANG Jianming
(Ningxia Institute of Science and Technology,Shizuishan? 753000,China)
Abstract:The fish tank control system is studied and an intelligent fish tank control system is designed in this paper. The system integrates separate independent modules,uses STM32 MCU as the main control chip,and temperature sensor DS18B20 is used to measure water temperature,and carries out human-computer interaction with fish tank through the graphical user interface(GUI)of touch screen,so as to realize fish tank water temperature detection,heating,water change,oxygen supply and timing feeding food and other automatic control functions. At the same time,a WeChat control applet was developed on the mobile phone to realize wireless remote control of the fish tank.
Keywords:intelligent fish tank;STM32 MCU;GUI;wireless remote control
0? 引? 言
目前觀賞魚養(yǎng)殖業(yè)市場巨大,為保證魚缸中的觀賞魚和水草植物的生活環(huán)境能盡可能地模仿自然生活的方式,需對魚缸定期換水、補氧、保持魚缸水溫的恒定和定期喂食。本文在對國內市場上常見的魚缸控制系統(tǒng)調研后發(fā)現(xiàn),目前市場上的傳統(tǒng)觀賞魚缸的水溫檢測、水溫控制、水循環(huán)、加氧、喂食大都需要人手工單獨控制操作,自動化程度不高,給觀賞魚的養(yǎng)殖帶來了諸多不便[1,2]。已有的魚缸控制系統(tǒng)大多采用8位單片機作為主控芯片,對水溫、換水、加氧、喂食的控制模塊通常分別是相互獨立的器件,成本較高,且不便于集中統(tǒng)一進行管理控制,缺乏良好的人機交互。
為了能給因工作繁忙無暇照料觀賞魚或者經(jīng)驗不足的觀賞魚養(yǎng)殖者提供一種成本低、操作簡單、節(jié)能高效的魚缸控制系統(tǒng),并且在為觀賞魚提供良好生存環(huán)境的同時,也為觀賞魚養(yǎng)殖者提供更加舒適便利的人機交互體驗,本文基于嵌入式控制技術與無線通信技術,設計了一套智能魚缸控制系統(tǒng)。系統(tǒng)以高性能的STM32單片機作為主控芯片,將對魚缸的水溫控制、水循環(huán)、供氧、喂食等分散獨立功能控制模塊整合在一起,通過在觸摸屏上開發(fā)的圖形用戶界面(GUI)實現(xiàn)對魚缸的自動控制。此外,在手機端還可以利用手機微信小程序對魚缸進行無線遠程控制,使魚缸的控制能夠打破時間、地域上的限制。
1? 總體設計
智能魚缸控制系統(tǒng)由上位機和下位機兩部分組成。下位機系統(tǒng)結構框圖如圖1所示。
下位機由STM32單片機、溫度傳感器、觸摸屏、四路繼電器模塊及四路繼電器模塊分別連接的投食器、加熱器、氧氣泵和水泵組成,四路繼電器的開關動作分別控制投食器、加熱器、氧氣泵和水泵的啟停。通過溫度傳感器實時檢測魚缸水溫并發(fā)送水溫數(shù)據(jù)至STM32單片機,STM32單片機接收并處理溫度傳感器發(fā)送的數(shù)據(jù),與設定值對比分析,當水溫低于預設值時自動開啟加熱器。加熱器、氧氣泵和水泵組成熱水流循環(huán)系統(tǒng),當加熱器開始工作的時候,氧氣泵和水泵也同時工作,實現(xiàn)對魚缸的溫度、氧氣、水體循環(huán)的自動控制。通過觸摸屏可設置更改自動投食時間,實現(xiàn)定時自動投食功能。
上位機系統(tǒng)結構框圖如圖2所示。上位機由Wi-Fi四路繼電器模塊和用戶手機相連接,用戶通過手機微信小程序控制Wi-Fi四路繼電器模塊實現(xiàn)對魚缸的投食器、加熱器、氧氣泵和水泵的遠程控制,Wi-Fi四路繼電器模塊與下位機的四路繼電器模塊形成互鎖。
2? 系統(tǒng)硬件設計
下位機主控芯片采用具有1 MB Flash程序存儲器和256 kB靜態(tài)隨機存取存儲器的SRAM的STM32F429IGT6單片機,下位機STM32單片機最小系統(tǒng)由STM32單片機、時鐘電路、BOOT設置電路和復位電路組成。其中,時鐘電路用于產生單片機工作時所必需的控制信號,單片機內部的電路在時鐘信號的驅動下,嚴格地按時序執(zhí)行指令進行工作,單片機的各外圍部件的運行都以時鐘控制信號為基準,有條不紊、一拍一拍地工作[3]。STM32F429IGT6單片機將時鐘電路提供的脈沖信號倍頻,最高可倍頻至180 MHz[4]STM32F429IGT6單片機的BOOT引腳在單片機復位時的電平狀態(tài)決定了單片機復位后從哪個區(qū)域開始執(zhí)行程序,通過設置BOOT0引腳的狀態(tài),來選擇在復位后的啟動模式。STM32F429IGT6單片機時鐘電路與BOOT設置電路如圖3所示,復位電路如圖4所示。
復位操作是對單片機片內的各寄存器的初始化操作,STM32單片機為低電平復位,復位電路如圖4所示,其中R2作為上拉電阻,SW1為復位按鍵,需要復位時按下SW1,RESET引腳輸出低電平,此時系統(tǒng)復位。當復位按鍵沒有動作時由于RESET引腳接在上拉電阻上,默認狀態(tài)為高電平,單片機系統(tǒng)進入正常工作狀態(tài)。
水溫檢測采用防水型溫度傳感器DS18B20。DS18B20是一款數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻不同,它不需要模數(shù)轉換就能讀取溫度,可直接將被測溫度轉換為串行數(shù)字信號。其電壓范圍為3.O V到5.5 V,測溫范圍為-55 ℃~125 ℃,最高分辨可達0.062 5 ℃。DS18B20采用三線制與單片機相連,減少了外部的硬件電路,具有低成本、易使用和精度高等特點,而且可以采用編程的方式實現(xiàn)9位到12位的轉換,具有線路簡單、體積小等優(yōu)點[5]。魚缸水溫檢測接口電路圖如圖5所示,DS18B20的數(shù)據(jù)口通信總線接一個10 kΩ上拉電阻用來保持數(shù)據(jù)通信的穩(wěn)定。
顯示器采用5寸電容式觸摸屏,觸摸屏顯示器的接口電路如圖6所示。
四路繼電器模塊驅動電路如圖7所示。
四路繼電器模塊作用說明:INPUT1連接投食器,INPUT2連接加熱器,INPUT3連接氧氣泵,INPUT4連接水泵。其中加熱器、氧氣泵和水泵構成熱水流循環(huán)系統(tǒng)。采用底濾、背濾、側濾等方式的魚缸,將加熱器和水泵放在一個盒子里面,能夠在持續(xù)供給熱水的同時,不會出現(xiàn)魚種被加熱器燙傷的情況。和傳統(tǒng)的將器件直接放在魚缸里面的方法相比,可以為養(yǎng)殖的觀賞魚提供更加安全舒適的環(huán)境,提高魚缸的觀賞性,減小觸電事故的發(fā)生率,合并后的模塊也可有效地減少空間的占用。單片機與四路繼電器模塊實物連接如圖8所示。
系統(tǒng)電源采用12 V直流電源,通過電壓調整芯片將12 V直流電源調整到5 V,最后經(jīng)過1086電壓調節(jié)芯片調整后變?yōu)?.3 V,提供單片機正常的工作電壓。由MT9700功率開關芯片組成3.3 V電路的過電流保護電路,可以有效防止電流過流造成單片機燒壞的情況發(fā)生。
上位機中的Wi-Fi四路繼電器模塊采用獨立的電源直接供電,由用戶的手機直接控制,與STM32單片機控制的四路繼電器模塊采用雙模塊互鎖的方式,能夠預防當其中一個模塊故障的時候,魚缸不能夠正常工作的困境。
3? 系統(tǒng)軟件設計
下位機主程序流程圖如圖9所示。
下位機軟件開發(fā)采用μC/OS-Ⅲ操作系統(tǒng),μC/OS-Ⅲ是一種可以基于ROM運行的、可裁剪的、搶占式、實時多任務操作系統(tǒng),與其他類型的實時操作系統(tǒng)相比,μC/OS-Ⅲ實時性更高,程序的主體可以分為一個個獨立的、無限循環(huán)且不能返回的系統(tǒng)的任務線程,每個任務線程具有相互獨立、互不干擾的特性,且具備自身的優(yōu)先級,提高了系統(tǒng)的任務調度,特別適合于微處理器和控制器,是目前應用最廣泛的實時操作系統(tǒng)(RTOS)[6]。
系統(tǒng)上電后啟動執(zhí)行板層驅動初始化程序,初始LTDC串口驅動以及溫度傳感器,然后等待數(shù)據(jù)到來,當接收到采集的溫度數(shù)值后,將溫度發(fā)送到數(shù)據(jù)層進行數(shù)據(jù)存值,再將數(shù)據(jù)發(fā)送到邏輯處理層進行數(shù)據(jù)的中轉和更新,最后將板級數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)發(fā)送到顯示層顯示數(shù)據(jù)并實現(xiàn)用戶交互。在顯示層處理比對用戶設定的參數(shù),判別觸發(fā)事件,并發(fā)送觸發(fā)指令給邏輯處理層。邏輯處理層處理事件轉換為二進制值發(fā)送給數(shù)據(jù)層,數(shù)據(jù)層接收二進制數(shù)值判別觸發(fā)通用型輸入引腳的控制,數(shù)據(jù)偵聽函數(shù)文件發(fā)送引腳控制命令給板級數(shù)據(jù)處理系統(tǒng)控制通用型輸入引腳通斷。
溫度采集程序流程如圖10所示。
由于本設計中溫度傳感器DS18B20的DQ總線上只有一個DS18B20傳感器,故直接DS18B20復位并跳過ROM匹配,接著只需要給DS18B20發(fā)送溫度檢測指令,待測量完成后即可讀出DS18B20采集的溫度信息值,再根據(jù)系數(shù)即可轉換為實際溫度值。
觸摸屏圖形用戶界面設計采用TouchGFX Designer軟件,TouchGFX Designer是ST系列芯片的專屬GUI設計平臺,通過MVP架構連接液晶顯示屏和BSP,實現(xiàn)本地數(shù)據(jù)可視化。TouchGFX Designer軟件開發(fā)界面如圖11所示。
手機端微信小程序開發(fā)采用騰訊提供的微信開發(fā)者工具,微信小程序控制流程如圖12所示。
當用戶進入程序后會進行Wi-Fi密碼配對,配對成功后會進入添加設備的流程。用戶成功添加設備后可以進行設備的重命名操作、配置對應繼電器的延時開啟時間、設定繼電器點動模式和解綁設備操作。程序會判定是否按下開關,當確認按下開關后手機會發(fā)送數(shù)據(jù)到設備上,使對應的繼電器的引腳輸出高電平。用戶進行解綁操作后程序會判別是否已經(jīng)退出程序,如果沒有退出程序,則返回到用戶添加設備的流程,重新添加設備,退出程序則程序結束。手機微信小程序控制界面如圖13所示。
4? 結? 論
本文所設計的智能魚缸控制系統(tǒng),由上位機和下位機兩部分組成,下位機采用STM32單片機作為主控芯片實現(xiàn)對魚缸的自動控制,上位機通過手機端微信小程序實現(xiàn)對魚缸的無線遠程控制。系統(tǒng)操作簡單、性能穩(wěn)定,觸摸屏的圖形交互界面(GUI)設計使得人機交互更加直觀,切合嵌入式智能家居系統(tǒng)的需求,可降低用戶的養(yǎng)殖觀賞魚門檻,為觀賞魚的養(yǎng)殖帶來便利。
參考文獻:
[1] 葛華.多功能觀賞魚缸智能控制系統(tǒng)的設計 [D].江蘇:東南大學,2007.
[2] 楊冬英.基于單片機的智能魚缸設計 [J].山西電子技術,2017(6):34-37.
[3] 張毅剛,趙光權,劉旺.單片機原理及應用:第3版 [M].北京:高等教育出版社,2016.
[4] ITeye.STM32F4xx HAL驅動說明書 [EB/OL].(2016-03-04).https://www.iteye.com/resource/charmingsun-94526 59.
[5] 周克輝.基于單片機控制的DS18B20數(shù)字溫度計設計 [J].湖南農機,2010,37(11):61-62.
[6] 劉火良,楊森.μC/OS-Ⅲ內核實現(xiàn)與應用開發(fā)實戰(zhàn)指南:基于STM32 [M].北京:機械工業(yè)出版社,2019.
作者簡介:呂杰(1974—),男,漢族,寧夏平羅人,助教,工學碩士,研究方向:嵌入式系統(tǒng)、計算機控制技術。