0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開源教程 | 智能生態(tài)魚缸的設(shè)計(jì)

機(jī)智云 ? 2022-07-18 17:15 ? 次閱讀

摘要

隨著科技的飛速發(fā)展,魚缸在國內(nèi)市場上產(chǎn)品繁多,功能不統(tǒng)一,而且大多是非智能化的,功能使用不靈活、不方便,整體性能也無法得到提升,在科技改變生活的時(shí)代,對(duì)傳統(tǒng)的魚缸進(jìn)行科技化的改造勢在必得,這將會(huì)給人們帶來更多的幸福感。


本論文以 STM32F103C8T6 單片機(jī)為核心,設(shè)計(jì)了一款基于機(jī)智云物聯(lián)網(wǎng)平臺(tái)的智能溫控,智能換水,智能供養(yǎng),智能照明和智能顯示系統(tǒng)。該系統(tǒng)以 esp8266WiFi 模塊通信為基礎(chǔ),可以遠(yuǎn)程手機(jī)監(jiān)控。本設(shè)計(jì)硬件電路結(jié)構(gòu)簡單,分為單片機(jī)核心控制器模塊,NTC 溫度傳感器檢測智能魚缸的水溫,通過 OLED 顯示當(dāng)前設(shè)備的電流值、溫度值和充氧速率等,按鍵電路用來調(diào)節(jié)充氧速率、水溫參數(shù)的閾值、控制供養(yǎng)和補(bǔ)光,繼電器用來驅(qū)動(dòng)水泵給魚缸加水。

還實(shí)現(xiàn)了通過 ESP8266WIFI 模塊實(shí)時(shí)將數(shù)據(jù)上傳手機(jī) APP 進(jìn)行控制,而且可以通過按鍵或手機(jī) APP 調(diào)節(jié)控制魚缸的各項(xiàng)功能,本論文基于物聯(lián)網(wǎng)的智能魚缸系統(tǒng)設(shè)計(jì)對(duì)當(dāng)代物聯(lián)網(wǎng)行業(yè)的發(fā)展具有一定的意義。

49ed596e-035a-11ed-9ade-dac502259ad0.gif1 緒論

基于物聯(lián)網(wǎng)的智能魚缸的發(fā)展意義重大,因此,根據(jù)市場需求,本次設(shè)計(jì)的產(chǎn)品采用了 STM32,該產(chǎn)品集成了多種控制功能,包括智能溫度控制,智能換水,智能供氧,智能照明和智能顯示。該系統(tǒng)通過 WiFi 模塊連接到機(jī)智云手機(jī) APP,以通過移動(dòng)應(yīng)用程序?qū)崿F(xiàn)魚缸溫度,照明和水變化的遠(yuǎn)程監(jiān)控,并可以在顯示器上顯示時(shí)間,水溫,電流,功率和功耗統(tǒng)計(jì)信息。

綜上所述,基于物聯(lián)網(wǎng)的智能魚缸監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)解決方案可以節(jié)約人工管理的繁瑣,在被動(dòng)的管理模下,轉(zhuǎn)化為宏觀的控制,當(dāng)監(jiān)視的人不在的時(shí)候可以根據(jù)微信端來控制供養(yǎng)和照明系統(tǒng)的的控制,還有電流和電量也可以進(jìn)行調(diào)節(jié),對(duì)于大型的水族館,可以節(jié)約大量人力和物力,對(duì)于家庭環(huán)境,可以提高家庭的和睦性,對(duì)現(xiàn)代生活的發(fā)展意義重大。

1.1 本設(shè)計(jì)主要完成工作

基于以上研究背景和研究意義,本文詳細(xì)介紹基于 stm32 單片機(jī)和 ESP8266WIFI 對(duì)接機(jī)智云物聯(lián)網(wǎng)云平臺(tái)的無線魚缸智能監(jiān)控系統(tǒng),實(shí)現(xiàn)魚缸遠(yuǎn)程控制功能。硬件電路結(jié)構(gòu)簡單,由一些傳感器模塊和系統(tǒng)硬件電路組成,具體包括 ESP8266WIFI 通信模塊,OLED 人機(jī)交互顯示模塊,按鈕電路控制模塊,繼電器驅(qū)動(dòng)電路模塊,水溫檢測 AD 處理電路,以及六個(gè)電路模塊,如系統(tǒng)電流和電壓檢測。其中,核心控制微控制器為 STM32F103C8T6,人機(jī)交互模塊使用 OLED12864 來顯示各種參數(shù)數(shù)據(jù),并使用按鍵來調(diào)節(jié)每種模式作為輸入設(shè)備。

本文的結(jié)構(gòu)如下:

第一部分介紹了系統(tǒng)的設(shè)計(jì)背景,介紹了基于物聯(lián)網(wǎng)的智能魚缸控制系統(tǒng)的總體方案設(shè)計(jì)和研究目的。

第二部分是研究系統(tǒng)各模塊的通信原理,包括建立 WIFI 模塊或 Gizwits 終端服務(wù)器。

第三部分是完成整個(gè)物聯(lián)網(wǎng)智能魚缸系統(tǒng)的原理圖和 PCB 圖。

第四部分是完成系統(tǒng)使用的開發(fā)環(huán)境的介紹和應(yīng)用,并編寫每個(gè)模塊的子功能和主要功能的程序設(shè)計(jì)。

第五部分是完成系統(tǒng)的 PCB 設(shè)計(jì),然后完成系統(tǒng)的焊接和實(shí)物功能測試。

49ed596e-035a-11ed-9ade-dac502259ad0.gif2 各模塊的通信原理

2.1 系統(tǒng)功能分析

(1)基于 STM32 硬件系統(tǒng),結(jié)合 ESP8266WiFi 通信技術(shù)對(duì)接機(jī)智云平臺(tái),實(shí)現(xiàn)手機(jī) APP 遠(yuǎn)程控制照明燈光和繼電器等。

