【《高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)》20000字(論文)】_第1頁
【《高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)》20000字(論文)】_第2頁
【《高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)》20000字(論文)】_第3頁
【《高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)》20000字(論文)】_第4頁
【《高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)》20000字(論文)】_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

高低水位消防水池的水位監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)摘要目前的高速隧道消防監(jiān)測系統(tǒng)大多是采用了高低位雙水池供水來進行設(shè)計的,隧道滅火的水源大都是由深層地下水用水泵來抽取到高位消防水池來進行高位水池蓄水,當(dāng)高速公路隧道發(fā)生火災(zāi)險情時,高位水池向低位水池蓄水,再由低位水池放水以進行火災(zāi)的即時搶險,但是目前的消防水池水位監(jiān)測模式普遍上采用人工實地測量的方式,水泵的抽水和閥門的開關(guān)也基本以人工開啟和關(guān)閉操作為主,未能做到高低位水池水位即時監(jiān)測和自動控制。這給高速公路隧道的安全帶來了極大的隱患,同時人工巡查的方式極大地耗費了時間和精力。不利于廣大人民的交通出行,因此設(shè)計一套可以實時監(jiān)測高低位水池水位的報警系統(tǒng)勢在必行。本次畢業(yè)設(shè)計制作了一個高低水位消防水池的水位監(jiān)測系統(tǒng),下位機采用鋰電池供電,太陽能板對鋰電池充電來提高系統(tǒng)的適用性,采用應(yīng)變片式的壓力傳感器來間接測量高位水池的水位,超聲波傳感器HC-SR04測量低位水池的水位,將數(shù)據(jù)傳輸?shù)絊TM32F103C8T6單片機后由單片機來控制電磁閥的開啟與閉合,從而實現(xiàn)高低位雙水池的連通。采用ESP8266通信功能電路進行上下位機的數(shù)據(jù)傳輸。本課題設(shè)計了一個APP作為整個系統(tǒng)的上位機,ESP8266通信功能電路將數(shù)據(jù)傳輸?shù)皆贫撕?,再用APP從云端下載數(shù)據(jù)實現(xiàn)物聯(lián)網(wǎng)通信。與此同時本次設(shè)計使用了數(shù)據(jù)庫,進而達到查看歷史記錄的目的,上位機設(shè)置高低雙水位報警值,當(dāng)水位低于預(yù)警值時,可在手機端APP界面報警,此時APP會彈出報警窗口,從而實現(xiàn)對高低位消防水池的遠程監(jiān)控。關(guān)鍵詞:STM32單片機;HC-SR04超聲波測距;壓力傳感器監(jiān)測;物聯(lián)網(wǎng)通信目錄1引言 [9]。本次設(shè)計通過對以上幾位學(xué)者的研究成果進行進一步研究和結(jié)合,從而實現(xiàn)高低位消防水池水位監(jiān)測系統(tǒng)的設(shè)計。2設(shè)計要求及方案論證本系統(tǒng)設(shè)計采用壓力和超聲波傳感器設(shè)計完成無線高低位消防水池的水位監(jiān)測系統(tǒng),該裝置以單片機為控制核心,選擇適當(dāng)?shù)膲毫统暡▊鞲衅鱽泶罱ㄋ粶y量裝置,利用無線傳輸技術(shù),實現(xiàn)對高低水池水位的實時監(jiān)測和報警。具體要求:1、針對高速公路高低位消防水池的水位監(jiān)測需求,以嵌入式系統(tǒng)為核心,設(shè)計一套穩(wěn)定可靠的水位監(jiān)測系統(tǒng);模擬系統(tǒng)中高低位水池的高度差大于1m。2、低位水池采用超聲波測距技術(shù)監(jiān)測水位,水位測量絕對誤差≤1cm;高位水池采用間接測量的方式遠程監(jiān)測水位,水位測量相對誤差≤5%。3、設(shè)計相應(yīng)的上位機界面,可實時查詢高低位水池的水位信息;當(dāng)水位低于預(yù)置閥值時,具備自動報警功能。2.1系統(tǒng)組成高低位消防水池的水位檢測系統(tǒng)采用了模塊化設(shè)計的方式,它由單片機主控功能電路、電磁閥控制功能電路、太陽能充電功能電路、高低位水池測水位功能電路、ESP8266通信功能電路和穩(wěn)壓功能電路等部分組成。高低水池測水位功能電路采用壓力傳感器來測量高位水池水位,超聲波傳感器來測量低位水池水位。單片機主控功能電路采用了STM32F103C8T6型號的芯片,這個型號的單片機具有18個通道。有一個12位逐次逼近型的模擬數(shù)據(jù)轉(zhuǎn)換器ADC包含在單片機內(nèi)部。還有可以測量2個內(nèi)部和16個外部的信號源。通信功能電路由ESP8266作為控制芯片,將ESP8266通信功能電路連接到STM32F103C8T6單片機的串口,這樣單片機就可以通過WIFI連接到本次設(shè)計的上位機APP部分,用戶便可以通過手機來對高低位消防水池水位進行實時的監(jiān)測,本次設(shè)計系統(tǒng)的組成框圖如圖2.1所示。圖2.SEQ圖_2\*ARABIC\s21系統(tǒng)組成框圖2.2方案論證2.2.1主控芯片選擇方案一:首先想到使用STC89C52型號的單片機來設(shè)計本系統(tǒng)的控制功能電路,52這個型號的單片機使用的是MCS-51的內(nèi)核,所以這個型號的單片機可以兼容51系列的單片機源,并且在51上面使用的編程語言同樣在52上也適用,這個型號的單片機與51系列單片機相比較它的速度有了極大的增加,可以達到51單片機的數(shù)倍之多,與此同時52系列單片機還增加了許多功能。52系列單片機具備了適中的8K字節(jié)FLASH,同時又增加了一個定時計數(shù)器,該單片機只需要有一個通用的異步串行口。STC89C52有兩種供電型號,分別為3V和5V,在使用這個系列單片機時可以根據(jù)設(shè)計的不同需求使用不同的電壓型號。方案二:采用STM32F103C8T6作為該控制系統(tǒng)的主控元器件。這個型號的單片機的內(nèi)核采用了Cortex-M3內(nèi)核??梢允褂?2MHz的工作主頻,速度要比52系列的單片機快;具有豐富且功能多樣的I/O口資源;4個16位的定時器;因為STM32F103C8T6芯片內(nèi)含有64KB的閃存,即FLASH,這就使它可以提供更大的編程內(nèi)存,與此同時還擁有三個通用的異步串口,這使得STM32F103C8T6這款單片機可以跟多個外部配備串口的電路進行通信。C8T6型號單片機的供電電壓為3.3V,所以選用這款芯片所需功耗較低。綜合對比這兩款主控功能電路,選用方案二的STM32F103C8T6單片機來設(shè)計主控功能電路效果更好,因為它運行的速度更快,能夠快速處理燒錄進去的代碼,編程的內(nèi)存容量更高,足以保存測量數(shù)據(jù)、功耗低、體積小、成本與52系列單片機接近;重要的是,該型號的單片機連接外設(shè)資源豐富,能連接更多的外設(shè);本次設(shè)計需要用到多個IO口,因此最終選擇方案二來進行控制功能電路的設(shè)計。2.2.2太陽能充電電路選擇方案一:采用了一種具有單節(jié)太陽能復(fù)合電池最大負(fù)載容量和最大功率兩個特征點自動降壓追蹤的充電芯片CN3791,用CN3791充電芯片來設(shè)計太陽能充電功能電路可以對單節(jié)的4A鋰電池進行充電,若要對多節(jié)進行充電則需要將鋰電池并聯(lián)起來。本芯片自帶PWM降壓,用CN3791設(shè)計的充電功能電路所需要的組合元件較少,并且此充電功能電路使用的方法很簡單,封裝小巧可以節(jié)約設(shè)計的成本。方案二:采用CN3722來設(shè)計本次高低位水池水位監(jiān)測系統(tǒng)的太陽能充電功能電路。這個芯片同樣擁有追蹤太陽能最大功率的功能,CN3722支持對多個鋰電池進行充電,內(nèi)部自帶PWM降壓,同樣的這款芯片需要組合的原件較少,封裝小巧,設(shè)計的充電功能電路很簡單,易于用戶使用。綜合對比這兩種充電的芯片,選擇方案二可以對多節(jié)鋰電池充電,而在本次設(shè)計中需要給后續(xù)繼電器提供12V供電電壓,因此需要將三節(jié)鋰電池進行串聯(lián)供電,這樣極大的減少了多節(jié)鋰電池并聯(lián)所帶來的后續(xù)升壓電路的成本消耗,所以采用CN3722來進行本次設(shè)計的充電管理符合設(shè)計要求。2.2.3高位水池測水位傳感器的選擇方案一:采用壓電式的傳感器,這是一種有源的可以自發(fā)產(chǎn)生電壓的傳感器。它所需工作的基本原理就是基于一些具體材料在被外力壓實后,由于其與所對應(yīng)的具體材料表面之間形成了一定電荷而由此引起的一種壓電運動效應(yīng)。壓電傳感器的內(nèi)部結(jié)構(gòu)非常簡單,市面上售賣的壓電傳感器大多都很輕巧,工作起來非??煽浚淮罅康膽?yīng)用在測量動態(tài)力。但它測頻率太低的被測量時誤差較大,無法進行對靜態(tài)量的測量。目前大部分被用于進行機械加速度與其他動態(tài)機械應(yīng)力或者是機械壓力等各個方面的應(yīng)力測定。壓電電路元件的主要性能缺陷:內(nèi)部的電阻較大,輸出功率較小,輸出內(nèi)部能量微弱,電纜的分布式內(nèi)部電容和其他噪聲源的干擾可能會直接影響其內(nèi)部輸出能量特征,這就使它們對外部電阻連接集成電路的性能要求非常高。方案二:采用應(yīng)變式的傳感器,在應(yīng)變片后面接上HX711AD轉(zhuǎn)換功能電路,當(dāng)應(yīng)變片上有重物時,產(chǎn)生應(yīng)力。然后HX711AD通過對其產(chǎn)生的應(yīng)力的轉(zhuǎn)換將其變成電信號,這樣就可以間接的測量出高位水池的水位,以此來達到設(shè)計的要求。應(yīng)變片式傳感器有如下特點:(1)適用于和測量的范圍很大,應(yīng)變片能夠被制作成各類機械測量的傳感器。(2)應(yīng)變片的分辨力和靈敏度高,適用于精度較高的設(shè)計。(3)結(jié)構(gòu)輕巧,適應(yīng)性強,頻率響應(yīng)結(jié)果好,不易影響試件,使用起來非常簡單,可在強磁場、高溫度、高壓強等特殊環(huán)境中使用。本次設(shè)計所要求測量的高位水池水位相對誤差≤5%,而本次設(shè)計選擇的電阻應(yīng)變片壓力傳感器精度很高,市面上售賣的精度在0.01%左右,價格便宜,符合設(shè)計要求。最終選擇了第二種方案。2.2.4低位水池測水位傳感器的選擇方案一:采用探頭型的超聲波傳感器,此類型傳感器具有測量范圍廣,精度高,防水可在惡劣條件下使用等優(yōu)點,但價格過于昂貴。方案二:采用超聲波功能電路來測量低位水池的水位,其中最常用的型號為HC-SR04。采取這種型號的超聲波功能電路可以測量2cm-400cm這個距離范圍。精度相對夠用,測量的最小距離在3mm左右。在水位的測量這個方面經(jīng)常會用到,而且價格便宜,使用起來小巧方便,將其連接好粘在容器表面即可。通過對以上兩種超聲波傳感器的類型進行比較,探頭類超聲波傳感器雖然更加精細(xì)適用,但價格過于昂貴,在本次設(shè)計中HC-SR04型號超聲波功能電路精度、距離都符合設(shè)計要求,且價格便宜在本次設(shè)計中性價比遠高于探頭類超聲波傳感器,因此選擇了第二種方案。2.2.5放水方式選擇方案一:采用單片機來控制步進電機功能電路。讓步進電機與擋板相連,通過旋轉(zhuǎn)來控制水管與高低位水池之間的連接及關(guān)閉,通過在上位機設(shè)置旋轉(zhuǎn)的角度大小來控制水流流速。方案二:采用直角電磁閥來控制高低水池的連通和關(guān)閉,當(dāng)接入12V電壓時電磁閥打開水流從高位水池流向低位水池,此外電磁閥的密封性非常好,不會發(fā)生由于沒有密閉好而漏水的現(xiàn)象。這就增加了使用的安全性,價格也相對較便宜,所需要的功率較小,可以更好的節(jié)約能源。相互比較采用步進電機控制雖然可行,但是電磁閥控制液體流動的管道比較容易。步進電機還需考慮水管閉合是否嚴(yán)密有無漏水,本設(shè)計也并沒有對水流的流速有固定要求,因此使用電磁閥這個方案更加合理,經(jīng)濟。2.2.6無線傳輸方式選擇方案一:采用JDY-23藍牙5.0功能電路進行無線數(shù)據(jù)傳輸進上位機。JDY-23模塊使用的標(biāo)準(zhǔn)是5.0協(xié)議,該模塊工作在2.4GHz的頻段上,發(fā)射距離最大為60米,支持AT指令修改設(shè)備名字、波特率等,使用起來非常方便。默認(rèn)的配置即可快速使用藍牙進行產(chǎn)品應(yīng)用。與單片機通過串口來進行通信,處于從機模式。JDY-23模塊使用1.8V-3.6V電壓供電。方案二:無線數(shù)據(jù)傳輸使用ESP8266功能電路。ESP8266功能電路可刷入固件。并使用AT指令進行WIFI熱點的創(chuàng)建。建立的熱點范圍大,信號強。手機連接時創(chuàng)建熱點和服務(wù)器方便,只需輸入端口號和IP地址。ESP8266模塊在數(shù)據(jù)傳輸方面做到丟包小,傳輸穩(wěn)定。現(xiàn)在ESP8266的價格在10元左右,非常便宜。ESP8266的工作模式可以選擇創(chuàng)建服務(wù)器,也可以選擇客戶端模式,也可以選擇兩種模式共用,靈活性很高。ESP8266連接互聯(lián)網(wǎng)之后可以隨時隨地進行數(shù)據(jù)傳輸。ESP8266的供電電壓為3.3V,使用串口通信,正好與單片機兼容。綜合兩種方案對比,ESP8266模塊采用建立WIFI的方式進行數(shù)據(jù)傳輸,傳輸距離遠,信號強,傳輸數(shù)據(jù)準(zhǔn)確且價格較低。因此采用ESP8266進行無線數(shù)據(jù)傳輸。硬件設(shè)計本次設(shè)計采用立創(chuàng)EDA來進行硬件部分原理圖和PCB的繪制,使用立創(chuàng)EDA網(wǎng)頁版可以隨時隨地的讓用戶進行硬件開發(fā),其內(nèi)部置有與立創(chuàng)商城同步的原件封裝,極大地節(jié)省了開發(fā)時間和開發(fā)難度。原理圖和PCB繪制完成后,可以在立創(chuàng)商城直接下單打板,方便快捷。3.1單片機最小系統(tǒng)STM32103C8T6本次設(shè)計使用了STM32103C8T6芯片來設(shè)計系統(tǒng)的控制功能電路。C8T6采用了Cortex?-M3的架構(gòu),它的處理速度很快,性能非常強勁。將最小系統(tǒng)功能電路通電后,芯片經(jīng)過倍頻,它的時鐘頻率就可以達到72Mhz,芯片在非工作狀態(tài)下會自動進入睡眠、停機和待機模式。這款芯片在嵌入式的設(shè)計中用途非常廣泛。在它的內(nèi)部設(shè)有高速的震蕩器頻率為4-16Mhz,與此同時還包含有RC振蕩器頻率為8Mhz和40Khz。在進行硬件設(shè)計時,可以選擇不同的兼容模式來調(diào)試SWD串行接口和JTAG接口。在STM32F103C8T6的內(nèi)部包含了3個16位可以同時進行信號同步的定時器,并且每個同步定時器都附帶有4個用于可以同時進行控制輸入信號捕獲/控制輸出信號比較的PWM的8位脈沖頻率計數(shù)器控制通道。和兩個看門狗定時器具備兩個ISP同步串行接口,主動地CAN接口和USB2.0接口。在單片機的VSS_2和VDD_2連接電源濾波電路,可以消除當(dāng)芯片工作時候電流變化導(dǎo)致的電源的微小電壓波動,這樣波動就不容易影響到其他的電源引腳。如圖3.1所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s11單片機STM32103C8T6最小系統(tǒng)3.1.1單片機復(fù)位電路和晶振電路C8T6控制功能電路的基礎(chǔ)外圍電路是晶振電路和復(fù)位電路。當(dāng)管腳NRST輸入的電壓轉(zhuǎn)換為低電平時,單片機MCU被置為復(fù)位狀態(tài)。即為單片機的復(fù)位按鍵按下的時候,此時,復(fù)位操作不會將單片機的片內(nèi)RTC寄存器及程序存儲器進行重置。NRST引腳的電平被拉低。重新刷新片內(nèi)SRAM和配置更新STM32芯片的內(nèi)部寄存器,當(dāng)復(fù)位管腳的電平由一個低電平調(diào)整變?yōu)橐粋€高電平之后,單片機就會重新開始從內(nèi)部寄存器地址0來執(zhí)行程序。在這里把CLK和DIO的引腳連線后通過排針引出,以此來為后續(xù)的燒錄,即使用STlink下載器連接進行SWD模式下載做鋪墊。晶振電路提供了8M時鐘晶振為STM32單片機正常工作的提供外部時鐘晶振,當(dāng)系統(tǒng)在正常工作時候,采用外部高速時鐘源。如圖3.2所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s12單片機復(fù)位和時鐘晶振電路3.1.2單片機BOOT0和BOOT1通過BOOT0和BOOT1兩個接口來設(shè)置單片機的工作模式。在為0-X的時候就是執(zhí)行正常的工作模式,從閃存啟動;當(dāng)為1-0的時候是從系統(tǒng)存儲器進行啟動,具體功能是廠家設(shè)置的;當(dāng)為1-1的時候是從芯片內(nèi)置的SRAM進行啟動執(zhí)行,這是用來在執(zhí)行調(diào)試的時候使用的模式。如果想使系統(tǒng)在正常的工作模式,BOOT0和BOOT1就需要直連一個10K限流電阻接地,如圖3.3所示。避免芯片是直連接地?fù)p壞內(nèi)部結(jié)構(gòu)。圖STYLEREF1\s3.SEQ圖\*ARABIC\s13BOOT0和BOOT1連接示意圖3.2太陽能充電功能電路太陽能充電功能電路使用了CN3722芯片來設(shè)計。先將太陽能板接入電路,然后太陽能板輸出的電壓經(jīng)過CN3722太陽能充電功能電路之后給三節(jié)串聯(lián)的鋰電池充電。本次使用的這個芯片可以智能的追蹤太陽能最大的功率,即到所設(shè)置的功率點時才可以進行充電。充電模式還有兩種方式可選,根據(jù)設(shè)置可以設(shè)置為恒壓和恒流。其中太陽能充電電路如圖3.4所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s14太陽能充電電路原理圖首先介紹恒壓充電方式,CN3722外接的R13和R15構(gòu)成了電壓的反饋電路,根據(jù)改變R13和R15電阻的數(shù)值可以達到控制恒壓充電時電池端電壓的效果。其中CN3722上面的FB管腳的電壓來決定充電功能電路是否進入恒壓充電模式,當(dāng)FB管腳的電壓在2.416V左右時,整個工作電路就會自動變成恒壓充電模式。在這種狀態(tài)下,給鋰電池充電的電流會慢慢地下降,但是測量鋰電池兩端的輸出的電壓保持不變。根據(jù)管腳FB的偏置電流和R13\R15的數(shù)值就可以計算出在恒壓模式下,三節(jié)鋰電池串聯(lián)后兩端的電壓Vbat如(3-1)所示:VBAT其中,IB作為管腳FB的偏置電流,給定的值為50nA。其中電池的電壓反饋電路如圖3.5所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s15電池電壓反饋電路除此之外,CN3722芯片設(shè)計的充電功能電路還具有恒流充電功能,這個時候的電流參數(shù)只由Rcs1來設(shè)置,具體的計算公式如(3-2)所示:ICH在上述公式中,Ich就是充電時候的恒流電流,電路圖中Csp和Bat之間連接了一個Rcs1電阻,這個電阻即為這個模式下的檢測電阻。在使用整個硬件時間長之后,電池由于內(nèi)部容量較低,當(dāng)其內(nèi)部的電壓低于恒壓時充電電壓的66.7%的時候,為了還可以給電池充電,這是CN3722就會給鋰電池涓流充電。充電的電流在恒流充電時的15%左右。當(dāng)充電功能電路處于恒壓的充電模式下時,給電池充電的電流會慢慢變小,這樣即使是太陽能板接收的光源較暗時,電池板輸出一個很小的功率也可以給電池進行充電,直至充電的電流徹底消失。在充電的時候,電池的接口Bat與地線之間的電壓一直保持不變,這樣就保證了電池不會產(chǎn)生過度充電的現(xiàn)象,避免了電池的損壞。當(dāng)太陽能板輸出的電壓比三節(jié)串聯(lián)的鋰電池電壓低的時候,充電功能電路就會進入低功耗睡眠模式,這就可以防止電池的電量一直被消耗。CN3722采用了16管腳TSSOP封裝,管腳的功能示意圖如圖3.6所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s16CN3722管腳功能示意圖CN3722可以追蹤太陽能板輸出的最大功率。具體方法采用了恒壓法,根據(jù)太陽能板的伏安特性曲線可以得出,在溫度已經(jīng)給定了的情況下,不同的光強照射太陽能板,太陽能板輸出最高功率時,所對應(yīng)的輸出的電壓基本上是一樣的。即只要使得太陽能電池的輸出端的電壓是一個恒定的電壓,就可以確保在該環(huán)境條件下光照強度不同時,太陽能電池仍然可以輸出它的最大功率。但是如果溫度是不給定的,即發(fā)生溫差變化時,太陽能的輸出會按照-0.4/°C來變化。在25攝氏度時,芯片上MPPT兩端電壓約為1.04V,配合上R4和R5兩個分壓電阻,就可以對太陽能輸出進行追蹤。這就使得該芯片在溫度變化較大的時候非常適用于給電池充電。在25℃時,太陽能電池最大功率點電壓由下下面的公式(3-3)決定:VMPPT其中最大功率點如圖3.7所示:圖STYLEREF1\s3.SEQ圖\*ARABIC\s17太陽能電池最大功率點原理圖穩(wěn)壓功能電路本次設(shè)計所采用的模塊部分和主控芯片部分所需電壓分別為5V和3V,所以當(dāng)鋰電池對整個系統(tǒng)供電時需要在之后加上兩個穩(wěn)壓電路,首先為了給超聲波模塊和壓力傳感器模塊進行供電,需要將三節(jié)鋰電池串聯(lián)產(chǎn)生的12V電壓降壓到5V,本設(shè)計采用MP2482DN-LF-Z型號DC-DC開關(guān)電源芯片,其原理圖如圖3.8所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s1812V降5V電路原理圖其中IN為電源輸入,需要接入一個耐壓值較高的電容,防止短暫的高峰值輸入電壓輸入到芯片的輸入引腳,再接一個電容相當(dāng)于濾波電路的作用。FB管腳是電壓反饋,在輸出電壓到GND之間接入電阻,使得輸入到該引腳的電壓為0.8V,計算公式如(3-4)所示:VFBEN為芯片控制,工作的時候需要給高電平,這個高電平最小電壓是1.5V,原理圖中給這個EN引腳接到了8V這樣默認(rèn)這個芯片就是有電壓輸入就工作了。PG為電源工作良好指示引腳,需要外加一個100K的上拉電阻。VCC需要接一個0.1uf電容來給芯片內(nèi)部提供一個偏差。BST跨一個電容是為了保持接入BST的電壓為5V。之后在給主控功能電路STM32103C8T6和通信功能ESP8266供電時需要把5V電壓降到3.3V,此部分采用HT7833型號LDO線性穩(wěn)壓芯片,整個穩(wěn)壓過程在HT7833中完成,外接電容來進行濾波,其中1k電阻和LED是檢驗此部分電路是否正常工作。電路圖如圖3.9所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s195V降3.3V電路原理圖3.4電磁閥功能電路本次設(shè)計選用了2路12V繼電器控制功能電路作為對電磁閥觸發(fā)的開關(guān),DC+接電源正極,DC-接電源負(fù)極,采用IN1作為1路信號觸發(fā)端,當(dāng)接收到單片機信號時,高電平觸發(fā)電磁閥導(dǎo)通,高位水池開始向低位水池防水,當(dāng)水位高于低位水池設(shè)定的預(yù)設(shè)值或者高水位放水量高于預(yù)設(shè)值時,低電平觸發(fā)電磁閥閉合,高位水池停止放水。3.5超聲波測距功能電路采用超聲波功能電路來測量低位水池的水位,其中最常用的型號為HC-SR04。采取這種型號的超聲波功能電路可以測量2cm-400cm這個距離范圍。精度相對夠用,測量的最小距離在3mm左右。此部分的功能電路由模塊整體控制功能電路和超聲波發(fā)射器、接收器組成。首先將電路上的VCC給一個5V的電壓,TRIG這個引腳用來輸入高電平的觸發(fā)信號,ECHO的作用是傳出信號回響,GND接地。設(shè)計中超聲波功能電路接入原理圖如圖3.10所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s110超聲波模塊接入原理圖超聲波測距功能電路的原理非常簡單。首先作為控制口的TRIG引腳發(fā)送一個10us以上的高電平信號,然后在接收口ECHO處等待它的高電平輸出,當(dāng)它剛發(fā)出時瞬間采集到上升沿信號,這時內(nèi)部的定時器就開始記錄時間,一直等待ECHO這個端口的上升沿信號轉(zhuǎn)變?yōu)橄陆笛?,這時關(guān)閉內(nèi)部的定時器,單片機讀取出定時器所記錄的時間。這段時間就是從超聲波發(fā)出到接觸到低位水池水面再傳回的時間,再除以2就是此模塊到低位水池水面的距離。然后通過不斷地測量即可得到低位水池的實時水位。具體公式如(3-5)所示:測試距離=(高電平時間?聲速(340M/S))/2(3-5)超聲波模塊的時序圖如圖3.11所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s111超聲波模塊時序圖3.6壓力傳感器測壓功能電路本次設(shè)計中的高位水池水位測量采用了間接測量的方式,用應(yīng)變片與HX711AD轉(zhuǎn)換功能電路相連來測出高位水池的水位重量。HX711AD轉(zhuǎn)換功能電路與單片機相連非常簡單,電路的控制信號全部都是由芯片的管腳來驅(qū)動,對芯片本身的寄存器不需要編程。HX711轉(zhuǎn)換功能電路內(nèi)含有兩個通道,其中A通道具有128倍增益或者64倍增益,B通道只有32倍的增益。此芯片內(nèi)部的時鐘振蕩器不需要接任何外部功能電路,極大地減少了元器件的使用,簡化了設(shè)計難度。與此同時支持通電自動復(fù)位,這樣就使得啟動芯片不需要再對其初始化進行其他操作。HX711芯片的引腳圖如圖3.12所示,功能圖如圖3.13所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s112HX711AD芯片引腳圖圖STYLEREF1\s3.SEQ圖\*ARABIC\s113HX711管腳功能圖HX711AD轉(zhuǎn)換功能電路的兩個通道,本次設(shè)計采用了A通道,將應(yīng)變片被高位水池壓實后產(chǎn)生的電壓放大128倍。A通道將其放大后采樣輸出24bit的AD轉(zhuǎn)換數(shù)據(jù),采樣部分標(biāo)志位由DOUT和SCK端口來配置。本次設(shè)計中將DOUT配置PB1,SCK配置PB0。當(dāng)DOUT的電平是高電平的時候,AD轉(zhuǎn)換不能輸出數(shù)據(jù)。當(dāng)DOUT的電平是低電平的一瞬間,SCK會輸入25個時鐘脈沖,第一個的上升沿就是讀出的24位數(shù)據(jù)最高位,等到第25個脈沖變?yōu)橄陆笛氐囊凰查g,就可以讀出HX711轉(zhuǎn)換的AD值。通過程序?qū)D值反向轉(zhuǎn)換為重力值即可測出高位水池的水位重量。HX711通道時序圖如圖3.14所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s114HX711通道時序圖3.7ESP8266通信功能電路在本次設(shè)計中使用ESP8266通信功能電路來進行無線數(shù)據(jù)通信。ESP8266系列無線模塊是一種非常熱門、性價比很高的WIFI通信模組。ESP8266不僅功能強大,并且使用方便。只需要使用AT指令就可以實現(xiàn)無線通信的大部分功能。ESP8266價格低廉,非常適合低成本的設(shè)計方案。ESP8266通信功能電路在工作的時候主頻最高能夠達到160Mhz,并且支持使用UART串口,該串口的速率最高能夠達到4Mbps。因此在較寬的波特率范圍內(nèi)可以和單片機進行快速的數(shù)據(jù)傳輸。ESP8266通信功能電路擁有多種睡眠模式,在處于深度睡眠模式時,電流會低至20uA,因此該通信功能電路的功耗很低。在本次設(shè)計中,單片機控制功能電路與ESP8266通信功能電路的供電電壓都是3.3V,兩者進行共地連接。ESP8266引腳EN和引腳RST接3.3V,使ESP8266正常工作,不產(chǎn)生復(fù)位。正常模式下引腳GPIO0懸空;再給ESP8266芯片刷入固件時,要將GPIO0引腳接地,給一個低電平,此時ESP8266會自動進入下載模式。ESP8266的兩個串口引腳TXD和引腳RXD分別與單片機的串口1的GPIO口PA2和PA3相連,通過串口進行數(shù)據(jù)的傳輸。在本次設(shè)計中ESP8266通信功能電路圖如圖3.15所示。圖STYLEREF1\s3.SEQ圖\*ARABIC\s115ESP8266原理圖軟件設(shè)計在完成硬件部分的設(shè)計后,接下來就是軟件的設(shè)計,在整個系統(tǒng)的設(shè)計中,軟件是十分關(guān)鍵的部分。本次設(shè)計軟件主要分為兩個部分,單片機軟件部分和手機APP軟件部分,單片機軟件部分主要是對于單片機串口I/O口的初始化、中斷優(yōu)先級分組、工作的頻率,傳感器測量和數(shù)據(jù)保存等部分進行的設(shè)計。單片機軟件設(shè)計在KeiluVison5中進行。編寫完系統(tǒng)所用的程序后,將HEX文件通過ST-Link軟件下載到STM32F103C8T6單片機芯片中。本次設(shè)計使用了C語言來對單片機部分進行了編寫,同時應(yīng)用到了ST公司的固件庫,相較于匯編語言而言更易于理解。手機APP的編寫使用Androidstudio進行編寫。在Androidstudio中使用Java編寫好代碼后編譯生成手機APP,然后在手機上安裝編譯生成的APP。手機通過WIFI與單片機系統(tǒng)連接。4.1系統(tǒng)主程序本次設(shè)計的系統(tǒng)主程序首先是對整個系統(tǒng)進行初始化,然后系統(tǒng)進行功能模塊的檢測,如果模塊存在并且能正常工作,則開始進入程序操作執(zhí)行等待命令。系統(tǒng)的開始啟動后,首先進行AndroidAPP與硬件系統(tǒng)的WIFI連接,連接成功后進行初始化操作,出現(xiàn)提示初始化成功,高位水池下的壓力傳感器開始實時測量高位水池當(dāng)前水位,同時超聲波模塊對低位水池的水位也進行實時監(jiān)測,當(dāng)?shù)臀凰氐漠?dāng)前水位低于所設(shè)置的預(yù)設(shè)值(設(shè)置的預(yù)設(shè)值同時也是高位水池的最大放水量)時,電磁閥打開,水流從高位水池注入低位水池,直到低位水池監(jiān)測水位高于閾值,電磁閥關(guān)閉,在測量的同時將高低水位狀態(tài)以及電磁閥的狀態(tài)封進json數(shù)據(jù)包,通過ESP8266無線傳輸模塊傳入騰訊云,每傳入一次數(shù)據(jù)之后對單片機內(nèi)部緩存數(shù)據(jù)進行清除,用戶打開手機APP,進入系統(tǒng)的主界面,用戶可以在下方看到當(dāng)前的具體時間。在APP界面上可以顯示當(dāng)前實時的水位信息,通過對閾值的設(shè)置可以調(diào)節(jié)高低水池水位報警的預(yù)警值,當(dāng)高低水池水位低于所設(shè)置閾值時,APP界面出現(xiàn)報警彈窗,點擊歷史數(shù)據(jù)即可彈出高低水池歷史的水位記錄以及報警記錄。系統(tǒng)主程序的流程圖如圖4.1所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s11系統(tǒng)主函數(shù)流程圖壓力傳感器測水位程序壓力傳感器測水位程序的設(shè)計是利用HX711AD值反向轉(zhuǎn)換重力值再通過重量反向求出體積得到高度實現(xiàn)對高位水池水位進行實時監(jiān)測的。首先將HX711AD轉(zhuǎn)換功能電路初始化,然后讀取其AD采樣的數(shù)值,當(dāng)高位水池未加水時,測量出高位水池的毛皮重量AD值,然后高位水池開始注水,此時測量出高位水池注水后加上高位水池毛皮重量的AD值,通過HX711實時采集的注水后總體AD值減去未加水時高位水池毛皮重量的AD值即可得出高位水池中水量的重量AD值,通過AD反向轉(zhuǎn)換公式(4-1):Weig?t_S?iwu=(s32)÷((float)Weig?t_S?iwu從而得到高位水池中水的重量,其中因為不同的應(yīng)變片產(chǎn)生的電壓與受力的斜率特性曲線不是完全一樣,因此,在使用不同的應(yīng)變片時都需要對GapValue這個除數(shù)進行校準(zhǔn),這樣才能有一個很高的精度。得到高位水池測得水的重量之后,將數(shù)據(jù)傳輸給單片機,再由主函數(shù)中的水位計算公式(4-2):Hig?得到高位水池中的水位具體值,其中1255為本次設(shè)計中高位水池箱體重量,41.6為高位水池箱體底面積。壓力傳感器測水位程序流程圖如圖4.2所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s12壓力傳感器測水位程序流程圖超聲波測距程序本次設(shè)計采用的超聲波測距功能電路控制程序設(shè)計思路如下。首先進行超聲波的初始化配置,配置內(nèi)容包括此模塊的IO口初始化和定時器4初始化。然后令TRIG=1輸出一個高電平,延時后令TRIG=0,這時就可以觸發(fā)超聲波測距功能電路開始測距,判斷當(dāng)ECHO=1時,打開定時器4,當(dāng)ECHO=0時,關(guān)閉定時器4。將定時器4記錄的時間賦值給T,然后根據(jù)超聲波測量到物體距離的公式(4-3):lengt?Temp=((float)t/58.0)(4-3)從而得到超聲波從發(fā)出到低位水池水面再傳回接收所經(jīng)過的距離,再將其取一半,即為超聲波到水面的距離,將數(shù)據(jù)傳送給單片機后,用低位水池的高度減去超聲波測距所測得距離即為低位水池此時的水位。程序流程圖如圖4.3所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s13超聲波測距程序流程圖電磁閥放水程序本次設(shè)計中使用電磁閥模塊來進行高位水池向低位水池放水的閥門,首先將2路12V繼電器模塊控制板的信號口進行初始化,配置端口為PB11,當(dāng)?shù)臀凰氐乃坏陀谒O(shè)置的預(yù)設(shè)值時,信號口傳遞一個高電平觸發(fā)電磁閥打開,此時高位水池開始向低位水池放水,當(dāng)?shù)臀凰厮桓哂陬A(yù)設(shè)值時,信號口傳遞低電平信號,電磁閥關(guān)閉從而停止放水,然后將電磁閥狀態(tài)傳遞給單片機,至此實現(xiàn)高低水位的連通。電磁閥程序流程圖如圖4.4所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s14電磁閥程序流程圖4.5ESP8266無線傳輸程序本次設(shè)計通過ESP8266通信功能電路進行單片機與上位機的數(shù)據(jù)傳輸,ESP8266所用IO口為單片機的串口IO口,因此將串口進行初始化,ESP8266將從單片機接收到的高低水池水位值封入json數(shù)據(jù)包,數(shù)據(jù)名稱為message_obj,然后進行連接騰訊云所需配置,并將message_obj數(shù)據(jù)包再次封入root數(shù)據(jù)包,連接成功后將封包好的json數(shù)據(jù)傳入云端,傳輸完畢后清除本模塊的數(shù)據(jù)緩存,釋放空間。ESP8266通信功能程序流程圖如圖4.5所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s15ESP8266通信功能程序流程圖4.5.1ESP8826模塊配置ESP8266作為一種可以單獨運行的自主WIFI網(wǎng)絡(luò)配置方案,可以作為設(shè)計的附屬直接連接到其他主機MCU。EX8266EX配備了應(yīng)用程序,作為所有設(shè)備內(nèi)唯一的應(yīng)用程序處理器,可直接從外置的閃存開始進行操作。其內(nèi)部配置了緩存空間,可以提高設(shè)計的系統(tǒng)性能,減小對單片機的內(nèi)存容量要求。ESP8266通信功能電路支持以下三種工作方式:STA

