易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)_第1頁(yè)
易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)_第2頁(yè)
易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)_第3頁(yè)
易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)_第4頁(yè)
易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章緒論1.1研究目的及意義近年來,全國(guó)燃?xì)庑袠I(yè)發(fā)展迅猛,液化氣、天然氣、煤制氣等城市燃?xì)庾鳛榍鍧嵞茉匆言诰用裆詈凸ど虡I(yè)中得到廣泛的應(yīng)用,對(duì)提高居民的生活質(zhì)量發(fā)揮了巨大的作用。隨著人民生活水平的提高和對(duì)環(huán)境問題及健康問題的日益關(guān)注,室內(nèi)空氣品質(zhì)狀況也受到越來越多的關(guān)注[1]。但是,氣體泄漏爆炸事故卻頻頻出現(xiàn)。燃?xì)庖坏┬孤┎粌H會(huì)導(dǎo)致環(huán)境污染,甚至?xí)l(fā)中毒、爆炸、死亡等重大事故的發(fā)生。易爆物有幾大特性,容易燃燒,擴(kuò)散性快,可縮性和膨脹性,靜電性,腐蝕毒害性強(qiáng),窒息性強(qiáng)。以上就是對(duì)易爆易燃物品危害的內(nèi)容介紹。所以本課題對(duì)易爆物進(jìn)行研究,設(shè)計(jì)一款能夠通過移動(dòng)設(shè)備控制的機(jī)器狗對(duì)易爆物進(jìn)行檢測(cè),對(duì)易燃易爆危險(xiǎn)品使用的場(chǎng)所、裝置及設(shè)施進(jìn)行安全評(píng)價(jià)是預(yù)防易燃易爆危險(xiǎn)品事故的一個(gè)重要措施。利用安全評(píng)價(jià)可以評(píng)價(jià)發(fā)生事故的可能性及其后果的嚴(yán)重程度,并可根據(jù)其制訂有針對(duì)性的預(yù)防措施,從而使事故的發(fā)生頻率和損失程度降低。易爆物檢測(cè)傳輸機(jī)器狗的設(shè)計(jì)目的是為了解決在危險(xiǎn)環(huán)境下人員進(jìn)入難度大、安全風(fēng)險(xiǎn)高的問題。該機(jī)器狗可以通過裝載各種傳感器來實(shí)現(xiàn)對(duì)易爆物的檢測(cè),并且可以通過遙控或自主導(dǎo)航的方式在危險(xiǎn)環(huán)境中進(jìn)行探測(cè)、巡視和傳輸物品,從而保障人員的安全和減少人員損失。該機(jī)器狗還可以用于各種救援任務(wù),如在地震、泥石流等災(zāi)害現(xiàn)場(chǎng)進(jìn)行搜救、物資運(yùn)輸?shù)热蝿?wù)。因此,該機(jī)器狗具有重要的應(yīng)用價(jià)值和實(shí)際意義[2]。1.2國(guó)內(nèi)外現(xiàn)狀分析2020年5月安徽軍工集團(tuán)控股有限公司對(duì)一種易燃易爆物檢測(cè)裝置進(jìn)行了研究實(shí)用新型公開了一種易燃易爆物檢測(cè)裝置,殼體內(nèi)設(shè)有容納空間,導(dǎo)風(fēng)罩安裝在所述容納空間內(nèi),導(dǎo)風(fēng)罩將所述容納空間分隔為檢測(cè)腔和導(dǎo)風(fēng)腔,所述導(dǎo)風(fēng)腔側(cè)壁設(shè)有與外部連通的引風(fēng)口和與所述檢測(cè)腔連通的導(dǎo)風(fēng)口,所述導(dǎo)風(fēng)腔內(nèi)設(shè)有引風(fēng)扇,引風(fēng)扇可轉(zhuǎn)動(dòng)安裝在殼體上,檢測(cè)機(jī)構(gòu)位于所述檢測(cè)腔內(nèi)。通過上述優(yōu)化設(shè)計(jì)的易燃易爆物檢測(cè)裝置,通過在殼體內(nèi)設(shè)置導(dǎo)風(fēng)罩,通過風(fēng)扇將氣體經(jīng)由導(dǎo)風(fēng)罩引入殼體內(nèi),最大限度地收集周圍環(huán)境的易燃易爆氣體,擴(kuò)大檢測(cè)范圍,從而提高檢測(cè)靈敏度和檢測(cè)精度,提高檢測(cè)效果[3]。此外美國(guó)的WestemKentucky的應(yīng)用物理研究所還研制出了用于檢測(cè)未爆炸的危險(xiǎn)品(比如地雷,郵件炸彈)的PELAN系統(tǒng),其使用的是14MeVD-T型脈沖調(diào)制式中子發(fā)生器和76mm的BGO反符合探頭,此探頭可消除符合事件的脈沖,而且還設(shè)計(jì)了一套動(dòng)增益系統(tǒng)可保證探頭始終處于恒溫下,從而避免了溫度變化對(duì)BGO探頭探測(cè)效率的影響[4]。 1.3主要研究?jī)?nèi)容 系統(tǒng)主要設(shè)計(jì)一個(gè)易爆物檢測(cè)傳輸機(jī)器狗?;赟TM32單片機(jī)通過溫濕度傳感器、煙霧濃度傳感器對(duì)易爆物進(jìn)行檢測(cè),上位機(jī)在Android平臺(tái)上利用JAVA語(yǔ)言設(shè)計(jì),單片機(jī)利用C語(yǔ)言在Keil5平臺(tái)進(jìn)行編譯。完成具有能檢測(cè)溫濕度、環(huán)境內(nèi)部是否有火源等信息以及數(shù)據(jù)上傳報(bào)警等功能的設(shè)計(jì)。1.4論文構(gòu)成該論文的結(jié)構(gòu)分為六個(gè)章節(jié):第1章分析了系統(tǒng)開發(fā)狀況,包括國(guó)內(nèi)外現(xiàn)狀和開發(fā)意義。第2章介紹了系統(tǒng)開發(fā)過程中所用到的核心技術(shù)、開發(fā)平臺(tái)和需求分析。第3章重點(diǎn)分析了系統(tǒng)的硬件設(shè)計(jì)。第4章闡述了系統(tǒng)軟件設(shè)計(jì)的邏輯,包括各個(gè)模塊的設(shè)計(jì)和編輯。第5章介紹了系統(tǒng)功能實(shí)現(xiàn)的測(cè)試情況。第6章系統(tǒng)設(shè)計(jì)進(jìn)行總結(jié)和展望。這種結(jié)構(gòu)可以清晰地了解該系統(tǒng)的開發(fā)背景、技術(shù)要點(diǎn)、設(shè)計(jì)流程和測(cè)試結(jié)果,并對(duì)其未來的發(fā)展方向有所了解。