(2)系統(tǒng)實(shí)時(shí)顯示時(shí)間、水溫、電流、功率、耗電量等基本信息,能實(shí)現(xiàn) APP 操作控制。

(3)系統(tǒng)手機(jī)端可以遠(yuǎn)程一鍵切斷設(shè)備的輸出控制,即 “緊急停止” 功能。

(4)LED 照明可以實(shí)現(xiàn)亮度調(diào)節(jié),充氧可以實(shí)現(xiàn)速率調(diào)節(jié)。此功能可以遠(yuǎn)程控制,也可以遠(yuǎn)程手機(jī)控制。

(5)人機(jī)交互采用 OLED 顯示屏,具有好的人性化操作界面。

(6)設(shè)備能夠聯(lián)網(wǎng)與機(jī)智云平臺(tái)實(shí)時(shí)進(jìn)行信息交互,實(shí)現(xiàn)手機(jī)端可以遠(yuǎn)程控制設(shè)備、監(jiān)測設(shè)備運(yùn)行數(shù)據(jù)。

2.2 系統(tǒng)總體方案設(shè)計(jì)

通過對(duì)硬件模塊選擇方案的比較和分析確定了這個(gè)想法,系統(tǒng)總體結(jié)構(gòu)框圖如圖 2.1 所示,將整個(gè)系統(tǒng)分為以下組成部分:STM32 核心控制、按鍵調(diào)節(jié)、OLED 顯示、ESP8266 感知層配網(wǎng)、繼電器驅(qū)動(dòng)電路、補(bǔ)光燈 LED 照明系統(tǒng),電源穩(wěn)壓組成電路。

系統(tǒng)運(yùn)行時(shí),通過控制器通過程序讀取由溫度感測元件組成的溫度檢測電路輸出的 AD 值,以讀取當(dāng)前的輸出溫度值 C,四路繼電器分別控制加熱電路,補(bǔ)光電路,供氧電路,輸出一定的電流電壓信號(hào),溫度測試采用探頭式 DS18B20 傳感器,系統(tǒng)的輸入電壓電流由 DACMP2303 轉(zhuǎn)換電路采集之后經(jīng)過內(nèi)部再經(jīng)過內(nèi)部 AD 轉(zhuǎn)換為電壓,再計(jì)算出器功率,系統(tǒng)運(yùn)行時(shí)控制器通過串口訪問 ESP8266WiFi 模塊,通過GAgent協(xié)議上傳機(jī)智云終端服務(wù)器,并經(jīng)過單片機(jī)數(shù)據(jù)處理通過手機(jī) APP 顯示,當(dāng)用戶想調(diào)節(jié)手動(dòng)控制加熱或補(bǔ)光燈,只需通過手機(jī) APP 發(fā)送指令,實(shí)現(xiàn)遠(yuǎn)程控制的功能。最后,該系統(tǒng)通過按鈕掃描,響應(yīng)按鈕輸入并控制 OLED 顯示屏以顯示各種相關(guān)數(shù)據(jù)信息,完成人機(jī)交互。

4a28ecf4-035a-11ed-9ade-dac502259ad0.png


2.3 主要元器件的選型

2.3.1 主控單片機(jī)

方案 1:STM32F103C8T6 單片機(jī)主要的特點(diǎn)就是運(yùn)行速度快,這就要從它的內(nèi)核架構(gòu) Cortex-M3 說起,該架構(gòu)是 ARM 系列中最經(jīng)典的架構(gòu),而 STM32 系列單片機(jī)恰好使用了這個(gè)架構(gòu),不但提高了單片機(jī)的運(yùn)行速度,還在根本上提升了單片機(jī)的性能。而從內(nèi)存上來看 STM32 系列的單片機(jī)至少也有 16K 的內(nèi)存,而且還帶有 AD 轉(zhuǎn)換器、I2C 接口以及 SPI 接口,簡化了電路連接。

方案 2:目前的主控制器中,STC89C52 單片機(jī)延用的架構(gòu)仍然是傳統(tǒng)的 51 系列單片機(jī)特有的 8051 架構(gòu),基本上每一款的 51 系列單片機(jī)的程序、引腳等都是可以通用的。從單片機(jī)的引腳上來看,該款單片機(jī)有 32 個(gè) I/O 口可以開發(fā)使用,引腳的功能也都非常清楚明了,能夠幫助開發(fā)者來快速設(shè)計(jì)出電路,從軟硬件兩方面降低了系統(tǒng)的開發(fā)難度。但是該款單片機(jī)只能容納 8K 的代碼,會(huì)降低系統(tǒng)運(yùn)行速度。

結(jié)論:STC89C52 單片機(jī)的運(yùn)行速度會(huì)影響系統(tǒng)全局,而 STM32F103C8T6 單片機(jī)軟件和硬件更加簡單,符合系統(tǒng)需求,因此首選 STM32F103C8T6 方案

2.3.2 顯示模塊型號(hào)的選擇

方案 1:LCD1602 是一款顯示容量為 32 個(gè)字符的液晶式顯示屏,其中包括大小寫字母、符號(hào)、簡單的圖形等內(nèi)容。使用 LCD1602 時(shí)直接采用電壓就能對(duì)顯示屏的顯示區(qū)域進(jìn)行控制。如果想詳細(xì)的了解 LCD1602 可以查閱顯示屏的手冊(cè),從手冊(cè)中可以找到顯示屏的代碼直接調(diào)用及修改即可,還可以了解到 LCD1602 的電路及各引腳功能,但是該模塊是不能顯示文字和圖片的,很多數(shù)據(jù)信息都無法顯示完整的,因此從軟件和硬件這兩個(gè)方面以及顯示內(nèi)容來看還得尋求其它的方案設(shè)計(jì)。

