【《基于單片機的油井井口氣體溫度監(jiān)測報警系統(tǒng)設(shè)計》18000字】_第1頁
【《基于單片機的油井井口氣體溫度監(jiān)測報警系統(tǒng)設(shè)計》18000字】_第2頁
【《基于單片機的油井井口氣體溫度監(jiān)測報警系統(tǒng)設(shè)計》18000字】_第3頁
【《基于單片機的油井井口氣體溫度監(jiān)測報警系統(tǒng)設(shè)計》18000字】_第4頁
【《基于單片機的油井井口氣體溫度監(jiān)測報警系統(tǒng)設(shè)計》18000字】_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第1章概述1.1課題背景及意義當(dāng)前,我國社會和工業(yè)的發(fā)展已經(jīng)進入全新階段,對化石燃料的使用和需求也進一步加大,這種情況已經(jīng)促生越來越多的礦井將被建立,隨著礦井不斷的開采和使用,使井內(nèi)的原料不斷減少,同時也將會有越來越多的礦井出現(xiàn)廢棄情況。與此同時,隨著國內(nèi)對油田不斷開發(fā)和不斷調(diào)整,直接導(dǎo)致長期停滯的油氣井?dāng)?shù)量增加,即所占比例隨之增加。以華北油田采油二廠為例:據(jù)資料顯示,華北油田采油二廠共有880口井,其中331口井停產(chǎn),其開井率為62%,油田現(xiàn)場不在井控要求內(nèi)的長其停滯油井,則是分布在油田建設(shè)中的“不定時炸彈”。本文結(jié)合大慶油田開發(fā)區(qū)、居民居住區(qū)的廢棄油氣井可能出現(xiàn)的不安全因素及其可能出現(xiàn)的對環(huán)境污染的實際情況,對基于單片機的油井井口智能監(jiān)測報警裝置進行闡述說明。在油田中的廢棄油井中存在諸多有毒有害氣體,比較常見的有毒有害氣體,例如:甲烷氣體(化學(xué)式為CH4)、一氧化碳(化學(xué)式為CO)、硫化氫(化學(xué)式為H2S)、二氧化氮氣體(化學(xué)式為NO2)、氨氣(化學(xué)式為NH3)等氣體。由于廢棄油井不在具有利用價值,因此人們經(jīng)常忽略對廢棄油井的管理,由于管理的疏松與欠缺具有極大的可能會引起一系列的環(huán)境問題和安全問題,從而對人們的生產(chǎn)、生活造成極大的影響。因此,在廢棄油井井口放置一款可以實時監(jiān)控井口溫度大小、是否有有害氣體及其可燃?xì)怏w生成并且可以及時報警的智能監(jiān)測報警裝置至關(guān)重要。在居民區(qū)、采油井井場的廢棄油井上安裝該裝置,不僅可以推進小區(qū)、油氣田的智能化進程,同時更可以為智能化小區(qū)的建設(shè)和工業(yè)數(shù)字化生產(chǎn)即(工業(yè)4.0)注入新的動力、生機和方向。該裝置的投入使用,可以及時的發(fā)現(xiàn)油井井口是否出現(xiàn)異常情況發(fā)生,對環(huán)境的保護具有重要的價值和現(xiàn)實意義。此裝置將在廢棄油井動態(tài)監(jiān)測中扮演重要的角色,其利用將成為重要趨勢。1.2國內(nèi)外研究現(xiàn)狀目前,國內(nèi)外對油井的實時監(jiān)測及其控制分布主要在油井的生產(chǎn)過程,例如氣井井口設(shè)備數(shù)字化集成及智能控制技術(shù)。氣井井口設(shè)備數(shù)字化集成及智能控制技術(shù)為一套可以在前端對井口所有設(shè)備數(shù)據(jù)進行采集,并對采集的數(shù)據(jù)進行就地分析控制的智能控制系統(tǒng),該系統(tǒng)取用滿足氣井全生命周期排水采氣所需求的RTU,同時將現(xiàn)有井場氣井井口所有的標(biāo)準(zhǔn)化儀表和排采設(shè)備的數(shù)據(jù)進行采集、遠(yuǎn)距離傳輸通信及供電系統(tǒng)統(tǒng)一納入此檢測系統(tǒng),并根據(jù)油氣田的特性對嵌入式程序進行編制的技術(shù)[1]。氣田井口智能高效電加熱裝置的應(yīng)用:該裝置是專門為滿足氣田特殊需求而特制的加熱設(shè)備。此裝置可以改變氣田井口氣加熱常采用天然氣燃燒的火筒水套爐的方式。此裝置通過接觸器實現(xiàn)啟動與停止的控制,當(dāng)水浴的溫度超過某一個設(shè)定的數(shù)值時,電加熱器停止運行,當(dāng)水浴溫度低于某一個設(shè)定數(shù)值時,電加熱器則自動啟動并運行[2]。高效智能化的電力加熱設(shè)備對天然氣進行加熱時,天然氣被加熱的溫度要被控制在設(shè)計時要求的波動區(qū)間之內(nèi),天然氣出口溫度誤差要控制在±1℃,設(shè)備通過對加熱器分組化、智能化投放的方法和高效絕熱保溫等舉措,使綜合熱效率超過92%,符合國務(wù)院國發(fā)〔2012〕40號印發(fā)《節(jié)能減排“十二五”規(guī)劃》中綜合能耗節(jié)能指標(biāo)要求[3]?;贏RM和無線網(wǎng)絡(luò)技術(shù)的潛油泵遠(yuǎn)程監(jiān)控保護系統(tǒng):該系統(tǒng)的設(shè)計以對潛油電泵在深井、高溫環(huán)境以及長期連續(xù)工作為背景,由于潛油電泵在井下工作時非常容易出現(xiàn)故障、油井分散、現(xiàn)場數(shù)據(jù)返回不及時的現(xiàn)象,從而導(dǎo)致故障發(fā)生且不能及時地預(yù)測、報警和處理等一系列的問題[4],由此所研制的保護系統(tǒng)裝置。油井系統(tǒng)效率在線監(jiān)測研究與應(yīng)用技術(shù):由于長慶油田具有較為完善的計算機網(wǎng)絡(luò)系統(tǒng),該項技術(shù)已經(jīng)在長慶油田開展系統(tǒng)性測試和相關(guān)研究。該技術(shù)與傳統(tǒng)的抽油機系統(tǒng)在效率、智能等方面進行對比分析得出,該項技術(shù)的研究與應(yīng)用有效的解決了在傳統(tǒng)的測試系統(tǒng)中測試代表性差、隨機性強、工作量大以及間隔周期長等相關(guān)問題,該技術(shù)對油田高效利用、合理開發(fā)以及管理水平的提升具有積極的促進作用,并且具有廣泛的應(yīng)用前景及其實際意義價值[5]。油井熱洗監(jiān)測裝置:該裝置由兩硬件系統(tǒng)部分組成,分別為溫度測量裝置、溫度記錄儀,設(shè)備中的溫度檢測裝置可以深入石油開采樹四通內(nèi)部,使所測量的溫度實現(xiàn)高精度檢測。油井中采出液體溫度大小通過溫度記錄儀進行記錄,該設(shè)備可以將所檢測的溫度實時記錄,同時可以將數(shù)據(jù)下載并保存在office軟件中,方便工作人員對所測量的數(shù)據(jù)進行分析。該裝置不僅可以準(zhǔn)確的反應(yīng)油井熱洗過程及其熱洗質(zhì)量,還可以為相關(guān)技術(shù)部門提供更為準(zhǔn)確的信息[6]。除上文所述裝置技術(shù)外,還有柱塞氣舉井口智能捕捉柱塞裝置、蘇里格油氣田智能井口智能控制裝置、井口智能防盜裝置和井口自動監(jiān)測液面技術(shù)及其井口智能間歇抽油技術(shù)、全電動井下流體控制技術(shù)等。綜上所述,截止目前還尚且沒有任何一款針對廢油氣田的井口溫度監(jiān)測、可燃?xì)怏w濃度監(jiān)測及有害氣體監(jiān)測的智能監(jiān)測裝置。1.3本文主要內(nèi)容及其前景本文對油井井口智能監(jiān)測報警裝置的軟件系統(tǒng)部分和硬件電路結(jié)構(gòu)部分進行設(shè)計分析,對MQ-2煙霧傳感器模塊(此設(shè)計模擬監(jiān)測有害氣體監(jiān)測)、MQ-7傳感器模塊(此設(shè)計模擬監(jiān)測可燃?xì)怏w)、DS18B20溫度傳感器模塊,LCD1602A顯示屏和蜂鳴器蜂鳴報警模塊、ESP8622無線網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊以及51單片機系統(tǒng)進行深度探究,利用AltiumDesigner對系統(tǒng)原理圖進行繪制[7],利用C語言對控制程序進行編寫、利用word對程序框圖及其流程圖進行建立,利用Keil將對應(yīng)程序燒入51單片機,焊接電路,最后對本設(shè)計實體裝置進行功能調(diào)試及問題分析;通過本次設(shè)計的裝置實現(xiàn)井口的溫度、可燃?xì)怏w濃度數(shù)據(jù)實時檢測,判斷是否產(chǎn)生有害氣體,當(dāng)溫度、可燃?xì)怏w濃度達(dá)到相對應(yīng)的閥值以及井口產(chǎn)生有害氣體時執(zhí)行蜂鳴報警器報警,LCD顯示屏顯示當(dāng)前溫度和可燃?xì)怏w濃度,此時,ESP8266無線傳輸模塊將在該狀態(tài)下監(jiān)測到的動態(tài)數(shù)據(jù)上傳至通過HBulider制作的手機軟件中,該軟件每3s刷新記錄數(shù)據(jù)一次,軟件中對所監(jiān)測到的溫度、可燃?xì)怏w濃度進行曲線繪制,從而實現(xiàn)廢油氣井井口監(jiān)測數(shù)據(jù)量的動態(tài)監(jiān)控。該裝置為結(jié)合當(dāng)前對油田及居民區(qū)廢油氣井管理疏忽的實際狀況所提出的一種油井井口智能檢測報警裝置,該裝置造價低、性價比高、性能優(yōu)良、管理方便,具有在油田廢棄油井和居民區(qū)廢棄油井中廣泛的推廣價值和使用空間,具有良好的現(xiàn)實意義。

