?

基于嵌入式單片機的物聯網智能魚缸設計

2024-04-16 03:25姚光業黃永華廖志賢黃國現冼世豪
電子制作 2024年6期
關鍵詞:下位斷電魚缸

姚光業,黃永華,廖志賢,黃國現,冼世豪

(廣西師范大學,廣西桂林,541004)

0 引言

本著科技為人服務的理念,本系統設計了一套基于物聯網的生態魚缸系統,用戶可以通過微信小程序實現對魚缸內水溫、水質、光照等的監測,同時可以通過微信小程序完成喂食、開關補光燈、加熱、制冷、補充氧氣、過濾水體等操作[2]。這套系統可以使人們外出的同時又能完成魚缸生態的養護,極大的便利了人們的生活,在智能家居領域具有重大研究意義。

1 系統的方案設計

本系統設計一套基于STM32 的物聯網智能魚缸系統,系統由下位機STM32、上位機微信小程序以及通信中介 OneNet云平臺三部分構成,作為一套智能家居設備,在擁有普通魚缸自動控制的基本功能之外,本系統設計著重還開發了遠程控制以及備用電源等功能。本設計由多個模塊組成一套完整的物聯網魚缸系統,結構圖如圖1 所示。

圖1 系統框圖

圖2 電源電路

圖3 主控IO 口分配

圖4 VBAT 供電電路

圖5 按鍵與LED 電路

圖6 繼電器端口及OLED 顯示

2 硬件設計

物聯網智能魚缸系統的硬件要求不同于其他產品,其部分傳感器要放置水中,比如 TDS 傳感器的探頭、DS18B20探頭,而光敏傳感器需要置于合適的采光位置,并且魚缸附近水汽潮濕,為保證電路板的安全,魚缸系統采用分布式傳感器布局。主要采樣模塊采用可插拔式連接,在單個模塊故障時,可直接替換,降低成本,使整套電路系統擁有更長的使用壽命。

■2.1 電源電路

物聯網智能魚缸系統所需的電壓為5V。本系統供電可通過兩路Type-C 供電,一路為家庭正常用電,通過大功率手機充電器供電,保證系統正常運行。另一路為備用電源供電,備用電源通過繼電器接入系統。在未斷電時,通過編程使繼電器吸合在常開端,在斷電時,繼電器自動吸合到常閉端,而常閉端接入備用電源,此時系統由備用電源供電,通過這種設計使系統在斷電時能自動切換至備用電源供電。

■2.2 主控電路

■2.3 RTC 時鐘供電電路

當系統意外斷電時,為保證時鐘的運行時間準確,在系統底板中配置了RTC 時鐘供電電路,其主要圍繞紐扣電池設計外圍電路。兩個二極管1N4148 保證電路的安全,104電容對紐扣電池進行濾波,保證供電平穩[8]。

■2.4 控制與指示電路

物聯網智能魚缸的控制與提示功能電路由7 路LED 和4 路按鍵構成,7 路LED 分別代表系統運行狀態、運行模式,以及喂食、恒溫、充氧、補光的狀態。4 路按鍵可以完成菜單的切換、加減、確認,可以保證在微信小程序無法(停電)連接下位機時也可以完成手動控制喂食、充氧等操作,以便于維持魚缸生態系統的運行。

■2.5 各子模塊及輔助電路

本系統的子模塊控制開關主要通過6 個光耦隔離的繼電器來控制。單片機輸出高電平時即打開子模塊,反之關閉子模塊。本系統還采用1.3 寸的OLED 屏幕來進行人機交流。還設置有串口打印端口,以便于程序運行中的數據傳至上位機,方便調試和分析。

3 軟件設計

■3.1 下位機程序結構

物聯網智能魚缸的下位機以 STM32 為核心進行開發,本作品的下位機開發為固件庫開發,在程序設計中采用的是模塊化編程的思維,主要分為循環和中斷兩大部分,其余外部設備的編程均以模塊的形式進行調用,圖7 為下位機程序的總體結構。在單片機啟動復位后,先對系統及其外部設備進行初始化,隨后進入循環部分,遇到中斷信號則優先處理中斷事件。之所以分為中斷和循環,是因為中斷具有優先級,作品的部分功能需要優先處理,并且中斷不占用CPU資源,可以極大提高程序的運行速度[6~9]。

圖7 下位機程序結構

■3.2 模塊執行流程

(1)按鍵控制流程

本作品采用 4 路按鍵對下位機進行控制,4 路按鍵對應的職能分別為:KEY0 菜單鍵、KEY1 加鍵、KEY2 確認鍵、KEY3 減鍵。菜單鍵功能為切換菜單值;加減鍵功能為在對應的頁面加減閾值和模式標志位;確認鍵為手動開啟對應外部設備以及切換手動自動等操作模式。4 路按鍵為外部中斷觸發,各按鍵的控制流程如圖8 所示。

圖8 按鍵控制流程

(2)光照檢測模塊

立項與可行性研究報告的申報及批復是項目實施的前提,如果沒有上級主管的批復,意味著項目沒有“正名”,接下來的資金、政策、人力等支持都是不可能的,也是“不合規不合法的”。因此,在農業基建項目管理中,甲方單位必須特別重視前期立項及可行性研究報告編制,確保報告文本的科學性、項目實施的可行性、立項的成功率。一旦立項及可行性研究報告得到上級部門批復,項目就可以依此獲得相應的資金支持。同時,甲方還可以此批復去與地方行業管理部門溝通,取得項目實施所必須的合法證件,而這在農業基礎項目建設中是必不可少的環節。