方案 2:本次系統(tǒng)設(shè)計(jì)選擇 0.96 寸的 OLED(Organic Light-Emitting Diode,有機(jī)發(fā)光半導(dǎo)體)是有機(jī)發(fā)光二極管的英文縮寫,液晶屏顯示??紤]到低功耗和交互的友好性,液晶屏顯示必然成為首先。傳統(tǒng)的字符型液晶顯示器,雖然可以能符合以上兩點(diǎn)要求。但相比于便攜性,選用 OLED 顯示器,將更為優(yōu)越,非常便合于便攜式設(shè)備上。本設(shè)計(jì)選用 OLED 最大支持 64 個(gè)字符顯示,其 4 行,每行 16 字符,除了支持所有 ASCII 碼,還自帶字體庫。非常便于顯示信息。顯示字符支持黃,藍(lán)兩種不同顏色。

結(jié)論:OLED12864 在顯示上更有優(yōu)勢,符合本系統(tǒng)要求,因此選擇方案 2。

2.3.3 無線通訊方案的選擇

使用 ESP8266 系列無線模塊是高性價(jià)比 WiFiSOC 模組,它能夠快速聯(lián)網(wǎng),只需要五步就可以實(shí)現(xiàn) “IoT 技術(shù)”,WiFi 模塊采用低功率 32 位 CPU,并且可以作為處理器,主頻最高可達(dá) 160MHz。內(nèi)置 10 位高精度 ADC 轉(zhuǎn)換模塊,具備緩存能力、上手容易、開發(fā)邏輯簡單等特點(diǎn),關(guān)鍵是傳輸數(shù)據(jù)較為穩(wěn)定,可以連接機(jī)智云終端服務(wù)器進(jìn)行遠(yuǎn)程監(jiān)控,如下表是 ESP8266 工作的指令。



4a6ecd3c-035a-11ed-9ade-dac502259ad0.png

2.3.4 溫度傳感器方案的選擇

為了實(shí)時(shí)檢測魚缸內(nèi)的溫度,我們需要一些防水的溫度傳感器,本設(shè)計(jì)采用 NTC 溫度傳感器,是一個(gè)熱敏電阻、探頭,其原理是:的電阻值隨著溫度的升高而迅速降低,實(shí)際尺寸非常靈活,它們可以小到 0.010 英寸,也可以是非常小的直徑,最大尺寸幾乎沒有限制,但通常不到半英寸。一般結(jié)構(gòu)由 NTC 熱敏電阻、探頭 (金屬外殼或塑料外殼等) 組成,延長線和金屬端子連接器,檢測的時(shí)候測得數(shù)據(jù)很穩(wěn)定,誤差很小。

4a8f55de-035a-11ed-9ade-dac502259ad0.png

圖 2-3 NTC 溫度傳感器

它的特點(diǎn)一般是靈敏度高,阻值和 B 值精度高,一致性互換性比較好,并且采用雙層包封工藝,具有良好的絕緣密封性和抗機(jī)械碰撞,抗彎折能力。

2.3.5 繼電器驅(qū)動(dòng)方案的選擇

為了驅(qū)動(dòng)繼電器更加有效的工作,系統(tǒng)增加了 ULN2003 驅(qū)動(dòng)芯片,該芯片的主要作用就是對(duì)于輸入電流進(jìn)行放大,然后再驅(qū)動(dòng) 5V 和 12V 的繼電器,因?yàn)槔^電器驅(qū)動(dòng)的模塊電路是需要較大的電流和電壓工作的。該芯片可用于設(shè)置脈沖驅(qū)動(dòng)步進(jìn)電機(jī)、驅(qū)動(dòng)馬達(dá)或者直流電機(jī),更有效的和最佳的選擇就是驅(qū)動(dòng)繼電器來控制設(shè)備,比如水泵、電壓電流互感器等。并且直接使用的時(shí)候該芯片和一些其他的類芯片大致原理上都相同,就直接可以用來使用并檢測。

4aafe100-035a-11ed-9ade-dac502259ad0.jpg

圖 2-4 ULN2003 芯片邏輯圖

49ed596e-035a-11ed-9ade-dac502259ad0.gif3 系統(tǒng)硬件電路設(shè)計(jì)

STM32F103C8T6 單片機(jī)可以說是系統(tǒng)的控制中樞部分,外部的器件都需要單片機(jī)通過內(nèi)部程序進(jìn)行指揮和協(xié)調(diào),這樣才能保證特定功能的完成。將能夠?qū)崿F(xiàn)自己功能的各模塊搭建在一起就能有效降低系統(tǒng)制作的復(fù)雜性。

3.1 STM32F103C8T6 單片機(jī)最小系統(tǒng)

如下時(shí)本次系統(tǒng)的最小系統(tǒng)板原理圖設(shè)計(jì)如圖 3.1 所示,它由最小系統(tǒng)中芯片控制器、震蕩電路、晶振電路以及串口下載電路。

4ad88c22-035a-11ed-9ade-dac502259ad0.jpg

圖 3-1 最小系統(tǒng)單元電路

3.1.1 晶振電路

在單片機(jī)中,晶振電路的地位是不可取代的,系統(tǒng)能否啟動(dòng)成功該部分的電路起到了決定性的作用。晶振電路和單片機(jī)內(nèi)部的晶體振蕩器連接構(gòu)成了晶振電路,能使單片機(jī)擁有更高的運(yùn)行速度??梢哉f晶振電路為單片機(jī)的運(yùn)行提供了重要的基礎(chǔ)。

STM32F103C8T6 單片機(jī)就是在 OSCIN 和 OSCOUT 引腳連接了 8MHZ 的晶振,在單片機(jī)上就能看到,選用的是 20PF 的電容能保證單片機(jī)更加快速、穩(wěn)定的運(yùn)行。晶振電路如圖 3.1 所示。

4afb564e-035a-11ed-9ade-dac502259ad0.jpg

圖 3-2 晶振電路

3.1.2 復(fù)位電路