第2章系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)2.1設(shè)計(jì)方案本設(shè)計(jì)是STM32F103C8T6單片機(jī)為控制核心,煙霧濃度模塊,溫濕度模塊,語(yǔ)音模塊,GPS模塊,藍(lán)牙模塊,手機(jī)APP組成。系統(tǒng)框圖如下圖:圖2.1結(jié)構(gòu)框圖2.2功能需求分析在系統(tǒng)開發(fā)中,功能分析非常重要,它涉及到用戶提出的具體需求的分析,判斷這些需求是否合理以及是否能夠通過現(xiàn)有技術(shù)來實(shí)現(xiàn)[5]。因此,在需求分析過程中,問題分析越透徹,系統(tǒng)的完整性就越高。傳感器、計(jì)算機(jī)技術(shù)和通信技術(shù)被稱為信息技術(shù)的三大支柱。由于硬件系統(tǒng)無法直接獲取所需的各種信息,因此需要通過傳感器來獲取數(shù)據(jù)信息。傳感器可以測(cè)量生物、物理和化學(xué)量,并將其轉(zhuǎn)換為所需的電信號(hào)[6]。本系統(tǒng)采用了多種傳感器模塊,以實(shí)現(xiàn)系統(tǒng)對(duì)溫濕度、煙霧濃度等信息的實(shí)時(shí)檢測(cè)和傳輸。溫濕度傳感器模塊:易爆物檢測(cè)傳輸機(jī)器狗系統(tǒng)中的溫濕度傳感器需要具備以下功能需求:溫濕度傳感器需要能夠測(cè)量環(huán)境溫度,以確保溫度在安全范圍內(nèi);要求溫濕度傳感器具有高精度的測(cè)量能力,能夠準(zhǔn)確地測(cè)量環(huán)境的溫度;溫度傳感器需要能夠?qū)崟r(shí)反饋溫度的變化,以便監(jiān)控系統(tǒng)能夠及時(shí)做出相應(yīng)的控制;溫度傳感器需要能夠?qū)y(cè)量數(shù)據(jù)通過通信接口傳輸給監(jiān)控系統(tǒng),以便進(jìn)行處理和分析。煙霧濃度傳感器模塊:煙霧傳感器需要能夠檢測(cè)煙霧,以確保在使用過程中沒有發(fā)生火災(zāi)或煙霧事故;煙霧傳感器需要具有高靈敏度,能夠及時(shí)檢測(cè)到微小的煙霧粒子,從而避免煙霧累積造成的風(fēng)險(xiǎn);煙霧傳感器需要能夠快速響應(yīng)煙霧的變化,及時(shí)發(fā)出警報(bào)信號(hào);煙霧傳感器需要能夠?qū)崟r(shí)反饋煙霧的變化情況,以便監(jiān)控系統(tǒng)能夠及時(shí)做出相應(yīng)的控制。2.3單片機(jī)型號(hào)選型 方案一:51單片機(jī)的AD、EEPROM等功能需要靠擴(kuò)展,增加了硬件和軟件負(fù)擔(dān);雖然I/O腳使用簡(jiǎn)單,但高電平時(shí)無輸出能力,這也是51系列單片機(jī)的最大軟肋;運(yùn)行速度過慢,特別是雙數(shù)據(jù)指針,如能改進(jìn)能給編程帶來很大的便利;51單片機(jī)保護(hù)能力很差,很容易燒壞芯片;目前在教學(xué)場(chǎng)合和對(duì)性能要求不高的場(chǎng)合大量被采用[10]。方案二:32單片機(jī)可以直接驅(qū)動(dòng)數(shù)碼管顯示且外電路簡(jiǎn)單,它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程(ISP)功能[11]。并且具有低工作電壓、低功耗、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。PIC系列單片機(jī)的I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時(shí)同為輸入和輸出的狀態(tài)[12]。當(dāng)置位1時(shí)為輸入狀態(tài),且不管該腳呈高電平或低電平,對(duì)外均呈高阻狀態(tài);置位0時(shí)為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動(dòng)能力,低電平吸入電流達(dá)25mA,高電平輸出電流可達(dá)20mA[13]。相對(duì)于51系列而言,這是一個(gè)很大的優(yōu)點(diǎn)[14]。經(jīng)過對(duì)比,選擇使用方案二。圖2-2單片機(jī)實(shí)物圖第3章系統(tǒng)硬件部分設(shè)計(jì)3.1系統(tǒng)主要功能模塊設(shè)計(jì)易爆物檢測(cè)傳輸機(jī)器狗設(shè)計(jì)主要包括了溫濕度傳感器、煙霧傳感器、語(yǔ)音芯片、電機(jī)、藍(lán)牙、GPS、手機(jī)APP以及單片機(jī)最小系統(tǒng)設(shè)計(jì)。3.1.1溫濕度傳感器功能模塊設(shè)計(jì)溫度傳感器通常采用數(shù)字溫度傳感器DS18B20,其工作電壓為3.0-5.5V,可以測(cè)量-55°C~+125°C的溫度范圍,精度為±0.5°C。連接DS18B20和STM32芯片需要將VDD引腳連接到3.3V電源,將DQ引腳連接到任意一個(gè)GPIO引腳,并在硬件上加上4.7kΩ的上拉電阻以確保信號(hào)的穩(wěn)定。溫度傳感器的原理圖如圖3.1所示。圖3.1溫濕度傳感器原理圖3.1.2煙霧濃度傳感器功能模塊設(shè)計(jì)MQ-2是一種多氣體探測(cè)器,廣泛應(yīng)用于家庭和工廠的氣體泄漏監(jiān)測(cè)裝置。它可以探測(cè)液化氣、苯、烷、酒精、氫氣、煙霧等氣體,靈敏度高、響應(yīng)快、穩(wěn)定性好、壽命長(zhǎng)、驅(qū)動(dòng)電路簡(jiǎn)單等特點(diǎn)使它成為一種優(yōu)秀的氣體探測(cè)器。MQ-2采用二氧化錫半導(dǎo)體氣敏材料作為敏感元件,具有良好的重復(fù)性和長(zhǎng)期的穩(wěn)定性。在工作時(shí)需要先加熱一段時(shí)間,否則其輸出的電阻和電壓不準(zhǔn)確。MQ-2的檢測(cè)范圍是100~10000ppm,電路設(shè)計(jì)電壓范圍寬,24V以下均可,加熱電壓為5±0.2V。該探測(cè)器能夠準(zhǔn)確地檢測(cè)煙霧濃度,其輸出的模擬信號(hào)大小與煙霧濃度成正比。圖3.2煙霧傳感器原理圖3.1.3語(yǔ)音芯片功能模塊設(shè)計(jì)易爆物檢測(cè)傳輸機(jī)器狗系統(tǒng)中,語(yǔ)音模塊是一個(gè)重要的硬件部件,用于向用戶播報(bào)信息。其主要功能是進(jìn)行語(yǔ)音合成、語(yǔ)音播放和音量調(diào)節(jié)。下面是語(yǔ)音模塊的硬件設(shè)計(jì)需求:語(yǔ)音合成芯片:語(yǔ)音合成芯片應(yīng)具備高度的可靠性和穩(wěn)定性,能夠支持多種語(yǔ)言和方言的合成,輸出清晰自然的語(yǔ)音[17]。麥克風(fēng):麥克風(fēng)應(yīng)能夠清晰地捕捉用戶的聲音,使用戶能夠在嘈雜環(huán)境下進(jìn)行語(yǔ)音交互[18]。揚(yáng)聲器:揚(yáng)聲器應(yīng)能夠輸出高質(zhì)量的音頻信號(hào),使用戶能夠清晰地聽到播放的語(yǔ)音信息[19]。電源管理模塊:電源管理模塊應(yīng)能夠?yàn)檎Z(yǔ)音模塊提供穩(wěn)定的電源,并能夠?qū)崿F(xiàn)低功耗模式,以延長(zhǎng)語(yǔ)音模塊的使用壽命。接口設(shè)計(jì):語(yǔ)音模塊應(yīng)具有易于連接和控制的接口,以便與其他硬件模塊進(jìn)行交互[20]。綜上所述,語(yǔ)音模塊的硬件設(shè)計(jì)應(yīng)能夠?qū)崿F(xiàn)高質(zhì)量的語(yǔ)音合成和播放功能,同時(shí)具備良好的可靠性和穩(wěn)定性。同時(shí),接口設(shè)計(jì)應(yīng)方便連接和控制。圖3.3語(yǔ)音芯片原理圖3.1.4GPS功能模塊設(shè)計(jì)對(duì)于STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中的GPS功能模塊的硬件電路設(shè)計(jì)選擇一個(gè)適合的GPS模塊。GPS模塊通常需要3.3V的電源供應(yīng)??梢酝ㄟ^使用穩(wěn)壓器將系統(tǒng)電源)降壓到3.3V來提供給GPS模塊。將GPS模塊的UARTTX(發(fā)送)引腳連接到STM32的一個(gè)可用UART的RX(接收)引腳,同時(shí)將GPS模塊的UARTRX(接收)引腳連接到STM32的一個(gè)可用UART的TX(發(fā)送)引腳。確保連接正確,以實(shí)現(xiàn)STM32與GPS模塊之間的串口通信。GPS模塊需要天線用于接收衛(wèi)星信號(hào)。將天線連接到GPS模塊的天線接口。確保GPS模塊和STM32之間共享相同的地線連接。將GPS模塊的地線引腳連接到STM32的地線引腳。另外,將GPS模塊的電源引腳連接到提供3.3V電源的電源線。圖3.4GPS原理圖3.1.5顯示屏功能模塊設(shè)計(jì)對(duì)于STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中的顯示屏功能模塊的硬件電路設(shè)計(jì),選擇適合的顯示屏類型,根據(jù)所選顯示屏的電壓要求,提供適當(dāng)?shù)碾娫措妷?。通常,顯示屏需要3.3V或5V的電源供應(yīng)。確定所選顯示屏使用的通信接口I2C)。根據(jù)所選接口,連接顯示屏的數(shù)據(jù)線和控制線到STM32的相應(yīng)引腳。將顯示屏的背光引腳連接到STM32的一個(gè)可用IO引腳??梢酝ㄟ^PWM信號(hào)控制背光的亮度。確保顯示屏模塊和STM32之間共享相同的地線連接。將顯示屏模塊的地線引腳連接到STM32的地線引腳。另外,將顯示屏模塊的電源引腳連接到提供適當(dāng)電源電壓的電源線。圖3.5顯示屏原理圖3.1.6蜂鳴器功能模塊設(shè)計(jì)對(duì)于STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中蜂鳴器功能模塊的硬件電路設(shè)計(jì)選擇一個(gè)適合的蜂鳴器,根據(jù)所選蜂鳴器的工作電壓要求,提供適當(dāng)?shù)碾娫措妷骸Mǔ?,蜂鳴器需要3.3V或5V的電源供應(yīng)。將蜂鳴器的正極引腳連接到STM32的一個(gè)可用IO引腳,將蜂鳴器的負(fù)極引腳連接到STM32的地線引腳。通過控制IO引腳的電平,控制蜂鳴器的開關(guān)狀態(tài)。確保蜂鳴器模塊和STM32之間共享相同的地線連接。將蜂鳴器模塊的地線引腳連接到STM32的地線引腳。另外,將蜂鳴器模塊的電源引腳連接到提供適當(dāng)電源電壓的電源線。圖3.6蜂鳴器原理圖3.1.7電機(jī)功能模塊設(shè)計(jì)在易燃易爆傳輸機(jī)器狗系統(tǒng)中,步進(jìn)電機(jī)模塊的硬件電路設(shè)計(jì)需要考慮安全性和可靠性。為步進(jìn)電機(jī)模塊提供適當(dāng)?shù)碾娫措妷汉碗娏?。這通常涉及使用穩(wěn)壓器或電源模塊來提供穩(wěn)定的電壓。確保所選的電源能夠滿足步進(jìn)電機(jī)的功率需求,并添加電源濾波電路以減少電源噪聲。步進(jìn)電機(jī)需要一個(gè)驅(qū)動(dòng)電路來控制其轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)需要通過控制信號(hào)來控制其轉(zhuǎn)動(dòng)。這通常涉及使用微控制器或其他控制器來生成適當(dāng)?shù)目刂菩盘?hào)。連接控制器的GPIO引腳到驅(qū)動(dòng)電路的控制引腳,并確保適當(dāng)?shù)碾娖睫D(zhuǎn)換和電流限制。為了保護(hù)步進(jìn)電機(jī)和驅(qū)動(dòng)電路,可以添加電流檢測(cè)和保護(hù)電路。在易燃易爆環(huán)境中,為了防止電氣干擾和提高系統(tǒng)的抗干擾能力,可以考慮使用信號(hào)隔離電路。這可以通過使用光耦、磁耦等隔離元件來實(shí)現(xiàn),將控制信號(hào)與高功率電路進(jìn)行隔離。為了確保系統(tǒng)的安全性,可以添加過壓保護(hù)、過流保護(hù)和反向電壓保護(hù)電路。圖3.7電機(jī)原理圖3.1.8藍(lán)牙功能模塊設(shè)計(jì)藍(lán)牙模塊的硬件電路設(shè)計(jì)包括以下幾個(gè)關(guān)鍵部分:為藍(lán)牙模塊提供穩(wěn)定的電源供應(yīng),使用電源濾波電路、穩(wěn)壓器和電容等元件,以確保藍(lán)牙模塊正常工作的電源質(zhì)量和穩(wěn)定性。藍(lán)牙模塊的核心是搭載了藍(lán)牙協(xié)議棧的主控芯片,它負(fù)責(zé)處理藍(lán)牙通信協(xié)議和數(shù)據(jù)傳輸。在電路設(shè)計(jì)中,需要將主控芯片與單片機(jī)進(jìn)行連接。藍(lán)牙模塊需要一個(gè)天線用于發(fā)送和接收無線信號(hào)。天線的設(shè)計(jì)需要考慮天線的類型和天線的位置,以確保良好的信號(hào)強(qiáng)度和覆蓋范圍。藍(lán)牙模塊通常需要與其他外部設(shè)備進(jìn)行數(shù)據(jù)交互,因此需要設(shè)計(jì)相應(yīng)的外部接口,以便與其他硬件設(shè)備進(jìn)行通信。藍(lán)牙模塊的射頻部分包括射頻收發(fā)器和濾波器等元件,用于實(shí)現(xiàn)藍(lán)牙信號(hào)的發(fā)送和接收,并確保與其他頻段的干擾信號(hào)的隔離。在進(jìn)行藍(lán)牙模塊的硬件電路設(shè)計(jì)時(shí),需要仔細(xì)考慮各個(gè)部分之間的連接和布局,確保信號(hào)傳輸?shù)目煽啃?、電磁兼容性和整體性能。圖3.8藍(lán)牙原理圖3.2本章小結(jié)針對(duì)易燃物檢測(cè)傳輸機(jī)器狗系統(tǒng)的分析基于STM32單片機(jī),考慮到當(dāng)前技術(shù)和經(jīng)濟(jì)條件的限制,該系統(tǒng)的各項(xiàng)功能均可實(shí)現(xiàn)。為了更加細(xì)致深入地分析該系統(tǒng),我們將其劃分為兩個(gè)不同的功能模塊進(jìn)行研究。這樣做有助于我們對(duì)系統(tǒng)進(jìn)行全面的分析,并且為后續(xù)的工作提供了有力的支持。

