胡智豪,宋志強(qiáng)
(無錫學(xué)院自動(dòng)化學(xué)院,無錫 214105)
隨著生活水平日益提高,人們把更多的時(shí)間、金錢、精力投入到自己的興趣愛好之上,例如飼養(yǎng)觀賞性魚類。國(guó)內(nèi)外觀賞魚市場(chǎng)正在快速發(fā)展[1-2]。然而養(yǎng)好觀賞魚并非易事,飼養(yǎng)人需要為魚提供適合的水溫、水質(zhì)和食物等,這就加大了人們時(shí)間和精力的投入,同時(shí),也提高了大眾進(jìn)入觀賞魚飼養(yǎng)領(lǐng)域的門檻[3]。市面上主流的智能魚缸系統(tǒng)的設(shè)計(jì)思路是先要滿足魚缸基本的觀賞功能,再利用一些傳感器可以讓人們更加方便地得到魚缸內(nèi)的一些主要信息,最后利用一些無線控制功能讓人們可以通過便攜式設(shè)備管理魚缸[4-6]。本設(shè)計(jì)是一款基于STM32 的智能魚缸系統(tǒng),使用傳感器獲取魚缸的關(guān)鍵信息,對(duì)信息進(jìn)行處理和上傳手機(jī)端,借助于智能化產(chǎn)品的強(qiáng)大功能將觀賞魚飼養(yǎng)的門檻降低,能夠讓系統(tǒng)用戶在飼養(yǎng)觀賞魚的同時(shí)體會(huì)到從傳統(tǒng)魚缸飼養(yǎng)中得不到的樂趣。
此款智能魚缸設(shè)計(jì)有如下功能:按鍵控制、溫度測(cè)量、Wi-Fi 控制、模擬喂食、濁度檢測(cè)、光強(qiáng)檢測(cè)、屏幕顯示[7-9]。
系統(tǒng)的整體連接圖如圖1 所示。按鍵控制是通過按鍵操作實(shí)現(xiàn)魚缸進(jìn)行喂食、開關(guān)燈、換水、增氧。Wi-Fi 控制是通過ESP8266-01S 模塊和機(jī)智云平臺(tái)搭配使用,在手機(jī)端控制魚缸和進(jìn)行信息查詢。光強(qiáng)檢測(cè)是通過光敏傳感器模塊來實(shí)現(xiàn)光強(qiáng)數(shù)據(jù)的采集。濁度檢測(cè)則是通過濁度傳感器模塊來實(shí)現(xiàn)濁度數(shù)據(jù)的采集。
圖1 系統(tǒng)整體連接圖
系統(tǒng)的硬件設(shè)計(jì)原理圖如圖2 所示。采用的主控芯片型號(hào)為STM32F103C8T6,該芯片是意法半導(dǎo)體公司(ST)推出的基于Cortex-M3 內(nèi)核的32 位微控制器,其封裝型號(hào)采用LQFP48。該芯片RAM 容量為20kB,ROM 其容量為64kB,擁有的主要硬件資源為37 個(gè)GPIO、2 個(gè)ADC、4 個(gè)定時(shí)器/計(jì)數(shù)器、2個(gè)I2C 和3 個(gè)USART。
圖2 系統(tǒng)原理圖
系統(tǒng)的主要硬件模塊及具體描述如下:
Wi-Fi 模塊:選用樂鑫ESP8266-01S。該模塊不僅價(jià)格便宜,且與機(jī)智云平臺(tái)配合使用進(jìn)行物聯(lián)網(wǎng)開發(fā)的相關(guān)資料也較齊全。
舵機(jī)模塊:用于現(xiàn)實(shí)喂食部分對(duì)電機(jī)的控制。設(shè)計(jì)選用SG90 舵機(jī),其可以通過改變PWM 的相關(guān)參數(shù)從而改變電機(jī)轉(zhuǎn)動(dòng)的角度。
OLED 屏幕模塊:其滿足的是人們最直觀的視覺需求,因此是系統(tǒng)極重要的部分。對(duì)于屏幕有較多選擇,例如LCD1602、IIC 屏幕、SPI 屏幕等。綜合考慮后選用支持IIC 協(xié)議的0.96 英寸OLED 屏幕。
電機(jī)驅(qū)動(dòng)模塊用來驅(qū)動(dòng)增氧和換水這兩個(gè)功能所依賴的電機(jī)。選用L9110 這款電機(jī)驅(qū)動(dòng)模塊,因其價(jià)格便宜,且有兩路輸出,可以同時(shí)控制兩個(gè)電機(jī),符合設(shè)計(jì)要求。
濁度傳感器模塊選用TS-300B,該模塊配合轉(zhuǎn)接板可以輸出數(shù)字量和模擬量,價(jià)格也較適宜。
溫度傳感器模塊選用DS18B20,它具有微型化、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn),易于搭配微處理器產(chǎn)品使用。
系統(tǒng)上電后,程序從主函數(shù)運(yùn)行,對(duì)所需模塊進(jìn)行功能封裝。在主函數(shù)調(diào)用各個(gè)模塊運(yùn)行時(shí)需要相關(guān)函數(shù)實(shí)現(xiàn)對(duì)模塊的調(diào)用和相關(guān)數(shù)據(jù)的獲取。主函數(shù)流程圖如圖3 所示。
圖3 主函數(shù)流程圖
主函數(shù)之外的其他軟件模塊包括:按鍵控制、光強(qiáng)獲取、OLED 屏幕顯示和電機(jī)控制,具體如下:
1)按鍵控制
按鍵控制功能主要分兩部分,一是通過按鍵實(shí)現(xiàn)魚缸的控制,二是通過按鍵進(jìn)行魚缸的配網(wǎng)。由于STM32 具有大量的中斷資源,故采用中斷法實(shí)現(xiàn)按鍵的控制,以獲得更高的程序執(zhí)行效率。
2)光強(qiáng)獲取
光強(qiáng)獲取模塊功能主要是獲取光強(qiáng)數(shù)據(jù)。它將光敏傳感器模塊輸出的數(shù)據(jù)傳到STM32,經(jīng)STM32內(nèi)部ADC 對(duì)數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)在屏幕顯示并上傳至手機(jī)端,最后根據(jù)光強(qiáng)控制LED 的亮滅。
3)OLED 屏幕顯示
OLED 屏幕通過IIC 協(xié)議與STM32 通信。首選初始化IIC 總線,之后初始化OLED,通過IIC 總線向OLED 發(fā)送指令和數(shù)據(jù)以初始化OLED 顯示屏。初始化包括設(shè)置OLED 顯示模式、對(duì)比度、亮度等參數(shù)。STM32 獲取相應(yīng)數(shù)據(jù)并完成處理后,向OLED發(fā)送顯示數(shù)據(jù),驅(qū)動(dòng)OLED 液晶顯示屏在對(duì)應(yīng)位置顯示相關(guān)信息。
4)電機(jī)控制
用戶可通過按鍵手動(dòng)控制電機(jī)的打開或關(guān)閉,也可通過手機(jī)端下方命令控制電機(jī)。當(dāng)濁度傳感器檢測(cè)到水體渾濁時(shí)便可自動(dòng)控制電機(jī)進(jìn)行換水。
機(jī)智云平臺(tái)設(shè)計(jì)實(shí)現(xiàn)的功能是將各傳感器數(shù)據(jù)上傳到手機(jī)端顯示,便可在手機(jī)上通過Wi-Fi 下發(fā)指令控制智能魚缸。機(jī)智云平臺(tái)為開發(fā)者提供了自助式智能硬件開發(fā)工具與開放的云端服務(wù),將智能硬件產(chǎn)品開發(fā)周期縮短,快速實(shí)現(xiàn)智能化[10]。
使用機(jī)智云平臺(tái)進(jìn)行開發(fā)時(shí),首先要?jiǎng)?chuàng)建數(shù)據(jù)點(diǎn),并需要定義數(shù)據(jù)點(diǎn)的類型。設(shè)計(jì)通過機(jī)智云創(chuàng)建的數(shù)據(jù)點(diǎn)如表1 所示。
表1 機(jī)智云平臺(tái)創(chuàng)建的數(shù)據(jù)點(diǎn) 單位:%
用機(jī)智云平臺(tái)創(chuàng)建好項(xiàng)目后,進(jìn)入到相關(guān)的界面,按照界面的提示進(jìn)行操作,它即可自動(dòng)幫助用戶生成Wi-Fi 控制的相關(guān)代碼。在代碼包生成以后,需要對(duì)其中代碼進(jìn)行移植。只有將代碼移植到工程文件里面后,才能實(shí)現(xiàn)預(yù)期的功能。機(jī)智云代碼的移植流程如圖4 所示。
圖4 機(jī)智云代碼移植流程圖
手機(jī)APP 是通過機(jī)智云平臺(tái)生成的。使用機(jī)智云平臺(tái)進(jìn)行APP 生成的方法非常簡(jiǎn)單,不需要按照安卓APP 開發(fā)那樣操作,對(duì)于不懂安卓應(yīng)用的開發(fā)者來說是非常友好的。其配置流程如下:
點(diǎn)擊創(chuàng)建移動(dòng)應(yīng)用;點(diǎn)擊右上方進(jìn)行APP 界面設(shè)置,將創(chuàng)建的項(xiàng)目進(jìn)行關(guān)聯(lián),最后保存退出;進(jìn)入控制頁面選擇配網(wǎng)方式等,保存退出;點(diǎn)擊構(gòu)建應(yīng)用,等待應(yīng)用構(gòu)建完成,最終在手機(jī)端掃碼下載APP。各步驟操作及界面如圖5 所示。
圖5 機(jī)智云平臺(tái)生成APP 各步驟界面
最終由機(jī)智云生成的APP 的界面如圖6 所示。
圖6 機(jī)智云生成APP 界面
系統(tǒng)基于STM32F103C8T6,實(shí)現(xiàn)了智能魚缸所需的溫度測(cè)量、Wi-Fi 控制、喂食等功能。通過使用性價(jià)比較高的Wi-Fi 模塊配合機(jī)智云平臺(tái)實(shí)現(xiàn)了手機(jī)端控制。對(duì)比其他的智能魚缸設(shè)計(jì),遠(yuǎn)程控制實(shí)現(xiàn)方式更加簡(jiǎn)單,成本也較低。系統(tǒng)在加熱器設(shè)計(jì)部分還存在不足,將在后續(xù)研究中加以完善。