在單片機(jī)上還有一個(gè)白色的按鈕就是復(fù)位電路的按鈕,能支持單片機(jī)完成程序的初始化,直接就能將系統(tǒng)從頭開始執(zhí)行。STM32F103C8T6 單片機(jī)的 RST 復(fù)位引腳上連接了對(duì)應(yīng)的電阻和電容,通過按鍵就能控制復(fù)位。在語音分類垃圾桶系統(tǒng)中,就是選用了直接、方便的按鍵復(fù)位方式,阻值為 10K,電容的容量為 10μF。按下連接好的按鍵就能將系統(tǒng)重啟。圖 3.2 為復(fù)位電路。

4b0ca96c-035a-11ed-9ade-dac502259ad0.jpg

圖 3-3 復(fù)位電路

3.1.3 電源電路

電源模塊電路如圖 3.6 所示,本系統(tǒng)需要兩種電壓,由于 OLED12864 顯示和 WiFi 通信模塊需要的電壓為 3.3V~5V,而 MCU 工作于 3.3V,由于主控 MCU 采用 3.3V 供電,就選用 AMS1117 三端穩(wěn)壓器模塊產(chǎn)生 3.3V 電壓。電容 E1,C22 為輸入電容,作用是防止斷電后出現(xiàn)電壓倒置。C23,E2 為輸出濾波電容,作用是抑制自激振蕩和穩(wěn)定輸出電壓。

4b1f941e-035a-11ed-9ade-dac502259ad0.jpg

圖 3-4 電源電路

但是系統(tǒng)中需要用到 12V 電壓去給繼電器模塊供電,繼電器控制的設(shè)備需要的電壓電流功率較大,所以使用 MP2303 外接電源適配器,然后再降壓來整個(gè)設(shè)備需求,并且該模塊輸入電壓為 4.7v-28v,輸出電壓 0.8V-25v 直接調(diào)節(jié),輸出電流連續(xù)輸出不低于 3A。

4b39992c-035a-11ed-9ade-dac502259ad0.jpg

圖 3-5 MP2303 模塊降壓原理圖

3.2 EEPROM 存儲(chǔ)電路設(shè)計(jì)

該電路 EEPROM 存儲(chǔ)模塊采用 AT24C04 芯片,用于各種電參數(shù)的存儲(chǔ)以及各種傳感器的閾值的參數(shù)記錄,便于斷電情況下對(duì)數(shù)據(jù)進(jìn)行保存。

4b5b10ca-035a-11ed-9ade-dac502259ad0.jpg

圖 3-6 EEPROM 存儲(chǔ)電路

3.3ESP8266WiFi 電路設(shè)計(jì)

ESP866 電路設(shè)計(jì)如圖 2.2 所示,GPIO 口為通用 IO,內(nèi)部以上拉,且有兩種工作模式:懸空 GPIO0 是工作模式,下拉 GPIO0 是下載模式。并且在 VCC 和 GND 之間使用鉭電容 E1,這樣能保證 WiFi 模塊長時(shí)間維持更好的性能。

4b7024d8-035a-11ed-9ade-dac502259ad0.jpg

圖 3-7 ESP8266WiFi 電路

3.4 繼電器驅(qū)動(dòng)電路的設(shè)計(jì)

ULN2003 用于驅(qū)動(dòng)控制繼電器不僅簡化了復(fù)雜的電路,還能對(duì) MCU 引腳輸出的電流進(jìn)行放大,提高了系統(tǒng)的帶載能力。在使用該 IC 時(shí)候,很多人喜歡在驅(qū)動(dòng)感性負(fù)載兩端并聯(lián)一個(gè)二極管,用于續(xù)流或者快速放電,其實(shí)這個(gè)根本沒有必要,在 IC 內(nèi)部本身就是集成了續(xù)流二極管,在此給出了經(jīng)典得驅(qū)動(dòng)電路,用于驅(qū)動(dòng)繼電器電路,如下所示:

4b9019fa-035a-11ed-9ade-dac502259ad0.jpg

圖 3-8 ULN2003 驅(qū)動(dòng)電路

其中需要注意得有兩點(diǎn):

首先:COM 引腳,即引腳 9 必須連接到驅(qū)動(dòng)器電源的正極(而不是芯片電源的正極)。

第二:GND 引腳(即芯片的接地引腳)必須與驅(qū)動(dòng)電源的負(fù)極形成等電位。

4ba66322-035a-11ed-9ade-dac502259ad0.jpg

圖 3-9 繼電器控制電路


3.5 溫度檢測電路的設(shè)計(jì)

溫度檢測電路采用內(nèi)部 AD 轉(zhuǎn)換,在電路設(shè)計(jì)上用 100nf 電容對(duì)采集的信號(hào)先進(jìn)行濾波處理,在 P7 端口外界一個(gè)探頭式得 NTC 溫度傳感器,探頭采集得模擬信號(hào)經(jīng)過濾波處理后,將信號(hào)傳給單片機(jī),經(jīng)過 AD 轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)換位數(shù)字信號(hào),通過顯示屏顯示出溫度。

4bc2ddb8-035a-11ed-9ade-dac502259ad0.jpg

圖 3-10 溫度檢測電路


3.6 電流采樣電路設(shè)計(jì)

如下圖所示:R15 康銅絲作為采樣電阻,在經(jīng)過 LM358 差分放大電路,然后 R14,R17,R13,R18 是對(duì)輸入的電流進(jìn)行放大,R16,C12 是對(duì)輸出做 RC 濾波,Rp18=Rp13,Rp14=R17。Vout=Rp18/Rp17*(Vin+-Vin-)。輸出電流傳給單片機(jī) PA5 管腳,然后經(jīng)過單片機(jī)內(nèi)部 AD 數(shù)據(jù)處理再通過 OLED 顯示屏顯示出電流大小。

4bd73b3c-035a-11ed-9ade-dac502259ad0.jpg