第4章軟件系統(tǒng)設(shè)計(jì)功能模塊系統(tǒng)功能的設(shè)計(jì)是滿足需求設(shè)計(jì)的,如果能告訴所有處理特別程序需要的設(shè)備,如果該系統(tǒng)對(duì)投入、產(chǎn)出和模塊作了準(zhǔn)確的描述,就能使程序更有效地避免該系統(tǒng)的應(yīng)用階段。4.1軟件主流程圖主程序首先對(duì)單片機(jī)進(jìn)行初始化,使得相應(yīng)的IO口以及中斷寄存器置位,以滿足接下來的操作。圖4.1系統(tǒng)軟件主流程圖4.2溫濕度傳感器程序的設(shè)計(jì)配置傳感器的引腳和通信協(xié)議。配置I2C總線的時(shí)鐘速率和地址。初始化傳感器并進(jìn)行校準(zhǔn)。傳感器需要在正常工作之前進(jìn)行初始化和校準(zhǔn)。這包括設(shè)置傳感器的工作模式,校準(zhǔn)傳感器的偏移和增益等參數(shù)。初始化和校準(zhǔn)的代碼可以根據(jù)傳感器的datasheet進(jìn)行編寫。讀取傳感器數(shù)據(jù)并進(jìn)行處理。讀取傳感器數(shù)據(jù)可以使用STM32的I2C或SPI驅(qū)動(dòng)程序。傳感器的數(shù)據(jù)可能需要進(jìn)行單位轉(zhuǎn)換,例如從攝氏度到華氏度。此外,為了提高數(shù)據(jù)的穩(wěn)定性和準(zhǔn)確性,可以使用濾波算法對(duì)數(shù)據(jù)進(jìn)行平滑處理。需要注意的是,在軟件設(shè)計(jì)中需要考慮傳感器的響應(yīng)時(shí)間和采樣率。根據(jù)應(yīng)用的要求,需要設(shè)置適當(dāng)?shù)捻憫?yīng)時(shí)間和采樣率,以確保監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。圖4.2溫濕度傳感器流程圖4.3煙霧濃度傳感器程序的設(shè)計(jì)易爆物檢測(cè)傳輸機(jī)器狗系統(tǒng)中煙霧傳感器的軟件設(shè)計(jì)可以分為以下幾個(gè)步驟:首先需要在程序中引入相關(guān)庫(kù)文件和宏定義。根據(jù)煙霧傳感器的硬件接口要求,需要將STM32的GPIO口配置為輸入模式??梢允褂肏AL庫(kù)提供的GPIO_Init()函數(shù)進(jìn)行配置。煙霧傳感器的數(shù)值通常為模擬信號(hào),需要使用ADC模塊進(jìn)行讀取轉(zhuǎn)換。獲取到轉(zhuǎn)換后的數(shù)值后,需要根據(jù)煙霧傳感器的特性進(jìn)行判斷煙霧濃度是否超過設(shè)定閾值。可以通過比較數(shù)值與閾值的大小來判斷是否觸發(fā)報(bào)警。如果煙霧濃度超過設(shè)定閾值,則需要觸發(fā)相應(yīng)的報(bào)警處理??梢允褂肏AL庫(kù)提供的GPIO口控制蜂鳴器發(fā)出聲音,并通過OLED顯示屏輸出警告信息。最后,需要將上述步驟整合到主程序中,以實(shí)現(xiàn)煙霧傳感器的實(shí)時(shí)監(jiān)測(cè)和報(bào)警處理。需要注意的是,在設(shè)計(jì)煙霧傳感器的軟件時(shí),需要考慮噪聲干擾、溫度漂移等因素對(duì)傳感器數(shù)據(jù)的影響,采取相應(yīng)的補(bǔ)償措施以提高傳感器的精度和可靠性。同時(shí),為了提高系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性,需要采用合適的中斷處理方式和數(shù)據(jù)存儲(chǔ)策略。圖4.3煙霧傳感器流程圖4.4語(yǔ)音芯片程序的設(shè)計(jì)在易爆物檢測(cè)傳輸機(jī)器狗系統(tǒng)中,語(yǔ)音芯片的軟件設(shè)計(jì)需要實(shí)現(xiàn)以下功能:控制語(yǔ)音芯片的初始化:設(shè)置語(yǔ)音芯片的參數(shù)和配置寄存器,包括音量、語(yǔ)速、音調(diào)等。播放語(yǔ)音:將預(yù)先錄制好的語(yǔ)音文件存儲(chǔ)在芯片中,并通過控制芯片的寄存器實(shí)現(xiàn)播放。在超市系統(tǒng)中,語(yǔ)音芯片可以用于播放歡迎語(yǔ)、購(gòu)物提示、商品介紹等語(yǔ)音內(nèi)容。停止語(yǔ)音:在需要結(jié)束語(yǔ)音播放時(shí),可以控制芯片的寄存器停止播放語(yǔ)音。調(diào)整音量、語(yǔ)速、音調(diào)等參數(shù):語(yǔ)音芯片可以支持通過控制寄存器來調(diào)整音量、語(yǔ)速、音調(diào)等參數(shù),可以根據(jù)具體情況進(jìn)行調(diào)整。在軟件設(shè)計(jì)中,需要根據(jù)語(yǔ)音芯片的規(guī)格和控制方式,編寫相應(yīng)的驅(qū)動(dòng)程序,實(shí)現(xiàn)以上功能,并與STM32的控制程序進(jìn)行整合。同時(shí),需要考慮語(yǔ)音播放過程中的時(shí)序控制、錯(cuò)誤處理等方面的設(shè)計(jì)。圖4.4語(yǔ)音流程圖4.5GPS程序的設(shè)計(jì)在STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中,GPS模塊的程序設(shè)計(jì)包括初始化GPS模塊、接收GPS數(shù)據(jù)、解析GPS數(shù)據(jù)以及處理GPS數(shù)據(jù)的應(yīng)用邏輯。初始化GPS模塊,配置STM32的UART串口通信模塊,設(shè)置波特率和其他通信參數(shù)。初始化相關(guān)GPIO引腳,用于與GPS模塊進(jìn)行通信和控制。接收GPS數(shù)據(jù),使用STM32的UART接收中斷或者輪詢方式,讀取GPS模塊發(fā)送的數(shù)據(jù)。將接收到的數(shù)據(jù)緩存起來,以供后續(xù)處理。解析GPS數(shù)據(jù),從接收到的數(shù)據(jù)中提取有用的GPS信息,例如經(jīng)緯度、海拔高度等。根據(jù)GPS模塊的協(xié)議格式,進(jìn)行解析和提取。將解析后的數(shù)據(jù)存儲(chǔ)在適當(dāng)?shù)淖兞恐?,以供?yīng)用邏輯使用。根據(jù)系統(tǒng)需求,對(duì)GPS數(shù)據(jù)進(jìn)行處理。圖4.5GPS流程圖4.6顯示屏程序的設(shè)計(jì)在STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中,顯示屏模塊的程序設(shè)計(jì)包括初始化顯示屏、顯示數(shù)據(jù)和圖形操作等功能。配置STM32的GPIO引腳,用于與顯示屏進(jìn)行通信和控制。根據(jù)顯示屏的類型和通信接口,初始化相應(yīng)的驅(qū)動(dòng)程序或庫(kù)。設(shè)置顯示屏的分辨率、顏色模式和其他相關(guān)參數(shù)。根據(jù)系統(tǒng)需求,準(zhǔn)備要顯示的數(shù)據(jù)和圖像。使用顯示屏驅(qū)動(dòng)程序提供的接口,將數(shù)據(jù)和圖像發(fā)送到顯示屏上。通過監(jiān)測(cè)按鍵輸入、觸摸屏輸入或其他外部輸入方式,進(jìn)行相應(yīng)的操作和顯示更新。圖4.6顯示屏流程圖4.7藍(lán)牙程序的設(shè)計(jì)在STM32易爆檢測(cè)機(jī)器狗系統(tǒng)中,藍(lán)牙模塊的程序設(shè)計(jì)涉及以下幾個(gè)方面:初始化藍(lán)牙模塊,配置STM32的UART串口通信模塊,設(shè)置波特率和其他通信參數(shù)。初始化相關(guān)GPIO引腳,用于與藍(lán)牙模塊進(jìn)行通信和控制。,使用藍(lán)牙模塊提供的AT命令或API,將藍(lán)牙模塊設(shè)置為可發(fā)現(xiàn)和可連接的狀態(tài)。實(shí)現(xiàn)藍(lán)牙連接的過程,包括掃描其他設(shè)備、配對(duì)和建立連接等。通過藍(lán)牙模塊與其他設(shè)備進(jìn)行數(shù)據(jù)傳輸。使用UART串口通信模塊,通過發(fā)送和接收數(shù)據(jù)來實(shí)現(xiàn)與藍(lán)牙模塊的數(shù)據(jù)交互。監(jiān)測(cè)藍(lán)牙模塊的狀態(tài)變化和事件,例如連接狀態(tài)、數(shù)據(jù)接收等。根據(jù)事件的不同,執(zhí)行相應(yīng)的處理邏輯。圖4.7藍(lán)牙流程圖4.8本章小結(jié)通過對(duì)系統(tǒng)功能的分析,可以確定每個(gè)功能模塊的需求,并對(duì)每個(gè)模塊的設(shè)計(jì)進(jìn)行流程化。這樣做有助于系統(tǒng)具有完整性,能夠?qū)崿F(xiàn)所需的功能,同時(shí)也方便后期系統(tǒng)的開發(fā),減輕后期工作的負(fù)擔(dān)。第5章系統(tǒng)測(cè)試5.1系統(tǒng)實(shí)物圖易爆物檢測(cè)傳輸機(jī)器狗系統(tǒng)實(shí)物圖如圖5.1所示。圖5.1小車整體實(shí)物圖5.2測(cè)試目的單片機(jī)程序軟硬件測(cè)試的目的是確保程序和硬件設(shè)計(jì)的正確性和可靠性,以保證系統(tǒng)的正常運(yùn)行。具體包括以下幾個(gè)方面:驗(yàn)證硬件設(shè)計(jì)的正確性:測(cè)試硬件電路的各個(gè)模塊和功能,確保硬件能夠按照設(shè)計(jì)要求工作,并且符合相關(guān)的規(guī)范和標(biāo)準(zhǔn)。確保軟件和硬件之間的協(xié)同工作:測(cè)試軟件和硬件之間的接口,確保它們之間的通信正常,并且數(shù)據(jù)能夠正確傳輸。確保系統(tǒng)的穩(wěn)定性和可靠性:測(cè)試系統(tǒng)的穩(wěn)定性和可靠性,確保系統(tǒng)在長(zhǎng)期運(yùn)行過程中不會(huì)出現(xiàn)故障或錯(cuò)誤。5.3功能測(cè)試(1)易爆物檢測(cè)傳輸機(jī)器狗實(shí)物與手機(jī)進(jìn)行藍(lán)牙連接,打開機(jī)器狗電源找到HC-06藍(lán)牙連接,如圖5.2所示。圖5.2藍(lán)牙匹配連接測(cè)試(2)裝置進(jìn)行通電,觀察液晶屏上顯示數(shù)據(jù)。設(shè)計(jì)中,顯示屏第一行顯示溫濕度數(shù)值,當(dāng)前的溫度為16.6攝氏度,濕度為49.3%RH;第二行顯示溫度濕度的閾值,溫度的最大值為30攝氏度,濕度的最大閾值為50%RH,超過閾值后系統(tǒng)會(huì)進(jìn)行報(bào)警;第三行顯示煙霧濃度數(shù)值,當(dāng)前采集的煙霧濃度為0毫克沒立方米,如圖5.3所示。圖5.3顯示屏功能測(cè)試(3)藍(lán)牙連接成功后,下位機(jī)傳感器采集到的數(shù)據(jù)可以通過藍(lán)牙模塊將數(shù)據(jù)傳遞到手機(jī),手機(jī)端顯示實(shí)時(shí)采集到的數(shù)據(jù),并且手機(jī)端可以控制小車的移動(dòng)。如圖5.4所示。圖5.4上位機(jī)功能測(cè)試(4)濕度過高,小車報(bào)警并實(shí)時(shí)傳輸手機(jī)APP。如圖5.5所示圖5.5濕度功能測(cè)試溫度過高,小車報(bào)警并實(shí)時(shí)傳輸手機(jī)APP。如圖5.6所示圖5.6溫度功能測(cè)試(6)煙霧濃度過高,小車報(bào)警并實(shí)時(shí)傳輸手機(jī)APP如圖5.7所示圖5.7煙霧濃度功能測(cè)試可以通過控制終端控制小車前進(jìn)后退左轉(zhuǎn)右轉(zhuǎn),手機(jī)APP也可以顯示小車位置坐標(biāo)。如圖5.8所示。圖5.8GPS功能測(cè)試5.4本章小結(jié)在該章中,對(duì)系統(tǒng)的功能模塊進(jìn)行測(cè)試,對(duì)其獲得的測(cè)試進(jìn)行詳細(xì)的記錄,并且進(jìn)行分析,可以使得系統(tǒng)具有正常運(yùn)行的特性,在模塊控制中,通過正常的使用,可以符合要求,使得該系統(tǒng)通過測(cè)試。第6章總結(jié)與展望6.1總結(jié)機(jī)器狗配備了先進(jìn)的傳感器和探測(cè)器,能夠檢測(cè)到易爆物品的存在。一旦發(fā)現(xiàn)有易爆物品,機(jī)器狗會(huì)立即停止移動(dòng),并發(fā)出警報(bào)以通知工作人員;傳輸系統(tǒng)具有防護(hù)裝置,可有效避免易爆物品的任何損壞或泄漏;機(jī)器狗能夠自主導(dǎo)航,無需人工干預(yù)。機(jī)器狗配備了高級(jí)的人工智能系統(tǒng)和先進(jìn)的機(jī)器學(xué)習(xí)算法,能夠在各種環(huán)境下快速準(zhǔn)確地定位和移動(dòng);機(jī)器狗的設(shè)計(jì)非常靈活,可以適應(yīng)各種工作場(chǎng)所的需求。無論是在工廠、機(jī)場(chǎng)、商場(chǎng)或其他地方,機(jī)器狗都能夠勝任;操作簡(jiǎn)便:機(jī)器狗的控制系統(tǒng)非常簡(jiǎn)單易用。工作人員只需通過一個(gè)簡(jiǎn)單的界面,就可以輕松地控制機(jī)器狗的運(yùn)動(dòng)和傳輸??傮w來說,這種機(jī)器狗的設(shè)計(jì)具有高度的智能化、靈活性和安全性。它能夠有效地減少工作人員的風(fēng)險(xiǎn),并提高工作效率。此時(shí)畢業(yè)設(shè)計(jì),充分利用單片機(jī)開發(fā)上的靈活、快速的特點(diǎn),來實(shí)現(xiàn)智能控制的設(shè)計(jì)。通過本次畢業(yè)論文的設(shè)計(jì),使我認(rèn)識(shí)到作為科技人員,重要的是思維縝密,知識(shí)經(jīng)驗(yàn)積累深厚,堅(jiān)強(qiáng)的意志,同時(shí)還要?jiǎng)?chuàng)新的精神,當(dāng)你覺得一種做法可能可以實(shí)現(xiàn)的時(shí)候就應(yīng)該勇于嘗試,遇到問題的時(shí)候應(yīng)該多問多想,不輕易放棄。在以后的工.作和學(xué)習(xí)中,要勤奮踏實(shí),善于思考,才能在競(jìng)爭(zhēng)激烈的社會(huì)中提升自我的實(shí)用價(jià)值。這次的畢業(yè)設(shè)計(jì)給了我一個(gè)很好的學(xué)習(xí)機(jī)會(huì),我在這里面學(xué)習(xí)到很多東西,受益匪淺。6.2展望未來,隨著科技的不斷進(jìn)步和社會(huì)的不斷發(fā)展,易爆物檢測(cè)傳輸機(jī)器狗的設(shè)計(jì)也將不斷發(fā)展和改進(jìn)。以下是該設(shè)計(jì)的展望:1.更智能化:未來的機(jī)器狗將配備更強(qiáng)大的人工智能和機(jī)器學(xué)習(xí)算法,能夠更快速準(zhǔn)確地檢測(cè)易爆物品,并根據(jù)實(shí)際情況進(jìn)行智能化的決策和操作。2.更具適應(yīng)性:未來的機(jī)器狗將會(huì)更具適應(yīng)性,能夠適應(yīng)更多的工作場(chǎng)所和環(huán)境。例如,機(jī)器狗將能夠應(yīng)對(duì)更惡劣的天氣條件,如雨、雪、風(fēng)等,以及更復(fù)雜的地形和空間環(huán)境。3.更高效率:未來的機(jī)器狗將會(huì)更高效,能夠更快速地檢測(cè)和傳輸易爆物品,從而提高工作效率和生產(chǎn)效率。例如,機(jī)器狗將能夠通過更快速的傳輸速度和更高效的操作方式,實(shí)現(xiàn)更快速的檢測(cè)和傳輸。4.更安全可靠:未來的機(jī)器狗將會(huì)更安全可靠,能夠在遇到問題時(shí)及時(shí)自我診斷和修復(fù)。例如,機(jī)器狗將能夠配備更強(qiáng)大的傳感器和探測(cè)器,以便更快速地檢測(cè)到潛在的危險(xiǎn)和問題,并采取相應(yīng)的安全措施。綜上所述,未來的易爆物檢測(cè)傳輸機(jī)器狗將會(huì)更加智能化、適應(yīng)性更強(qiáng)、更高效率、更安全可靠。這些新技術(shù)的應(yīng)用將會(huì)使得機(jī)器狗在現(xiàn)有工業(yè)生產(chǎn)和人員安全領(lǐng)域中發(fā)揮更為重要的作用。