本系統采用靈敏性光敏電阻傳感器,使用的是AO 模擬量輸出模式,通過單片機采集模擬量ADC,通過AD 轉換即可得到準確的光照強度數值。ADC 轉換公式如下所示:

(3)水質檢測模塊

本系統采用TDS 水質檢測模塊,將采集到的數值作為參考可以直接判斷水質情況。水質檢測時易受到溫度等其他因素的影響,因此在算法中應做溫度補償[1~3],如式(2),Ta為校正系數,T為溶液溫度,除此之外,TDS 探頭的個體差異也會對數值造成影響,因此在算法中必須做校正,校正公式如式(3)和式(4),其中Va是測試時ADC 口經過均值濾波后的輸出電壓,Vb時校正后的電壓。再通過ADC 轉換,即可得出水質系數。

(4)水溫檢測模塊

本系統采用的是DSB18B20 模塊,通過1-wire 通信,讀取兩個字節就可以得到準確的溫度值[1~4]。

(5)WiFi 模塊并網流程

本系統采用的是ESP8266 的STA 模式并網[2],已家庭路由器為中介,實現上位機與下位機的通信。數據的收發則使用透傳模式,即上下位機通過串口完成通信。ESP8266的并網流程如圖9 所示。在下位機系統上電時,ESP8266進行初始化時會按照圖9 的順序進行一次AT 指令連接。在家庭用電斷電后,利用單片機的定時器進行定時,每10s進行一次AT 指令連接和OneNet 云平臺連接,在家庭電力和WiFi 恢復,ESP8266 重新連接成功后,標志位置 0,則定時器停止計時,完成重新聯網的功能。

圖9 WiFi 模塊并網流程

4 云平臺設計

OneNet 云平臺作為上下位機的中介平臺[5]。本系統采用EDP 通信協議,在EDP 協議下創建產品,獲取產品ID與接口API 后,在上下位機操作ID 與API 即可與云平臺實現通信。云平臺的數據接收是被動的,在上下位機配置好數據流,云平臺接收到后會顯示對應的數據流,傳輸的數據分別為光照強度、水體溫度、水質系數、今日喂食次數、水溫閾值以及過濾閾值。

5 微信小程序設計

微信小程序的結構設計由HTML 編程完成,在微信開發者工具中該編程語言為WXML,通過WXML 編程可以完成小程序的模塊布局以及部分事件的綁定,構成小程序的函數均可以在微信開發者社區平臺獲取。本作品采用是flex 布局,flex 布局是flexibleBox的縮寫,意思是彈性布局[4~7]。該布局的模塊分布為等距離順序往下,本作品在設計優先展示用戶狀態和魚缸環境信息,最后才是命令下發模塊。小程序的結構布局和樣式如圖10 所示。

圖10 微信小程序界面

6 備用電源切換與網絡重連

本系統的初衷便是保證魚缸生態的平衡,因此必須考慮到在家庭斷電的情況下如何保持生態魚缸正常工作的問題。本系統給出了合理的解決方案。通過一個繼電器便可解決這一問題,在前面供電系統中,已經談到繼電器的常閉斷連接系統,在系統斷電后,繼電器會自然吸合至常閉端,此時備用電源接入下位機系統,系統重新運作,并在下位機程序中因停電判定為停電狀態,通過程序使繼電器不吸合至常開端,完成了備用電源的切換。備用電源切換過程中并不會導致用戶設置的閾值丟失,系統會自動讀取FLASH 里存儲的閾值設置。

由備用電源供電后,系統仍然會在初始化時運行聯網程序。若聯網失敗,則系統的聯網和斷電標志位分別為1,保證備用電源的供電。在斷網后,通過程序的定時器計時,每10s 進行一次AT 指令和云平臺連接操作,直至家庭供電恢復和聯網成功。這時聯網和斷電的標志位為0,繼電器將會吸合置常開端,斷開備用電源,系統由市電供電。斷電斷網處理流程如下圖11 所示。

圖11 斷電斷網處理流程

7 系統主要功能測試

本系統主要測試三端平臺的通信速度。通過不斷提高外部光照強度,對比同一時間內三端平臺接受的光照數值來測試通信速度的快慢[2]。數據如表1 所示,測試發現三端平臺的數據通信會存在500ms 左右的延時,此延時符合作品延時的預期范圍,不會給作品的實際使用數據采集帶來影響,測試結果證明系統具有良好的數據傳輸能力。同一時間內同一條件下三端平臺的接收到的數據如圖12 所示。

表1 微信小程序控制響應率

圖12 三端平臺通信測試

8 總結與展望

本作品是一套基于STM323 的物聯網智能魚缸系統,其可以通過微信小程序或云平臺實現魚缸的環境監測和遠程控制,并且在斷電時可以切換備用電源供電,具有一定的實用性,有一定的市場潛力。若想將本作品投入市場,可以考慮一下發展方向:

(1)搭建產品專屬的服務器;

(2)采用大尺寸觸摸屏代替按鍵控制;

(3)增加下位機語音交互功能,提高作品的智能化程度。

以上為本作品進一步發展的思考,希望隨著物聯網的進一步發展,智能魚缸系統能逐漸完善,然后步入市場,走進千萬家,給每一位用戶帶來更便利的生活。完整作品圖如圖13 所示。

圖13 智能魚缸

猜你喜歡
下位斷電魚缸
魚缸里的殺手
魚缸水
高壓感應電動機斷電重啟時的瞬態仿真
日光燈斷電關閉及自動延時開關設計
家里的小魚缸
發射機房監控系統之下位機
景洪電廠監控系統下位機數據傳輸網絡改造
圍觀黨“下位”,吐槽帝“登基”
冰立方魚缸
CAN總線并發通信時下位機應用軟件設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合