圖 3-11 電流采集電路


3.7 按鍵電路設(shè)計(jì)

為了滿足按鍵調(diào)節(jié)各個(gè)參數(shù),一共設(shè)計(jì)了四個(gè)按鍵,分別接 PA0,PB12,PB13,PB14 這四個(gè)接口,按鍵 1 用來控制 OLED 顯示界面的切換,以達(dá)到可以調(diào)節(jié)溫度,充氧速率等操作。按鍵 3 可以設(shè)置溫度,補(bǔ)光燈強(qiáng)度,以及充氧速率等參數(shù)的增加。按鍵 4 是用來將參數(shù)數(shù)值調(diào)小。按鍵 2 是確認(rèn)鍵,每次調(diào)整后,按鍵 SW2 將存儲(chǔ)于系統(tǒng)保存當(dāng)前的變化。

4bed88c4-035a-11ed-9ade-dac502259ad0.jpg

圖 3-12 按鍵控制電路


3.8 報(bào)警電路設(shè)計(jì)

系統(tǒng)中加入無源蜂鳴器電路,主要用于系統(tǒng)出現(xiàn)異常時(shí)進(jìn)行報(bào)警,通常通通過 BUZZER 引腳輸入方波信號(hào),該電路同樣是采用 NPN 三極管作為開關(guān)進(jìn)行驅(qū)動(dòng),其基極的高電平使三極管飽和導(dǎo)通,使蜂鳴器發(fā)聲,而基極低電平則使三極管關(guān)閉,蜂鳴器停止發(fā)聲。

4c091d0a-035a-11ed-9ade-dac502259ad0.jpg

圖 3-13 按鍵控制電路

49ed596e-035a-11ed-9ade-dac502259ad0.gif4 系統(tǒng)軟件設(shè)計(jì)

在前三章中的硬件電路章節(jié)中已經(jīng)將便攜式風(fēng)光互補(bǔ)系統(tǒng)的硬件部分介紹完畢,此時(shí)就進(jìn)行下一步的軟件開發(fā)介紹。程序代碼編程軟件 KEIL 和 C 語言在系統(tǒng)的軟件部分起到了重大作用,達(dá)到軟件編程完成的目的。

4.1 軟件開發(fā)環(huán)境簡介

本設(shè)計(jì)中選用德國 keil 公司推出的專為 arm 核控制器開發(fā)的一款編譯器軟件。該軟件集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),Keil5 軟件使用時(shí)候特別方便,它所占的系統(tǒng)類型為 64 位,兼容 WIN7/WIN8/WIN10,而且下載速度 SWD 模式是 keil4 的五倍,它的特點(diǎn)是集成開發(fā)環(huán)境,調(diào)試器和仿真環(huán)境。完美支持 Cortex-M,Cortex-R4、ARM7 和 ARM9 系列器件,并且有大量的項(xiàng)目可以讓使用者快速熟悉強(qiáng)大的內(nèi)置特征。

4.2 主程序設(shè)計(jì)

為了滿足水質(zhì)溫度、電流、用電量及其功率采集的實(shí)時(shí)性,本程序采用循環(huán)掃描的方式對(duì) NTC 溫度傳感器進(jìn)行數(shù)據(jù)讀取。系統(tǒng)開始首先對(duì)各個(gè)模塊功能初始化,初始化完成之后可以通過按鍵調(diào)整系統(tǒng)參數(shù)(充氧速率、水位閾值、限流大小、照明亮度、凈化速率以及一鍵換水操作),當(dāng)實(shí)際測得水溫低于閾值時(shí),繼電器閉合加熱棒開始給水溫加熱,反之亦然。當(dāng)系統(tǒng)負(fù)載電流大于限流閾值時(shí),蜂鳴器報(bào)警,負(fù)載電器都停止工作。系統(tǒng)參數(shù)設(shè)定完成之后,按鍵退出自動(dòng)保存參數(shù),并且有斷電保存的效果。系統(tǒng) WiFi 通過無線將數(shù)據(jù)發(fā)送給手機(jī) APP 和終端控制中心,發(fā)送完畢后自動(dòng)清除緩存,結(jié)束本次循環(huán)。

4c23dc9e-035a-11ed-9ade-dac502259ad0.png

圖 4-11 主程序流程路



4.4 系統(tǒng)子程序設(shè)計(jì)

4.4.1 IIC 通信程序設(shè)計(jì)

串行通信主要使用三條線路來實(shí)現(xiàn):CS,SCLK 和 SDA。其中,CS 是可選芯片,SCLK 是同步時(shí)鐘信號(hào),SDA 是發(fā)送數(shù)據(jù)信號(hào)。該時(shí)序剛開始 CS 片段為高電平,SCLK 為矩形脈沖波動(dòng),CS 為低電平時(shí),SCLK 也為低電平,CS 為高電平時(shí),SCLK 就會(huì)產(chǎn)生脈沖信號(hào)。同時(shí) STD 就開始進(jìn)行時(shí)鐘字節(jié)的選取,經(jīng)過幾個(gè)周期,RW 進(jìn)行數(shù)據(jù)的讀取,RS 將數(shù)據(jù)發(fā)送給更高的電平進(jìn)行數(shù)據(jù)的選擇。最后進(jìn)行篩選到第二儲(chǔ)存區(qū)域,進(jìn)行第二次的字節(jié)變化,產(chǎn)生時(shí)序信號(hào),最后 CS 片選回復(fù)低電平,脈沖信號(hào)停止,STD 停止字節(jié)的位選。圖 4-1 是串行通信時(shí)序圖:

4c4cf9a8-035a-11ed-9ade-dac502259ad0.jpg

圖 4-2 串行通信時(shí)序圖



