版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于單片機(jī)的電子防潮箱控制系統(tǒng)設(shè)計(jì)摘要電子防潮箱控制面板的主要功能是監(jiān)測(cè)防潮箱內(nèi)空氣溫濕度變化,設(shè)定溫濕度閾值超過(guò)報(bào)警,提醒用戶查看存儲(chǔ)情況。該設(shè)計(jì)通過(guò)單片機(jī)進(jìn)行控制,溫濕度傳感器將采集到的數(shù)據(jù)傳送給單片機(jī),經(jīng)單片機(jī)處理將數(shù)據(jù)現(xiàn)實(shí)在OLED屏幕上,還可以通過(guò)串口連接PC端將數(shù)據(jù)實(shí)時(shí)上傳,方便用戶查看控制器狀態(tài)。通過(guò)按鍵控制設(shè)置報(bào)警閾值與采集到的溫度、濕度信息進(jìn)行比對(duì),如果超過(guò)設(shè)定值,將驅(qū)動(dòng)蜂鳴器和LED報(bào)警,輸出PWM波通過(guò)驅(qū)動(dòng)電路連接排濕模塊自動(dòng)排濕,該設(shè)計(jì)還可以根據(jù)濕度超過(guò)設(shè)定比例自動(dòng)調(diào)節(jié)PWM占空比,調(diào)節(jié)排濕模塊除濕速度。本文首先從電子防潮箱的背景和研究意義進(jìn)行介紹,電子防潮箱不僅適用于電子元器件存放環(huán)境溫濕度測(cè)量和控制,同時(shí)在醫(yī)療、食品儲(chǔ)藏運(yùn)輸中的作用是顯著的。接著給出兩個(gè)設(shè)計(jì)方案,從電路原理、芯片參數(shù)、軟件實(shí)施,這幾個(gè)方面論證方案可行性,選出優(yōu)質(zhì)方案。硬件部分分模塊介紹電路功能,講述電路搭建原理,實(shí)現(xiàn)的功能。軟件部分先列出流程圖介紹軟件實(shí)施主要流程,再對(duì)核心代碼進(jìn)行分析。系統(tǒng)調(diào)試,講述硬件、軟件實(shí)現(xiàn)設(shè)計(jì)功能遇到的問(wèn)題,排查過(guò)程列出解決方案,展示最終效果。關(guān)鍵字:STM32溫濕度傳感器OLED顯示EEPROM串口通訊目錄第一章 緒論 41.1研究背景 41.2課題的研究意義 4第二章 系統(tǒng)設(shè)計(jì)方案分析 62.1功能分析及說(shuō)明 62.2設(shè)計(jì)方案論證 6方案一:采用51單片機(jī)與DHT11 6方案二:采用STM32與SHT30 62.3方案總結(jié) 7第三章 硬件系統(tǒng)設(shè)計(jì) 73.1硬件框圖 73.2單元電路介紹 83.2.1溫濕度采集電路 83.2.2顯示電路 93.2.3存儲(chǔ)電路 103.2.4USB-TTL與電源供電電路 113.2.5按鍵和報(bào)警電路 123.2.6單片機(jī)最小系統(tǒng)電路 133.3主要器件清單 14第四章 軟件設(shè)計(jì) 154.1溫濕度采集 164.2溫濕度顯示 194.3閾值設(shè)定存儲(chǔ) 21第五章 系統(tǒng)調(diào)試 255.1硬件調(diào)試 255.2軟件調(diào)試 275.3實(shí)際效果 29結(jié)束語(yǔ) 30參考文獻(xiàn) 31緒論1.1研究背景隨著這些年科技的不斷進(jìn)步與發(fā)展,溫濕度對(duì)社會(huì)中各個(gè)領(lǐng)域的影響不可忽視,溫濕度也逐漸變成了監(jiān)控系統(tǒng)中需要著重測(cè)量的參數(shù)之一。在我們的日常生活中各行業(yè)生產(chǎn)制造與存儲(chǔ)的場(chǎng)景,室溫、空氣中的濕度都會(huì)對(duì)制造與存儲(chǔ)產(chǎn)生影響。例如一些精密的電子元器件因受潮,對(duì)它的精度、響應(yīng)時(shí)間產(chǎn)生損傷。由于損傷的是芯片內(nèi)部,我們無(wú)法從外觀來(lái)判斷,只有在電路中使用是發(fā)現(xiàn)參數(shù)不準(zhǔn)確才會(huì)發(fā)現(xiàn),這樣對(duì)我們維修、更換都帶來(lái)的挑戰(zhàn)。所以在電子行業(yè)電子元器件一般存放在防潮箱中,使用溫濕度傳感器監(jiān)測(cè)。同時(shí)防潮箱在醫(yī)療、食品儲(chǔ)藏運(yùn)輸中的作用是顯著的。1.2課題的研究意義防潮作用箱指的是應(yīng)用多種除濕作用專業(yè)技術(shù)高效地減少柜內(nèi)實(shí)際濕度,進(jìn)而實(shí)現(xiàn)多種使用目的。這種類最開始的商品稱之為『整理盒』,以后可以更加高效儲(chǔ)存物體、東西供應(yīng)氣密的盒子,稱之為『密封盒』以后又為了和其他相相似商品交易市場(chǎng)商品區(qū)分才又稱之為『防潮作用盒』,實(shí)際有效體積大少數(shù)的稱之為『防潮作用箱』。為了讓防潮作用效果更加良好,里面放入可以吸附水汽、濕氣1次性運(yùn)用的『干燥處理物質(zhì)材料包』簡(jiǎn)稱之為『干燥處理包』或者『干燥處理化學(xué)試劑』,但是因?yàn)楦稍锾幚戆豢梢?次性運(yùn)用,沒(méi)有辦法知道了解是否早已失去效能,以后于箱內(nèi)加上『實(shí)際濕度表』能夠自動(dòng)顯示通告箱內(nèi)實(shí)際濕度實(shí)際情況,逐漸地這種商品開始受到交易市場(chǎng)上的充分關(guān)注,在這其中,特別是攝影工作人員,由于專業(yè)單反相機(jī)的鏡頭簡(jiǎn)單由于濕氣高并且在一個(gè)密封的分布空間的時(shí)候,簡(jiǎn)單在鏡頭表層導(dǎo)致發(fā)霉的實(shí)際狀況,以后廠家推行了『實(shí)際濕度表』與『密封盒』的商品。這樣的氣密箱內(nèi)一旦放入了『干燥處理包』,就能夠在外箱上發(fā)現(xiàn)實(shí)際濕度實(shí)際情況,這種類商品就是『防潮作用箱』。它的優(yōu)勢(shì)是價(jià)格低廉、運(yùn)用便利,但是因?yàn)楦稍锾幚戆鼘儆?次性作用功能,當(dāng)吸收水汽實(shí)現(xiàn)一定充分飽和程度就喪失不斷除濕作用水平,而且還會(huì)由于濕氣沒(méi)能實(shí)時(shí)在線吸收全面排除而反倒逐漸發(fā)展成為了『保濕』的反作用效果,如果沒(méi)有留意干燥處理包的調(diào)換商品反倒逐漸發(fā)展成為了『保濕箱』,這一缺點(diǎn)不足是十分受人詬病的組成部分。伴隨著科學(xué)技術(shù)專業(yè)技術(shù)的發(fā)展進(jìn)步,以后干燥處理物質(zhì)材料產(chǎn)生可使用加熱處理重復(fù)運(yùn)用的干燥處理物質(zhì)材料,例如硅膠干燥處理化學(xué)試劑等。使用多孔物質(zhì)對(duì)水分子的吸附作用理論展開除濕作用防潮作用,并且能夠經(jīng)過(guò)加熱處理再生重復(fù)運(yùn)用。這種商品要求長(zhǎng)時(shí)間插通電源,就稱之為『電子防潮作用箱』。電子防潮作用箱作用控制范圍非常廣闊,有家用電子防潮作用箱與第二產(chǎn)業(yè)用的防潮作用箱,能夠用在影像參考資料、攝影設(shè)備器材、數(shù)碼電子數(shù)字類商品、郵票、高品質(zhì)收藏品、電子控制芯片、光學(xué)使用物品等少數(shù)怕潮濕的物體,及太陽(yáng)光能產(chǎn)業(yè)、電子產(chǎn)業(yè)、大學(xué)院校研究勘察院等。系統(tǒng)設(shè)計(jì)方案分析2.1功能分析及說(shuō)明結(jié)構(gòu)包括防潮箱體、排濕機(jī)構(gòu)、控制面板等。其中控制面板可進(jìn)行溫濕度采集、濕度設(shè)置、溫濕度顯示等功能。本設(shè)計(jì)要求在了解電子防潮箱工作原理的基礎(chǔ)上完成其控制器的硬件與軟件設(shè)計(jì),同時(shí)預(yù)留通信接口為調(diào)試與聯(lián)網(wǎng)提供依據(jù)。2.2設(shè)計(jì)方案論證2.2.1方案一采用51單片機(jī)與DHT11:80C51單片機(jī)屬于美國(guó)Intel公司的MSC-51系列產(chǎn)品中的一個(gè)型號(hào),它采用CHMOS工藝,功耗低,性能優(yōu)良,在市場(chǎng)中獲得了廣泛的應(yīng)用。因?yàn)榭萍嫉目焖侔l(fā)展,如今51單片機(jī)的性能很難滿足我們開發(fā)的需求。51單片機(jī)本身不配備AD、EEPROM等功能,我們需要外接外圍電路,這大大增加了硬件和軟件的負(fù)擔(dān)。我們的設(shè)計(jì)中需要用到驅(qū)動(dòng)電路,而51單片機(jī)的IO口高電平時(shí)無(wú)輸出能力,這樣一來(lái)大大增加了我們硬件電路設(shè)計(jì)的難度。DHT11是國(guó)產(chǎn)的溫濕度傳感器,其測(cè)量精度和范圍都不高,它可以測(cè)量的環(huán)境溫度為0-50℃,實(shí)際溫度與測(cè)量所得數(shù)據(jù)相差±2℃,測(cè)量的環(huán)境濕度范圍為20%-90%RH,實(shí)際濕度與測(cè)量所得數(shù)據(jù)相差±5%RH。而且在實(shí)際使用過(guò)程中,DHT11傳感器在一些惡劣環(huán)境中極易損壞,如果不能及時(shí)發(fā)現(xiàn)可能會(huì)造成財(cái)產(chǎn)損失。如果我們需要保存一些精密儀器,由于傳感器精度不高會(huì)對(duì)我們?cè)斐衫_。由于上述原因,放棄了使用51單片機(jī)和DHT11的方案。2.2.2方案二采用STM32與SHT30:STM32是由ST廠商推出的一系列單片機(jī),這是一款性價(jià)比超高的系列單片機(jī),功能極其強(qiáng)大。其基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARMCortex-M內(nèi)核,同時(shí)配備USART、I2C、SPI等功能,還有豐富的開源方案使我們的設(shè)計(jì)難度大大降低。瑞士SensirioSHT30采用8位的DFN封裝,體積小巧,可以使用I2C協(xié)議進(jìn)行數(shù)據(jù)傳輸,其測(cè)量范圍為溫度-40-125℃,誤差±0.2℃,濕度0-100%,誤差±2%,相較于DHT11,其測(cè)量范圍和精度都遠(yuǎn)超前者,搭配STM32芯片出色的性能,使該設(shè)計(jì)在工業(yè)控制領(lǐng)域工作更加精確穩(wěn)定。2.3方案總結(jié)方案一所采用的51單片機(jī)和DHT11雖然經(jīng)典,但由于科技的發(fā)展,對(duì)存儲(chǔ)環(huán)境監(jiān)測(cè)的要求越來(lái)越高,該方案在現(xiàn)實(shí)使用中性能和精度達(dá)不到要求,所以放棄了該方案。選擇了方案二STM32加SHT30的方案,SHT30由于其測(cè)量精度高體積小等特點(diǎn),在工業(yè)監(jiān)測(cè)中使用廣泛。搭配STM32與其I2C傳輸數(shù)據(jù)速度高達(dá)1M,同時(shí)STM32配備USART、I2C、SPI等功能,可以添加許多外圍電路來(lái)豐富設(shè)計(jì),其性能強(qiáng)大還可以在這基礎(chǔ)上進(jìn)行二次開發(fā),與上位機(jī)連接、加入物聯(lián)網(wǎng)模塊完成遠(yuǎn)程控制等。硬件系統(tǒng)設(shè)計(jì)3.1硬件框圖本章主要介紹電子防潮箱控制面板的電路設(shè)計(jì),課題需要實(shí)現(xiàn)溫濕度采集、濕度報(bào)警設(shè)定、液晶顯示溫濕度、斷電保存等功能,該電路由多個(gè)模塊組成,使用AltuimDesigner軟件繪制該電路原理圖與PCB板圖。圖3-1STM32系統(tǒng)框圖由框圖所示,系統(tǒng)將溫濕度傳感器SHT30采集到的數(shù)據(jù)通過(guò)I2C通訊協(xié)議傳送給單片機(jī),然后經(jīng)過(guò)單片機(jī)處理得到十進(jìn)制溫濕度值后,將得到的數(shù)據(jù)顯示在OLED屏幕并且經(jīng)過(guò)CH340電平轉(zhuǎn)換后通過(guò)串口打印在串口助手上。通過(guò)按鍵設(shè)定報(bào)警閾值,主控芯片將設(shè)定數(shù)值寫入EEPROM芯片,保證斷電后數(shù)據(jù)不丟失,每次上電前讀取EEPROM里的內(nèi)容。當(dāng)外界環(huán)境達(dá)到報(bào)警閾值時(shí)單片機(jī)發(fā)出高電平驅(qū)動(dòng)蜂鳴器和LED燈提示報(bào)警。3.2單元電路介紹3.2.1溫濕度采集電路該電路采用SHT30傳感器采集溫濕度,SHT30數(shù)字溫濕度傳感器是Sensirion盛世瑞恩公司生產(chǎn)的,工作電壓2.4-5.5V,測(cè)量溫度與實(shí)際溫度相差±0.2℃,測(cè)量濕度與實(shí)際濕度相差±3%RH,采用IIC總線與單片機(jī)通信。采用DFN-8_L2.5_W2封裝,具有體積小,測(cè)量精度高等特點(diǎn)。圖3-2SHT30電路圖圖3-3SHT30實(shí)物圖SCL同步微控制器和傳感器之間的通信。時(shí)鐘頻率可以在0~1000KHZ之間自由選擇SDA引腳用于向傳感器傳遞數(shù)據(jù)和從傳感器傳遞數(shù)據(jù)。單片機(jī)與SHT30采取I2C通訊所以SDA與SCL引腳需要加上上拉電阻,才能滿足通訊要求。通過(guò)ADDR引腳合適的接線,可以選擇I2C地址。ADDR引腳可以直接接到VDD或VSS,或者也可以作為一個(gè)選擇銷。這意味傳感器的地址可以改變,在運(yùn)行過(guò)程中動(dòng)態(tài)切換水平上的地址引線。唯一的限制是電平必須保持恒定,從I2C開始狀態(tài)直到通信結(jié)束。NRESE引腳可用于傳感器的復(fù)位。3.2.2顯示電路圖3-4OLED顯示屏原理圖圖3-5OLED顯示屏實(shí)物為了便于用戶可以直觀的看到溫度、濕度及設(shè)定的報(bào)警閾值數(shù)據(jù),所以電路采用一個(gè)OLED屏幕來(lái)顯示,該顯示屏為0.96OLED顯示,采用SPI接口。各引腳功能如下:1、GND:電源地2、VCC:電源正(3V-5.5V)3、D0:OLED的D0腳,在SPI通信中為時(shí)鐘管腳4、D1:OLED的D1腳,在SPI通信中為數(shù)據(jù)管腳5、RES:OLED的RES#腳,用來(lái)復(fù)位(低電平復(fù)位)6、DC:OLED的D/C#腳,數(shù)據(jù)和命令控制管腳7、CS:OLED的CS#管腳,也就是片選管腳3.2.3存儲(chǔ)電路圖3-6EEPROM電路圖3-7AT24C02芯片為了保護(hù)單片機(jī)的內(nèi)部FLASH可擦寫次數(shù)所以沒(méi)有把數(shù)據(jù)存放在單片機(jī)的內(nèi)部FLASH里,而是采用該電路來(lái)存儲(chǔ)設(shè)定的報(bào)警濕度數(shù)據(jù),AT24C02是電可擦除PROM,采用256×8-bit的組織結(jié)構(gòu)以及兩線串行接口。AO、A1、A2是器件的地址輸入引腳,SDA串行地址和數(shù)據(jù)輸入/輸出。SDA是雙向串行數(shù)據(jù)傳輸引腳,漏極開路,需外接上拉電阻到VCC。該電路沒(méi)有進(jìn)行上拉是因?yàn)椴捎玫腟TM32C8T6單片機(jī)PB6、PB7引腳支持I2C通訊,在單片機(jī)內(nèi)部上拉即可。SCL串行時(shí)鐘輸入,SCL同步數(shù)據(jù)傳輸,上升沿?cái)?shù)據(jù)寫入,下降沿?cái)?shù)據(jù)讀出。WP寫保護(hù),WP引腳提供硬件數(shù)據(jù)保護(hù)。當(dāng)WP接地時(shí),允許數(shù)據(jù)正常讀寫操作;當(dāng)WP接VCC時(shí),寫保護(hù),只讀。3.2.4USB-TTL與電源供電電路圖3-8USB-TTL圖3-95V轉(zhuǎn)3V3 該電路實(shí)現(xiàn)設(shè)備與PC端通信,CH340是一個(gè)USB總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB轉(zhuǎn)串口或者USB轉(zhuǎn)打印口,在串口方式下,CH340提供常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到USB總線。CH340芯片內(nèi)置了USB上拉電阻,所以UD、UD-引腳直接連接到USB接口的D+、D-,連接到USB總線上。TXD串行數(shù)據(jù)輸出,RXD串行數(shù)據(jù)輸入,因?yàn)橐瓿赏ㄐ?,所以PC端的TX數(shù)據(jù)輸出應(yīng)該接到主控芯片的RX端數(shù)據(jù)輸入,所以PC端的RX數(shù)據(jù)輸入應(yīng)該接到主控芯片的TX端數(shù)據(jù)輸出,這樣才能完成交互。USB接口還提供了應(yīng)該5V直流電壓,經(jīng)過(guò)AMS1117-3V3的轉(zhuǎn)換,由5V轉(zhuǎn)換為3.3V為整個(gè)系統(tǒng)供電。AMS1117是一款低壓差的線性穩(wěn)壓器,該電路使用芯片的是固定電壓輸出版本,只需要在Vin輸入、Vout輸出端加上濾波電容,使輸出電壓更加平滑。3.2.5按鍵和報(bào)警電路圖3-11按鍵輸入圖3-12蜂鳴器LED報(bào)警電路按鍵輸入電路,可以用來(lái)調(diào)節(jié)屏幕上顯示的報(bào)警數(shù)值,按鍵采用共地連接,單片機(jī)的PB10-PB13IO設(shè)置為上拉輸入模式,當(dāng)按鍵按下時(shí)電路導(dǎo)通,IO口由高電平變?yōu)榈碗娖?,就可以檢測(cè)到按鍵按下,按照程序執(zhí)行下面的任務(wù)。報(bào)警電路,由一個(gè)蜂鳴器和LED組成,該電路主要在外界環(huán)境達(dá)到報(bào)警閾值時(shí),發(fā)出聲光報(bào)警來(lái)提醒用戶。LED還起到電路報(bào)錯(cuò)功能,例如AT24CO2、SHT30I2C通訊時(shí)沒(méi)有應(yīng)答,LED燈閃爍,提醒用戶設(shè)備異常。蜂鳴器正級(jí)接了3,3V電壓負(fù)極接到三級(jí)的集電極,當(dāng)電路需要報(bào)警時(shí),單片機(jī)IO口發(fā)出一個(gè)高電平到三級(jí)管的基級(jí),三極管導(dǎo)通蜂鳴器發(fā)出聲音,其中R10、R11、R12電阻起到限流的作用。3.2.6單片機(jī)最小系統(tǒng)電路圖3-10單片機(jī)最小系統(tǒng)電路單片機(jī)的最小系統(tǒng)就是使單片機(jī)能夠?qū)崿F(xiàn)簡(jiǎn)單運(yùn)行的最少的原件的組合。1.時(shí)鐘,選用一個(gè)32.768K的外部低速晶振用于單片機(jī)內(nèi)部RTC電路,一個(gè)8M的高速晶振為單片機(jī)提供時(shí)鐘頻率,晶振兩端并聯(lián)了2個(gè)20pF的電容來(lái)讓晶振正常起振。2.復(fù)位電路,當(dāng)按下RST導(dǎo)通觸發(fā)低電平復(fù)位,在RST兩端并聯(lián)一個(gè)電容C15濾波可以去除開關(guān)按下的抖動(dòng)。R8的作用是與C15組成一個(gè)RC的外部復(fù)位電路,在RST按鈕沒(méi)有按下時(shí),每次單片機(jī)上電R8和C15形成一個(gè)RC復(fù)位電路,也會(huì)為單片機(jī)進(jìn)行外部復(fù)位。3.電源,STM32的工作電壓是3.3V,將經(jīng)過(guò)ASM1117轉(zhuǎn)換后的3.3V電源經(jīng)電容濾波接到單片機(jī)的供電引腳。4.燒制程序接口,采用SWD模式燒錄程序,配合J-link燒錄器可以實(shí)現(xiàn)在線調(diào)試。5.單片機(jī)使用STM32C8T6,LQF48封裝單片機(jī)主要引腳及功能:所屬電路網(wǎng)絡(luò)標(biāo)號(hào)端口功能溫濕度采集電路I2C_SDAPB6雙向串行數(shù)據(jù)線溫濕度采集電路I2C_SCLPB7串行時(shí)鐘線溫濕度顯示電路D0PA5時(shí)鐘管腳溫濕度顯示電路D1PA7數(shù)據(jù)管腳溫濕度顯示電路RESPB0復(fù)位溫濕度顯示電路DCPB1數(shù)據(jù)和命令控制管腳溫濕度顯示電路CSPA4片選管腳USB-TTL電路TxDPA3串口發(fā)送管腳USB-TTL電路RxDPA2串口接收管腳表3-1單片機(jī)主要引腳及功能3.3主要器件清單器件描述標(biāo)號(hào)封裝數(shù)量220uF/10V貼片電解電容E1SMD,6.3x8mm1HDR-1X55P接插件J1HDR2.54-LI-5P1HDR-1X77P接插件J2HDR2.54-LI-5P1LED貼片LEDLED1,LED206032S9013低頻放大-NPN型Q1SOT23-3L11K±1%貼片電阻R1,R2,R3,R4,R5,R6,0805R6輕觸開關(guān)3×6輕觸開關(guān)RSTTSWSMD-3*6*4.31輕觸開關(guān)貼片6x6輕觸開關(guān)SW1,SW2,SW3,SW4TSWSMD-6*6*84STM32F103C8T6STM32ARM-based32-bitMCUwith64KbytesFlash,U1LQFP48_N1SHT30-DIS-B溫濕度傳感器U2DFN-8_L2.5-W2.5-P0.50-BL-EP1CAT24C02WI-GT3EEPROM存儲(chǔ)芯片U3SOIC-8_L5.0-W4.0-P1.27-LS6.0-BL1CH340C串口轉(zhuǎn)USBU4SOP16_L1蜂鳴器BeelU5BEEP7.6x12x7.51USB-5P微型USB母座USB1USB-MICRO_A1AMS1117-3V3三端穩(wěn)壓芯片V1SOT223_L18M2腳無(wú)源晶體振蕩器X1OSC5032-2P132.768K2腳無(wú)源晶體振蕩器Y1OSC3215-2P10.96OLED7PinOLED顯示屏J3PCBAModule1表3-1主要器件清單軟件設(shè)計(jì)本章節(jié)主要是介紹電子防潮箱控制面板的軟件部分。在對(duì)設(shè)計(jì)課題進(jìn)行深度研究以后,做出了初步的軟件設(shè)計(jì)規(guī)劃。先介紹總體的程序框架,再通過(guò)流程圖和表格介紹每個(gè)程序的功能。通過(guò)KeiluVision5軟件實(shí)現(xiàn)電子防潮箱看板的軟件設(shè)計(jì)。圖4-1軟件功能介紹圖本課題軟件部分設(shè)計(jì)主要通過(guò)如圖4-1所示的四個(gè)模塊來(lái)實(shí)現(xiàn),包括SHT30I2C通訊采集溫濕度數(shù)值、0.96OLED顯示溫濕度,同時(shí)還有按鍵設(shè)定報(bào)警閾值,將設(shè)定的值存儲(chǔ)到EEPROM中,當(dāng)前環(huán)境濕度值與設(shè)定值比較,若超過(guò)報(bào)警設(shè)定的值驅(qū)動(dòng)蜂鳴器和LED燈,串口通訊上傳采集數(shù)據(jù),監(jiān)測(cè)設(shè)備工作狀態(tài)。4.1溫濕度顯示圖4-5溫濕度顯示流程圖如圖4-5所示,在系統(tǒng)開始需要在程序主函數(shù)中,對(duì)顯示屏模塊進(jìn)行初始化,通過(guò)顯示漢字函數(shù)調(diào)用中文庫(kù)中的數(shù)組在OLED屏幕是顯示提示信息,然后再將SHT30采集到的溫濕度數(shù)值顯示到屏幕上,接下來(lái)通過(guò)單片機(jī)讀取AT24C02中設(shè)定的報(bào)警閾值顯示在屏幕上,最后經(jīng)過(guò)延時(shí)屏幕每200ms更新顯示數(shù)值。OLED_ShowChinese(0,0,0,16);//顯示漢字‘溫’OLED_ShowNum(40,0,GetTempHum[0],2,16);//顯示采集到的溫度數(shù)值OLED_ShowChinese(u8x,u8y,u8num,u8size1)該函數(shù)是OLED顯示漢字函數(shù),其中X,Y是顯示字符的坐標(biāo),通過(guò)對(duì)X,Y的設(shè)定可以將字符顯示到想要的位置,num變量是oledfont.h點(diǎn)陣集合文件中的漢字模組序號(hào),每個(gè)序號(hào)代表一個(gè)漢字,通過(guò)軟件PCtoLCD2002取模得到漢字字模一個(gè)二維數(shù)組,將其寫入到Hzk1數(shù)組中,經(jīng)過(guò)調(diào)用就可以通過(guò)函數(shù)顯示在屏幕上,size1是漢字大小的選擇,有16*16、24*24、32*32、64*64號(hào)字體可選擇。上面調(diào)用函數(shù)實(shí)現(xiàn)在屏幕位置(0,0)處顯示16號(hào)漢字‘溫’,其中‘溫’字在Hzk1數(shù)組中的序號(hào)為0。OLED_ShowNum(u8x,u8y,u32num,u8len,u8size1)該函數(shù)是OLED顯示數(shù)值函數(shù),其中X,Y是顯示字符的坐標(biāo),通過(guò)對(duì)X,Y的設(shè)定可以將字符顯示到想要的位置,num是需要顯示的數(shù)字,len設(shè)置顯示的數(shù)字位數(shù),size1是漢字大小的選擇,有16*16、24*24、32*32、64*64號(hào)字體可選擇。上面調(diào)用的函數(shù)實(shí)現(xiàn)在屏幕位置(40,0)處顯示GetTempHum[0]中的數(shù)字,大小為16號(hào),字長(zhǎng)為2,GetTempHum[0]為SHT30采集到的溫度數(shù)值存放數(shù)組。4.2溫濕度采集圖4-2溫濕度采集流程圖如下示意圖4-2所示,SHT30應(yīng)用I2C和單片機(jī)設(shè)備通信,一個(gè)I2C總連接線只運(yùn)用兩條總連接線連接線路,一條雙向串行連接數(shù)據(jù)信息線(SDA),一條串行連接控制時(shí)鐘線(SCL)。數(shù)據(jù)信息線也就是用于代表數(shù)據(jù)信息,控制時(shí)鐘線應(yīng)用在數(shù)據(jù)信息自動(dòng)收發(fā)同步。每一個(gè)鏈接到總連接線的機(jī)器設(shè)備都存在一個(gè)唯一的儲(chǔ)存地址,電腦主機(jī)使用這一儲(chǔ)存地址在不相同機(jī)器設(shè)備之間的訪問(wèn)鏈接??傔B接線經(jīng)過(guò)上拉額定電阻接到工作電源。當(dāng)I2C機(jī)器設(shè)備空置的時(shí)候,會(huì)自動(dòng)輸出高阻態(tài),而當(dāng)每一個(gè)機(jī)器設(shè)備都空置,都自動(dòng)輸出了高阻態(tài)的時(shí)候,由上拉額定電阻將總連接線拉成高壓電平。圖4-3I2C發(fā)送數(shù)據(jù)流程圖圖4-4I2C讀取數(shù)據(jù)流程圖SHT3x溫濕度模塊寄存器:voidSHT3x_GetTempRH(float*SHT3x_GetTempRH){ I2C_Write_Buffer(SHT3x_DEVICE_ADDRES,SHT3x_RegAddr,2); DelayMs(50); I2C_Read_Buffer(SHT3x_DEVICE_ADDRES,SHT3x_GetRegTempRH,6); temp=((SHT3x_GetRegTempRH[0]<<8)|SHT3x_GetRegTempRH[1]); hum=((SHT3x_GetRegTempRH[3]<<8)|SHT3x_GetRegTempRH[4]); *SHT3x_GetTempRH=((175.0*(float)temp)/65535.0)-46.8; SHT3x_GetTempRH++; *SHT3x_GetTempRH=(100.0*(float)hum)/65535.0;}該函數(shù)為SHT30采集溫濕度,最后輸出十進(jìn)制溫度濕度數(shù)值。,SHT3x_GetTempRH(float*SHT3x_GetTempRH)該函數(shù)為讀取溫濕度值并轉(zhuǎn)換為十進(jìn)制數(shù)輸出,先由SHT30地址I2C寫字節(jié),延時(shí)50ms后I2C讀字節(jié),然后寄存器右移8位寫入數(shù)值存放,最后經(jīng)過(guò)換算轉(zhuǎn)為十進(jìn)制數(shù)。4.3閾值設(shè)定存儲(chǔ)圖4-6閾值設(shè)定存儲(chǔ)流程圖由圖4-6可知,當(dāng)按下按鍵時(shí),單片機(jī)檢測(cè)到按鍵按下,軟件延時(shí)消抖減少單片機(jī)誤判,然后按鍵處理,通過(guò)IO口狀態(tài)來(lái)判斷是哪個(gè)按鍵按下,若KEY3按下則加1,若KEY2按下則減1,支持連按當(dāng)按鍵連續(xù)接通1s則連續(xù)加或減直到松開按鍵。接下來(lái)再將改變?cè)O(shè)定的閾值寫入EEPROM中,再讀取EEPROM中的設(shè)定閾值給到串口打印和OLED顯示。按鍵設(shè)定閾值和報(bào)警判斷程序:if(key==3)//閾值設(shè)定++ { TEXT_Buffer[0]=datatemp[0]; TEXT_Buffer[0]++; AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE); }if(GetTempHum[1]>datatemp[0])//采集濕度數(shù)值與設(shè)定值比較 { LED0=1; BEEP=1; }我們先對(duì)按鍵和AT24XX初始化,在主函數(shù)中調(diào)用在key.c中定義的獲取按鍵值的函數(shù)KEY_Scan,通過(guò)根據(jù)不同的按鍵值完成對(duì)設(shè)定閾值的加或減,然后更新寫入到EEPROM中地址0,再讀取EEPROM中地址0的內(nèi)容,與采集到的濕度數(shù)值對(duì)比,若閾值大于當(dāng)前濕度則驅(qū)動(dòng)LED和蜂鳴器報(bào)警提醒用戶。4.4與PC端通訊串口通信(serial
communication)是一種設(shè)備間非常常用的串行通信方式,大部分電子設(shè)備都支持,電子工程師再調(diào)試設(shè)備時(shí)也經(jīng)常使用該通信方式輸出調(diào)試信息。在本次基于SHT30的電子防潮箱控制面板的設(shè)計(jì)中,使用micro
usb接口通過(guò)CH340電平轉(zhuǎn)換來(lái)實(shí)現(xiàn)PC端與設(shè)備之間數(shù)據(jù)的傳輸,本次使用的micro
usb是USB2.0標(biāo)準(zhǔn)的一個(gè)便攜版本,是連接計(jì)算機(jī)系統(tǒng)與外部設(shè)備的一種串口總線標(biāo)準(zhǔn)。圖4-7microusb實(shí)物課題采用中斷方式通過(guò)USART1接收串口助手的發(fā)送的數(shù)據(jù)并且將數(shù)據(jù)在串口助手上打印出來(lái)。STM32USART串口通訊,USART配置一般分為五個(gè)步驟分別是:①開時(shí)鐘②配置USART1的IO端口③配置USART1的工作模式④配置NVIC⑤使能串口。USART中使用到的庫(kù)函數(shù),包括USART_Init配置函數(shù)、USART_Cmd使能函數(shù)、USART_ITConfig中斷允許函數(shù)、USART_SendData數(shù)據(jù)發(fā)送函數(shù)、USART_ReceiveData數(shù)據(jù)接送函數(shù)、USART_GetITStatus檢查指定的USART中斷是否發(fā)生函數(shù)、USART_ClearITPendingBit清除USART中斷的指定標(biāo)志位函數(shù)。 該函數(shù)為串口1中斷服務(wù)程序:voidUSART1_IRQHandler(void) {u8Res;if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) {Res=USART_ReceiveData(USART1); if((USART_RX_STA&0x8000)==0){if(USART_RX_STA&0x4000){if(Res!=0x0a)USART_RX_STA=0;elseUSART_RX_STA|=0x8000; }else{ if(Res==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=Res;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;} }} }代碼先通過(guò)USART_GetITStatus()函數(shù)讀取是否產(chǎn)生了指定的中斷標(biāo)志USART_IT_RXNE,產(chǎn)生中斷后進(jìn)入函數(shù)
(1)先通過(guò)USART_ReceiveData()函數(shù)將數(shù)據(jù)賦值給Res
(2)USART_RX_STA的bit15
=
0
說(shuō)明接收未完成
①bit14
=
1說(shuō)明接收到了0x0D,繼續(xù)判斷如果最新輸入的數(shù)據(jù)Res
=
0x0A,那么接收完成。
②bit14
!=
1
說(shuō)明0x0D也沒(méi)有接收到,那么檢測(cè)新進(jìn)來(lái)的Res,如果Res
=
0x0D,那么將bit14賦值為1;如果Res
!=
0x0D,說(shuō)明數(shù)據(jù)正在接收中,將Res的值寫入數(shù)據(jù)緩沖數(shù)組中。系統(tǒng)調(diào)試5.1硬件調(diào)試圖5-1電子防潮箱控制面板實(shí)物如圖5-1所示,為電子防潮箱控制面板實(shí)物圖,使用了軟件AltuimDesigner來(lái)設(shè)計(jì)原理圖和PCB,最后通過(guò)PCB文件生成的Gerber文件交付給板廠生產(chǎn),然后自己購(gòu)買元器件手工焊接。在設(shè)計(jì)初期,對(duì)AD軟件不是特別熟悉,畫完原理圖準(zhǔn)備轉(zhuǎn)換為PCB文件時(shí),發(fā)現(xiàn)原理圖中器件封裝沒(méi)有匹配上,原理圖編譯不通過(guò),很多元器件沒(méi)有加載到PCB中,經(jīng)過(guò)查閱資料、視頻學(xué)習(xí)后解決了該問(wèn)題。板子發(fā)回,手工貼片完成燒錄程序后,發(fā)現(xiàn)OLED可以正?,F(xiàn)實(shí),但是現(xiàn)實(shí)的溫濕度數(shù)據(jù)不準(zhǔn)確,溫度濕度的值都為26,起初認(rèn)為傳感器SHT30供電異常導(dǎo)致的,在使用萬(wàn)用表測(cè)量個(gè)點(diǎn)位電壓后發(fā)現(xiàn)供電正常、上拉電阻電壓正常。因?yàn)樵陔娐钒灏l(fā)出去制造期間,我使用STM32核心版、OLED、SHT30模塊驗(yàn)證了程序可以正常采集和顯示,所以確信問(wèn)題出現(xiàn)在硬件上。在查閱了數(shù)據(jù)手冊(cè),確定原理圖是按照數(shù)據(jù)手冊(cè)的參考電路搭建的,原理圖正確。懷疑是SHT30沒(méi)有焊接好導(dǎo)致的,在重新焊接SHT30后,采集電路正常,原來(lái)數(shù)SHT30的SDA管腳虛焊導(dǎo)致I2C通訊失敗,沒(méi)有數(shù)據(jù)上傳導(dǎo)致的問(wèn)題。觀看顯示屏發(fā)現(xiàn)顯示刷新時(shí)間不準(zhǔn)確,軟件延時(shí)為500ms,但是要過(guò)4-5s才會(huì)刷新一次,后面發(fā)現(xiàn)原來(lái)是我晶振電路設(shè)計(jì)錯(cuò)了,把低速晶振32.768K和高速晶振8M連接錯(cuò)了,把高速晶振接到了單片機(jī)的低速時(shí)鐘輸入口,低速晶振接到了單片機(jī)的高速時(shí)鐘輸入口。把它們兩個(gè)對(duì)調(diào)玩位置后延時(shí)正確了,但是單片機(jī)復(fù)位后,上電顯示變慢了,發(fā)現(xiàn)原來(lái)是晶振的起振電容選太大了,導(dǎo)致起振時(shí)間增加,最后減小電容值,恢復(fù)正常。5.2軟件調(diào)試圖5-2軟件調(diào)試界面如圖5-2所示,采用J-Link+MDK組合,來(lái)在線調(diào)試程序1、單步模式下可以點(diǎn)擊以下圖標(biāo)讓程序往下執(zhí)行:以上幾個(gè)圖標(biāo)對(duì)應(yīng)的快捷鍵依次是:F11:?jiǎn)尾綀?zhí)行,每次執(zhí)行一行。F10:跳過(guò)當(dāng)前行語(yǔ)句。Ctrl+F11:跳出當(dāng)前函數(shù)。Ctrl+F10:運(yùn)行到光標(biāo)所處的行。2、設(shè)置斷點(diǎn)調(diào)試單步調(diào)試畢竟是單步或者跳過(guò)函數(shù)的執(zhí)行。在程序十分龐大時(shí),F(xiàn)系列的鍵或者鼠標(biāo)都要被按壞,設(shè)置斷點(diǎn)后,程序運(yùn)行到斷點(diǎn)處就停下了,然后就可以再用單步調(diào)試的方式進(jìn)行調(diào)試。使用工具欄窗口功能來(lái)查看具體運(yùn)行效果:RegisterWindow:用于顯示各寄存器的值,并顯示運(yùn)行時(shí)間。CallStackWindow:用于顯示main函數(shù)內(nèi)的變量及所調(diào)用的子函數(shù)地址/值。WatchWindow:用來(lái)查看特殊變量的窗口。用戶可自行輸入某個(gè)變量名,根據(jù)程序運(yùn)行的進(jìn)度查看其值5.3實(shí)際效果圖5-4防潮箱控制面板顯示界面圖5-5串口打印溫濕度如圖5-4所示為電子防潮箱控制面板實(shí)物圖,該設(shè)計(jì)通過(guò)SHT30溫濕度傳感器采集溫濕度給單片機(jī),再顯示在OLED屏幕是方便用戶查看,還通過(guò)串口將溫濕度傳送給PC端。通過(guò)按鍵設(shè)定溫濕度閾值,再由蜂鳴器和LED報(bào)警提醒超出設(shè)定范圍,采取應(yīng)對(duì)措施。結(jié)束語(yǔ)經(jīng)過(guò)幾個(gè)月的努力,終于完成了基于SHT30的電子防潮箱控制面板的設(shè)計(jì)。在設(shè)計(jì)過(guò)程中完成了SHT30溫濕度采集電路、OLED顯示電路、單片機(jī)最小系統(tǒng)、按鍵輸入電路、EEPROM存儲(chǔ)電路、報(bào)警電路、USB轉(zhuǎn)TTL電路的設(shè)計(jì)搭建。在設(shè)計(jì)初我對(duì)AD軟件的操作不太熟練,在經(jīng)過(guò)視頻學(xué)習(xí),學(xué)會(huì)了使用AD軟件繪制原理圖庫(kù)、元器件封裝庫(kù),再到原理圖中將一個(gè)個(gè)元器件連接起來(lái)。原理圖導(dǎo)入PCB時(shí)報(bào)錯(cuò)處理,例如封裝錯(cuò)誤、引腳標(biāo)號(hào)重復(fù)、漏標(biāo)。最后PCB的繪制,布線規(guī)則設(shè)計(jì)、元器件布局的考慮、信號(hào)線走線等長(zhǎng)、數(shù)字地和模擬地鋪銅隔離等等。導(dǎo)出Gerber文件,交付板廠制作,元器件購(gòu)買,自己焊接。當(dāng)焊接好電路,燒錄程序后發(fā)現(xiàn)功能沒(méi)有實(shí)現(xiàn),心中小小的失落過(guò)后,就投入到查找問(wèn)題當(dāng)中。一個(gè)一個(gè)模塊的調(diào)試,先確定硬件功能是否正常,使用萬(wàn)用表測(cè)量各點(diǎn)電壓是否正常,確認(rèn)無(wú)誤后再修改程序。隨著一個(gè)個(gè)模塊功能的實(shí)現(xiàn),看著板子整個(gè)跑起來(lái)的效果,成就感滿滿的。經(jīng)過(guò)這次設(shè)計(jì),了解了一個(gè)項(xiàng)目的開發(fā)流程,從最開始的元器件選型到設(shè)計(jì)電路、程序的編寫燒錄、整體的調(diào)試。在本次設(shè)計(jì)中也有一些遺憾,只是實(shí)現(xiàn)了基礎(chǔ)功能,沒(méi)有進(jìn)一步提高,例如添加ESP8266模塊實(shí)現(xiàn)聯(lián)網(wǎng)遠(yuǎn)程控制上傳數(shù)據(jù),屏幕選用觸摸屏省去按鍵
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 苗木移種合同范本
- 螃蟹供銷協(xié)議書
- 視頻拷貝協(xié)議書
- 認(rèn)證解凍協(xié)議書
- 讓員工簽協(xié)議書
- 設(shè)備寄存協(xié)議書
- 設(shè)備銷毀協(xié)議書
- 請(qǐng)專家講座協(xié)議書
- 店鋪經(jīng)營(yíng)合同范本
- 帶租約銷售協(xié)議書
- 銷售人員管理制度手冊(cè)
- 水印江南美食街招商方案
- 多導(dǎo)睡眠監(jiān)測(cè)課件
- 碼頭岸電設(shè)施建設(shè)技術(shù)規(guī)范
- 統(tǒng)編版(2024新版)七年級(jí)上冊(cè)歷史期末復(fù)習(xí)考點(diǎn)提綱
- 乳腺癌化療藥物不良反應(yīng)及護(hù)理
- 支氣管鏡術(shù)后護(hù)理課件
- 高新技術(shù)產(chǎn)業(yè)園區(qū)建設(shè)項(xiàng)目可行性研究報(bào)告
- 項(xiàng)目HSE組織機(jī)構(gòu)和職責(zé)
- 零基礎(chǔ)AI日語(yǔ)-初階篇智慧樹知到期末考試答案章節(jié)答案2024年重慶對(duì)外經(jīng)貿(mào)學(xué)院
- MOOC 理論力學(xué)-長(zhǎng)安大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論