模式:ESP8266通信功能電路通過外部設(shè)置的路由器來連接到互聯(lián)網(wǎng)上面,這樣就使得手機或者電腦等移動端可以通過連接互聯(lián)網(wǎng)從而達到對設(shè)備遠程控制操作。AP

模式:這是一種無線的局域網(wǎng)控制,ESP8266可以直接作為熱點與手機或者電腦直連。STA+AP

模式:顧名思義就是以上兩種模式共同存在,用戶可以通過互聯(lián)網(wǎng)對兩種操作模式實現(xiàn)無縫轉(zhuǎn)換,這樣就提供了多種選擇,方便用戶操作。本次的高低水池水位監(jiān)測系統(tǒng)設(shè)計使用了ESP8266通信功能電路的STA模式,ESP8266通信功能電路通過智能配網(wǎng)從而連接到與手機在同一環(huán)境下的互聯(lián)網(wǎng)絡(luò),之后ESP8266通信功能電路將通過互聯(lián)網(wǎng)連接到基于MQTT協(xié)議搭建好的騰訊云物聯(lián)網(wǎng)服務(wù)器進行傳輸數(shù)據(jù)。ESP8266通信功能電路連接互聯(lián)網(wǎng)需要對ESP8266進行配置,在本次的設(shè)計中,使用固件對ESP8266進行配置。4.5.2固件的選擇固件存儲在EEPROM或FLASH芯片中,它可以根據(jù)用戶指定的刷新程序來進行升級。作為BAI系統(tǒng)的最底層工作軟件,是硬件設(shè)備的靈魂。有些硬件設(shè)備只由固件組成,因此他決定了硬件設(shè)備的功能和性能優(yōu)劣。本次高低水池水位監(jiān)測系統(tǒng)設(shè)計所使用的固件是基于MQTT協(xié)議的AT指令固件。ESP8266載入該固件后,只需要對ESP8266進行服務(wù)器的域名、用戶名、ID、用戶密碼、訂閱TOPIC等參數(shù)的配置,配置完成后就可以向配置好的對應(yīng)的服務(wù)器進行數(shù)據(jù)傳輸。通過串口向ESP8266通信功能電路發(fā)送數(shù)據(jù)設(shè)置參數(shù)即可完成配置。4.5.3固件的燒寫圖STYLEREF1\s4.SEQ圖_\*ARABIC\s16ESP8266接口圖ESP8266通信功能電路接口圖如圖4.6所示,在載入固件時引腳的連接情況如下:ESP8266USB-TTL;-VCC/CH_PD/部分模塊標(biāo)注ENVCC;-GND/GPIO0GND;-TXDRXD;-RXDTXD;-RST暫時懸空使用ESP固件燒寫工具載入固件,燒寫位置:0x00000000,配置好各項參數(shù):SPISPEED40MHzSPIMODEDOUTFLASHSIZE8Mbit在進行固件的燒錄時,ESP8266通信功能電路的GPIO0需要與地線進行連接,此時為下載模式,若將其懸空就是正常的工作模式。燒錄時首先要將FLASH閃存給清除掉,鼠標(biāo)單擊ERASE按鈕,這時就會彈出“正在等待上電重啟”窗口,然后將ESP01模組的電源線拔掉再上電就可以進入擦除模式,也可將ESP8266的RST引腳與地線短暫相連即可進入擦除模式。擦除閃存成功之后,點擊START按鈕,然后進入燒寫模式,重復(fù)上一步的操作步驟,這時會彈出“正在等待上電重啟”窗口,然后將ESP01模組的電源線拔掉再上電即可進入燒寫模式。等待直至載入條完成,拔掉GPIO0連接的地線,令其懸空就會進入工作模式。4.5.4EPS8266配網(wǎng)及參數(shù)的配置燒錄好固件后需要對ESP8266通信功能電路進行配網(wǎng)設(shè)置。當(dāng)燒寫固件完成之后,第一次上電會進入到快閃模式也就是配網(wǎng)的模式內(nèi),如果在設(shè)置之前ESP8266通信功能電路已經(jīng)配置過WIFI網(wǎng)絡(luò),就會使得其開機后3秒左右直接與互聯(lián)網(wǎng)相連,進入到正常的工作模式。如果要連接一個新的WIFI且模組已經(jīng)配制過以前的WIFI的話,在接通電源后,模組將會嘗試登陸上次配置的WIFI,等待10秒鐘之后,若還沒有連接成功,模組就會自動進入到配網(wǎng)模式,指示燈呈現(xiàn)間接性的閃爍。ESP8266自帶配網(wǎng)功能,故使用可以配網(wǎng)的軟件即可、例如微信小程序配置軟件或者機智云等等。ESP8266參數(shù)配置說明:WZ:此字段為WZ指令的鑒權(quán)碼,必須傳入,否則無法使用--wenzheng.clubServer:此字段為MQTT服務(wù)器的域名本次使用騰訊云物聯(lián)網(wǎng)平臺IP地址為106.55.124.154ID:此字段為該產(chǎn)品中該設(shè)備的MQTT_ID本次使用訊云物聯(lián)網(wǎng)平臺搭建的設(shè)備ID為:“LGG3PS2EH2MCS”Port:騰訊云物聯(lián)網(wǎng)服務(wù)器端口:1883User:此字段為該產(chǎn)品中該設(shè)備的MQTT_USER本次使用訊云物聯(lián)網(wǎng)平臺搭建的MQTT_USER為:"F9EMI7DTHASTM32;12010126;YDZOK;1656042108"Password:此字段為該產(chǎn)品中該設(shè)備的MQTT_PASSWORD本次使用騰訊云物聯(lián)網(wǎng)平臺搭建的MQTT_USER為:"096278447c2fcfa67f820754e500c0091af23a2970a237ea4f0de3e035a3f48f;hmacsha256"Topic:此字段為該產(chǎn)品中該設(shè)備的發(fā)布信息的主題本次使用訊云物聯(lián)網(wǎng)平臺搭建的topic為:"F9EMI7DTHA/STM32/event"Message:為要發(fā)布的對應(yīng)主題的消息Sub_topic:此字段為該產(chǎn)品中該設(shè)備的接收(訂閱)信息的主題本次使用訊云物聯(lián)網(wǎng)平臺搭建的topic為:"F9EMI7DTHA/STM32/control"當(dāng)這些要傳送的參數(shù)設(shè)置完成以后,通過串口發(fā)送給ESP8266,ESP8266接收到這些指令,就會以數(shù)據(jù)封包的形式通過WIFI連接到服務(wù)器并發(fā)送上去,當(dāng)服務(wù)器有數(shù)據(jù)發(fā)送給ESP8266時,ESP8266就會通過串口接收到這些數(shù)據(jù),并打印出來。串口調(diào)試助手發(fā)送的封包配置信息的示例如下所示:{"wz":"wenzheng.club","id":"LGG3PS2EH2MCS","port":"1883","server":"106.55.124.154","user":"LGG3PS2EH2MCS;12010126;AYDG5;1652550306","password":"26860a4df4c7cb2c3f143fb3d0b7cf5792d46a068ea421425f5d2bf9e875dbec;hmacsha256","topic":"LGG3PS2EH2/MCS/data","message":"{\"battery10\":3.98,\"battery20\":3.85,\"battery30\":3.75}","sub_topic":"LGG3PS2EH2/MCS/control"}AndroidAPP界面設(shè)計手機APP界面主要分為四個部分:一,傳感器接收高低位水池水位數(shù)據(jù)顯示部分,位于整個界面的上部。通過WIFI接收到ESP8266發(fā)送的數(shù)據(jù)后將顯示在三個分別為高位水池水位、低位水池水位、電磁閥狀態(tài)的圖片框中,做到實時顯示。二,預(yù)警值上下限設(shè)置部分,位于一部分的下方。該部分主要用于對報警值進行設(shè)置,分別有高位水池水位、低位水池水位預(yù)警值上下限設(shè)置窗口,設(shè)置好的數(shù)據(jù)將通過WIFI發(fā)送到騰訊云服務(wù)器。三,歷史數(shù)據(jù)顯示部分。該部分從中心軸分為兩塊,中心軸靠左為高位水池水位、低位水池水位歷史數(shù)據(jù)顯示,中心軸靠右為高位水池水位、低位水池水位預(yù)警值上下限設(shè)置的歷史數(shù)據(jù)。歷史數(shù)據(jù)均從SQL數(shù)據(jù)庫中提取,并做到窗口滾動顯示內(nèi)容,在小區(qū)域內(nèi)做到多內(nèi)容顯示。四,報警歷史數(shù)據(jù)顯示部分。當(dāng)實時傳輸?shù)缴衔粰C的數(shù)據(jù)超過設(shè)置的上下限時,APP就會發(fā)出報警提示彈窗,提示記錄會顯示在這個部分。五,數(shù)據(jù)清除部分。設(shè)置數(shù)據(jù)清除按鍵,該按鍵可以一鍵清除所有的歷史數(shù)據(jù)資料,包括接收到的高位水池水位、低位水池水位、電磁閥狀態(tài)。SQL數(shù)據(jù)庫初始化配置本次高低位水池水位監(jiān)測系統(tǒng)所用數(shù)據(jù)庫為SQLite。這是一款A(yù)CID的關(guān)系型輕型數(shù)據(jù)庫,此數(shù)據(jù)庫存在于一個相對而言較小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。它的基本設(shè)計主要采用了一種嵌入式構(gòu)成方式,而且目前己經(jīng)在許多采用嵌入式的應(yīng)用產(chǎn)品中得到了廣泛的應(yīng)用。它所需要占用的內(nèi)存資源很低,在這些采用嵌入式的應(yīng)用設(shè)備中,可能是只需要幾百K的主機內(nèi)存容量即能就可以輕松達到設(shè)計要求。這款數(shù)據(jù)庫可以支持現(xiàn)代主流的操作系統(tǒng),例如Windows、Linux、Unix等。而且還可以使用很多種編程設(shè)計語言,比如如C#、PHP、Java等。與此同時它還具有ODBC接口,與Mysql、postgresql這兩款免費開源的大型世界著名企業(yè)數(shù)據(jù)庫資源管理軟件操作系統(tǒng)來對比的話,它的好用程度和處理速度都高于它們。本次數(shù)據(jù)庫設(shè)計思路首先在SQL里面創(chuàng)建水位監(jiān)測系統(tǒng)數(shù)據(jù)庫,將高低水池水位、電磁閥通斷、系統(tǒng)時間、報警記錄增添進數(shù)據(jù)庫,最后在添加刪除部分以提供給用戶清除緩存功能。騰訊云物聯(lián)網(wǎng)平臺搭建本次高低位水池水位監(jiān)測系統(tǒng)設(shè)計采用了騰訊云作為物聯(lián)網(wǎng)通信的平臺。騰訊云這個平臺可以給本次的數(shù)據(jù)傳輸設(shè)計提供一個安全、穩(wěn)定、高效的連接,極大地降低了本次數(shù)據(jù)傳輸部分設(shè)計的預(yù)算經(jīng)費。它可以很迅速地實現(xiàn)設(shè)備與設(shè)備之間、設(shè)備與用戶應(yīng)用之間、設(shè)備與云服務(wù)之間可靠、高并發(fā)的數(shù)據(jù)通信。采用騰訊云物聯(lián)網(wǎng)平臺可以很輕松的讓設(shè)備之間進行互動,數(shù)據(jù)上傳和下發(fā)非常的方便快捷,而且還可以與其他騰訊云相關(guān)的產(chǎn)品進行互通,可以存儲海量的數(shù)據(jù),極大地減小了設(shè)計中上位機內(nèi)存空間的占用。騰訊云所采用的系統(tǒng)結(jié)構(gòu)流程圖如圖4.7所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s17騰訊云系統(tǒng)結(jié)構(gòu)流程圖下位機的設(shè)備與騰訊云之間通過SDK來進行通信。數(shù)據(jù)基于MQTT或者CoAP協(xié)議來進行傳輸,減小了網(wǎng)絡(luò)的帶寬使用。騰訊云在安全方面引入網(wǎng)絡(luò)安全傳輸協(xié)議(TLS、DTLS),可以有效的防范非法接入和數(shù)據(jù)竊取、篡改等異常情況的發(fā)生。介于設(shè)備資源和使用場景的多樣性,支持選擇非對稱(設(shè)備證書加密驗證、適用高安全要求場景)和對稱加密(密鑰加密驗證、適用資源受限設(shè)備)方式。MQTT通信協(xié)議是基于TCP和TLS加密接入的,是當(dāng)前主流的物聯(lián)通信協(xié)議。它被廣泛的應(yīng)用于設(shè)備之間消息的通信或者需要收取反向控制信令、配置時的場景。本次高低位水池水位監(jiān)測系統(tǒng)的騰訊云物聯(lián)網(wǎng)平臺搭建結(jié)果如圖4.8所示。圖STYLEREF1\s4.SEQ圖_\*ARABIC\s18騰訊云物聯(lián)網(wǎng)平臺搭建示意圖5組裝和測試在完成硬件設(shè)計和軟件設(shè)計之后就是板子的組裝與調(diào)試,在此過程中,需要進行軟件與硬件的調(diào)試整合。需要調(diào)試的模塊分為太陽能充電功能電路、電磁閥功能電路、超聲波測距功能電路、壓力傳感器測壓功能電路、ESP8266通信功能電路。所需設(shè)備:數(shù)字萬用表、電烙鐵、ST-link下載器、電腦、手機。所需軟件:KeiluVision5、AndroidStudio。5.1電路板焊接與測試最小系統(tǒng)板和功能模塊的設(shè)計是分開的,系統(tǒng)板與模塊之間通過長電線和杜邦線連接,所涉及的PCB打板包括最小系統(tǒng)板和充電電源模塊板,所以硬件調(diào)試的電路板分為太陽能充電功能電路板和STM32F103C8T6最小系統(tǒng)控制功能電路板。在完成打板之后,在進行元器件焊接之前需要對板子的電路進行斷路和短路測試。使用數(shù)字萬用表的蜂鳴器檔位,測量各個電路的走線是否存在斷路,短路。在將電路的短路與斷路問題排查好了之后,接下來就是元器件的焊接步驟了。因為本次設(shè)計使用的元器件大多是貼片封裝,所以需要注意在焊接器件的時候風(fēng)槍的溫度和風(fēng)力大小。焊接操作準(zhǔn)確,快速,不能夠反復(fù)的焊接。如果進行反復(fù)的焊接,容易因為風(fēng)槍長時間對原件進行加熱導(dǎo)致芯片燒壞。尤其是單片機STM32103C8T6的焊接,它的引腳之間的間隔很細(xì)小,使用的焊錫的量和風(fēng)槍加熱時間需要有很好的把控,不然引腳之間容易黏連到一起造成短路。將元器件焊接好到電路板上之后,還需要進行一次的短路和斷路的檢查。之后要檢查各個元器件是否有焊接不良的情況。確認(rèn)沒有問題后即可進行上電測試,在上電測試前最好進行一下電源試觸。再沒有問題之后,上電進行上電測量。將焊接好的電路板元器件與原理圖PCB進行比對,看看是否有元件焊接錯誤,之后對各個部分電路進行電壓測試,看是否與原理圖中設(shè)計的理論電壓一致。5.1.1硬件測試的問題在進行系統(tǒng)整體測試的時候,發(fā)現(xiàn)模塊可以成功初始化,但是串口并不能接收到超聲波傳感器和壓力傳感器的數(shù)據(jù),進行單片機復(fù)位后依舊出現(xiàn)如上情況,斷電后檢查模與最小系統(tǒng)板之間的接線,PCB打板是否由于磕碰出現(xiàn)了斷路,經(jīng)檢查均未出現(xiàn)問題,最后檢查超聲波接口與系統(tǒng)板之間焊上的電線發(fā)現(xiàn)VCC和TRIG扭到了一起,GND和ECHO扭到了一起導(dǎo)致超聲波模塊不能正常工作,使得單片機不能接收到數(shù)據(jù)。5.1.2硬件解決的方法通過對超聲波模塊與最小系統(tǒng)板的重新焊接,并在各個接口處用熱熔膠進行隔開,最終解決了硬件問題使得硬件系統(tǒng)能夠正常工作。5.2軟件測試軟件的程序測試使用了KeiluVision5,根據(jù)自己設(shè)計的使用需求來自行加入運行庫,現(xiàn)在硬盤中新建一個本次軟件工程的文檔,之后將單片機所需要的運行庫添加進去。打開軟件,首先點擊Project,選擇新建工程,填寫好工程文件命名,保存。接下來會彈出單片機型號的選擇,選擇STM32103C8然后確定。然后打開工程文件夾,將啟動程序添加到自建的文件夾CORE中,STM32F103C8T6所需要的運行庫添加到自建的STM32F10x_FWLib文件夾中,系統(tǒng)文件添加到SYSTEM中,最后將本次設(shè)計所需要的硬件驅(qū)動程序添加到自建的HARDWARE文件夾。然后回到Keil5軟件頁面,點擊OptionsTarget,在彈出窗口點擊C/C++將剛才導(dǎo)入的程序文件夾導(dǎo)入到Keil5中,在USER文件夾中添加main主函數(shù),代碼編寫完成后進行編譯,編譯完成之后即可通過ST-Link將程序下載到單片機。經(jīng)過以上的操作之后就可以對系統(tǒng)的程序功能來進行測試了。5.2.1軟件測試的問題在進行程序調(diào)試測試的時候,因為需要根據(jù)調(diào)試的功能添加一些不同的變量和函數(shù)體。有時候需要新增功能從而添加新的變量,但是忘記了在主函數(shù)前做定義。因此執(zhí)行下來出現(xiàn)未知的錯誤。在一些臨界的數(shù)據(jù)處理上沒有進行很慎重的問題思考,往往沒有按照程序設(shè)計思路實現(xiàn)相應(yīng)的功能需求。在壓力傳感器的AD轉(zhuǎn)換校準(zhǔn)方面由于不同型號的應(yīng)變片所具有的特性曲線不同,導(dǎo)致程序所測量的毛皮重量產(chǎn)生了誤差,初始重量應(yīng)為0,但實際測量并不能完全為0。在超聲波測距代碼的編寫上,因為超聲波模塊在測距時低位水池會產(chǎn)生水波紋同時超聲波模塊固定并不能與水面完全垂直,導(dǎo)致測距精度達不到預(yù)期設(shè)計要求,這樣的結(jié)果會對電磁閥的通斷以及上位機報警產(chǎn)生影響。初始程序設(shè)計是考慮設(shè)計使得低位水池在測距時保持在一個恒定的值,但是實際是很難做到這樣的。因為設(shè)計是一個恒定的水位值,當(dāng)?shù)臀凰氐陀谠O(shè)定的閾值的時候,繼電器工作使得電磁閥打開,高于設(shè)定值的時候繼電器斷開電磁閥關(guān)閉。這樣會上下在這個值上波動,導(dǎo)致繼電器往復(fù)開關(guān),減小系統(tǒng)的使用壽命。5.2.2程序解決的辦法在壓力傳感器校準(zhǔn)這個問題上,只能通過不斷改變GapValue這個校準(zhǔn)除數(shù)并通過一次次的對壓力傳感器上高位水池不加水,所測得的缸重與實際水缸的重量進行對比來得到最準(zhǔn)確的GapValue除數(shù)值,當(dāng)發(fā)現(xiàn)測試出來的水缸重量偏大的話,就增加該數(shù)值。如果測試出來的重量偏小時,減小該數(shù)值。最終得到當(dāng)GapValue數(shù)值為103.7時,程序中測得的水缸毛皮重量最接近實際的水缸重量。在超聲波傳感器的誤差校準(zhǔn)這個問題上,通過在程序中對超聲波的測量的低位水池水位初始值進行校準(zhǔn),使其低位水池水位初始值為0,即可減小低位水池超聲波模塊所測得的水位誤差。硬件上固定好超聲波傳感器使其不易移動,并將注水管盡可能貼近低位水池內(nèi)壁,從而使得注水時的水波紋產(chǎn)生,使得繼電器電路的使用頻率得到大大降低,從而增加了繼電器的使用壽命,這樣大大節(jié)約了系統(tǒng)電磁閥的通斷轉(zhuǎn)換。5.3功能測試在進行完軟硬件的調(diào)試之后,就需要對系統(tǒng)的整個功能進行測試。在進行功能測試的時候,主要測試太陽能板能否對鋰電池進行充電,和降壓電路降壓后輸出的電壓值是否正確,經(jīng)測試太陽能充電功能電路可以給鋰電池進行充電,不存在充不上電的問題。太陽能板在陽光照射下輸出21.4V,輸出的電壓通過CN3722太陽能充電功能電路后給三節(jié)串聯(lián)鋰電池進行充電,充電時電壓為20.3V,符合太陽能充電條件,三節(jié)鋰電池串聯(lián)理論產(chǎn)生12V電壓輸出,但因未充電使用后電壓降低實測為11.52V,測量結(jié)果如圖5.1所示,連接上太陽能板后進行鋰電池輸出復(fù)測,發(fā)現(xiàn)電壓緩慢上升,說明充電功能電路工作正常,因此得出太陽能充電電路部分實現(xiàn)了設(shè)計所需要求。之后測量兩個降壓電路輸出端電壓發(fā)現(xiàn)電壓輸出不存在問題,實測得5.01V和3.27V,測量結(jié)果如圖5.2所示,符合各個模塊以及單片機最小系統(tǒng)板供電需求。圖5.SEQ圖_\*ARABIC\s11鋰電池電壓輸出示意圖圖5.SEQ圖_\*ARABIC\s12降壓電路電壓輸出示意圖電路供電正常之后,就將下位機與電腦相連接進行數(shù)據(jù)傳輸?shù)臏y試。在電腦串口傳輸助手上檢查各個模塊是否有數(shù)據(jù)傳入,打開串口傳輸助手,設(shè)定波特率為115200,開啟傳輸后可以接收到單片機傳來的高低位水池水位,電磁閥狀態(tài)和要傳輸?shù)皆贫说姆獍链讼到y(tǒng)的功能測試基本完成,測試結(jié)果如圖5.3所示。圖5.SEQ圖_\*ARABIC\s13串口接收數(shù)據(jù)示意圖5.4超聲波測距與壓力間接測距數(shù)據(jù)分析實際功能測試完之后,就需要對超聲波測距功能電路和壓力傳感器測距功能電路傳輸?shù)臄?shù)據(jù)進行分析,從而分析各個部分的誤差。按照電路接法上電之后,通過串口調(diào)試助手來讀取超聲波模塊和壓力傳感器模塊傳來的數(shù)據(jù)與尺子所測量出的高低位水池水位進行誤差計算,從而得出測距部分誤差是否符合設(shè)計要求,其中壓力傳感器測壓功能電路測量高位水池水位誤差對照表如表5.1所示。表5.SEQ表\*ARABIC\s11壓力傳感器測量高位水池水位誤差對照表壓力傳感器測量高位水池水位誤差對照表顯示/mm46.2539.9534.4230.6726.08測量/mm46.0039.5033.9030.0026.00誤差0.54%1.14%1.53%2.23%0.31%本次設(shè)計采用壓力傳感器測量高位水池水位較為精準(zhǔn),根據(jù)上表得出壓力傳感器測量水位誤差小于5%,符合本次設(shè)計的設(shè)計要求。超聲波測距功能電路測量低位水池水位誤差對照表如表5.2所示。表5.SEQ表\*ARABIC\s12超聲波模塊測量低位水池水位誤差對照表超聲波模塊測量低位水池水位誤差對照表顯示/mm15.6922.1729.9331.8637.93測量/mm21.0028.0034.0035.0041.00誤差/mm5.315.834.073.143.07本次設(shè)計要求的低位水池水位測量的絕對誤差應(yīng)≤1cm,由于用超聲波傳感器測量時固定不垂直而產(chǎn)生了傾角導(dǎo)致誤差較大,但大體上還是符合了本次設(shè)計的精度要求,由于水池的高度有限,當(dāng)水位上漲時,由于傾角所產(chǎn)生的測量距離也在縮短,這就會使得誤差會慢慢減小,由上表也可以看出隨著水位的增高,超聲波測量低位水池水位的誤差大體上呈現(xiàn)了減小的趨勢。由于對高低水池水位實際測量使用的測量工具為毫米尺,人工讀取數(shù)據(jù)難免會產(chǎn)生偶然誤差,所以本次設(shè)計的誤差分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論