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