第2章硬件系統(tǒng)設(shè)計2.1總體方案設(shè)計本設(shè)計從軟件系統(tǒng)和硬件電路及結(jié)構(gòu)兩部分對設(shè)計整體進行分析,對MQ-2煙霧傳感器模塊、MQ-7一氧化碳傳感器模塊、DS18B20溫度傳感器模塊,LCD1602a顯示屏和蜂鳴器模塊[8]、ESP8622無線網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊以及51單片機系統(tǒng)進行深度探究,本設(shè)計采用AltiumDesigner軟件對所涉及系統(tǒng)原理圖進行繪制,采用C語言對程序進行編寫及其控制、word對流程圖進行建立,利用Keil將對應(yīng)程序燒入51單片機,焊接電路。最后對本設(shè)計的實體裝置進行功能調(diào)試及問題分析;本設(shè)計實現(xiàn)井口的溫度、可燃?xì)怏w濃度數(shù)據(jù)實時檢測,并判斷是否產(chǎn)生有害氣體,當(dāng)溫度、可燃?xì)怏w濃度達(dá)到相對應(yīng)的閥值以及井口產(chǎn)生有害氣體時執(zhí)行蜂鳴報警器報警,LCD顯示屏顯示當(dāng)前溫度和可燃?xì)怏w濃度,所測量的數(shù)據(jù)通過ESP8266模塊將所監(jiān)測動態(tài)數(shù)據(jù)上傳至手機APP,方便現(xiàn)場員工對數(shù)據(jù)監(jiān)測,同時所測得的數(shù)據(jù)將通過曲線圖的形式直觀的呈現(xiàn)在手機APP中,方便員工對廢棄井井口的數(shù)據(jù)狀態(tài)走向進行直觀觀察與分析。系統(tǒng)主結(jié)構(gòu)電路連接圖如圖2-1所示圖2-1系統(tǒng)主結(jié)構(gòu)電路圖2.2主控芯片模塊本設(shè)計以STC12C5A08S2芯片作為中心控制芯片,此芯片的機器周期時單一的機器周期,具有快速運行、低能耗、反干擾能力強大等特點。該單片機指令與STC89C52單片機完全兼容,52系列單片機執(zhí)行速度的8倍至12倍是該款單片機的執(zhí)行速度。單片機內(nèi)部由MAX810專用復(fù)位電路、2路PWM、8路高速10位A/D轉(zhuǎn)換集成,工作電壓為3.5V-5.5V,工作頻率為0-35MHz,芯片上集成12820字節(jié)的RAM,用戶應(yīng)用的程序空間為8K/16K/20K/32K等字節(jié)[9]。系統(tǒng)主控芯片圖如圖2-2所示:a)主控芯片原理圖b)主控芯片實物圖圖2-2系統(tǒng)主控芯片圖2.2.1內(nèi)部結(jié)構(gòu)STC12C5A08S2單片機中具有的模塊有程序存儲器、中央處理器和數(shù)據(jù)存儲器及定時/計數(shù)器、UART串口和串口2、I/O接口和高速AD轉(zhuǎn)換模塊、SPI接口、看門狗定時器及片內(nèi)RC振蕩器、外部的晶體振蕩電路模塊等[10]。MCU的內(nèi)部結(jié)構(gòu)如圖2-3所示:RAM256字節(jié)RAM256字節(jié)RAM地址寄存器AUX-RAM1024字節(jié)ACCBACCB寄存器堆棧指針堆棧指針定時器0/1TMP2TMP1定時器0/1TMP2TMP1串口1串口1ALUALU串口2串口2WDTPSWWDTPSWLLVD/LVRPort0,2Port0,2,3,4,5鎖存器Port1鎖存器Port1鎖存器ControlUnit RESETPort1驅(qū)動器ADCPort1驅(qū)動器Port0,2,3,4,5驅(qū)動器XTL1Port0,2,3,4,5驅(qū)動器 8 P1.0-P1.7P1.0-P1.7 P0,P2,P3,P4,P5圖2-3芯片內(nèi)部結(jié)構(gòu)圖2.2.2應(yīng)用系統(tǒng)對于STC12C5A08S2的復(fù)位電路:當(dāng)時鐘頻率低于12MHz時,在此狀態(tài)下電容器C1,電阻R1可以不通過1K的電阻與地端相連接,當(dāng)時鐘頻率高于12MHz時,在此狀態(tài)下采用第二復(fù)位功能引腳最佳[11]。關(guān)于單片機晶振電路闡述:當(dāng)單片機外部時鐘頻率高于33MHz時,可以直接采用外部有源晶振[12],XTAL1和XTAL2兩引腳需要浮空。晶體的基本頻率為高于27MHz的頻率,三泛音晶體在該狀態(tài)下不被使用。外部有源晶振部分被直接使用時,時鐘從XTAL1腳輸入,且XTAL2腳須在浮空狀態(tài)[13]。MCU芯片應(yīng)用系統(tǒng)如圖2-4所示:圖2-4芯片應(yīng)用系統(tǒng)圖2.2.3STC12C5A08S2時鐘STC12C5A08S2是具有內(nèi)部R/C振蕩時鐘和外部晶體時鐘兩個時鐘源的單片機控制系統(tǒng)。對于5V單片機而言,常溫下芯片內(nèi)部的R/C振蕩器的頻率為11MHz-17MHz,對于3V單片機而言,常溫下其芯片內(nèi)部頻率為8MHz-12MHz。與此同時,伴隨著溫度的變化,單片機板內(nèi)部的R/C振蕩器的頻率會出現(xiàn)溫飄現(xiàn)象,由于制造時存在制造誤差,因此內(nèi)部R/C振蕩器僅僅適用于對時鐘頻率要求不高度敏感的場合[14]。外部晶振被省略當(dāng)單片機工作在內(nèi)部時鐘頻率時,XTAL1/XTAL2兩個接口這時懸空。對時序要求高或連續(xù)通信的電路中,內(nèi)部時鐘源會造成比較大偏差而不被使用。在電路通電初始化程序時,通過讀取內(nèi)部RAM單元(FCH,FDH,FEH,FFH連續(xù)的單元)的數(shù)值獲得STC12C5A08S2單片機出廠時內(nèi)部R/C振蕩器頻率(內(nèi)部時鐘頻率),通過讀取內(nèi)部RAM單元(F8H,F9H,FAH,FBH連續(xù)的單元)數(shù)值來獲得用戶最后一次使用本單片機時內(nèi)部R/C振蕩器時鐘下載程序時的頻率(內(nèi)部時鐘頻率),運用“MOV@Ri”指令來讀前面RAM單元數(shù)值[15]。眾所周知,機器在油田油井井口投入運行的過程中,節(jié)能環(huán)保性能至關(guān)重要,同時節(jié)能性能亦是對設(shè)備性能優(yōu)良評估的指標(biāo)之一,對于時鐘而言,降低時鐘對系統(tǒng)的功耗,可以采用將時鐘分頻的方式,即對時鐘進行分頻處理。時鐘分頻可以采用時鐘分頻控制寄存器CLK_DIV對時鐘進行分頻處理,另單片機系統(tǒng)在較低頻率下完成工作,達(dá)到節(jié)能的目的。時鐘分頻寄存器CLK_DIV各位的定義如表2-5所示:表2-5CLK_DIV位定義表SFRNameSFRAddressBitB7B6B5B4B3B2B1B0CLK_DIV97HName—————CLKS2CLKS1CLKS0分頻后的CPU實際工作時鐘與CLKS2、CLKS1、CLKS0的關(guān)系如表2-6所示:表2-6分頻后CPU工作表CLKS2CLKS1CLKS0分頻后CPU的實際工作時鐘000外晶體時鐘或內(nèi)R/C振蕩時鐘001(外晶體時鐘或內(nèi)R/C振蕩時鐘)/2010(外晶體時鐘或內(nèi)R/C振蕩時鐘)/4011(外晶體時鐘或內(nèi)R/C振蕩時鐘)/8100(外晶體時鐘或內(nèi)R/C振蕩時鐘)/16101(外晶體時鐘或內(nèi)R/C振蕩時鐘)/32110(外晶體時鐘或內(nèi)R/C振蕩時鐘)/64111(外晶體時鐘或內(nèi)R/C振蕩時鐘)/128STC12C5A08S2時鐘結(jié)構(gòu)圖如圖2-7所示:不分頻不分頻000÷2÷2001÷÷4010÷8內(nèi)部R/C震蕩時鐘 ÷8 外部晶體或時鐘 011 系統(tǒng)時鐘SYSclk÷16 (至單片機及其外圍備)÷16100÷÷32101÷÷64110÷÷128111CLKS2,CLKS1,CLKS0圖2-7時鐘結(jié)構(gòu)圖2.2.4掉電/停機模式PD/PCON.1置1時,MCU將進入掉電模式,在進入該模式后,內(nèi)部時鐘振動停止。由于此時沒有時鐘源,所以只有外部中斷繼續(xù)工作,若低壓檢測電路可以產(chǎn)生中斷,代表該部分可以繼續(xù)工作,反之將停止。該模式下,所有I/O口、SFRs維持進入掉電模式前那一刻的狀態(tài)并保持不變,可以把中央處理器從掉電模式喚醒的外部管腳有以下幾個外部管腳[16]:(INT0)’/P3.2,(INT1)’/P3.3,(INT)’/T0/P3.4,(INT)’/T1/P3.5,(INT)’/RxD/P3.0。除此之外,外部復(fù)位也將MCU從停電模式下喚醒,喚醒后的MCU將從用戶程序的0000H處開始正常工作運行。在用戶系統(tǒng)沒有外部中斷源將STC12C5A08S2單片機從停電模式喚醒時,可以用如圖2-8喚醒電路對掉電模式進行喚醒。I/O INTx 300ΩII 0.1μF C1 5MΩR1放電電阻該I/O口控制充電圖2-8喚醒電路圖2.2.5復(fù)位STC12C5A08S2單片機芯片有5種復(fù)位方式:分別為外部RST引腳復(fù)位、外部低壓檢測復(fù)位、軟件復(fù)位、掉/上電復(fù)位及其看門狗復(fù)位五種復(fù)位方式[17]。1)外部RST引腳復(fù)位:單片機外部向RST引腳添加復(fù)位脈沖從而使其復(fù)位的方式。在出廠時,P4.7/RST管腳設(shè)定置為RST復(fù)位管腳,如果需要將其設(shè)置為I/O管腳口,則需在STC-ISP編程器中進行相關(guān)設(shè)置才可完成,若未被設(shè)置I/O口[18],則P4.7/RST管腳為芯片復(fù)位輸入管腳端口。2)外部低電壓檢測復(fù)位:本復(fù)位功能在單片機運行時可以不采用,本復(fù)位為低于1.33V且可以通過2個電阻進行分壓實現(xiàn)外部可調(diào)的門檻電壓復(fù)位[19],用戶可將P4.6管腳設(shè)置為第二幅為引腳,當(dāng)時鐘頻率大于12赫茲時,啟用本復(fù)位并利用增加的外部低壓檢測LVD功能作外部低壓檢測復(fù)位腳[20]。電路如圖2-9所示:圖2-9復(fù)位功能電路與低電壓檢測有關(guān)的寄存器有電源控制寄存器、中斷允許寄存器、高位中斷優(yōu)先級控制寄存器和低位中斷優(yōu)先級控制寄存器[21]。PCON寄存器表如表2-10所示:表2-10PCON寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0PCON87HnameSMODSMOD0LVDFPOFGF1GF0PDIDLIE寄存器表如表2-11所示:表2-11IE寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0IEA8HnameEAELVDEADCESET1EX1ET0EX0IPH寄存器表如表2-12所示:表2-12IPH寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0IPHB7HnamePPCAHPLVDHPADCHPSHPT1HPX1HPT0HPX0HIP寄存器表如表2-13所示:表2-13IP寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0IEB8HnamePPCAPLVDPADCPSPT1PX1PT0PX03)軟件復(fù)位:當(dāng)程序在運行的過程且有特殊要求時需要實現(xiàn)單片機的軟件復(fù)位,STC12C5A08S2單片機IAP_CONTR特殊功能寄存器,當(dāng)對IAP_CONTR特殊功能寄存器中的SWBS/SWRST兩位即可對軟件復(fù)位進行控制[22]。IAP_CONTR:ISP/IAP控制寄存器相關(guān)表示如表2-14所示:表2-14ISP/IAP控制寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0IAP_CONTRC7HnameIAPENSWBSSWRETCMD_FAIL—WT2WT1WT04)上/掉電復(fù)位:在電源電壓小于上電復(fù)位電路的門檻檢測電壓時,所有的邏輯電路復(fù)位;電源電壓恢復(fù)正常時,延在遲32768個時鐘后,上電/掉電復(fù)位結(jié)束;當(dāng)電路進入掉電模式時,上電/掉電復(fù)位功能全部關(guān)閉[23]。5)看門狗復(fù)位:在工業(yè)控制領(lǐng)域中,為防止系統(tǒng)異常時受到干擾,MCU/CPU程序跑飛,使致系統(tǒng)長時間異常工作,此時通常引入看門狗復(fù)位計時器,如果MCU/CPU不在規(guī)定的時間內(nèi)并且按要求訪問看門狗時,則認(rèn)為MCU/CPU異常,看門狗則會強迫MCU/CPU復(fù)位,使系統(tǒng)重新開始,并按規(guī)律執(zhí)行用戶程序[24]。WDT_CONTR:看門狗計時控制寄存器相關(guān)表示如表2-15所示:表2-15看門狗控制寄存器表SFRnameAddressbitB7B6B5B4B3B2B1B0WDT_CONTR0C1HnameWDT_FLAG—EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0看門狗定時器預(yù)分頻數(shù)值表如表2-16所示:表2-16預(yù)分頻數(shù)值表PS2PS1PS0Pre-scale預(yù)分頻WDToverflowTime@20MHz000239.3mS001478.6mS0108157.3mS01116314.6mS10032629.1mS101641.25S1101282.5S1112565S說明:看門狗溢出時間=(12*Pre-scale*32768)/Oscillatorfrequency例如:時鐘頻率為12MHz,看門狗計時器分頻數(shù)值相關(guān)表示如表2-17所示:表2-17時鐘為12MHz看門狗分頻數(shù)值表PS2PS1PS0Pre-scale預(yù)分頻WDToverflowTime@20MHz000265.5mS0014131.0mS0108262.1mS01116524.2mS100321.0485S101642.0971S1101284.1943S1112568.3886S2.3溫度傳感器模塊本次設(shè)計溫度感應(yīng)模塊采用DS18B20溫度傳感器模塊,DS18B20溫度傳感器是一個無需外部器件的且每個器件都有唯一一個64位序列號,且存儲在內(nèi)部存儲器中的簡單多點分布式測溫應(yīng)用傳感器[25]。此溫度傳感器是一個獨特且具有單接線口的僅需一個引腳進行通信的傳感器,其供電范圍為3.0V-5.5V,溫度范圍為-55~+125℃,溫度計分辨率可以選擇為9到12位且最多可以再750ms內(nèi)將溫度轉(zhuǎn)化成12位數(shù)字等特點[26]。DS18B20引腳排列圖如圖2-18所示: a)b)圖2-18DS18B20引腳排列圖引腳說明表如表2-19所示:表2-19引腳說明表1GND接地2DQ數(shù)據(jù)輸入、輸出引腳。對于單線操作時,漏極開路。當(dāng)其工作在寄生電源模式時用于提供電源3VDD可選擇的VDD引腳。當(dāng)工作在寄生電源模式時,本引腳需接地1NC無任何鏈接DS18B20溫度傳感器各個引腳的對地電壓為-0.5V~+0.6V,其工作溫度為-55℃~+125℃,儲存溫度為-55℃~+125℃[27]。DS18B20溫度傳感器內(nèi)部線路方框圖如圖2-20所示:4.7KDs18b20存儲器和控制邏輯6Ds18b20存儲器和控制邏輯64位ROM和單總線端口 DQ暫存器暫存器溫度傳感器溫度傳感器上限觸發(fā)TH上限觸發(fā)TH溫度傳感器溫度傳感器溫度傳感器電源探測溫度傳感器電源探測溫度傳感器VDD溫度傳感器圖2-20溫度傳感器內(nèi)部線路方框圖DS18B20的功能指令為總線控制器發(fā)給想要與其連接的溫度傳感器一條ROM指令,隨后即可發(fā)送一條DS18B20功能指令,此命令允許總線控制器讀寫溫度控制器的暫存器,并發(fā)生溫度轉(zhuǎn)換和識別電源模式,其中,功能指令包括溫度轉(zhuǎn)換指令、寫暫存器指令、讀暫存器指令、拷貝暫存器指令、召回EEPROM指令、讀電源模式指令等[28]。DS18B20原理圖如圖2-21所示:圖2-21DS18B20原理圖2.4MQ7傳感器模塊MQ7傳感器是具有雙路信號輸出,且具有信號輸出指示的模擬量輸出0~5V電壓的一氧化碳傳感器檢測裝置,本次設(shè)計以一氧化碳檢測傳感器模擬油田或居民區(qū)廢棄油井井口的可燃性氣體,例如:一氧化碳、甲烷、乙炔等氣體。其對一氧化碳具有監(jiān)測靈敏度高、選擇性好的特點,其有效信號為低電平,即當(dāng)輸出低電平的信號燈亮?xí)r,可以與單片機直接連接[29],具有壽命長、穩(wěn)定且可靠的有點。MQ7傳感器原理圖如圖2-22所示:圖2-22MQ7傳感器原理圖2.5MQ2傳感器模塊MQ2傳感器模塊是具有模擬量輸出、TTL電平輸出雙信號輸出通道的具有信號輸出指示的煙霧傳感器,本次設(shè)計以煙霧檢測傳感器模擬油田或居民區(qū)廢棄油井井口的有害氣體,例如:硫化氫、氮氧化物、硫氧化物等氣體。該模塊的模擬量輸出電壓為0~5V,工作電壓為5V直流電,當(dāng)煙霧濃度越高時電壓越高。該裝置輸出低電平時,信號燈亮起并可以與單片機直接相連接。此傳感器具有響應(yīng)快速恢復(fù)性能,不僅壽命長、穩(wěn)定性好,而且可靠性高。其電路原理圖同MQ7相同,下圖2-23所示:圖2-23MQ2傳感器原理圖MQ2硬件實物圖如圖2-24所示:圖2-24MQ2硬件實物圖2.6ADC0809模塊本次對油井井口智能檢測報警裝置的設(shè)計中,MQ2、MQ7兩傳感器模塊搭載ADC0809模/數(shù)轉(zhuǎn)換硬件電路,本模塊將對模擬信號進行識別處理轉(zhuǎn)換成數(shù)字信號。該模塊A/D轉(zhuǎn)換器為8路8位,且分辨率為8位,該模塊不僅單電源供電,且轉(zhuǎn)換時間為100μs,同時具有轉(zhuǎn)換啟??刂贫耍淠M輸入電壓不需要進行零點校正和滿刻度校準(zhǔn)[30],裝置工作在-40~+85℃的環(huán)境中,功耗可以低至15mW。模塊可以與單片機相連接協(xié)同工作,亦可以單獨進行工作。芯片外部是采用雙列直插式封裝結(jié)構(gòu),且具有28條功能引腳。ADC0809轉(zhuǎn)換器內(nèi)部結(jié)構(gòu)邏輯圖如圖2-25所示:8路模擬量開關(guān) STCLK8路模擬量開關(guān) IN0 EOC IN1三態(tài)輸出鎖存器8路A/D三態(tài)輸出鎖存器8路A/D轉(zhuǎn)換器 IN3 D0 IN4 D1 IN5 D2 IN6 D3 IN7 D4 D5地址鎖存與譯碼器 D6地址鎖存與譯碼器 A D7 B C VREF(+)VREF(-) OE ALE圖2-25AD轉(zhuǎn)換內(nèi)部結(jié)構(gòu)邏輯圖ADC0809數(shù)據(jù)轉(zhuǎn)換模塊實物圖如圖2-26所示:圖2-26ADC0809實物圖2.7無線傳輸模塊本次設(shè)計采用的無線傳輸方式對油井井口監(jiān)測到的溫度、可燃?xì)怏w和有害氣體進行實時數(shù)據(jù)傳輸,本模塊與手機app進行連接,使工作人員可以直觀的對廢油氣井井口所測量的相關(guān)數(shù)據(jù)進行監(jiān)測。ESP8266無線傳輸模塊具有高性能的無線soc,成本低且實用性強。此模塊可以獨立運行,也可以作為slave搭載在不同的Host上運行,還可以直接從外接閃存中啟動,模塊內(nèi)部擁有高速緩沖存儲器,本存儲器對系統(tǒng)性能的提高有利且可以減少對內(nèi)存的需求[31]。于模塊片上,可以令其通過GPIO口對傳感器進行集成和集成其他應(yīng)用的特定設(shè)備,實現(xiàn)了最低的前期開發(fā)和在運行中最少的占用系統(tǒng)資源[32]。電源管理轉(zhuǎn)換器、天線開關(guān)都置于模塊片內(nèi),在幾乎不需外電路條件下,可以將包括前端模塊在內(nèi)的整個系統(tǒng)解決方案占有的PCB空間降到最低[33]。ESP8266結(jié)構(gòu)圖如圖2-27所示:接口MAC數(shù)字基帶模擬接收射頻接收開關(guān)射頻balun接口MAC數(shù)字基帶模擬接收射頻接收開關(guān)射頻balunSDIO寄存器SDIO寄存器SPICPU內(nèi)核模擬發(fā)射SPICPU內(nèi)核模擬發(fā)射射頻發(fā)射GPIO成幀器GPIO成幀器鎖相環(huán)1/2V鎖相環(huán)1/2VOC鎖相環(huán)I2C加速器I2C加速器電源管理SRAM電源管理SRAM晶振偏置電路偏置電路偏置電路偏置電路電源管理圖2-27ESP8266結(jié)構(gòu)圖本模塊靈敏度高,在3.3V電壓、80mA電流、-40℃~125℃環(huán)境中工作,常溫下儲存。ESP8266管腳定義圖如圖2-28、管腳功能表如表2-29所示:圖2-28ESP8266管腳定義圖表2-29ESP8266管腳功能定義表PinNameFunction1VDDA本引腳為模擬電源為3.0~3.3V2LNA本引腳為射頻天線接口,其芯片輸出阻抗為50歐姆,不需要對芯片進行匹配,保留π型匹配網(wǎng)絡(luò)與天線進行匹配3VDD3P3本引腳功放電源為3.0~3.3V4VDD3P3本引腳功放電源為3.0~3.3V5VDD_RTCNC(1.1V)6TOUTADC管腳7CHIP_EN本引腳為芯片使能端。輸入高電平有效,芯片正常工作;輸入低電平芯片關(guān)閉,電流小。8XPD_DCDCDeep-SleepWakeup;GPIO169MTMSGPIO14;HSPICLK10MTDIGPIO12;HSPIQ11VDDPST本引腳為數(shù)字和IO電源(電壓工作范圍為1.8V~3.3V)12MTCKGPIO13;HSPID13MTDOGPIO15;HSPICS14GPIO2本引腳可以用作于對Flash燒寫時的URTTx端;GPIO215GPIO0GPIO0;SPICS216GPIO4GPIO417VDDPST本引腳為數(shù)字和IO電源(電壓工作范圍為1.8V~3.3V)18SDIO_DATA_2本引腳連接到SD_D2(與200Ω電阻串聯(lián));SPIHD;HSPIHD19SDIO_DATA_3本引腳連接到SD_D3(與200Ω電阻串聯(lián));SPIWP;HSPIWP20SDIO_CMD本引腳連接到SD_CMD(與200Ω電阻串聯(lián));SPICS021SDIO_CLK本引腳連接到SD_CLK(與200Ω電阻串聯(lián));SPICLK續(xù)表2-29PinNameFunction22SDIO_DATA_0本引腳連接到SD_D0(與200Ω電阻串聯(lián));SPIQ23SDIO_DATA_1本引腳連接到SD_D1(與200Ω電阻串聯(lián));SPID24GPIO5GPIO525U0RXD本引腳可以用作于對Flash燒寫時的URTTx端;GPIO326U0TXDGPIO1;SPICS127XTAL_OUT本引腳連接晶振電路輸出端,可用于對BT提供時鐘輸入28XTAL_IN本引腳連接晶振電路輸入端29VDDD本引腳為模擬電源為3.0~3.3V30VDDA本引腳為模擬電源為3.0~3.3V31RES12K本引腳串聯(lián)12kΩ電阻到地端32EXT_RSTB外部RESET信號(電平為低電平時有效)備注:當(dāng)構(gòu)成3bit可進行對SDIO模式選擇的管腳有GPIO2/GPIO0/MDTO。2.8報警模塊及按鍵本設(shè)計蜂鳴器選取有源蜂鳴器,蜂鳴器以電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲為原理,需要一定電流方可驅(qū)動,由于單片機I/O引腳輸出的電流較小,而單片機上輸出的TTL電平不足以驅(qū)動蜂鳴器,因此需要增加電流放大的電路[34]。本設(shè)計中的蜂鳴電路通過三極管C8550對電流進行放大處理來以實現(xiàn)蜂鳴器驅(qū)動。蜂鳴報警電路圖如圖2-30所示:圖2-30蜂鳴報警電路圖本系統(tǒng)按鍵電路如圖2-31所示:按鍵電路原理圖b)按鍵電路實物圖圖2-31系統(tǒng)按鍵電路本按鍵電路設(shè)定P25按鍵為系統(tǒng)下調(diào)模式控制鍵,P26為溫度控制鍵,P27為MQ7傳感器閾值控制鍵。系統(tǒng)控制過程:1)按壓系統(tǒng)復(fù)位鍵,按壓P27按鍵實現(xiàn)溫度監(jiān)測上調(diào),按壓P26鍵實現(xiàn)可燃?xì)怏w濃度監(jiān)測閾值上調(diào),連續(xù)按鍵可對閾值連續(xù)上調(diào)。2)按壓系統(tǒng)復(fù)位鍵,按壓P25鍵控制此時電路處于閾值下調(diào)模式,壓P27按鍵實現(xiàn)溫度監(jiān)測下調(diào),按壓P26鍵實現(xiàn)可燃?xì)怏w濃度監(jiān)測閾值下調(diào),連續(xù)按鍵可對閾值連續(xù)下調(diào)。2.91602A液晶顯示本設(shè)計顯示屏幕采用LCD1602A顯示屏,此顯示屏由字符型液晶顯示屏(LCD)、控制驅(qū)動主電路HD44780、擴展驅(qū)動電路HD44100、少量電阻、電容元件和結(jié)構(gòu)件等器件封裝而成[35]。1602A外形尺寸如圖2-32所示:圖2-321602A外形尺寸圖1602A控制器內(nèi)部時帶有80字節(jié)的RAM緩沖區(qū)域,內(nèi)部邏輯圖如圖2-33所示:LCDLCD16字節(jié)*2行000101030405060708090A0B0C0D0E0F10…27404142434445464748494A4B4C4D4E4F50…67圖2-33內(nèi)部邏輯圖2.10供電模塊本設(shè)計供電模塊采用18650供電電池配合18650供電槽對單片機電路進行全局供電,設(shè)計中運用3.7V、4800mWh的18650鋰離子電池,該電池具有質(zhì)地較輕、大容量等特點,同時具有很低自動放電率且可以循環(huán)利用、不存在記憶效應(yīng)的優(yōu)勢。該電池安全、內(nèi)部電阻小、壽命長、使用廣泛,還可以提供相對于一般電池不能提供的較高電壓。18650電池如圖2-34所示:圖2-3418650電池圖該設(shè)計運用的電池槽為支持3V/1A和5V/2.2A兩個電壓輸出的且最大輸出電流為3A的18650電池槽,為了保護裝置的壽命,減少模塊損壞,提高利用價值,實際使用中要盡量避免使用極限電流。該供電槽支持USB充電和Typec充電兩種充電模式,方便為槽內(nèi)電池充電,具有當(dāng)電力系統(tǒng)意外停電時,電池組可以繼續(xù)為設(shè)備供電的優(yōu)勢。該電池槽可以輸出3V和5V兩種電壓,為不同電壓需求的裝置提供供電可能,模塊中還具有開關(guān)機控制,當(dāng)開關(guān)撥動到NOMAL模式時,輸出的電流低于30mA,持續(xù)約10秒鐘會則會自動停止,轉(zhuǎn)為待機模式。當(dāng)開關(guān)撥動到HOLD模式的時候,會處于開啟狀態(tài)。供電槽如圖2-35所示:圖2-35供電槽圖2.11本章小結(jié)本章節(jié)對本次設(shè)計電路進行深入探究,詳細(xì)的對本次設(shè)計所需要的硬件元件STC12C5A60S2單片機、MQ2監(jiān)測煙霧傳感器、MQ7監(jiān)測一氧化碳傳感器、DS18B20溫度監(jiān)測傳感器、ESP8266WIFI模塊、蜂鳴報警模塊和LCD1602A顯示器顯示模塊等進行所需功能介紹[36],系統(tǒng)性分析了不同種器件在不同種環(huán)境下的適用范圍及其使用條件、特點等。本設(shè)計運用以上硬件進行實物設(shè)計焊接,設(shè)計出所需功能的油井井口智能監(jiān)測報警裝置,該裝置具有實際的現(xiàn)場應(yīng)用價值,不僅可以安裝在油田廢棄的油氣礦井井口對井口是否有異常情況進行實時監(jiān)測,還可以安置于居民區(qū)對居民區(qū)內(nèi)廢棄油井進行監(jiān)控,以防止油井井口出現(xiàn)異常溢出有害氣體甚至發(fā)生礦井事故對人們生活造成影響。該裝置在油田和居民小區(qū)廢油氣井井口安裝此裝置具有重要價值,以其成本低、可靠性高、性能優(yōu)異等優(yōu)勢,具有良好的推廣價值。