4.4.2AD 采集程序設(shè)計(jì)
使用該 STM32 單片機(jī)采集電壓的時(shí)候大致可以分為兩種,一個(gè)是 DMA 采集,另外一種是定時(shí)采集,本次系統(tǒng)對(duì)電壓的采集是用了 DMA 方式進(jìn)行采集的,采集流程設(shè)計(jì)如下,ADC 采樣的話首先就是對(duì) ADC 進(jìn)行初始化,確定 ADC 的通道的級(jí)別方式,采集時(shí)間窗口預(yù)定目標(biāo)轉(zhuǎn)化為相應(yīng)的時(shí)間和時(shí)鐘,定義好三種電壓、電流和溫度的采用結(jié)果,對(duì)每一個(gè)信號(hào)采樣 8 次,然后再將閾值通過 STMFLASH 存儲(chǔ)到到芯片當(dāng)中,所以系統(tǒng)共采集了 3 個(gè)數(shù)據(jù)。如果預(yù)定的 ADC 中斷發(fā)生,則系統(tǒng)會(huì)進(jìn)入中斷服務(wù)程序,然后對(duì)當(dāng)前的設(shè)備的電壓電流采集進(jìn)行數(shù)據(jù)的傳輸和處理。
4c624394-035a-11ed-9ade-dac502259ad0.png

圖 4-3 電壓采集流程圖

4.4.3 WiFi 通信程序設(shè)計(jì)

本設(shè)計(jì)中 ESP8266WiFi 串口通訊協(xié)議是機(jī)智云平臺(tái)標(biāo)準(zhǔn)接入?yún)f(xié)議(4.2.0),設(shè)備的通訊信息為 9600 波特率,8 位數(shù)據(jù)位,無校驗(yàn),1 位停止位,傳輸字節(jié)序采用大端編碼,通信交互形式是采用一問一答,每條命令需要由接收方給出 ACK 應(yīng)答確認(rèn)信息,超時(shí)時(shí)間 200ms,超時(shí)后重新發(fā)送。WiFi 模組上電后,需要向 MCU 查詢?cè)O(shè)備信息,獲取信息成功后,WiFi 模組才能正常工作,基本通信協(xié)議流程圖如下所示。

4c7dfd64-035a-11ed-9ade-dac502259ad0.png

圖 4-4 WiFi

AIoT 設(shè)備自助開發(fā)平臺(tái):

機(jī)智云 AIoT 自助開發(fā)平臺(tái),提供從產(chǎn)品定義、開發(fā)調(diào)試、應(yīng)用開發(fā)、產(chǎn)測、云端開發(fā)、運(yùn)營管理、數(shù)據(jù)服務(wù)等覆蓋 IoT 設(shè)備接入到運(yùn)營管理全生命周期服務(wù)的開發(fā)能力。通過傻瓜化的自助工具、完善的 SDK 與開放的 API,最大限度降低 IoT 設(shè)備開發(fā)的技術(shù)門檻,已服務(wù) 320000 + 開發(fā)者。

49ed596e-035a-11ed-9ade-dac502259ad0.gif5 系統(tǒng)調(diào)試分析

5.1 軟件調(diào)試

軟件程序的開發(fā)環(huán)境是 KEIL5,新建工程的選對(duì)單片機(jī)的型號(hào),不斷地給系統(tǒng),保證系統(tǒng)運(yùn)行的穩(wěn)定,意淫單片機(jī)選用的是 C8T6 的型號(hào),所以在 Target 目標(biāo)選擇欄里一定要記得修改晶振的大小,這樣才能保證時(shí)間的精確度。

4cafc998-035a-11ed-9ade-dac502259ad0.jpg

圖 5-1 單片機(jī)型號(hào)選擇

反復(fù)通過斷點(diǎn)調(diào)試和單步調(diào)試的方式對(duì)代碼進(jìn)行檢查以及修改后,就可以編譯代碼查看程序調(diào)試的結(jié)果,在編程后看到了 “0 error” 的提示,如果看到這個(gè)提示結(jié)果就表示程序已經(jīng)是正確的了。如圖 5.2 所示。

4ce6a5f8-035a-11ed-9ade-dac502259ad0.jpg

圖 5-2 程序編譯通過

程序編譯完畢后接下來就是將單片機(jī)的程序通過串口燒錄軟件燒寫進(jìn)去,第一步就是打開 Fly-Mcu,設(shè)定 BOOT0 和 BOOT1 都為低電平,然后將串口軟件設(shè)定為 DTR 低電平復(fù)位,RTS 高電平進(jìn) Bootloader,

4cf65a3e-035a-11ed-9ade-dac502259ad0.jpg

圖 5-3 程序燒寫設(shè)計(jì)


5.2 硬件調(diào)試

對(duì)于本系統(tǒng)的制作,首先采用的是硬件的焊接,然后是代碼的編寫,最后是運(yùn)行實(shí)物,因此對(duì)軟件和硬件這兩部分分別的調(diào)試是最后調(diào)整實(shí)物的基礎(chǔ)。

系統(tǒng)硬件的調(diào)節(jié)和測試主要時(shí)針對(duì)系統(tǒng)的電路和程序入手的,在設(shè)計(jì)電路時(shí)可采用 AD 軟件根據(jù)各元器件的管腳特性及系統(tǒng)功能先繪制好電路,然后再根據(jù)電路進(jìn)行實(shí)物焊接,如果有耐心的話可以邊焊接邊使用萬用板測試,可以大大降低硬件焊接的錯(cuò)誤率。一般的硬件調(diào)試可以遵循以下幾個(gè)步驟,得到事半功倍的效果:

(1)第一步:利用電路圖繪制軟件(本設(shè)計(jì)使用的軟件為 Altium Designer,作為 PROTEL 公司推出的一款智能型較高的專業(yè)繪圖軟件)繪制系統(tǒng)整體電路圖,如下圖所示,然后仔細(xì)檢查軟件里的元器件及電路連接走向是否正確;