參考文獻(xiàn)[1]陳燕蝶,葉桐.基于不同響應(yīng)原理的爆炸物探測(cè)器[J].電大理工.2021,(01)1-6.DOI:10.19469/ki.1003-3297.2021.01.0001[2]李楠,王帝.基于單片機(jī)的無線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用2019,37(07)164-165DOI:10.19695/12-1369.2019.07.80[3]王芳,陸文總等.一種爆炸物探測(cè)系統(tǒng)設(shè)計(jì)[J].

電子設(shè)計(jì)工程.2013,21(04)81-84DOI:10.14022/ki.dzsjgc.2013.04.042[4]丁文,竇玉玲,王國(guó)保,吳騰芳,沈瑞琪.爆炸物探測(cè)技術(shù)綜述[J].

爆破器材.

2011(05)33-37[5]閆蓓,高占,寶楊波.傳感器與檢測(cè)技術(shù)研究性教學(xué)方法研究[J].高教學(xué)刊.2022,8(33)13-17DOI:10.19980/j.CN23-1593/G4.2022.33.004[6]蘇曉東,羅慶生,李華師,孫祥溪.仿生四足機(jī)器人控制系統(tǒng)設(shè)計(jì)[J].

機(jī)械設(shè)計(jì)與制造.

2013(02)16-19DOI:10.19356/ki.1001-3997.2013.02.005[7]鐘如意,劉濤,陳敏,董玉婷.仿生機(jī)器狗控制系統(tǒng)的設(shè)計(jì)與優(yōu)化[J].