第3章軟件系統(tǒng)設(shè)計3.1軟件設(shè)計本系統(tǒng)通過C語言對程序進行編寫,通過Keil對程序指令進行調(diào)控編譯,運算指令正確無誤后將主程序生成HEX文件并燒入單片機,燒入完成后測試單片機運行是否正常運行。通過STC12C5A08S2對溫度傳感器模塊、氣體傳感器模塊、蜂鳴報警模塊以及無線網(wǎng)絡(luò)傳輸模塊進行控制,本次設(shè)計系統(tǒng)流程圖如圖3-1所示:5151單片機MQ7一氧化碳傳感器MMQ7一氧化碳傳感器MQ2煙霧傳感器Ds18b20溫度傳感器Ds18b20溫度傳感器蜂鳴器WIFIWIFI無線傳輸模塊LCD1602aLCD1602a顯示屏手機手機圖3-1系統(tǒng)流程圖本設(shè)計通過LCD1602A顯示屏對當(dāng)前環(huán)境實時監(jiān)測到的溫度及設(shè)定的閾值溫度進行顯示、對當(dāng)前環(huán)境下可燃?xì)怏w濃度及其設(shè)定的可燃?xì)怏w閾值進行顯示,當(dāng)溫度和可燃?xì)怏w在當(dāng)前環(huán)境下的動態(tài)檢測值到達(dá)設(shè)定閾值時(可燃?xì)怏w模塊指示燈閃爍),蜂鳴報警器進行蜂鳴報警;當(dāng)煙霧傳感器監(jiān)測到當(dāng)前環(huán)境中存在有害氣體時,煙霧傳感模塊指示燈閃爍,同時蜂鳴器進行報警。通過ESP8266無線數(shù)據(jù)模塊,將當(dāng)前環(huán)境下監(jiān)測到的實時可燃?xì)怏w濃度、溫度、有無有無有害氣體產(chǎn)生及其是否報警在手機app端顯示,當(dāng)可燃?xì)怏w濃度或溫度超過設(shè)定閾值或有有害氣體產(chǎn)生,app的報警對話框顯示報警,并通過對話框提醒工作人員此時廢油氣井井口出現(xiàn)異常,需要處理。同時在手機app中可看見幾月幾日幾時幾分幾秒廢油氣井井口出現(xiàn)的異常。手機app端可以將所監(jiān)測的溫度和氣體濃度通過曲線繪制出,直觀展示當(dāng)前環(huán)境下廢油氣井井口溫度及可燃?xì)怏w濃度變化規(guī)律,便于直觀分析。本次設(shè)計程序控制流程圖如圖3-2所示:開始開始程序初始化程序初始化MQ7數(shù)值獲取MQ7數(shù)值獲取MQ2數(shù)值獲取 N NMQ2數(shù)值獲取溫度數(shù)值獲取 溫度數(shù)值獲取 是否有煙霧/有害氣體產(chǎn)生? 是否有煙霧/有害氣體產(chǎn)生?LCDLCD顯示是否超過預(yù)設(shè)極限數(shù)值?是否超過預(yù)設(shè)極限數(shù)值? Y蜂鳴器報警 Y蜂鳴器報警是否到數(shù)據(jù)采集時間?是否到數(shù)據(jù)采集時間? N YWIFIWIFI數(shù)據(jù)傳輸圖3-2程序控制流程圖3.2主控芯片模塊軟件設(shè)計本次設(shè)計采用STC12C5A08S2對溫度傳感器模塊、氣體傳感器模塊、蜂鳴報警模塊以及無線網(wǎng)絡(luò)傳輸模塊進行控制,在KEIL軟件中運用C語言編寫主程序并對主程序編譯檢測是否有錯誤,主程序編譯結(jié)果如圖3-3所示:圖3-3主程序編譯結(jié)果圖編輯的主程序在KEIL中仿真結(jié)果如圖3-4所示:圖3-4仿真結(jié)果圖本次設(shè)計的油井井口智能監(jiān)測報警裝置編輯輸入單片機對整體系統(tǒng)進行控制的主程序如下:#include"stc12c5a60s2.h"#definestc_1Tsbitkeys=P2^5;sbitkey1=P2^6;sbitkey2=P2^7;sbitled=P1^2;sbitbeep=P1^2;#defineBeepbeepsbitjdq=P1^3;#include"header.h"vu8mq7,temp;sbitmq2=P1^6;vu8flag=0;voidmain(void)//切換界面才進行保存{ vu16i,j,k;LCD_Init();//液晶初始化 Usart_Config(1);//串口1初始化 Timer0_Init();//定時器0初始化 #ifdefstc_1T Usart_Config(2);//串口1初始化 #endif SysRead((u8*)&sys[0],4);//系統(tǒng)讀取參數(shù) while(1){ mq7=GetADCResult(3)/(1024.0/99.0); temp=DS18B20_GetTemp()/10.0; display2(mq7,temp,&sys[0],&sys[1]); if((mq7>sys[0])||(temp>sys[1])||(mq2==0)) { flag=1; Beep=~Beep; } else { flag=0; Beep=1; } delayms(100); k++; if(k>12) { k=0; sendchar(1,'S'); sendchar(1,'0'); sendchar(1,'1'); sendchar(1,'5'); sendchar(1,flag+48); sendchar(1,','); sendchar(1,mq7/10+48); sendchar(1,mq7%10+48); sendchar(1,'_'); sendchar(1,sys[0]/10+48); sendchar(1,sys[0]%10+48); sendchar(1,','); sendchar(1,temp/10+48); sendchar(1,temp%10+48); sendchar(1,'_'); sendchar(1,sys[1]/10+48); sendchar(1,sys[1]%10+48); sendchar(1,','); sendchar(1,(vu8)mq2+48); sendchar(1,'E'); } }}voidtimer0()interrupt1{ TH0=(65536-1000)/256; TL0=(65536-1000)%256; uartint();}/* i=GetADCResult(3)/(1024.0/99.0); if(Uart_RecOk1) { Uart_RecOk1=0; if(strstr((constchar*)&Uart_Rx1[0],"see")) { } if(Recmsg_getval((constchar*)&Uart_Rx1[0],"k1",&dat11[0],5)) { } } DH11_GetTempDamp(); display2(TempNow,DampNow,&sys[0],&sys[1]); if((TempNow>sys[0])&&(DampNow>sys[1])) { beep=~beep; } else { beep=1; } k++; if(k>12) { k=0; sendchar(1,'S'); sendchar(1,'0'); sendchar(1,'0'); sendchar(1,'7'); sendchar(1,TempNow/10+48); sendchar(1,TempNow%10+48); sendchar(1,','); sendchar(1,DampNow/10+48); sendchar(1,DampNow%10+48); sendchar(1,','); sendchar(1,b+48); sendchar(1,'E'); } delayms(100);*/3.2.1看門狗定時器本設(shè)計中,看門狗時單片機的可靠性更加方便、簡潔。看門狗測試程序如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsfrWDT_CONTR=0xe1;//定義看門狗寄存器;//程序延時voiddelayms(uintxms){ inti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);}voidmain(){ while(1) { WDT_CONTR=0x35;//看門狗設(shè)置2秒復(fù)位 P1=0x00; delayms(1000);//P1燈全亮1秒; while(1) { P1=0x55; //當(dāng)P1燈間隔亮約1秒后會全亮,則芯片已經(jīng)被看門狗復(fù)位。 } }}看門狗定時器程序在軟件中編譯圖如圖3-5所示:圖3-5看門狗測試程序圖3.2.2EEPROM字節(jié)本部分為只讀存儲器,具有帶電可擦除且可以靈活編程的特點存儲芯片,即使單片機掉電停機,該部分?jǐn)?shù)據(jù)也不會丟失。EEPROM字節(jié)編程測試程序如下:voidByte_Program(unsignedintadd,unsignedcharch)//對字節(jié)編程,在調(diào)用前需要打開IAP功能,入口:DPTR=字節(jié)地址,A=須編程字節(jié)的數(shù)據(jù){IAP_CONTR=ENABLE_ISP;//打開IAP功能,設(shè)置Flash操作等待時間IAP_CMD=0x02;//IAP/ISP/EEPROM字節(jié)編程命令I(lǐng)AP_ADDRH=(unsignedchar)(add>>8);//將目標(biāo)單元地址設(shè)定為高8位地址IAP_ADDRL=(unsignedchar)(add&0xff);//將目標(biāo)單元地址設(shè)定為低8位地址IAP_DATA=ch;//需要編程的數(shù)據(jù)先送進IAP_DATA寄存器EA=0;IAP_TRIG=0x5a;//先送46h,后送B9h到ISP/IAP觸發(fā)寄存器,每次相同IAP_TRIG=0xa5;//送完B9h,ISP/IAP命令立即觸發(fā)起動_nop_();EA=1;IAP_Disable();//IAP功能關(guān)閉,相關(guān)特殊功能寄存器清空,CPU處于安全狀態(tài),//一次連續(xù)的IAP操作完成后,IAP功能建議關(guān)閉,并非每次都關(guān)}在軟件中編譯測試圖如圖3-6所示:圖3-6EEPROM字節(jié)編程測試程序圖3.3溫度傳感器軟件設(shè)計本設(shè)計溫度監(jiān)測采用DS18B20溫度傳感器,通過該傳感器對廢油氣井井口溫度進行實時監(jiān)測,本模塊測量迅速、敏感、穩(wěn)定性好。DS18B20讀取數(shù)據(jù)程序如下://從DS18B20讀取一個字節(jié)unsignedcharRead_DS18B20(void){ unsignedchari; unsignedchardat; EA=0; for(i=0;i<8;i++) { DQ=0; dat>>=1; //先接受低位 DQ=1; if(DQ) { dat|=0x80; } Delay_OneWire(5); } EA=1; returndat;}DS18B20程序在軟件中運行圖如圖3-7所示:圖3-7DS18B220程序運行圖3.4一氧化碳傳感器軟件設(shè)計本次設(shè)計對可燃?xì)怏w濃度監(jiān)測采用一氧化碳傳感器,通過監(jiān)測一氧化碳的濃度代表廢油氣井井口中的一系列可燃?xì)怏w。一氧化碳傳感器測試程序如下:intmain(){MQ7_Init(); //傳感器初始化USART1_Init();//串口初始化SYSTICK_Init(1);//滴答定時器初始化while(1){ printf("CO:%.2fppm\n",MQ7_GetPPM());//計算一氧化碳濃度并通過串口打印 SYSTICK_DelayMs(500);}}在軟件中編譯運行圖如圖3-8所示:圖3-8MQ7測試程序圖3.5煙霧傳感器軟件設(shè)計本次設(shè)計對于有害氣體的監(jiān)測采用煙霧傳感器。通過煙霧傳感器對廢油氣井井口有害氣體的監(jiān)測代表對廢油氣井井口所有有害氣體的監(jiān)測。煙霧傳感器測試程序如下:intmain(){MQ2_Init();//傳感器初始化USART1_Init();//串口初始化SYSTICK_Init(1);//滴答定時器初始化while(1){ printf("smoke:%.2fppm\n",MQ2_GetPPM());//計算煙霧濃度并通過串口打印 SYSTICK_DelayMs(100);}}MQ2傳感器程序測試編譯圖如圖3-9所示:圖3-9煙霧傳感器程序測試圖3.6ADC0809軟件設(shè)計本次設(shè)計通過ADC0809集成電路部分對所測得到的溫度、可燃?xì)怏w的濃度模擬量轉(zhuǎn)換成數(shù)字量,方便工作者直觀對兩部分?jǐn)?shù)值進行觀察。元件程序測試程序如下:include<reg52.h>#include<stdio.h>sbitADC_CLK=P1^4;sbitADC_DI=P1^5;sbitADC_DO=P1^6;sbitADC_CS=P1^7;unsignedchara;voidDelay(unsignedcharx){unsignedchari;for(i=0;i<x;i++);}unsignedcharADC0832(void){unsignedchari,data_c;data_c=0;ADC_CS=0;//啟用ADC_DO=0;for(i=0;i<10;i++){;}ADC_CLK=0;Delay(2);ADC_DI=1;ADC_CLK=1;Delay(2);ADC_CLK=0;//啟動Delay(2);ADC_DI=1;//單極ADC_CLK=1;Delay(2);ADC_CLK=0;//下降1Delay(2);ADC_DI=1;//ch1。若ch0則為0。ADC_CLK=1;Delay(2);ADC_CLK=0;//下降2ADC_DI=0;ADC_DO=1;//脫離高阻態(tài),作準(zhǔn)備ADC_CLK=1;Delay(2);ADC_CLK=0;//第三個下降沿di失去作用Delay(2);for(i=0;i<8;i++){ADC_CLK=1;Delay(2);ADC_CLK=0;Delay(2);data_c=(data_c<<1)|ADC_DO;}ADC_CS=1;//關(guān)adcreturn(data_c);//輸出8位二進制數(shù)字}voidmain(){a=ADC0832();while(1){a=a;}}ADC0809程序測試圖如圖3-10所示:圖3-9ADC0809程序測試圖3.7蜂鳴報警軟件設(shè)計本部分以可燃?xì)怏w傳感器監(jiān)測到的濃度報警為例,程序如下:voidbeep_handle(ucharlevel)//蜂鳴器報警{switch(level){case1://收集到MQ7輸出電壓大于Low時,報警,報警等級為1{bell=1;delay_nms(40);bell=0;delay_nms(40);}break;case2://收集到MQ7輸出電壓大于Mid時,報警,報警等級為2{bell=1;delay_nms(40);bell=0;delay_nms(40);bell=1;delay_nms(40);bell=0;delay_nms(40);}break;case3://收集到MQ7輸出電壓大于High時,報警,報警等級為3{bell=1;delay_nms(40);bell=0;delay_nms(40);bell=1;delay_nms(40);bell=0;delay_nms(40);bell=1;delay_nms(40);bell=0;delay_nms(40);}break;default:break;}}蜂鳴報警程序測試圖如圖3-10所示:圖3-10蜂鳴報警測試圖3.8無線傳輸及APP生成軟件設(shè)計本部分采用正點原子的ESP8266無線數(shù)據(jù)傳輸模塊進行對所監(jiān)測到的溫度大小、可燃?xì)怏w濃度、是否有有害氣體產(chǎn)生以及是否產(chǎn)生報警進行設(shè)計,與此同時對溫度、可燃?xì)怏w濃度在不同的時間采集的不同數(shù)據(jù)進行曲線繪制,方便管理人員在對廢油氣井井口狀態(tài)檢測時直觀查看當(dāng)前時段該井口的活動趨勢,判斷當(dāng)前情況是否會出現(xiàn)異常。本部分運用HBuilder國產(chǎn)化軟件對上位機程序進行編寫,在程序編寫完成在本站內(nèi)對手機app軟件生成。本次針對油井井口智能監(jiān)測報警裝置所編寫的上位機程序節(jié)選如下:functionplusReady(){ document.getElementById("ggag").innerHTML=plus.storage.getItem("test1");} functionwebsockstart() { //要連接b230這個 varhostname=serverip, port=8083, clientId=myid+"aa", timeout=5, keepAlive=100, cleanSession=false, ssl=false, temp1='12', topic=''; client=newPaho.MQTT.Client(hostname,port,clientId); //建立客戶端實例 varoptions={ invocationContext:{ host:hostname, port:port, path:client.path, clientId:clientId }, timeout:timeout, keepAliveInterval:keepAlive, cleanSession:cleanSession, useSSL:ssl, //userName:userName, //password:password1, onSuccess:onConnect, onFailure:function(e){ //s="{time:"+newDate().Format("yyyy-MM-ddhh:mm:ss")+",onFailure()}"; websockstart() } }; client.connect(options); //連接服務(wù)器并注冊連接成功處理事件 functiononConnect(){ alert(newDate().Format("yyyy-MM-ddhh:mm:ss")+"連接服務(wù)器成功"); flagmqttok=1 client.subscribe(myid) } client.onConnectionLost=onConnectionLost; //注冊連接斷開處理事件 client.onMessageArrived=onMessageArrived; //注冊消息接收處理事件 functiononConnectionLost(responseObject){ s="{time:"+newDate().Format("yyyy-MM-ddhh:mm:ss")+",onConnectionLost()}"; console.log(s); if(responseObject.errorCode!==0){ //console.log("onConnectionLost:"+responseObject.errorMessage); console.log("連接已斷開"); flagmqttok=0 websockstart() } } }functiononMessageArrived(message){console.log("主題:"+message.destinationName); console.log("收到消息:"+message.payloadString); varobj=JSON.parse(message.payloadString); if(obj.V1=='1') { document.getElementById("id1").value="有" if(ga1==0) { ga1=1 alert("異常") } } else { document.getElementById("id1").value="無" ga1=0 } document.getElementById("id2").value=Number(obj.V2.substring(0,2)); document.getElementById("id3").value=Number(obj.V3.substring(0,2)); if(obj.V4=='0') { document.getElementById("id4").value="有" } else document.getElementById("id4").value="無" if(flagquxian==0) { console.log("Gag") d12[reccnt]=Number(document.getElementById("id2").value.substring(0,2)) } else { d12[reccnt]=Number(document.getElementById("id3").value.substring(0,2)) } reccnt++; if(reccnt>=10) reccnt=0; document.getElementById("ggag").innerHTML="<"+newDate().Format("yyyy-MM-ddhh:mm:ss")+"->報警:"+document.getElementById("id1").value+",MQ7:"+document.getElementById("id2").value+ ",溫度:"+document.getElementById("id3").value+ ",MQ2:"+document.getElementById("id4").value+ "<br>"+document.getElementById("ggag").innerHTMLplus.storage.setItem("test1",document.getElementById("ggag").innerHTML);} functionaa()//顯示消息 { }functionsend(vala){if(vala){message=newPaho.MQTT.Message(vala);message.destinationName=myid+"/ctrl";client.send(message);}}functionk1(){ reccnt=0 d12.splice(0,d12.length);flagquxian=1-flagquxianif(flagquxian) document.getElementById("check").value="曲線:溫度" elsedocument.getElementById("check").value="曲線:MQ7" }functionk2(){ document.getElementById("ggag").innerHTML=""plus.storage.setItem("test1",document.getElementById("ggag").innerHTML);}varcount=0;functionstart(){window.tester=window.setInterval(function(){if(client.isConnected){vars="{time:"+newDate().Format("yyyy-MM-ddhh:mm:ss")+",content:"+(count++)+",from:webconsole}";message=newPaho.MQTT.Message(s);message.destinationName=topic;client.send(message);}},1000);}functionstop(){window.clearInterval(window.tester);}functionblink(){ if(flagmqttok==0) { serverip=document.getElementById("id").value myid=document.getElementById("sn").value websockstart() } else { alert("服務(wù)器已經(jīng)連接") }}functionrestart(){window.location.reload()}Dtotype.Format=function(fmt){//author:meizzvaro={"M+":this.getMonth()+1,//月份"d+":this.getDate(),//日"h+":this.getHours(),//小時"m+":this.getMinutes(),//分"s+":this.getSeconds(),//秒"q+":Math.floor((this.getMonth()+3)/3),//季度"S":this.getMilliseconds()//毫秒};//reainif(/(y+)/.test(fmt))fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));for(varkino)if(newRegExp("("+k+")").test(fmt))fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length)));returnfmt;}</script></head><body><inputtype="button"value="連接"onclick="blink()"/><inputtype="button"value="斷開"onclick="restart()"/><br><br>服務(wù)器<inputtype="text"id="id"value="9"/>設(shè)備<inputtype="text"id="sn"value="8EAAB55965EA"/><divalign="center"><divid="myChart"style="width:350px;height:400px;"></div> <scriptsrc='js/jquery.js'></script> <scriptsrc='js/jquery.flot.min.js'></script> <scriptsrc="js/index.js"></script><br><inputtype="button"va

溫馨提示

  • 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

提交評論