(2)第二步:對(duì)照檢查好的原理圖繪制 PCB 圖,確保 PCB 圖的正確性、與原理圖繪制電路的一致性;

(3)第三步:查找元器件資料,對(duì)照實(shí)物功能及每個(gè)元器件的引腳,同時(shí)檢查原理圖及 PCB 圖;

(4)設(shè)計(jì)規(guī)則,注意電源線的線寬和元件之間的安全間距,設(shè)置 + 12V 電源線寬為 2mm,+5V 線寬 1.5mm,+3.3V 線寬 1.2mm,其余信號(hào)線 0.2mm。

(5)根據(jù) EMC 設(shè)計(jì)規(guī)范擺放元器件布局,先連電源線,再連信號(hào)線,最后再對(duì) GND 進(jìn)行敷銅處理,信號(hào)接口再滴淚處理,PCB 布線如下所示。

(6)第四步:安裝完成實(shí)物后,可以借助萬用表等工具測試局部電路和整體電路,防止出現(xiàn)短路現(xiàn)象,及時(shí)糾正元器件電路錯(cuò)誤及整體電路中的錯(cuò)誤。

4d13a6de-035a-11ed-9ade-dac502259ad0.png

圖 5-4 PCB 布局及連線設(shè)計(jì)

4d435eb0-035a-11ed-9ade-dac502259ad0.jpg

圖 5-5 PCB 敷銅設(shè)計(jì)

4d64995e-035a-11ed-9ade-dac502259ad0.jpg

圖 5-6 PCB3D 模型

5.3 實(shí)物測試

(1)通過電源系統(tǒng)給設(shè)備供電,顯示器顯示當(dāng)前時(shí)間,當(dāng)前水簇箱水質(zhì)溫度,環(huán)境大氣的溫度,以及當(dāng)前設(shè)備的供電電流、設(shè)備功率以及耗電量度,如下圖所示。

4d8126fa-035a-11ed-9ade-dac502259ad0.jpg

圖 5-7 供電顯示視圖

(2)水簇箱水溫傳感器 NTC 檢測與閾值顯示。

4d9d7134-035a-11ed-9ade-dac502259ad0.jpg

圖 5-8 水溫閾值調(diào)試

(3)充氧氣速率調(diào)試。

4db2b54e-035a-11ed-9ade-dac502259ad0.jpg

圖 5-9 充氧氣速率設(shè)置

(4)水族箱內(nèi)照明燈光調(diào)試。

4dcc9540-035a-11ed-9ade-dac502259ad0.jpg

圖 5-10 LED 照明亮度設(shè)置

(5)限流保護(hù)設(shè)計(jì),當(dāng)設(shè)備超過 5A 時(shí),系統(tǒng)緊急停止工作。

4de7322e-035a-11ed-9ade-dac502259ad0.jpg

圖 5-11 系統(tǒng)保護(hù)電流設(shè)置

(6)水泵控制進(jìn)出水,可以實(shí)現(xiàn) APP 遠(yuǎn)程操控和一鍵輕松換水。

4e04a7e6-035a-11ed-9ade-dac502259ad0.jpg

圖 5-12 直流水泵設(shè)備

(7)以下是機(jī)智云公版手機(jī) APP 顯示界面。

4e1ae1be-035a-11ed-9ade-dac502259ad0.jpg ? ?? ?圖 5-13 遠(yuǎn)程 APP 登錄和操作界面

(8)以下是機(jī)智云物聯(lián)網(wǎng)平臺(tái)的終端服務(wù)器數(shù)據(jù)歷史查詢界面。

4e3b750a-035a-11ed-9ade-dac502259ad0.jpg圖 5-14 PC 端歷史數(shù)據(jù)信息查詢