湖北農(nóng)機(jī)化.

2019(14)88[8]王富中,黃文浩.基于語(yǔ)音識(shí)別技術(shù)的智能控制系統(tǒng)設(shè)計(jì)[J].

自動(dòng)化與儀表.

2006(04)8-10DOI:10.19557/ki.1001-9944.2006.04.003[9]張緒,張紅娟,靳寶全,高妍.基于STM32頻率跟蹤控制的無線電能傳輸系統(tǒng)設(shè)計(jì)[J].上海電力大學(xué)學(xué)報(bào).2022,38(04)327-333[10]倪原,韓鵬,趙晨,趙思瑤,李楠.易燃易爆物探測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程.2017,45(01)172-175+185[11]韓春榮,謝繼榮,韓東寧,郭鴻,徐剛.污水處理廠有毒有害及易燃易爆氣體在線監(jiān)測(cè)系統(tǒng)建設(shè)與應(yīng)用[J].給水排水,2011,47(12):113-116.DOI:10.13789/ki.wwe1964.2011.12.010.[12]李建軍.石化場(chǎng)所爆炸風(fēng)險(xiǎn)在線監(jiān)測(cè)系統(tǒng)研究[J].電氣防爆,2015(01):38-42.DOI:10.14023/ki.dqfb.2015.01.012.[13]余岑.易燃易爆氣液體揮發(fā)物檢測(cè)裝置設(shè)計(jì)[J].電子技術(shù)與軟件工程,2021(05):103-104.[14]韓鵬.易燃易爆危險(xiǎn)品探測(cè)系統(tǒng)研究[D].西安工業(yè)大學(xué),2017.[15]許連望.易燃易爆油氣體安檢系統(tǒng)[D].福州大學(xué),2019.DOI:10.27022/ki.gfzhu.2019.000206.[16]LukowStefan;

