版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
科技學院2021屆本科畢業(yè)設計(論文)摘要AbstractⅡⅡ摘要第1章緒論1.1研究背景及意義城市井蓋作為城市基建中的重要構(gòu)成部分,其安全狀況直接映射城市的運行情況和民眾安全保障,傳統(tǒng)的人力巡查手段效率較為低下且問題響應總是落后一步,相關(guān)數(shù)據(jù)顯示井蓋遺失或毀損誘發(fā)的安全事故讓許多人受傷財產(chǎn)損失亦十分慘重,而由井蓋延伸出的安全難題大約能歸為三種:井蓋消失或被盜埋下的風險隱患;井下氣體累積暗藏的爆炸威脅;雨天積水配上管道破損致使的水位異常攀升,用老辦法去管理,這些麻煩常常無法被及時發(fā)現(xiàn)與應對。物聯(lián)網(wǎng)與智能傳感技術(shù)的持續(xù)突破,使得現(xiàn)代電子技術(shù)介入井蓋監(jiān)測成為化解諸多難題的途徑之一,通過對井下環(huán)境參數(shù)的不間斷監(jiān)控,智能井蓋系統(tǒng)可以提前感知易燃氣體聚集、水位驟升或井蓋被盜等潛在隱患,并借助其預警機制實現(xiàn)風險的事前干預,從而有效降低事故發(fā)生率。這種技術(shù)應用的價值體現(xiàn)在多個方面,例如減少人工巡檢的人力資源消耗和頻率;縮短對危險情況的響應時滯,甚至可以在問題萌芽前就著手處理;助推井蓋管理向信息化和智能化轉(zhuǎn)變,緩解井蓋丟失或損壞帶來的困擾;還能夠嵌入智慧城市建設,為城市基礎設施植入高效的數(shù)據(jù)支撐體系。隨著推廣落地,它將在提升安全性和運行效率兩方面助力都市的現(xiàn)代化布局,賦予城市管理和日常運維更深一層的技術(shù)潛力與韌性保障方向性的探索似乎也正緩緩顯露生機一般。1.2國內(nèi)外現(xiàn)狀(1)國外智能井蓋發(fā)展現(xiàn)狀國外對智能井蓋的探索起步較早,技術(shù)框架已趨于完善。美國與德國等發(fā)達國家早已將智能井蓋嵌入智慧城市布局,形成多樣化的監(jiān)測體系。紐約在"智慧井蓋"中植入無線傳感器網(wǎng)絡,實現(xiàn)了城市管網(wǎng)的全局掌控;慕尼黑借助大數(shù)據(jù)打造了預測井下環(huán)境變化的系統(tǒng),支持提前維護;東京通過物聯(lián)網(wǎng)強化井蓋監(jiān)控,整合環(huán)境觀察與防盜設計,顯著減少了井蓋丟失事件;倫敦開發(fā)的管理平臺結(jié)合了GIS定位、生態(tài)指標和資產(chǎn)統(tǒng)籌三項功能,為城市治理提供了有力支持。這些國際應用案例展現(xiàn)了高集成度且表現(xiàn)穩(wěn)健的系統(tǒng),在涵蓋多功能的基礎上整合為相對完整的解決方案,勾勒出了智能井蓋當前的技術(shù)發(fā)展趨勢。(2)國內(nèi)智能井蓋研究進展近年來,智能井蓋的研究在國內(nèi)持續(xù)推進并取得了一定突破。例如,上海浦東應用的射頻識別防盜技術(shù)和北京海淀部署的有害氣體監(jiān)控模塊各具特色,在一些一線城市的局部區(qū)域已開展試點應用。同時,清華大學、哈爾濱工業(yè)大學等高校研發(fā)出結(jié)合ZigBee無線網(wǎng)絡和傳感模塊的技術(shù)方案,為該領域研究注入了新活力。然而,國內(nèi)的研發(fā)工作大多仍停留于小范圍試點階段,許多系統(tǒng)存在功能單一、集成化水平低等問題,難以適應復雜的實際應用場景。與國際先進技術(shù)相比,國內(nèi)成果在通信穩(wěn)定性、節(jié)能管理水平及數(shù)據(jù)處理效率等方面仍有較大的改進和完善空間。
第2章總體方案設計2.1系統(tǒng)功能要求根據(jù)智能井蓋的應用場景和管理需求,系統(tǒng)需要實現(xiàn)以下功能:氣體監(jiān)測功能:檢測井下甲烷等易燃易爆氣體濃度,防止發(fā)生爆炸事故;溫濕度監(jiān)測功能:檢測井下溫濕度變化,判斷是否有水管破裂或污水溢出風險;水位監(jiān)測功能:檢測井下水位高低,判斷是否有雨水積水或排水不暢問題;井蓋位移監(jiān)測功能:檢測井蓋是否被人為移動或撬開,防止盜竊或墜落事件;數(shù)據(jù)顯示功能:通過屏幕顯示各項參數(shù)和報警信息,方便管理人員查看;參數(shù)設置功能:通過按鍵設置各項參數(shù)閾值,適應不同應用環(huán)境;報警功能:當參數(shù)異常時,觸發(fā)蜂鳴器報警,提醒管理人員處理;定位功能:提供井蓋位置信息,便于管理和維護;遠程通信功能:將監(jiān)測數(shù)據(jù)上傳至云端,實現(xiàn)遠程監(jiān)控。2.2系統(tǒng)設計方案根據(jù)智能井蓋的功能需求,本系統(tǒng)采用模塊化設計框架,以STM32F103單片機為核心處理單元,通過多種傳感器采集井下環(huán)境參數(shù),經(jīng)過處理后顯示并上傳至云端。系統(tǒng)整體框圖如圖2.1所示。整個系統(tǒng)主要由以下幾個部分組成:核心控制單元:以STM32F103單片機為中心,負責協(xié)調(diào)各模塊工作,處理數(shù)據(jù)并做出相應控制決策。單片機通過多種接口與各功能模塊通信,包括I2C、單總線、UART和GPIO等,實現(xiàn)系統(tǒng)的統(tǒng)一管理。數(shù)據(jù)采集模塊:包括多種傳感器,各負責不同參數(shù)的監(jiān)測:1.MPU6050加速度傳感器:通過I2C接口與單片機通信,用于實時監(jiān)測井蓋的位移狀態(tài),防止井蓋被盜或意外移動。2.水位傳感器:采用模擬量輸出方式,連接至單片機ADC通道,監(jiān)測井下水位變化,預防積水和管道泄漏。3.DHT11溫濕度傳感器:通過單總線與單片機連接,監(jiān)測井下溫濕度環(huán)境,可及時發(fā)現(xiàn)溫濕度異常引起的潛在問題。4.MQ-4甲烷檢測傳感器:模擬量輸出接入單片機ADC,實時監(jiān)測井下甲烷濃度,防止燃氣泄漏引發(fā)爆炸事故。5.GPS模塊:通過UART接口與單片機連接,提供井蓋的精確位置信息,便于管理和維護。(3)人機交互模塊:OLED顯示屏:采用I2C接口與單片機連接,實時顯示各項監(jiān)測參數(shù)和系統(tǒng)狀態(tài)。獨立按鍵:通過GPIO接口連接單片機,用于系統(tǒng)參數(shù)設置和功能切換,提供便捷的人機交互方式。(4)報警及通信模塊:蜂鳴器:由單片機GPIO控制,當檢測到異常情況時觸發(fā)報警,提醒周圍人員注意。4G模塊:通過UART接口與單片機相連,負責將監(jiān)測數(shù)據(jù)上傳至云端平臺,實現(xiàn)遠程監(jiān)控和管理。(5)電源模塊:供電電路:為整個系統(tǒng)提供穩(wěn)定的電源,包括電源管理和轉(zhuǎn)換電路,確保各模塊正常工作。各傳感器持續(xù)采集井下環(huán)境數(shù)據(jù),單片機接收并處理這些數(shù)據(jù),將處理結(jié)果實時顯示在OLED屏幕上。單片機根據(jù)預設閾值判斷是否存在異常情況,如發(fā)現(xiàn)異常,立即觸發(fā)蜂鳴器報警并通過4G模塊將異常數(shù)據(jù)上傳至云端平臺。管理人員可通過獨立按鍵設置各項參數(shù)閾值,適應不同應用環(huán)境的需求。該設計方案采用模塊化結(jié)構(gòu),各模塊功能獨立且相互協(xié)作,具有可靠性高、擴展性強的特點。通過多種傳感器的協(xié)同工作,系統(tǒng)能夠全面監(jiān)測井下環(huán)境,及時發(fā)現(xiàn)并報警潛在危險。4G通信模塊的應用,實現(xiàn)了井蓋狀態(tài)的遠程監(jiān)控,大大提高了管理效率和應對突發(fā)情況的能力。圖2.1總體框圖2.3硬件模塊選型2.3.1單片機模塊的選型方案一:STC89C52STC89C52單片機隸屬8051家族,搭載了8位CPU架構(gòu),頻率最高可達12MHz,集成8KBFlash用于程序存儲,并配備256字節(jié)的RAM容量,這款核心器件擁有32個I/O端口,串行通信上支持全雙工方式,甚至可重編程串行通道功能,同時內(nèi)置了一個振蕩器和時鐘電路設計,這種設計令它在穩(wěn)定性方面堪稱典范,作為一枚典型8位MCU在市場上有大量資料儲備和技術(shù)輔助框架可用,開發(fā)難度對學習者并不突出。而且這款單片機價格優(yōu)勢極為顯著,在教學用途或者小批量項目生產(chǎn)中十分友好且適用。方案二:STM32F103STM32F103采用ARMCortex-M3內(nèi)核打造,屬于32位單片機類別,主頻最高達72MHz,F(xiàn)lash容量介于64KB至128KB之間,RAM規(guī)格則是20KB。此款芯片集成了豐富外設資源,涵蓋80個I/O接口、12位分辨率的ADC模塊以及帶七個通道的DMA組件,另有I2C、SPI這類通訊接口,同時也少不了USART、USB端口的支持,外加多組被稱為定時器的任務觸發(fā)單元;借由分治思想搭建架構(gòu)與三階處理邏輯顯著促進了指令執(zhí)行效率,特別針對數(shù)據(jù)需要即時響應的情景表現(xiàn)出色引人關(guān)注,在此不苛求原文字數(shù)限制基礎上請酌情裁短優(yōu)化以契合規(guī)范標準。智能井蓋系統(tǒng)需處理多路傳感信號、完成復雜計算且保證通信穩(wěn)定性,權(quán)衡之下STM32F103更適合作為核心控制器件,它的成本高于STC89C52,入門門檻也不低,但性能強勁且擴展能力占優(yōu),足以應對系統(tǒng)后續(xù)拓展的潛在挑戰(zhàn),結(jié)合功能實現(xiàn)的整體需求,設計方案最終選定以STM32F103為運算中樞。2.3.2溫濕度檢測模塊的選型方案一:HM1520HM1520溫濕度傳感器是一種高精度數(shù)字化器件,基于電容式濕敏檢測結(jié)合熱敏電阻測溫原理,該型號能覆蓋0-100%RH的濕度測量范圍且誤差不超過±2%RH,而溫度量程為-40℃至+80℃時精度僅差±0.3℃,集成有16位模數(shù)轉(zhuǎn)換模塊實現(xiàn)數(shù)字信號直傳,并通過I2C協(xié)議與微控制器簡便連接,數(shù)據(jù)準確性較高、響應敏捷且長期性能穩(wěn)定這些特性讓它被廣泛應用在對測量精確度較為苛求的專業(yè)場景中。方案二:DHT11DHT11是一種常見的數(shù)字溫濕度傳感器,依托電阻式濕度檢測與NTC技術(shù)監(jiān)測溫度,其濕度測量區(qū)間位于20%-90%RH左右且誤差約為±5%RH,而溫度感應則覆蓋0到50℃范圍內(nèi),精度可達±2℃,該設備基于單總線通信協(xié)議依靠單一數(shù)據(jù)線就能實現(xiàn)和微控制器的數(shù)據(jù)交互,接口布局極為簡單便于嵌入不同系統(tǒng)中。智能井蓋系統(tǒng)中的溫濕度監(jiān)測更關(guān)注變化的趨勢與預警觸發(fā),而非極端的測量精度,DHT11在這方面表現(xiàn)已達標,它的性能基本滿足實際需求,在綜合考量價格、接口便捷性和獲取資料便利性這些因素后,方案最終決定采用DHT11作為溫濕度檢測單元,即使和HM1520相比DHT11精度與量程略有不足,但在可靠性和操作簡便性上有突出優(yōu)勢,符合系統(tǒng)的現(xiàn)實情況使用需求,既能保證運行穩(wěn)定又有效縮減開發(fā)周期和壓縮總體開銷。2.3.3顯示模塊的選型方案一:LCD1602LCD1602字符液晶屏以HD44780控制器為核心,能顯示一塊16列乘2行的區(qū)域,ASCII字符不在話下,自定義圖案也毫無壓力,并行通信路徑是它的選擇,這會占用微控制器內(nèi)6到11個I/O口,這款屏問世已久應用場景豐富,驅(qū)動方式漸趨標準化,現(xiàn)在市場上能發(fā)現(xiàn)大量即拿即用的庫函數(shù)為它服務。LCD1602的吸引力遍布多個維度,接口規(guī)范統(tǒng)一、兼容性出色,字符顯示效果干脆利落,給用戶帶來舒適的觀感,定價公允性價比顯著,對電源的需求溫和耗能偏低,驅(qū)動起來簡單直接開發(fā)難度可控,這些特質(zhì)促使它在僅需展示簡潔信息的情形下占據(jù)了廣泛應用的空間。方案二:OLEDOLED顯示屏基于有機發(fā)光二極管技術(shù)開發(fā),系統(tǒng)選取了0.96寸分辨率為128×64像素的模塊,并配備了I2C通信接口,微控制器兩個I/O口足以支持其運行,借助自發(fā)光特性無需背光源輔助,由此呈現(xiàn)出高對比度和寬視角的優(yōu)勢變得理所當然。OLED顯示屏有著突出的優(yōu)勢,畫質(zhì)出眾,在各類光線下高對比度讓其清晰可見,自發(fā)光性質(zhì)確保黑暗環(huán)境中依然明朗,I2C接口節(jié)約I/O資源的同時還能自在融合圖形與文字顯示,界面設計相當開放,刷新速率可觀,動態(tài)信息展示游刃有余,功耗不高特別是局部顯示時更顯省電本領,這一系列特性使得OLED在便攜設備領域占得重要席位。對比兩種方案后能察覺到智能井蓋系統(tǒng)得展示多種信息好比具體數(shù)值、字符還有簡筆圖案等,OLED顯示屏因其靈活性在這樣的情形下優(yōu)越性更為凸顯,I2C接口的應用可極大地削減STM32F103I/O資源的耗費量,這樣一來其余傳感器模塊就能取得更寬裕的接口空間,而高對比度這個特點使得其于戶外或者井底這類光線雜亂無章的情景里也確保了較好的可讀情況,把多個標準攏在一塊端詳審視以后這次設計便敲定選用OLED作為顯示部分的組件形式,這有助于達成信息種類擴充與用戶體驗改進這兩重目的。5系統(tǒng)的測試PAGE23 第3章系統(tǒng)硬件設計3.1STM32F103單片機STM32F103單片機扮演系統(tǒng)核心控制器,負責數(shù)據(jù)采集處理的同時還需協(xié)調(diào)各模塊間的工作,選用的是STM32F103C8T6型號,采用LQFP48封裝,工作電壓設定為3.3V,主頻可達72MHz,為了讓系統(tǒng)穩(wěn)定運轉(zhuǎn),外設電路包含8MHz晶振、匹配電容、復位回路、電源濾波線路和SWD下載調(diào)試端口等內(nèi)容,硬件布局遵循STM32設計規(guī)格,以實現(xiàn)電力供應的順暢及信號傳達無失真狀態(tài)。STM32F103資源配置中,各類模塊的需求各有側(cè)重,例如DHT11數(shù)字傳感器連接到PA7,依賴單總線完成通信,而水位與MQ-4氣體這兩大模擬信號類型的傳感器則接入了PA4和PA5,并借助內(nèi)置ADC進行量化采集,加速度計MPU6050經(jīng)由PB7及PB8構(gòu)成的I2C通訊線路實現(xiàn)同微控制器的數(shù)據(jù)交互,OLED屏同樣采用I2C并匹配至PB14與PB15位置,GPS模組和4G通信模塊依次通過UART2(如PA2、PA3)與UART1(如PA9、PA10)建立鏈路傳輸功能按鍵分別分布于PB0、PB1及PB10處承擔任務指令和功能調(diào)節(jié)的作用,報警蜂鳴器回路則安置于PA15并通過加入晶體管線性放大其驅(qū)動能力完成有效輸出。STM32F103的軟件配置可通過庫函數(shù)與寄存器操作實現(xiàn),初期需對時鐘、GPIO、ADC、UART和I2C等外設參數(shù)逐一調(diào)整,運行時采用中斷或輪詢方式獲取傳感器數(shù)據(jù),經(jīng)處理后將結(jié)果顯示在OLED屏幕,同步借助通信模塊推送至云端;設計以低功耗為準則,非工作狀態(tài)下轉(zhuǎn)換至待機模式,大幅降低能耗的同時延長了電池的工作周期。圖3.1單片機引腳圖3.2Air724UG4G模塊Air724UG是移遠通信推出的4G模塊之一,符合LTECat.1規(guī)范,上行可達5Mbps,下行則達10Mbps,集成TCP/IP協(xié)議棧并兼容多種網(wǎng)絡服務比如HTTP、MQTT以及FTP功能,整個系統(tǒng)借由Air724UG實現(xiàn)遠程數(shù)據(jù)傳輸目的,例如將礦井環(huán)境中各種參數(shù)上傳云端,以便管理人員動態(tài)獲取信息,實時追蹤變化態(tài)勢以作出決策。硬件部分的連接處理如下,Air724UG模塊對接STM32F103靠UART接口實現(xiàn),波特率設置成115200bps便于通訊流暢,電源設計加入獨立穩(wěn)壓電路搭配濾波電容以適配數(shù)據(jù)傳輸中的瞬時高電流需求,考慮到工作電壓范圍落在3.5V-4.2V之間而另一邊邏輯電壓為3.3V,則需引入電平轉(zhuǎn)化環(huán)節(jié)防止信號不穩(wěn)定狀況顯現(xiàn);此外這款尺寸精巧僅24mm×27mm×2.6mm的模塊采用了常見且成熟的LCC形態(tài)封裝借助回流焊SMT流程貼裝固定于指定位置完成組裝工序。Air724UG模塊借由AT指令集實現(xiàn)設置與操控,指令大致分類為:基礎AT指令可查看模塊狀態(tài)并配置;網(wǎng)絡服務指令負責創(chuàng)建和管理網(wǎng)絡連接;MQTT指令關(guān)乎物聯(lián)網(wǎng)數(shù)據(jù)傳輸功能,系統(tǒng)啟動之初,多種AT指令便開始發(fā)揮作用,完成模塊參數(shù)設定任務,例如APN接入點設定、服務器連接以及主題訂閱等操作,MQTT協(xié)議用來傳輸數(shù)據(jù),輕量且低帶寬消耗,符合物聯(lián)網(wǎng)應用需求。系統(tǒng)會每隔一段時間(默認一秒)將涵蓋溫濕度、氣體濃度、水位高度、井蓋狀態(tài)等信息的數(shù)據(jù)發(fā)至云平臺。圖3.2Air724UG4G模塊電路3.3OLED顯示模塊系統(tǒng)采用0.96寸OLED屏幕,分辨率128×64,型號為SSD1306,采用I2C協(xié)議通信,地址設為0x78,連接至STM32的PB14(SCL)與PB15(SDA)引腳,主要承擔顯示任務,信息涉及溫濕度數(shù)據(jù)、氣體濃度值、水位高度監(jiān)測、GPS定位以及報警狀態(tài)等,屏幕作為信息呈現(xiàn)端口貫穿在系統(tǒng)運行的關(guān)鍵節(jié)點之中,其低功耗特性與適配性能有效滿足嵌入式設備需求,借助I2C架構(gòu)實現(xiàn)了簡化布線的同時也保障了傳輸可靠度,功能設計圍繞實際場景進行展開。OLED顯示屏借助有機發(fā)光二極管達成自發(fā)光目的,無須背光支持,畫質(zhì)鮮亮清透,對比度能攀升到2000:1,視角可擴展近180度,模塊尺寸達27mm×27mm×4.1mm,重量約5g,功耗僅0.08W,耐久性超十萬小時,其配備SSD1306驅(qū)動芯片,嵌入128×64位GDDRAM(圖形顯示數(shù)據(jù)RAM),適用于全屏刷新與區(qū)域更新模式。界面設計依托按鍵輸入完成顯示模式轉(zhuǎn)換,共設有五個界面:主界面上匯集所有監(jiān)測參數(shù)與報警狀態(tài);溫度設置界面負責調(diào)控溫度報警閾值;濕度和水位設置界面分別用以調(diào)整對應的報警閾值;氣體濃度設置界面專注甲烷報警閾值的修改,為提升用戶操作體驗,界面采用簡潔明了的設計,重點數(shù)據(jù)字體被放大處理,同時感嘆號對報警狀態(tài)加以標識,參數(shù)一旦超限則閃爍提醒即刻跟進。圖3.3OLED顯示模塊電路3.4DHT11溫濕度傳感器模塊DHT11采用單總線通信,通過PA7引腳連接至STM32,供電范圍在3.3V到5V,當前系統(tǒng)以3.3V直接驅(qū)動,這款傳感器以小巧輕便見長,外形規(guī)格僅15.1mm×25mm×7.7mm,配備四腳DIP封裝設計,給裝配或后續(xù)調(diào)試帶來了諸多便利,其內(nèi)置了電阻式濕度檢測模塊和NTC測溫元件,信號經(jīng)內(nèi)部處理后即可直接輸出數(shù)字化格式,省去了借助ADC進行模數(shù)轉(zhuǎn)換的步驟,整體架構(gòu)緊湊且簡潔實用。DHT11的性能參數(shù)滿足智能井蓋系統(tǒng)的基準:測溫區(qū)間為0℃至50℃,精準度±2℃,濕度測定覆蓋20%RH到90%RH,誤差約±5%RH,溫度與濕度分辨能力同為1,獲取數(shù)據(jù)的頻率不低于2秒/次,精準性雖不及專業(yè)氣象儀器,但追蹤地下井環(huán)境變化趨勢綽綽有余,傳感元件的反應延時處6至15秒間,這一速率符合體系實時反饋的標準需求。DHT11傳遞數(shù)據(jù)的關(guān)鍵一腳連接在STM32的PA7端口。DHT11采用單總線通信方式,STM32首先把DATA線拉低至少18毫秒后釋放,傳感器接收到啟動信號,便會將DATA線拉低80微秒再抬高相同時間以回應,之后接連傳送40位數(shù)據(jù),包含濕度與溫度的整數(shù)、小數(shù)部分以及校驗和,各占8位,鑒于整個通信過程對時序精準性有較高依賴性,在軟件實現(xiàn)階段往往需要借助精確延時函數(shù)并輔以中斷關(guān)閉手段確保時序準確無誤。數(shù)據(jù)處理環(huán)節(jié)中系統(tǒng)以500ms的頻率獲取DHT11傳感器反饋的數(shù)值,通過校驗和來確定數(shù)據(jù)是否可靠,為減輕隨機誤差帶來的干擾采用了滑動平均濾波法處理溫濕度信息,具體做法是抓取連續(xù)三次的有效采樣值并取其均值視為最終輸出結(jié)果,所得數(shù)字隨后與設定的基準對比,一旦發(fā)現(xiàn)溫度突破默認50℃或濕度超出80%的界限報警機制即被觸發(fā),OLED屏幕能夠?qū)崟r顯示當下的溫濕度狀態(tài),同時借助4G模塊將數(shù)據(jù)遞送至云端達成遠程管控的目的,整個方案在實時反饋和精確程度之間取得了平衡。圖3.4DHT11模塊接線圖3.5MPU6050加速度傳感器模塊MPU6050是六軸運動傳感器,集成三軸加速度計與三軸陀螺儀,依靠I2C協(xié)議與STM32溝通交互,在該系統(tǒng)中用以監(jiān)測井蓋的位移狀況,一旦捕捉到異常偏移現(xiàn)象即觸發(fā)報警機制,MPU6050接入STM32的PB7(SDA)和PB8(SCL)引腳,其I2C通信地址被設定為0x68,工作時數(shù)據(jù)傳送速率維持在400kHz。MPU6050模塊在硬件設計中需接四個關(guān)鍵引腳,包括VCC(供電3.3V)、GND(接地)、SCL(I2C時鐘)和SDA(I2C數(shù)據(jù)),為提升通信可靠性,I2C通路上加配了4.7kΩ上拉電阻進行信號優(yōu)化,PCB布線采用差分走線來減輕電磁干擾效應,模塊安置于井蓋中心附近區(qū)域以提高動態(tài)感知精度,同時底部增設減震墊削弱外界振動對系統(tǒng)的擾動進而獲取更穩(wěn)定的運行狀態(tài)。在軟件實現(xiàn)環(huán)節(jié),MPU6050的初始化涉及幾項核心參數(shù)配置:比如確定時鐘來源、把采樣率調(diào)整到100Hz、將數(shù)字低通濾波器帶寬設為42Hz、配置加速度計量程至±2g,并設置陀螺儀量程為±250°/s,這些操作既相互關(guān)聯(lián)系又保持相對獨立性,讀取數(shù)據(jù)采用I2C總線輪詢的方式,每間隔10ms提取一次涵蓋AX、AY、AZ、GX、GY、GZ六個軸的信息,這個時間間隔背后隱藏著技術(shù)上的考量,算法的設計重點傾向于加速度信息,借助加速度矢量幅值的變動情形推測井蓋是否產(chǎn)生位移,而不直接采用陀螺儀等多源輸出數(shù)據(jù),這種傾向揭示了設計思路中的某種偏好。圖3.5MPU6050加速度檢測模塊電路3.6MQ-4甲烷檢測模塊MQ-4傳感器是半導體型氣體器件,核心用途聚焦于甲烷等可燃氣體的探測,它依托電化學機制,當環(huán)境中存在目標氣體時,敏感材料內(nèi)部性質(zhì)悄然改變,表現(xiàn)為電導率波動且伴隨輸出電壓信號與氣體濃度強關(guān)聯(lián)擺動,這一變化經(jīng)由模擬通道傳遞至STM32的PA5引腳后,內(nèi)嵌ADC模塊將其數(shù)字化,以完成數(shù)據(jù)轉(zhuǎn)換并為后續(xù)處理創(chuàng)造條件,在實際應用鏈條上構(gòu)成不可或缺的重要一環(huán)。MQ-4傳感器檢測范圍在300到10000ppm之間徘徊,這區(qū)間正好覆蓋甲烷爆炸下限5%以下的濃度地帶,對潛在隱患起到預警作用顯得順理成章,響應時間不高于10秒,三十秒內(nèi)便可完成恢復,輕松達成實時監(jiān)控的標準似乎水到渠成,工作溫度從-10℃延伸至50℃,應對礦井環(huán)境毫無壓力而言,其六引腳封裝沿襲標準慣例,直徑和高度被圈定為17.8毫米與19.5毫米,電極布局巧妙融合加熱功能與信號輸出雙重要求。硬件設計中MQ-4傳感器需采用兩路5V供電,一路供加熱電極使用,另一路則對接測量電路,其接線方式為VCC接5V電源、GND接地,AO(模擬量輸出)引至STM32的PA5管腳即ADC輸入端口,此傳感器以電阻變化作為輸出形式,與10kΩ的負載電阻(RL)組合成分壓結(jié)構(gòu)后便可將電阻波動轉(zhuǎn)化為電壓值浮動,加之其功耗偏高大約在750mW上下,系統(tǒng)在電源設計環(huán)節(jié)便預設了充足余量從而確保供電穩(wěn)定性不易受到干擾。圖3.6MQ-4甲烷檢測模塊3.7水位傳感器模塊水位傳感器采用電阻式測量原理,通過水位起伏帶來的電阻變化推算高度,其模擬信號經(jīng)PA4腳流入STM32,并依靠芯片內(nèi)置ADC執(zhí)行采集處理,探頭總長限定在50毫米,分辨精度可達1毫米范圍,足以敏銳捕捉井下液面的輕微波動狀況。水位傳感器硬件連接需電源(5V)、接地與信號輸出線,信號輸出端連STM32的PA4引腳即ADC輸入通道,井下環(huán)境惡劣防護設計不可缺,特制外殼達IP67防水標準確保長久穩(wěn)定工作,污水和腐蝕性物質(zhì)對電極威脅大所以加特殊涂層增強抗侵蝕能力以延長使用壽命。井下水位監(jiān)測是重要的參考依據(jù),一旦出現(xiàn)異常升高,可能與管道滲漏或排水系統(tǒng)阻塞等問題存在關(guān)聯(lián),當前系統(tǒng)預設的報警標準定為50%,如果檢測到水位超出了這一閾值,就會觸發(fā)報警流程,包括啟動本地蜂鳴設備以及向遠端傳送實時數(shù)據(jù)等手段,借此管理者可以同步獲取井內(nèi)水情動態(tài),在隱患演化成風險前及時介入避免因積水所導致的各種潛在危局及其連鎖經(jīng)濟損失情況的發(fā)生機率大幅下降。圖3.7水位傳感器模塊3.7報警模塊報警模塊是智能井蓋監(jiān)測系統(tǒng)的關(guān)鍵組成部分,主要由蜂鳴器、LED指示燈和振動馬達組成,用于在檢測到異常情況時發(fā)出聲光報警信號。蜂鳴器采用有源壓電式設計,工作電壓為3.3V-5V,通過STM32的PA15引腳控制,為增強驅(qū)動能力,電路中添加了NPN三極管組成的開關(guān)電路。LED指示燈分為紅、黃、綠三色,分別表示嚴重警報、輕微警報和正常狀態(tài),連接至PA12、PA13和PA14引腳。振動馬達用于觸覺提醒,在噪聲環(huán)境下提供額外報警方式,由PA11引腳控制。報警模塊的硬件電路設計考慮了多重保護措施,在蜂鳴器電路中加入了二極管反向并聯(lián)以保護三極管免受反向電壓損害,同時設置限流電阻控制音量大小。軟件設計采用分級報警策略,根據(jù)異常情況的嚴重程度觸發(fā)不同報警方式:一級報警僅點亮黃色LED;二級報警點亮紅色LED并間歇性啟動蜂鳴器;三級報警則同時激活所有報警裝置并改變聲音頻率和LED閃爍速率。系統(tǒng)還設計了自動靜音功能,當報警持續(xù)超過預設時間后,蜂鳴器自動關(guān)閉以節(jié)省電量,但LED指示燈繼續(xù)工作直至異常情況解除。報警觸發(fā)條件基于各傳感器閾值判斷:溫度超過50℃、濕度高于80%、甲烷濃度超過5000ppm、水位高于預設值或檢測到井蓋移動時,系統(tǒng)將根據(jù)偏離閾值的程度決定報警等級。報警模塊不僅在本地發(fā)出警報,還通過4G模塊將報警信息實時傳送至監(jiān)控中心和管理人員手機,確保及時處理潛在危險。這種多級、多通道的報警機制顯著提高了系統(tǒng)的可靠性和應對突發(fā)情況的能力。圖3.8報警模塊
第4章系統(tǒng)軟件設計4.1Keil5軟件介紹該系統(tǒng)軟件開發(fā)選擇了Keil5MDK環(huán)境,這款集成工具專為ARMCortex-M系列微控制器設計,涵蓋從編輯到仿真調(diào)試的全流程功能,它對STM32系列全兼容,并集成μVisionIDE這個核心組件,提供項目管理、代碼撰寫、調(diào)試追蹤和Flash燒錄等多種實用模塊,顯著優(yōu)化了整個開發(fā)周期的速度表現(xiàn)。軟件架構(gòu)采用模塊化設計方向,具體包含多個部分:系統(tǒng)初始化模塊完成時鐘、GPIO、ADC、DMA、UART等外設的初始設置任務,傳感器驅(qū)動模塊聚焦于收集DHT11、MPU6050、MQ-4等傳感器反饋的信息,顯示控制模塊調(diào)控OLED的呈現(xiàn)邏輯,并能實現(xiàn)分頁效果展示功能,按鍵處理模塊則交付按鍵掃描與匹配功能服務,通信模塊專注于拆解GPS數(shù)據(jù)并通過4G完成上傳動作,報警處理模塊經(jīng)傳感器數(shù)值對比預設界限來判斷報警器的實際啟停,整體框架勾勒出一種相對分明的任務劃分線條感。程序以裸機編程形式運行,不依賴操作系統(tǒng)而直接掌控硬件,主程序順序在系統(tǒng)初始化后步入主循環(huán),循環(huán)內(nèi)接連觸發(fā)按鍵掃描、狀態(tài)監(jiān)測、屏幕刷新及數(shù)據(jù)處理之類的函數(shù)操作,定時器中斷用來塑造基本時間參照,使得任務依時序展開,其中定時器1配置成每1ms中斷一次當作基準時鐘起點,類似溫濕度、水位與氣體濃度值以500ms為周期更新,至如GPS信息解析和4G傳輸則安排在每秒執(zhí)行一輪。核心算法的實現(xiàn)過程中,傳感器數(shù)據(jù)采集根據(jù)各類傳感器特性編寫了專門的驅(qū)動函數(shù),DHT11溫濕度傳感器采用單總線通信協(xié)議,依靠精準時序控制來交換數(shù)據(jù),MPU6050通過I2C總線讀取加速度與陀螺儀相關(guān)數(shù)據(jù)用于判斷井蓋位移,MQ-4和水位傳感器經(jīng)由ADC采樣先獲取模擬量再轉(zhuǎn)成實際物理數(shù)值即可。數(shù)據(jù)經(jīng)過處理環(huán)節(jié),濾波能讓噪聲造成的干擾被削弱一些,閾值判斷用來感知異常情況,而打包的作用就是讓后續(xù)上傳成為可能。4.2主程序流程介紹系在main.c中,先寫入其他.c的頭文件,接著是定義用到的全局變量和用到的函數(shù),然后就進入到主函數(shù)中。在主函數(shù)中,先進行初始化,然后按順序循環(huán)while中的四個函數(shù):按鍵函數(shù)、監(jiān)測函數(shù)、顯示函數(shù)、處理函數(shù)。按鍵函數(shù)根據(jù)獲取的鍵值,進行切換界面、設置溫濕度、水位和燃氣閾值;監(jiān)測函數(shù)則每500ms獲取一次溫濕度、燃氣值、水位等,并通過4G模塊將獲取的數(shù)據(jù)上傳至手機;顯示函數(shù)則顯示按鍵函數(shù)進行的操作和監(jiān)測函數(shù)獲取的數(shù)據(jù),顯示經(jīng)緯度位置、溫濕度、水位、燃氣濃度值及其閾值;處理函數(shù)中,如果獲取的溫濕度或燃氣或水位大于其閾值時,或井蓋被移動,蜂鳴器報警,否則蜂鳴器不報警。主程序的函數(shù)流程圖如圖4.1所示。圖4.1程序總體流程圖4.3按鍵函數(shù)流程設計按鍵函數(shù)流程圖如圖4.2所示,按鍵設置函數(shù)首先通過按鍵掃描函數(shù),獲取按鍵按下的相關(guān)信息,通過不同的鍵值,進行相應變量的改變。如果獲取的鍵值為1,切換界面。如果獲取的鍵值為2,界面1,設置溫度最大值加;界面2,設置濕度最大值加;界面3,設置水位最大值加;界面4,設置燃氣最大值加。如果獲取的鍵值為3,界面1,設置溫度最大值減;界面2,設置濕度最大值減;界面3,設置水位最大值減;界面4,設置燃氣最大值減。圖4.2按鍵程序流程圖4.4顯示函數(shù)流程圖顯示函數(shù)流程圖如圖4.3所示,根據(jù)不同界面顯示不同的內(nèi)容;界面0,顯示經(jīng)緯度、溫濕度、水位、燃氣值;界面1,顯示設置溫度閾值;界面2,顯示設置濕度閾值;界面3,顯示設置水位閾值;界面4,顯示設置燃氣閾值。圖4.3顯示程序流程圖
第5章系統(tǒng)的調(diào)試5.2硬件調(diào)試5.3軟件調(diào)試系統(tǒng)調(diào)試分模塊與整體兩個環(huán)節(jié),前者主要核查各部分獨當之任的能力,DHT11調(diào)試依賴溫濕度數(shù)值讀取判別工作狀態(tài),并和市面產(chǎn)品比對數(shù)據(jù)確保誤差可控,MPU6050通過手抖傳感器獲取姿態(tài)反饋數(shù)值評估其加速度與角速度功能運行有無偏差,MQ-4測試靠甲烷氣體接近激發(fā)反應能力并采集濃度變量響應圖來判定敏感度,而水位測量元件借助變化的浸入深淺測定感應性能再矯正線性以優(yōu)化準確度更為穩(wěn)妥些,OLED屏查驗顯示區(qū)字跡銳利程度或界面輪轉(zhuǎn)順滑與否亦屬必要,按鍵須確認觸感敏捷、模式轉(zhuǎn)換正常可靠同樣不可輕慢之,至于GPS與4G則聚焦地理位置捕捉、在線交互傳輸效能還得審視通信連接牢固性和完整性情況為佳,上述操作雖構(gòu)筑起全局測評輪廓但順序安排未必非死板執(zhí)行不可跳躍式調(diào)整也未嘗不可。整體調(diào)試重點落在系統(tǒng)協(xié)同作業(yè)與故障應對能力上,借模擬實際應用場景來摸查系統(tǒng)在不同狀態(tài)里的表現(xiàn):正常狀況下功能推進順暢,數(shù)據(jù)顯示精準無誤,通信鏈路穩(wěn)固;當仿照井下甲烷濃度攀升時,報警機制成功啟動并通過4G網(wǎng)絡送出警報;虛擬井下水位爬升情景時系統(tǒng)可敏銳捕捉水位變化,一旦水位越界便拉響警報;模仿井蓋移位狀況下,MPU6050能捕獲這種非正常變化從而觸發(fā)警報以防盜竊;針對模擬電源波動情況驗證系統(tǒng)在電源不穩(wěn)時的可靠性體現(xiàn)出來;通信切斷模擬狀態(tài)下,檢測數(shù)據(jù)暫存與網(wǎng)絡恢復機能。系統(tǒng)化調(diào)試推進時,軟硬件的缺陷一個個冒頭并逐一解決,傳感器接口那薄弱的抗干擾性能,加濾波電容與屏蔽手段后不再疲軟,4G模塊電源紋波過高的毛病靠優(yōu)化濾波電路才平息,按鍵抖動的麻煩也被軟件防抖算法擺平,軟件這邊GPS數(shù)據(jù)解析不穩(wěn)定狀況通過對邏輯修正搞定,溫濕度采集偶發(fā)失敗的問題用增設重試機制壓低了不少,而數(shù)據(jù)上傳格式錯誤在MQTT消息格式校正之后煙消云散,如此一通優(yōu)化下來功能全都合格運轉(zhuǎn)正常無誤,各項監(jiān)測數(shù)據(jù)里的誤報概率跌到5%以下,漏報幾乎看不見,這個設計方案算是妥妥地契合了實際使用需求。圖5.1程序代碼運行界面5.2實物展示實物展示的目的是展示系統(tǒng)的外觀和功能,以及模擬系統(tǒng)的工作場景,驗證系統(tǒng)的實用性和可行性。通過實物展示,我們展示了系統(tǒng)的外觀和功能,以及模擬了系統(tǒng)的工作場景,證明了系統(tǒng)的實用性和可行性。圖5.2甲烷異常展示圖5.3位置異常展示圖5.4水位異常展示圖5.5溫濕度異常展示第6章結(jié)論本文成功設計并實現(xiàn)了一套以STM32F103單片機為核心的智能井蓋監(jiān)測系統(tǒng)。該系統(tǒng)通過集成多種傳感器技術(shù),實現(xiàn)了對井下環(huán)境的全方位實時監(jiān)測,包括氣體濃度、水位高度、溫濕度變化以及井蓋狀態(tài)等關(guān)鍵參數(shù)。系統(tǒng)采用4G網(wǎng)絡技術(shù)將采集的數(shù)據(jù)實時上傳至云端,有效實現(xiàn)了遠程監(jiān)管功能。在設計過程中,系統(tǒng)嚴格遵循模塊化原則,使硬件布局清晰合理,軟件結(jié)構(gòu)簡潔高效,成功實現(xiàn)了所有預定功能。實驗結(jié)果表明,該智能井蓋系統(tǒng)具有顯著優(yōu)勢:能夠精確捕捉井下環(huán)境的關(guān)鍵數(shù)據(jù),報警機制穩(wěn)定可靠,異常情況能被及時感知并處理,且支持遠程操控功能。此外,系統(tǒng)能耗較低,適合長期電池供電,經(jīng)濟成本合理,便于推廣應用。作為智慧城市基礎設施的重要組成部分,智能井蓋系統(tǒng)對提升城市管理能力和保障公共安全具有積極意義。未來研究方向可集中于以下幾個方面:一是優(yōu)化系統(tǒng)功耗,延長電池續(xù)航時間;二是增強數(shù)據(jù)分析能力,實現(xiàn)異常預警與預防性維護;三是探索物聯(lián)網(wǎng)技術(shù)在大規(guī)模部署中的應用,構(gòu)建覆蓋全城的井蓋監(jiān)測網(wǎng)絡;四是研發(fā)新型傳感技術(shù),進一步提高數(shù)據(jù)采集的精準度與可靠性。
參考文獻[1]王超,張鵬.智能窨井監(jiān)測終端及系統(tǒng)設計與實現(xiàn)[J].信息通信,2020(11):3.DOI:CNKI:SUN:HBYD.0.2018-11-035.[2]周天宇.一種管道智能窨井蓋及其防盜控制系統(tǒng):CN201520287757.3[P].CN204614125U[2024-03-09].[3]周斌.一種自控式窨井防溢系統(tǒng):CN201920890659.7[P].CN210827756U[2024-03-09].[4]郭治永.基于SHCAN2000污水處理自動控制系統(tǒng)的設計與實現(xiàn)[D].交通大學[2024-03-09].DOI:10.7666/d.y1644762.[5]楊家成.自動排水式窨井蓋:CN200420108657.1[P].CN2742035[2024-03-09].[6]劉浩東,劉振舒.一種浮球閘門式自控截污窨井:CN201720739805.7[P].CN207063119U[2024-03-09].[7]龐啟明,吳有龍,楊娟,等.基于北斗定位的智慧城市窨井蓋安全監(jiān)測系統(tǒng)設計[J].物聯(lián)網(wǎng)技術(shù),2023,13(6):8-10.[8]鐘嘯風.一種多參數(shù)氣體自動監(jiān)測及處理系統(tǒng):CN200920294164[P][2024-03-09].DOI:CN201638035U.[9]陳龍.智能家居自動控制與監(jiān)測系統(tǒng)的設計與實現(xiàn)[D].內(nèi)蒙古大學[2024-03-09].[10]方子龍.基于物聯(lián)網(wǎng)的智能化窨井管理系統(tǒng)的設計[J].中國有線電視,2020(5):3.DOI:CNKI:SUN:YXDS.0.2020-05-017.[11]蔡安琪.智能溫室自動控制系統(tǒng)的設計與實現(xiàn)[J].電子技術(shù)(上海),2022(004):051.[12]貢偉東,胡紅蘭,李文濤,等.一種基于射頻識別的市政窨井蓋監(jiān)控系統(tǒng):201610944777[P][2024-03-09].[13]高秋紅.一種智能預警窨井蓋:CN201721859126.X[P].CN207749540U[2024-03-09].[14]陳平物,盛周軍.危險氣體監(jiān)控設備及系統(tǒng):CN201621464849.5[P].CN206340144U[2024-03-09].[15]陶堅,朱圣光,陳昊廷.窨井自動報警裝置:CN201420576902.5[P].CN204166637U[2024-03-09].[16]鄭鈺,陳熙文,熊彧以,等.一種自動排澇的窨井蓋:CN201822163154.9[P].CN209603190U[2024-03-09].[17]金佳珉.一種具有自動開關(guān)的窨井蓋:CN201710912108.1[P].CN107724429A[2024-03-09].[18]陶堅,朱圣光.自動報警窨井裝置:CN201320697201.2[P].CN203625940U[2024-03-09].[19]孫鴻,陳鐵欽.自動控制啟閉的窨井蓋裝置:CN201520906870.5[P].CN205153087U[2024-03-09].[20]張韻.可自動控制的窨井蓋:CN201420311393.3[P][2024-03-09].附錄原理圖:源程序:/*USERCODEBEGINHeader*//*********************************************************************************@file:main.c*@brief:Mainprogrambody*******************************************************************************@attention**Copyright(c)2022STMicroelectronics.*Allrightsreserved.**ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware,itisprovidedAS-IS.********************************************************************************//*USERCODEENDHeader*//*Includes*/#include"main.h"#include"adc.h"#include"dma.h"#include"tim.h"#include"usart.h"#include"gpio.h"/*Privateincludes*//*USERCODEBEGINIncludes*/#include"./HAL/key/key.h"#include"./HAL/OLED/OLED_NEW.H"#include"./HAL/MPU6050/MPU6050.h"#include"./HAL/Air724/Air724.h"#include"./HAL/dht11/dht11.h"/*USERCODEENDIncludes*//*Privatetypedef*//*USERCODEBEGINPTD*/voidKey_function(void); //按鍵函數(shù)voidMonitor_function(void); //監(jiān)測函數(shù)voidDisplay_function(void); //顯示函數(shù)voidManage_function(void); //處理函數(shù)/*USERCODEENDPTD*//*Privatedefine*//*USERCODEBEGINPD*//*USERCODEENDPD*//*Privatemacro*//*USERCODEBEGINPM*//*USERCODEENDPM*//*Privatevariables*//*USERCODEBEGINPV*/uint8_tkey_num,flag_display; //按鍵與顯示變量uint16_ttime_1ms,time_500ms; //計時變量1ms,500msuint16_ttemp,humi; //溫度、濕度變量uint16_ttemp_max=500,humi_max=80; //溫度、濕度閾值變量int16_tAX,AY,AZ,GX,GY,GZ; //x、y、z軸的加速度與角速度變量uint16_tAD_Value[2]; //AD轉(zhuǎn)換緩存數(shù)組uint8_tMQ4,level; //燃氣濃度變量、水位變量uint8_tMQ4_max=50,level_max=50; //燃氣濃度閾值、水位閾值/*各項閾值報警標志位*/uint8_ttemp_BEEP,humi_BEEP,level_BEEP,MQ4_BEEP,move_BEEP;uint8_tuart2_buf[150],uart2_flag; //串口2變量char*Start,*End; //測經(jīng)緯度開始/結(jié)束標志位charlatitude_buf[20]; //維度charlongitude_buf[20]; //經(jīng)度doublelat,lon; //經(jīng)緯度(浮點型)uint16_ttime_4G,flag_4G; //4G上傳計時與4G上傳標志位/*USERCODEENDPV*//*Privatefunctionprototypes*/voidSystemClock_Config(void);/*USERCODEBEGINPFP*//*USERCODEENDPFP*//*Privateusercode*//*USERCODEBEGIN0*//***********GPS*****/voidGPS_function(void){chari;// memset(latitude_buf,'-',7);// memset(longitude_buf,'-',7);Start=strstr((char*)uart2_buf,"GLL");if(Start!=NULL){Start=strstr(Start,",")+1;//獲取緯度數(shù)據(jù)首地址if(*(Start)!=',')//判斷是否獲取到經(jīng)緯度數(shù)據(jù){Start++;//緯度數(shù)據(jù)首地址End=strstr(Start,",");//獲取緯度數(shù)據(jù)尾地址for(i=0;i<End-Start;i++){latitude_buf[i+1]=*(Start+i-1);//將緯度數(shù)據(jù)存放在數(shù)組中if(*(Start+i-1)=='.'){latitude_buf[i+1]=latitude_buf[i];latitude_buf[i]=latitude_buf[i-1];latitude_buf[i-1]='.';}}Start=strstr(Start,",")+1;//獲取南緯或北緯數(shù)據(jù)if(*Start=='N'||*Start=='S')latitude_buf[0]=*Start;//將數(shù)據(jù)存放在緯度數(shù)組Start=strstr(Start,",")+1;//獲取經(jīng)度數(shù)據(jù)首地址End=strstr(Start,",");//獲取經(jīng)度數(shù)據(jù)尾地址for(i=0;i<End-Start;i++){longitude_buf[i+1]=*(Start+i);//將經(jīng)度數(shù)據(jù)存放在數(shù)組中if(*(Start+i)=='.'){longitude_buf[i+1]=longitude_buf[i];longitude_buf[i]=longitude_buf[i-1];longitude_buf[i-1]='.';}}Start=strstr(Start,",")+1;//獲取東經(jīng)或西經(jīng)數(shù)據(jù)if(*Start=='E'||*Start=='W')longitude_buf[0]=*Start;//將數(shù)據(jù)存放在經(jīng)度數(shù)組中l(wèi)atitude_buf[7]='\0';//只讓經(jīng)度和緯度顯示十個字符longitude_buf[7]='\0'; lat=atof((char*)latitude_buf+1);//字符串轉(zhuǎn)換為浮點型變量 lon=atof((char*)longitude_buf+1);//字符串轉(zhuǎn)換為浮點型變量}}}/***********按鍵設置函數(shù)*****/voidKey_function(void){ key_num=Chiclet_Keyboard_Scan(); //按鍵掃描 if(key_num!=0) //有按鍵按下 { switch(key_num) { case1: //按鍵1,切換界面 (flag_display==4)?(flag_display=0):(flag_display++); OLED_Clear(); //按一下,清屏一次 break; case2: //按鍵2 if(flag_display==1&&temp_max<990) temp_max+=10; if(flag_display==2&&humi_max<99) humi_max++; if(flag_display==3&&level_max<99) level_max++; if(flag_display==4&&MQ4_max<99) MQ4_max++; break; case3: //按鍵3 if(flag_display==1&&temp_max>0) temp_max-=10; if(flag_display==2&&humi_max>0) humi_max--; if(flag_display==3&&level_max>0) level_max--; if(flag_display==4&&MQ4_max>0) MQ4_max--; break; default: break; } }}/***********監(jiān)測函數(shù)*****/voidMonitor_function(void){ if(time_500ms==1) //每500ms執(zhí)行一次 { time_500ms=0; DHT11_Read_TempAndHumidity(&DHT11_Data); //調(diào)用獲取溫濕度函數(shù) temp=DHT11_Data.temperature; //獲取溫度 humi=DHT11_Data.humidity/10; //獲取濕度 MPU6050_GetData(&AX,&AY,&AZ,&GX,&GY,&GZ); //獲取MPU6050的六軸數(shù)據(jù) level=AD_Value[0]/4096.0*100*2; //獲取水位與燃氣濃度值 MQ4=AD_Value[1]/4096.0*100; } if(uart2_flag==1) //GPS串口接受到120個數(shù)據(jù),開始解析 { uart2_flag=0; GPS_function(); } if(flag_4G==1) //1S上傳一次4G數(shù)據(jù) { flag_4G=0; Ali_MQTT_Publish(); }}/***********顯示函數(shù)*****/voidDisplay_function(void){ switch(flag_display) //根據(jù)不同的顯示模式標志位,顯示不同 { case0: Oled_ShowString(0,0,(uint8_t*)latitude_buf); //顯示緯度Oled_ShowString(64,0,(uint8_t*)longitude_buf); //顯示經(jīng)度 OLED_Show_Temp(0,2,temp); if(temp_BEEP==1) Oled_ShowString(48,2,(uint8_t*)"!"); else Oled_ShowString(48,2,(uint8_t*)""); OLED_Show_Humi(96,2,humi); if(humi_BEEP==1) Oled_ShowString(120,2,(uint8_t*)"!"); else Oled_ShowString(120,2,(uint8_t*)""); Oled_ShowCHinese(0,4,(uint8_t*)"水位:"); OLED_ShowNum(48,4,level,2,16); if(level_BEEP==1) Oled_ShowString(64,4,(uint8_t*)"!"); else Oled_ShowString(64,4,(uint8_t*)""); Oled_ShowCHinese(0,6,(uint8_t*)"燃氣濃度:"); OLED_ShowNum(80,6,MQ4,2,16); if(MQ4_BEEP==1) Oled_ShowString(96,6,(uint8_t*)"!"); else Oled_ShowString(96,6,(uint8_t*)""); break; case1: Oled_ShowCHinese(16,2,(uint8_t*)"設置溫度閾值"); OLED_Show_Temp(40,5,temp_max); break; case2: Oled_ShowCHinese(16,2,(uint8_t*)"設置濕度閾值"); OLED_Show_Humi(52,5,humi_max); break; case3: Oled_ShowCHinese(16,2,(uint8_t*)"設置水位閾值"); OLED_ShowNum(56,5,level_max,2,16); break; case4: Oled_ShowCHinese(16,2,(uint8_t*)"燃氣濃度閾值"); OLED_ShowNum(56,5,MQ4_max,2,16); break; }}/***********處理函數(shù)*****/voidManage_function(void){ /*各項數(shù)值超出閾值,報警標志位置1*/ if(temp>temp_max)temp_BEEP=1;elsetemp_BEEP=0; if(humi>humi_max)humi_BEEP=1;elsehumi_BEEP=0; if(level>level_max)level_BEEP=1;elselevel_BEEP=0; if(MQ4>MQ4_max)MQ4_BEEP=1;elseMQ4_BEEP=0; if(AY>1300||AY<-1300||AX>1300||AX<-1300) move_BEEP=1; else move_BEEP=0; if(temp_BEEP==1||humi_BEEP==1||level_BEEP==1||MQ4_BEEP==1||move_BEEP==1) //各項數(shù)值超出閾值或者檢測到井蓋被移動,報警 BEEP(1); else BEEP(0); }/*USERCODEEND0*//***@briefTheapplicationentrypoint.*@retvalint*/intmain(void){/*USERCODEBEGIN1*//*USERCODEEND1*//*MCUConfiguration*//*Resetofallperipherals,InitializestheFlashinterfaceandtheSystick.*/HAL_Init();/*USERCODEBEGINInit*//*USERCODEENDInit*//*Configurethesystemclock*/SystemClock_Config();/*USERCODEBEGINSysInit*//*USERCODEENDSysInit*//*Initializeallconfiguredperipherals*/MX_GPIO_Init();MX_DMA_Init();MX_TIM1_Init();MX_USART1_UART_Init();MX_USART2_UART_Init();MX_ADC1_Init();/*USERCODEBEGIN2*/HAL_TIM_Base_Start_IT(&htim1); //定時器1中斷使能 HAL_UART_Receive_IT(&huart2,uart2_buf,120); //串口2中斷使能 HAL_ADC_Start_DMA(&hadc1,(uint32_t*)AD_Value,2); //ADC1開啟DMA轉(zhuǎn)換/*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/OLED_Init(); //顯示屏初始化OLED_Clear(); //清屏 DHT11_GPIO_Init(); //溫濕度傳感器初始化 MPU6050_Init(); //六軸傳感器引腳初始化 Air724_init(); //4G模塊初始化while(1){Key_function(); //按鍵函數(shù) Monitor_function(); //監(jiān)測函數(shù) Display_function(); //顯示函數(shù) Manage_function(); //處理函數(shù)/*USERCODEENDWHILE*//*USERCODEBEGIN3*/}/*USERCODEEND3*/}/***@briefSystemClockConfiguration*@retvalNone*/voidSystemClock_Config(void){RCC_OscInitTypeDefRCC_OscInitStruct={0};RCC_ClkInitTypeDefRCC_ClkInitStruct={0};RCC_PeriphCLKInitTypeDefPeriphClkInit={0};/**InitializestheRCCOscillatorsaccordingtothespecifiedparameters*intheRCC_OscInitTypeDefstructure.*/RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState=RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 齊齊哈爾市建華區(qū)2025-2026學年數(shù)學四年級第二學期期末復習檢測試題(含答案解析)
- 黔東南南苗族侗族自治州錦屏縣2025年數(shù)學三年級下學期期末考試模擬試題含解析
- 《急危重患者搶救制度》考試試題
- 2025廣東汕尾海豐縣國有資產(chǎn)監(jiān)督管理局招聘12名縣屬國有企業(yè)工作人員擬聘用人員(第四批)筆試歷年常考點試題專練附帶答案詳解
- 2025廣東廣州花都城投西城經(jīng)濟開發(fā)有限公司第二次招聘項目用工人員23人筆試歷年常考點試題專練附帶答案詳解
- 2025廣東東莞市麻涌鎮(zhèn)人力資源服務有限公司招聘檔案資料員2人筆試歷年典型考點題庫附帶答案詳解
- 2025年甘肅省甘南州舟曲縣多地藝術(shù)演藝有限公司招聘30人筆試歷年典型考點題庫附帶答案詳解
- 黑龍江省鶴崗市向陽區(qū)2025屆數(shù)學三年級第二學期期中質(zhì)量檢測模擬試題含答案解析
- 急救藥品考試題及答案
- 藥事質(zhì)控中心培訓測試測試卷及答案
- 2026年湖南有色黃沙坪礦業(yè)有限公司招聘80人筆試參考題庫及答案詳解
- 《養(yǎng)生保健》課件-5.上肢部保健按摩
- 2026年浙江省大學生鄉(xiāng)村醫(yī)生專項計劃招聘考試歷年參考題庫含答案詳解
- 建設電工勞務分包合同
- (2026年)女性避孕方法臨床應用的中國專家共識(2026年擴展版)
- 2026年黨員應知應會基礎知識試題(附答案)
- 修訂一單一庫質(zhì)量手冊和程序文件參考文件
- 2026年衛(wèi)健系統(tǒng)公開遴選公務員筆試試題及答案解析(衛(wèi)健類)
- 2026年藥食同源食品與新食品原料(新資源食品)食用量標準大全
- 大疆創(chuàng)新人力資源管理實踐完全指南
- 2026年城鄉(xiāng)規(guī)劃設計院招聘試題(含答案)
評論
0/150
提交評論