(9)以下是作品的整體實(shí)物圖。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353807
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)回答OpenHarmony | 關(guān)于開源生態(tài)的未來想象,我們現(xiàn)場回答

    第三屆OpenHarmony技術(shù)大會(huì)即將啟幕 今年相聚,OpenHarmony又迎來了怎樣的突破與發(fā)展? 在萬物智聯(lián)的時(shí)代,如何通過技術(shù)創(chuàng)新引領(lǐng)智能未來? OpenHarmony的開源力量如何推動(dòng)
    發(fā)表于 10-12 00:09

    霍爾開關(guān)在魚缸LED燈中的應(yīng)用

    水溫。 你知道嗎?霍爾開關(guān)在魚缸LED燈中起著關(guān)鍵性作用,霍爾開關(guān)是如何應(yīng)用于LED燈板中的呢? 在魚缸LED燈板中使用霍爾開關(guān),可以實(shí)現(xiàn)對(duì)燈板的智能控制。具體來說,可以通過霍爾開關(guān)檢測外部環(huán)境的變化,如光線強(qiáng)弱、人體移動(dòng)等
    的頭像 發(fā)表于 10-09 09:59 ?116次閱讀

    迅龍軟件出席2024開放原子開源生態(tài)大會(huì),共謀開源生態(tài)繁榮之路

    2024開放原子開源生態(tài)大會(huì)于9月25至27日在北京亦莊開幕。大會(huì)將以“開源賦能產(chǎn)業(yè),生態(tài)共筑未來”為主題,匯聚政、產(chǎn)、學(xué)、研、用、金等各領(lǐng)域頂尖
    的頭像 發(fā)表于 09-26 13:51 ?342次閱讀
    迅龍軟件出席2024開放原子<b class='flag-5'>開源</b><b class='flag-5'>生態(tài)</b>大會(huì),共謀<b class='flag-5'>開源</b><b class='flag-5'>生態(tài)</b>繁榮之路

    開放原子開源生態(tài)大會(huì)OpenHarmony生態(tài)主題演講報(bào)名開啟

    開源賦能產(chǎn)業(yè),生態(tài)共筑未來,OpenAtom OpenHarmony(簡稱“OpenHarmony”)項(xiàng)目群工作委員會(huì)將于9月26日上午舉辦OpenHarmony生態(tài)主題演講。 屆時(shí),將面向全球
    發(fā)表于 09-19 22:02

    【議題征集】國際開源及RISC-V人才暨開源技術(shù)與生態(tài)之旅

    【議題征集】國際開源及RISC-V人才暨開源技術(shù)與生態(tài)之旅
    的頭像 發(fā)表于 07-02 08:36 ?200次閱讀
    【議題征集】國際<b class='flag-5'>開源</b>及RISC-V人才暨<b class='flag-5'>開源</b>技術(shù)與<b class='flag-5'>生態(tài)</b>之旅

    開放原子開源大賽OpenHarmony智能化應(yīng)用生態(tài)挑戰(zhàn)賽決賽路成功舉辦

    軟件定義世界,開源共筑未來。在江蘇省工信廳、市工信局、開放原子開源基金會(huì)及相關(guān)單位的指導(dǎo)和支持下,4月19-20日,由中軟國際教育科技集團(tuán)聯(lián)合舉辦的開放原子開源大賽-OpenHarmony智能
    的頭像 發(fā)表于 04-24 09:48 ?341次閱讀

    基于Ai-M61模組打造一個(gè)智能魚缸水質(zhì)監(jiān)測系統(tǒng)

    要保證合理的光照,水氧才能讓小魚順利成長,這些對(duì)新手來說太難了??! 正好小安發(fā)現(xiàn)手頭上的Ai-M61模組,可以打造一個(gè)智能魚缸水質(zhì)檢測系統(tǒng)。來看看怎么做? ? 小安先查詢了下產(chǎn)品的介紹: Ai-M61 系列模組是安信可科技開發(fā)的
    的頭像 發(fā)表于 03-29 11:04 ?384次閱讀

    基于STM32的智能魚缸設(shè)計(jì)

    關(guān)鍵詞:智能魚缸,機(jī)智云,STM32單片機(jī)目錄1、功能實(shí)現(xiàn)2、系統(tǒng)設(shè)計(jì)方案3、系統(tǒng)硬件設(shè)計(jì)4、系統(tǒng)軟件設(shè)計(jì)5、APP設(shè)計(jì)和測試6、結(jié)論1功能實(shí)現(xiàn)本設(shè)計(jì)是一款基于STM32的智能魚缸系統(tǒng)
    的頭像 發(fā)表于 01-26 08:10 ?3835次閱讀
    基于STM32的<b class='flag-5'>智能</b><b class='flag-5'>魚缸</b>設(shè)計(jì)

    基于51單片機(jī)的智能魚缸設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的智能魚缸設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:32 ?6次下載

    基于51單片機(jī)的智能魚缸設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的智能魚缸設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:45 ?4次下載

    魚缸如何實(shí)現(xiàn)自動(dòng)檢測缺水補(bǔ)水

    自動(dòng)補(bǔ)水器通常用于水族館,以實(shí)現(xiàn)養(yǎng)魚中的自動(dòng)補(bǔ)水,也可以滿足其他應(yīng)用程序自動(dòng)補(bǔ)水和保持水位的需求。任何時(shí)候都不需要檢查水箱中的水位。一款簡單的智能補(bǔ)水器,可以使用技術(shù),操作簡單,液位控制精確,滿水
    的頭像 發(fā)表于 12-27 14:17 ?420次閱讀
    <b class='flag-5'>魚缸</b>如何實(shí)現(xiàn)自動(dòng)檢測缺水補(bǔ)水

    賦能行業(yè),共贏未來:2023開源產(chǎn)業(yè)生態(tài)大會(huì)OpenHarmony生態(tài)論壇成功舉辦

    信息技術(shù)協(xié)會(huì)統(tǒng)籌主辦的2023開源產(chǎn)業(yè)生態(tài)大會(huì)在上海開幕。華為攜手OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)項(xiàng)目群生態(tài)委員會(huì)舉辦OpenHarmony生態(tài)
    的頭像 發(fā)表于 12-21 21:15 ?476次閱讀

    上海站報(bào)名啟動(dòng)! 2023年開源產(chǎn)業(yè)生態(tài)大會(huì)OpenHarmony生態(tài)分論壇

    作為年內(nèi)開源領(lǐng)域不容錯(cuò)過的科技盛宴,2023年開源產(chǎn)業(yè)生態(tài)大會(huì)將于12月19日在上海盛大開幕。本次活動(dòng)由上海市經(jīng)濟(jì)和信息化委員會(huì)、上海市科學(xué)技術(shù)協(xié)會(huì)和\"科創(chuàng)中國\"開源創(chuàng)新
    發(fā)表于 11-24 14:55

    首屆OpenHarmony競賽訓(xùn)練營結(jié)營頒獎(jiǎng),75所高校學(xué)子助力建設(shè)開源生態(tài)

    共有7個(gè)賽隊(duì)脫穎而出。 在11月4日“技術(shù)筑生態(tài),智聯(lián)贏未來”第二屆開放原子開源基金會(huì)OpenHarmony技術(shù)大會(huì)上,OpenHarmony項(xiàng)目群工作委員會(huì)和OpenHarmony項(xiàng)目群技術(shù)指導(dǎo)委員會(huì)
    發(fā)表于 11-07 17:10

    陳海波:OpenHarmony技術(shù)領(lǐng)先,產(chǎn)學(xué)研深度協(xié)同,生態(tài)蓬勃發(fā)展

    。 根深葉茂,OpenHarmony四大技術(shù)架構(gòu)競爭力領(lǐng)先,生態(tài)蓬勃發(fā)展 OpenHarmony以“面向萬物智聯(lián)世界,構(gòu)建分布式全場景協(xié)同的開源操作系統(tǒng)基座與生態(tài)系統(tǒng)”為技術(shù)愿景,秉持“生態(tài)
    發(fā)表于 11-06 14:35