WeatherallJamesC.Statisticalanalysisforexplosivesdetectionsystemtestandevaluation[J]ScientificReports2022.[12]250-250DOI:

10.1038/S41598-021-03755-1Sources

[17]SA.Piletsky,E.V.PiletskayaA.V,Elgersma,等.Atrazinesensingbymolecularlyimprintedmembranes[J].BiosensorsBioelectronics.1995.10(9-10)959-964[18]KrizD..MosbachK..CompetitiveAmperometricMorphineSensorBasedonanAgaroselmmobilisedMolecularlylmprintedPolymer[J]AnalyticaChimicaActa.1995,300(1)[19]B.SellergrenK[J].Shea.Chiralion-exchangechromatography.Correlationbetweensoluteretentionandatheoreticalion-exchangemodelusingimprintedpolymers.lJournalofchromatography.A.1993,654(1).17-28.[20]]DvoryankinNikitaSergeevichAnalysismethodsofsecretivelabelingvoicecommandsforremotevoicecontroltoconfirmtheirauthenticity[J]ITSecurity,2017

附錄A總原理圖圖A.1總原理圖

附錄B程序#include"delay.h"#include"sys.h"#include"timer.h"#include"usart.h"#include"oled.h"http://#include"ds18b20.h"#include"dht11.h"http://#include"stm32f10x_flash.h"http://#include"stmflash.h"#defineLEDPCout(13)#definePB9PBout(9)#definePB5PBout(5)//PC13 #definePB6PBout(6)//#definePB7PBout(7)#definePB8PBout(8)#definek1PAout(5)//PC13 #definek2PAout(6)//#definek3PAout(7)#definek4PAout(8)//#defineFLASH_SAVE_ADDR0X0800c000#definePC15GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_15)//#definekey1GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)////#definekey2GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6)////#definekey3GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)////#definekey4GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)////#definekey5GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)////#definekey6GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)//#definePA5GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)//#definePA6GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)//#definePA7GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7)//#definePA8GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)//#definePB0GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)//externunsignedcharyz_dat[10];externunsignedyz_flg;externunsignedcharjs_dat[5];externunsignedcharpm_dat[2];externunsignedcharpm_flg;externunsignedcharjs_flg;externunsignedcharjwd[50];externunsignedcharjwd_flg;unsignedcharU8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L;unsignedcharwd_xs[]="00.0c00.0%rh";unsignedcharset_wd[]="30c50%";unsignedcharpm_xs[]="0000ug0100ug";//PM2.5濃度和上限值unsignedcharvoc[]="00.00mg/m3";//二氧化碳和VOC值unsignedcharsc_pm[]="0000ug/m3";unsignedcharwd_ts[]="警告:溫度過高";unsignedcharsd_ts[]="警告:濕度過高" ;unsignedcharyw_ts[]="煙霧濃度過高";unsignedcharkb_ts[]="" ;unsignedcharhh[]="\r\n";unsignedintpm_val=0;unsignedintco2_val=0;floatvoc_val=0.000;unsignedintin_voc=0;u16hw=0;unsignedcharly_da=0;u16fc_cs=0;u8xj_sl=0;unsignedcharflg=0;u16msHcCount=0;//定時(shí)器中斷計(jì)數(shù)u16sx_wd=30,xx_wd,sx_sd=50,xx_sd,pm_sx;unsignedintsp_count=0;//外部中斷脈沖計(jì)數(shù)unsignedintnext_lc=0;//總里程unsignedinttime_count=0;unsignedcharhw_flg=0;voiddde(u16time){u16i=0; while(time--) {i=12000; while(i--); }}voidGPIO_Config(void)//配置PA2,PA3{GPIO_InitTypeDefGPIO_InitStructure;/*GPIOAclockenable*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);///*GPIOAConfiguration:TIM3channel1and2asalternatefunctionpush-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復(fù)用推挽輸出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; //LED0-->PC.13端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHz GPIO_Init(GPIOC,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOC.13 // GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;////GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //??//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //50M????//GPIO_Init(GPIOA,&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15; //LED0-->PC.13端口配置// GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //推挽輸出// //GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHz// GPIO_Init(GPIOC,&GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_0; //LED0-->PC.13端口配置// GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出// GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHz// GPIO_Init(GPIOB,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOC.13 //GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_13;;// PB9設(shè)為輸出腳,峰鳴器PB13燈光//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //??//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //50M????//GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //上拉輸入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //50M????GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //上拉輸入//GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //50M????GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9; //HALLABCGPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽輸出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度為50MHzGPIO_Init(GPIOB,&GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIOB.12PB9=1;}voidsend(unsignedchardata){USART1->DR=data;while((USART1->SR&0X40)==0);//等待發(fā)送結(jié)束}//voidsend3_str(unsignedcharzfc[7])//{unsignedi=0;// // for(i=0;i<6;i++)// {// send(zfc[i]);// }//}voidsen3_str(unsignedchar*dat){while(*dat!='\0'){send(*dat); dat++;}}voidDelay_Ms(uint16_ttime)//毫秒延時(shí){uint16_ti,j;for(i=0;i<time;i++)for(j=0;j<10260;j++);}//voidqj_led()//{// OLED_ShowChinese(47,18,0,16);//?// OLED_ShowChinese(65,18,1,16);//?//OLED_Refresh();//}//voidzz_led()//{// OLED_ShowChinese(47,18,4,16);//?// OLED_ShowChinese(65,18,5,16);//?//OLED_Refresh();//}//voidht_led()//{// OLED_ShowChinese(47,18,2,16);//?// OLED_ShowChinese(65,18,3,16);//?//OLED_Refresh();//}//voidyz_led() //{// OLED_ShowChinese(47,18,6,16);//?// OLED_ShowChinese(65,18,7,16);//?//OLED_Refresh();//}//voidtz_led()//{// OLED_ShowChinese(47,18,8,16);//停// OLED_ShowChinese(65,18,9,16);//止//OLED_Refresh();//} voidEXTIX_Init(void){ EXTI_InitTypeDefEXTI_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//外部中斷,需要使能AFIO時(shí)鐘 //KEY_Init();//初始化按鍵對(duì)應(yīng)io模式//GPIOC0中斷線以及中斷初始化配置 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1); EXTI_InitStructure.EXTI_Line=EXTI_Line1; EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling;//上升沿和下降沿觸發(fā) EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); //根據(jù)EXTI_InitStruct中指定的參數(shù)初始化外設(shè)EXTI寄存器////GPIOc1中斷線以及中斷初始化配置// GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource1);// EXTI_InitStructure.EXTI_Line=EXTI_Line1;// EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; // EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling;//上升沿和下降沿觸發(fā)// EXTI_InitStructure.EXTI_LineCmd=ENABLE;// EXTI_Init(&EXTI_InitStructure); //根據(jù)EXTI_InitStruct中指定的參數(shù)初始化外設(shè)EXTI寄存器////GPIOc2 中斷線以及中斷初始化配置// GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource2);// EXTI_InitStructure.EXTI_Line=EXTI_Line2;// EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; // EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising_Falling;//上升沿和下降沿觸發(fā)// EXTI_InitStructure.EXTI_LineCmd=ENABLE;// EXTI_Init(&EXTI_InitStructure); //根據(jù)EXTI_InitStruct中指定的參數(shù)初始化外設(shè)EXTI寄存器 NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn; //使能按鍵所在的外部中斷通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x03; //搶占優(yōu)先級(jí)2, NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x01; //子優(yōu)先級(jí)1 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能外部中斷通道 NVIC_Init(&NVIC_InitStructure);}//voidDelay_Ms(uint16_ttime)//毫秒延時(shí)//{//uint16_ti,j;//for(i=0;i<time;i++)//for(j=0;j<10260;j++);//}voidqianjin()//前進(jìn)子函數(shù){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare1(TIM2,18000); TIM_SetCompare2(TIM2,21000);}voidht()//后退子函數(shù){PB5=0; PB6=1; PB7=0; PB8=1; TIM_SetCompare1(TIM2,18000); TIM_SetCompare2(TIM2,21000);}voidzz()//左轉(zhuǎn)彎子函數(shù){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare1(TIM2,15000); TIM_SetCompare2(TIM2,26000);}voidyz()//右轉(zhuǎn)子函數(shù){PB5=1; PB6=0; PB7=1; PB8=0; TIM_SetCompare1(TIM2,23000); TIM_SetCompare2(TIM2,19000);}voidtz()//停止子函數(shù){PB5=0; PB6=0; PB7=0; PB8=0; TIM_SetCompare1(TIM2,0); TIM_SetCompare2(TIM2,0);}u8dz_flg=0;floataa=0;unsignedcharbb=0;unsignedchartemp=0,sd_dat=0;unsignedcharwd_flg=0;unsignedcharsd_flg=0;unsignedcharnd_flg=0;voidbjhs(){if(U8T_data_H>sx_wd&&wd_flg!=1){LED=0;PB9=0;wd_flg=1;}if(U8T_data_H<=sx_wd&&wd_flg!=3){LED=1;PB9=1; wd_flg=3;}if(U8RH_data_H>sx_sd&&sd_flg!=1){LED=0;PB9=0;sd_flg=1;}if(U8RH_data_H<=sx_sd&&sd_flg!=3){LED=1;PB9=1; sd_flg=3;}if(in_voc>800&&nd_flg!=1){LED=0;PB9=0;nd_flg=1;}if(in_voc<=800&&nd_flg!=3){LED=1;PB9=1;nd_flg=3;}}intmain(void){ u8move_sta=0; shorttemperature; delay_init(); //延時(shí)函數(shù)初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí) GPIO_Config(); //LED,PWM端口初始化,配置PA2,PA3PA4PA5 TIM2_PWM_Init(47999,2); //分頻。最小單位鐘頻率=72000000/(2+1)=24Mhzuart_init(9600); //串口初始化為9600 dde(100); dde(300); while(DHT11_Init()); LED=1; OLED_Init();OLED_ColorTurn(0);//0正常顯示,1反色顯示OLED_DisplayTurn(0);//0正常顯示1屏幕翻轉(zhuǎn)顯示TIM3_Int_Init(499,7199);//設(shè)置定時(shí)器3中斷,50ms中斷一次; dde(100); USART3_init();//初始化串口三 dde(300); uart2_init(9600);//串口2初始化 //cs_init();//初始化顯示參數(shù) OLED_ShowString(43,16,set_wd,16); OLED_Refresh(); LED=1; dde(5000); k1=1; k2=1; k3=1; k4=1; //send(fc_cs); while(1) { bjhs(); if(yz_flg==1) { yz_flg=0; set_wd[0]=yz_dat[0];set_wd[1]=yz_dat[1];set_wd[4]=yz_dat[2];set_wd[5]=yz_dat[3]; sx_wd=(set_wd[0]-'0')*10+(set_wd[1]-'0'); sx_sd=(set_wd[4]-'0')*10+(set_wd[5]-'0'); OLED_ShowString(43,16,set_wd,16); OLED_Refresh(); } if(PA5==0) qianjin(); elseif(PA6==0) ht(); elseif(PA7==0) zz(); elseif(PA8==0) yz(); elseif(PB0==0) tz(); switch(ly_da)//接收到藍(lán)牙串口傳過來的數(shù)據(jù) {case'A':ly_da=0;qianjin();move_sta=1;break; case'B':ly_da=0;if(move_sta!=2){if(move_sta==1||move_sta==3||move_sta==4){tz();dde(500);}ht();move_sta=2;}break; case'C':ly_da=0;if(move_sta!=3){if(move_sta==2){tz();dde(500);}zz();move_sta=3;}break; case'D':ly_da=0;if(move_sta!=4){if(move_sta==2){tz();dde(500);}yz();move_sta=4;}break; case'E':ly_da=0;if(move_sta!=5){tz();move_sta=5;}break; } if(js_flg==1)//檢測(cè)煙霧數(shù)據(jù) { //voc_val=(js_dat[0]*256+js_dat[1])*0.01; in_voc=js_dat[0]*256+js_dat[1]; voc[0]=in_voc/1000+'0'; voc[1]=in_voc/100%10+'0'; voc[3]=in_voc/10%10+'0';voc[4]=in_voc%10+'0'; OLED_ShowString(0,48,voc,16);// OLED_Refresh(); js_flg=0; } if(time_count>=20){DHT11_Read_Data(&U8T_data_H,&U8T_data_L,&U8RH_data_H,&U8RH_data_L); wd_xs[0]=U8T_data_H/10+'0'; wd_xs[1]=U8T_data_H%10+'0'; wd_xs[3]=U8T_data_L%10+'0'; wd_xs[8]=U8RH_data_H/10+'0'; wd_xs[9]=U8RH_data_H%10+'0';wd_xs[11]=U8RH_data_L%10+'0'; OLED_ShowString(0,0,wd_xs,16);//???? OLED_Refresh(); sen3_str(wd_xs); sen3_str(hh); if(jwd_flg==1) { sen3_str(jwd); jwd_flg=0; } sen3_str(hh); if(U8T_data_H>sx_wd) sen3_str(wd_ts);else sen3_str(kb_ts); if(U8RH_data_H>sx_sd) sen3_str(sd_ts); else sen3_str(kb_ts); if(in_voc>800) sen3_str(yw_ts); else sen3_str(kb_ts); sp_count=0; time_count=0; } }}voidTIM3_IRQHandler(void)//TIM3中斷{ msHcCount++; if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)//檢查TIM3更新中斷發(fā)生與否 { TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//清除TIMx更新中斷標(biāo)志 }}voidTIM4_IRQHandler(void)//TIM3中斷{if(time_count<20) time_count++; if(TIM_GetITStatus(TIM4,TIM_IT_Update)!=RESET)//檢查TIM3更新中斷發(fā)生與否 { //msHcCount++; TIM_ClearITPendingBit(TIM4,TIM_IT_Update);//清除TIMx更新中斷標(biāo)志 } }voidEXTI1_IRQHandler(void){ EXTI_ClearITPendingBit(EXTI_Line1);//清除EXTI0線路掛起位}/*Includes*/#include"stm32f10x_it.h"voidNMI_Handler(void){}voidHardFault_Handler(void){/*GotoinfiniteloopwhenHardFaultexceptionoccurs*/while(1){}}voidMemManage_Handler(void){/*GotoinfiniteloopwhenMemoryManageexceptionoccurs*/while(1){}}voidBusFault_Handler(void){/*GotoinfiniteloopwhenBusFaultexceptionoccurs*/while(1){}}voidUsageFault_Handler(void){/*GotoinfiniteloopwhenUsageFaultexceptionoccurs*/while(1){}}voidSVC_Handler(void){}voidDebugMon_Handler(void){}voidPendSV_Handler(void){}voidSysTick_Handler(void){}*/#ifdefined(STM32F10X_LD_VL)||(definedSTM32F10X_MD_VL)||(definedSTM32F10X_HD_VL)/*#defineSYSCLK_FREQ_HSEHSE_VALUE*/#defineSYSCLK_FREQ_24MHz24000000#else/*#defineSYSCLK_FREQ_HSEHSE_VALUE*//*#defineSYSCLK_FREQ_24MHz24000000*//*#defineSYSCLK_FREQ_36MHz36000000*//*#defineSYSCLK_FREQ_48MHz48000000*//*#defineSYSCLK_FREQ_56MHz56000000*/#defineSYSCLK_FREQ_72MHz72000000#endif/*!<UncommentthefollowinglineifyouneedtouseexternalSRAMmountedonSTM3210E-EVALboard(STM32HighdensityandXL-densitydevices)oronSTM32100E-EVALboard(STM32High-densityvaluelinedevices)asdatamemory*/#ifdefined(STM32F10X_HD)||(definedSTM32F10X_XL)||(definedSTM32F10X_HD_VL)/*#defineDATA_IN_ExtSRAM*/#endif/*!<UncommentthefollowinglineifyouneedtorelocateyourvectorTableinInternalSRAM.*//*#defineVECT_TAB_SRAM*/#defineVECT_TAB_OFFSET0x0/*!<VectorTablebaseoffsetfield.Thisvaluemustbeamultipleof0x200.*//***@}*//**@addtogroupSTM32F10x_System_Private_Macros*@{*//***@}*//**@addtogroupSTM32F10x_System_Private_Variables#ifdefSYSCLK_FREQ_HSEuint32_tSystemCoreClock=SYSCLK_FREQ_HSE;/*!<SystemClockFrequency(CoreClock)*/#elifdefinedSYSCLK_FREQ_24MHzuint32_tSystemCoreClock=SYSCLK_FREQ_24MHz;/*!<SystemClockFrequency(CoreClock)*/#elifdefinedSYSCLK_FREQ_36MHzuint32_tSystemCoreClock=SYSCLK_FREQ_36MHz;/*!<SystemClockFrequency(CoreClock)*/#elifdefinedSYSCLK_FREQ_48MHzuint32_tSystemCoreClock=SYSCLK_FREQ_48MHz;/*!<SystemClockFrequency(CoreClock)*/#elifdefinedSYSCLK_FREQ_56MHzuint32_tSystemCoreClock=SYSCLK_FREQ_56MHz;/*!<SystemClockFrequency(CoreClock)*/#elifdefinedSYSCLK_FREQ_72MHzuint32_tSystemCoreClock=SYSCLK_FREQ_72MHz;/*!<SystemClockFrequency(CoreClock)*/#else/*!<HSISelectedasSystemClocksource*/uint32_tSystemCoreClock=HSI_VALUE;/*!<SystemClockFrequency(CoreClock)*/#endif__Iuint8_tAHBPrescTable[16]={0,0,0,0,0,0,0,0,1,2,3,4,6,7,8,9};/***@}*//**@addtogroupSTM32F10x_System_Private_FunctionPrototypes*@{*/staticvoidSetSysClock(void);#ifdefSYSCLK_FREQ_HSEstaticvoidSetSysClockToHSE(void);#elifdefinedSYSCLK_FREQ_24MHzstaticvoidSetSysClockTo24(void);#elifdefinedSYSCLK_FREQ_36MHzstaticvoidSetSysClockTo36(void);#elifdefinedSYSCLK_FREQ_48MHzstaticvoidSetSysClockTo48(void);#elifdefinedSYSCLK_FREQ_56MHzstaticvoidSetSysClockTo56(void);#elifdefinedSYSCLK_FREQ_72MHzstaticvoidSetSysClockTo72(void);#endif#ifdefDATA_IN_ExtSRAMstaticvoidSystemInit_ExtMemCtl(void);#endif/*DATA_IN_

溫馨提示

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

評(píng)論

0/150

提交評(píng)論