智能霧霾窗的設(shè)計(jì)_第1頁
智能霧霾窗的設(shè)計(jì)_第2頁
智能霧霾窗的設(shè)計(jì)_第3頁
智能霧霾窗的設(shè)計(jì)_第4頁
智能霧霾窗的設(shè)計(jì)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-2-第4章軟件設(shè)計(jì)在整個(gè)系統(tǒng)的軟件設(shè)計(jì)中,必須站在同一水平上去考慮到單片機(jī)系統(tǒng)上的軟件、硬件資源的分配,因此需要將軟件設(shè)計(jì)進(jìn)行條理化、簡(jiǎn)單化。以下三點(diǎn):(1)需要對(duì)問題進(jìn)行具體的分析分析,首先,我們必須決定對(duì)整體的系統(tǒng)設(shè)計(jì),以及與之有關(guān)的需要,其次,我們必須決定哪些運(yùn)算法則能夠完成這些工作。(2)然后相關(guān)流程圖根據(jù)設(shè)計(jì)好的算法進(jìn)行繪制;(3)編制系統(tǒng)相關(guān)程序,因?yàn)橄到y(tǒng)結(jié)構(gòu)化程序的設(shè)計(jì)方法之一是程序選擇數(shù)據(jù)算法。在根據(jù)最初設(shè)計(jì)程序框圖決定了相關(guān)算法及相關(guān)步驟之后通過一些指令進(jìn)行一系列布置,然后形成完整的整體接合結(jié)構(gòu)。(1)對(duì)整體的控制要求和有關(guān)的需求進(jìn)行了分析,并選擇了一種較好的算法來仿真完成其對(duì)應(yīng)的作用;對(duì)每一個(gè)問題都作了詳細(xì)的分析;(2)按照它所提出的方法,畫出了相應(yīng)的流程;(3)編制相應(yīng)的計(jì)算軟件。以最初進(jìn)行設(shè)計(jì)的程序框圖為依據(jù),來確定有關(guān)的算法和有關(guān)的步驟,最后用一些指令來進(jìn)行一系列的安排,最后最終構(gòu)成一個(gè)完整的整體結(jié)結(jié)構(gòu)。選用程序數(shù)據(jù)算法是系統(tǒng)結(jié)構(gòu)化程序當(dāng)中的一種設(shè)計(jì)方法,通過會(huì)去使用部分限制旋轉(zhuǎn)方向的指令或者是命令語句,可以顯著降低程序的復(fù)雜度,簡(jiǎn)化程序和邏輯。可以減少整個(gè)設(shè)計(jì)中的錯(cuò)誤,方便用戶對(duì)程序進(jìn)行編輯和修復(fù)。4.1主程序結(jié)構(gòu)首先對(duì)該軟件進(jìn)行了初始化,使該軟件的運(yùn)行達(dá)到了最優(yōu)。在PM2.5的檢測(cè)模塊中,對(duì)PM2.5的數(shù)值進(jìn)行檢測(cè),之后將其傳送到單片機(jī)中,對(duì)其進(jìn)行分析、處理和判斷,則蜂鳴器報(bào)警,同時(shí)窗戶會(huì)進(jìn)行關(guān)閉,否則開啟;另外也可以通過連接藍(lán)牙完成數(shù)據(jù)的遠(yuǎn)程監(jiān)控以及手動(dòng)輸入指令對(duì)窗戶進(jìn)行啟閉操作,其中數(shù)據(jù)遠(yuǎn)程傳輸需要掃描本地按鍵是否開啟。主程序圖如圖4.1所示。圖4.1PM2.5程序流程圖4.2按鍵子程序結(jié)構(gòu)本設(shè)計(jì)根據(jù)要求設(shè)置了一個(gè)控制數(shù)據(jù)是否遠(yuǎn)程上傳的按鍵。按鍵處理子程序流程圖如圖4.2所示。按鍵掃描的程序一般大致為首先進(jìn)行判斷其裝置有沒有鍵被按下,然后通過其編寫的延遲程序進(jìn)行相應(yīng)的去抖動(dòng),接著去求被按下鍵的信號(hào),等待按鍵進(jìn)行釋放后會(huì)轉(zhuǎn)入相應(yīng)的鍵處理子程序當(dāng)中。圖4.2鍵盤掃描程序流程圖

4.3顯示子程序結(jié)構(gòu)本設(shè)計(jì)是以O(shè)LED顯示屏顯示其采集到的PM2.5值以及窗是否啟閉狀態(tài)等數(shù)據(jù)信息。在系統(tǒng)進(jìn)行使用智能藥箱系統(tǒng)前都要進(jìn)行初始化一下,也就是做一下清屏的操作,然后再去調(diào)用其系統(tǒng)的讀寫命令,進(jìn)行讀寫相關(guān)數(shù)據(jù),最后顯示相關(guān)數(shù)據(jù)信息。顯示子程序流程圖如圖4.3所示。圖4.3顯示子程序流程圖4.4防火子程序結(jié)構(gòu)該設(shè)計(jì)是用火焰?zhèn)鞲衅鞑杉降幕鹧鏈囟群凸庾V,對(duì)數(shù)據(jù)進(jìn)行分析判斷,檢測(cè)到火焰后蜂鳴器報(bào)警同時(shí)水泵工作開始滅火。圖4.4防火流程圖

4.5調(diào)光子程序結(jié)構(gòu)本設(shè)計(jì)是以由光敏傳感器收集外界光線強(qiáng)弱變化的數(shù)據(jù),在使用系統(tǒng)前需要初始一下。將接受的光強(qiáng)數(shù)據(jù)分成5個(gè)等級(jí),最亮、較亮、次亮、最暗、燈滅根據(jù)周圍光暗程度和進(jìn)行動(dòng)作,調(diào)節(jié)燈光的亮度。圖4.6光線調(diào)節(jié)流程圖

系統(tǒng)調(diào)試5.1調(diào)試部分根據(jù)畢業(yè)要求,將本系統(tǒng)調(diào)試部分分為硬件調(diào)試和軟件調(diào)試。(1)硬件調(diào)試而在軟件開發(fā)過程中,硬件模塊又是軟件開發(fā)過程中最易出現(xiàn)錯(cuò)誤的環(huán)節(jié)。元件的損傷將會(huì)對(duì)整個(gè)系統(tǒng)的性能產(chǎn)生很大的影響。對(duì)于硬件的調(diào)試,首先要做的就是檢查每一個(gè)周期的模型,確定它們的性能是否達(dá)到了設(shè)計(jì)要求。在調(diào)試的時(shí)候要特別關(guān)注一下電路中元件的耐壓,以免造成電容的破壞。第二,對(duì)設(shè)備和設(shè)備的管腳進(jìn)行檢測(cè),如果有松動(dòng)或者虛焊,則要加強(qiáng)。保證管腳的指向正確,防止由于管腳插入錯(cuò)誤而導(dǎo)致線路短路,從而導(dǎo)致元件的損傷。另外,在進(jìn)行系統(tǒng)化焊接的時(shí)候,因?yàn)閷?duì)焊槍的運(yùn)用不夠嫻熟,造成了焊接時(shí)出現(xiàn)了重復(fù)焊接和焊盤脫落等情況。這時(shí)候就必須要用萬用表來檢測(cè)系統(tǒng)中的每個(gè)模塊的電源和地線,避免發(fā)生短路。第三,能夠按照系統(tǒng)模擬圖表中的設(shè)計(jì)需求,將各個(gè)系統(tǒng)中的組件一一拼裝并調(diào)試,例如顯示模塊的亮度是否適宜,按鍵電路能否正常響應(yīng)。需要配合萬用表對(duì)模塊的工作電壓進(jìn)行逐一確認(rèn),確保其正常運(yùn)行。第四,在完成對(duì)單獨(dú)模塊的檢測(cè)之后,需要對(duì)系統(tǒng)進(jìn)行整體的組裝工作,檢驗(yàn)?zāi)K運(yùn)行的穩(wěn)定性。實(shí)物圖如圖附錄二所示。(2)軟件調(diào)試在軟件程序的設(shè)計(jì)中,要學(xué)會(huì)使用開發(fā)工具,可以極大地提升設(shè)計(jì)人員的工作效率,避免很多不確定的問題和錯(cuò)誤,例如,程序的語法錯(cuò)誤,標(biāo)點(diǎn)符號(hào)寫法錯(cuò)誤等等。在此,我們可以通過編譯程序來檢查,以便能夠適時(shí)地做出修改。在此,我們選取了Keil平臺(tái)來進(jìn)行代碼程序,其一般流程如下:首先,我們使用Keil軟件,在其工具欄中找到了新建工程,建立了新的工程,按照所選擇的單片機(jī)型號(hào),去選擇一種合適的編寫程序的語言,在此,我們選擇了C語言,然后進(jìn)行C程序代碼的編寫。一般來講,由于整個(gè)系統(tǒng)保護(hù)包括多個(gè)功能,所以會(huì)按照順序?qū)γ總€(gè)功能模塊進(jìn)行單獨(dú)的編程,力求實(shí)現(xiàn)一個(gè)函數(shù)調(diào)用一個(gè)功能,便于設(shè)計(jì)人員進(jìn)行維護(hù),進(jìn)而來編程。為了找出程序中的錯(cuò)誤語法,在編程完畢后,需要對(duì)程序進(jìn)行編輯和修改,直到不再報(bào)錯(cuò)為止,然后通過JTAG或串口等方式將程序下載到單片機(jī),并結(jié)合硬件進(jìn)行調(diào)試,看程序是否能夠?qū)崿F(xiàn)預(yù)期的目標(biāo)。通常來說,第一次在硬件上運(yùn)行的程序,不會(huì)一蹴而就,總是會(huì)有問題,這是很普遍的,所以要針對(duì)這些問題,進(jìn)行深入的調(diào)試,才能徹底的解決。通常,在Keil的環(huán)境中,你可以通過Debug工具來獲取在線調(diào)試功能,如圖5.1所示。通過Debug功能,可以開始對(duì)程序的執(zhí)行節(jié)點(diǎn)進(jìn)行操縱,實(shí)現(xiàn)單步,循環(huán)等多種操縱,也可以檢測(cè)MCU中的寄存器數(shù)據(jù),工具條上的單步等操縱按鍵,在左邊的Regisier窗口中,可以查看相關(guān)的寄存器參數(shù)。接著就將程序下載入單片機(jī),然后進(jìn)行實(shí)物調(diào)試。圖5.1DEBUG選項(xiàng)界面圖5.2結(jié)果分析在此次系統(tǒng)設(shè)計(jì)中,智能霧霾窗的設(shè)計(jì)主要直接觀測(cè)PM2.5值和窗戶的開關(guān)狀態(tài)以及遠(yuǎn)程用手機(jī)實(shí)時(shí)觀察霧霾濃度和窗戶狀態(tài)以及顯示周圍環(huán)境亮度,遠(yuǎn)程控制窗戶開關(guān),霧霾濃度超標(biāo)后關(guān)閉并且發(fā)出警報(bào),濃度降低后窗自行打開戶打開等操作,首先接通電源,通過按鍵進(jìn)行啟動(dòng)系統(tǒng),如圖5.2所示,第一行顯示PM2.5值,此時(shí)為0,第二行顯示窗戶的啟閉狀態(tài),此時(shí)為OPEN(因?yàn)槟M采集的霧霾為0)。圖5.2系統(tǒng)開啟圖圖5.3系統(tǒng)關(guān)閉圖系統(tǒng)關(guān)閉時(shí)第二行顯示窗戶關(guān)閉,如圖5.3所示。緊接著用一支筆插入PM2.5模塊模擬有顆粒進(jìn)入如圖5.4所示,此時(shí)超過設(shè)定閾值,蜂鳴器會(huì)發(fā)出聲音進(jìn)行報(bào)警持續(xù)時(shí)間6s,同時(shí)舵機(jī)模擬窗戶進(jìn)行關(guān)閉,如圖5.5所示,把筆拿開窗戶重新打開。圖5.4模擬霧霾檢測(cè)圖圖5.5舵機(jī)(窗戶)關(guān)閉圖連接藍(lán)牙,打開藍(lán)牙助手APP,啟動(dòng)上傳數(shù)據(jù)按鍵,手機(jī)APP會(huì)顯示采集到的霧霾濃度和窗戶開關(guān)數(shù)據(jù),如圖5.6所示;也可通過在數(shù)據(jù)發(fā)送區(qū)域輸入K(開窗)、G(關(guān)窗),如圖5.5所示,輸入G,窗戶關(guān)閉。其它情況類似,通過實(shí)物調(diào)試,可以發(fā)現(xiàn)此次試驗(yàn)實(shí)現(xiàn)了本設(shè)計(jì)最初的功能要求。圖5.6數(shù)據(jù)傳輸圖圖5.7遠(yuǎn)程藍(lán)牙關(guān)窗圖圖5.8遠(yuǎn)程藍(lán)牙開窗圖App控制窗戶關(guān)閉,連接藍(lán)牙后輸入大寫字母G,然后點(diǎn)擊換行,可以看到液晶顯示屏顯示窗戶狀態(tài)為close,模擬窗戶的舵機(jī)靠左(窗戶關(guān)閉狀態(tài))圖5.7所示。輸入大寫字母控制窗戶K然后點(diǎn)擊換行,按下發(fā)送,可以看到顯示屏上的窗戶狀態(tài)為open,用來模擬窗戶開關(guān)的舵機(jī)靠右(窗戶開啟狀態(tài))圖5.8所示。打火機(jī)充當(dāng)火源,火焰?zhèn)鞲衅鳈z測(cè)到火焰后,會(huì)發(fā)出警報(bào),同時(shí)水泵開始工作用于滅火,如圖5.9所示。調(diào)光模塊用物體遮擋光敏傳感器,顯示屏上的light數(shù)顯示也會(huì)發(fā)生變化,周圍光線環(huán)境越低燈光越亮。燈有5個(gè)狀態(tài)light0到25最亮,25到50較量50到75較暗,75到100最暗,超過閾值后熄滅。測(cè)試如圖5.10和5.11所示。圖5.9防火模塊測(cè)試水泵動(dòng)作圖5.10測(cè)試時(shí)調(diào)光燈亮度圖5.11周圍環(huán)境變暗調(diào)光燈變亮

結(jié)論通過不斷的校核和修正,最終使該方案最終得以實(shí)現(xiàn)。在這一次的設(shè)計(jì)中,與單片機(jī)相結(jié)合,進(jìn)行了一款智能霧霾窗的設(shè)計(jì),它的主要構(gòu)成部分包括了一下幾個(gè)方面:STM32F103C8T6單片機(jī)模塊、PM2.5模塊、顯示模塊、報(bào)警模塊以及繼電器、液晶顯示模塊、PM2.5檢測(cè)模塊、按鍵模塊、防火模塊、調(diào)光模塊。利用PM2.5模塊來探測(cè)霧霾,當(dāng)探測(cè)到的數(shù)值超出門限,就會(huì)發(fā)出警報(bào),并開啟繼電器來關(guān)閉霧霾窗,此外,還配備了藍(lán)牙模塊來實(shí)現(xiàn)對(duì)車窗的遠(yuǎn)程監(jiān)測(cè)和對(duì)霧霾窗的開啟和關(guān)閉的輸入指令,檢測(cè)到火焰后水泵啟動(dòng),語音識(shí)別開窗關(guān)窗,光敏模塊根據(jù)周圍環(huán)境變化通過燈光實(shí)時(shí)調(diào)節(jié)光線。除此之外,因?yàn)檠芯織l件和時(shí)間的限制,還有很多有待提高的地方,還有很多缺陷有待研究,以下列出了所存在的問題和有待提高的地方,這將會(huì)在今后的研究工作中得到不斷的提高,使本文的研究結(jié)果能夠更快地應(yīng)用到實(shí)踐當(dāng)中。1、本文僅對(duì)PM2.5數(shù)值的展示進(jìn)行了實(shí)體試驗(yàn),設(shè)定了沒有在真實(shí)監(jiān)測(cè)平臺(tái)上實(shí)施試驗(yàn)并給出了相應(yīng)的數(shù)值下一步,我們期望可以對(duì)整體的數(shù)字傳送終端的設(shè)計(jì)進(jìn)行了實(shí)體試驗(yàn)。2、所做的PM2.5含量探測(cè)器的設(shè)計(jì),可以進(jìn)行多個(gè)探測(cè)模塊的探測(cè),可以將資料上載,也可以將其進(jìn)行實(shí)時(shí)的警報(bào)監(jiān)視,現(xiàn)在只是將其展示出來,下一步將會(huì)向著智慧家庭的方向發(fā)展。3、我所試驗(yàn)的PM2.5的工作狀態(tài),由于沒有真實(shí)的煙霧,所以都是人工仿真的。4、為了使霧霾窗的實(shí)用性提高,我又加入了防火、調(diào)光的功能,遺憾的是最初設(shè)想的換氣功能因研究水平的限制無法實(shí)現(xiàn)。參考文獻(xiàn)[1]朱旭光,劉建輝.農(nóng)業(yè)大棚的溫濕度控制系統(tǒng)[J]。自動(dòng)化技術(shù)與應(yīng)用,2005,24(2):45-47[2]馬海琴,葉俊明.基于WiFi的PM2.5測(cè)試儀設(shè)計(jì)[J].無線互聯(lián)科技,2016(18):17-18.[3]薛榮坤.基于單片機(jī)的PM2.5濃度檢測(cè)儀的設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2020,v.16(14):262-263.[4]王珅.基于GP2Y1010AU0F傳感器的PM2.5檢測(cè)儀設(shè)計(jì)[J].工業(yè)加熱,2020,v.49;No.274(02):67-69+74.[5]張艷麗,張勇.基于SHT11的溫濕度控制器[J].自動(dòng)測(cè)量與控制.2007,26(5):83-84[6]江思敏,姚鵬翼,胡燁.Protel2004電路原理及PCB設(shè)計(jì)[M].北京機(jī)械工業(yè)出版社.2006[7]鄭陽,陳美玲,李欣鵬,等.基于WiFi遠(yuǎn)程檢測(cè)與傳輸PM2.5數(shù)值檢測(cè)儀設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2019(8).[8]王武禮,楊華.基于SHT11的倉(cāng)糧溫濕度測(cè)控系統(tǒng)的設(shè)計(jì)[J]儀表技術(shù)與傳感器.2010,9:50-51.[9]姚展.基于單片機(jī)的PM2.5檢測(cè)儀設(shè)計(jì)[J].價(jià)值工程,2019,038(007):154-156.[10]馮顯英,葛榮雨.基于數(shù)字溫濕度傳感器SHT11的溫濕度測(cè)控系統(tǒng)[J][11]謝楷,趙建.MSO430系列單片機(jī)系統(tǒng)工程設(shè)計(jì)與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2009[12]裴素萍,吳必瑞,劉禹.基于MSP430的水泥養(yǎng)護(hù)箱溫濕度控制系統(tǒng)[J].中原工學(xué)院學(xué)報(bào).2008,19(5):45-48[13]齊秋紅,馬斌,韓中華,趙鍵.基于SHT1101的智能建筑室內(nèi)溫度檢測(cè)[J].樓宇自動(dòng)化.2008,18:1-3[14]張瑋,楊景發(fā),閆其庚,硅光電池特性的實(shí)驗(yàn)研究[J].實(shí)驗(yàn)技術(shù)與管理,2009(9):42-46[15]張萍.基于數(shù)字溫度計(jì)DS18B20的溫度測(cè)量?jī)x的開發(fā)[J].自動(dòng)化儀表,2007(6):64-66[16]LiuJ,CaoR.DesignofenvironmentalmonitoringsystembasedonInternetofThings.WirelessInternetTechnology,2019.[17]WangH,KongL.DesignofaWirelessPM2.5ConcentrationDetectionSystem.ElectronicenceandTechnology,2015.[18]LiuS,LuC,ShengL.TheDesignofAtmosphericEnvironmentMonitoringSystemBasedonARM9PlatformandGPRSTechnology[C]//FourthInternationalConferenceonComputationalIntelligence&CommunicationNetworks.IEEE,2012.[19]GuK,QiaoJ,LiX.HighlyEfficientPicture-BasedPredictionofPM2.5Concentration[J].IEEETransactionsonIndustrialElectronics,2018.

附錄(部分)#include"app_conf.h"#ifdefAPP_MY_APP_ENABLED#defineMODULE_NAME"myapp"#ifdefMODE_LOG_TAG#undefMODE_LOG_TAG#endif#defineMODE_LOG_TAGMODULE_NAMEstaticTaskHandle_tg_app1_handle; /*任務(wù)句柄*/staticTaskHandle_tg_app2_handle; /*任務(wù)句柄*/staticTaskHandle_tg_app3_handle; /*任務(wù)句柄*/staticTaskHandle_tg_moudle_test_handle;/*任務(wù)句柄*/intret=0;staticuint8_tsend_flag;/*鍵盤創(chuàng)建*/intkey_board_call(constchar*key_name,u8state)intuart1_callback(void*param,constu8*data,u16data{ if(state==0){ send_flag=!send_flag; } log_inform("KEY:%s,state:%d",key_name,state); returnE_OK;}staticuint8_topen_flag;/*串口初始化*/_len){ staticcharrec_buf[64]; if(data_len<64){ memset(rec_buf,0,sizeof(rec_buf)); memcpy(rec_buf,data,data_len); }else{ log_inform("Len:%d,Error",data_len); } char*pxIndex; if(strstr(rec_buf,"K\r\n")!=NULL){ open_flag=1; }elseif(strstr(rec_buf,"G\r\n")!=NULL){ open_flag=0; }returnE_OK;}#defineAPP_1_UPDATE_TIME_MS1000staticvoidmy_app_task_1(void*param){ /*OLED初始化*/ OLED_Init(); //初始化OLED OLED_Clear();// /*OLED顯示*/ /*鍵盤初始化*/ c_key_boardboard={0}; key_listboard_list[]={ {"L1",GPIOC,GPIO_PIN_14,KEY_PRESS_IS_ZERO}, }; board=key_board_create(board_list,sizeof(board_list)/sizeof(key_list)); if(NULL==board.this) log_error("Boardcreatefailed."); ret=board.set_callback(&board,key_board_call); if(E_OK!=ret) log_error("Callbacksetfailed."); /*蜂鳴器初始化*/ c_switchbeep={0}; beep=switch_c c_servoservo={0};servo=servo_create(SYS_TIME_2,SYS_TIME_CH3); ret=servo.set(&servo,0.0f); /*PM2.5初始化*/reate(GPIOC,GPIO_PIN_15); if(NULL==beep.this) log_error("Swtichcreatfailed."); ret=beep.set(&beep,SWITCH_LOW); /*舵機(jī)初始化*/ c_gp2ygp2y={0}; gp2y=gp2y_create(MY_ADC_9,GPIOB,GPIO_PIN_5); if(NULL==gp2y.this) log_error("gp2ycreatfailed."); /*藍(lán)牙串口初始化*/ intret=my_uart.init(MY_UART_3,115200,128,UART_MODE_DMA); if(ret!=E_OK) log_error("my_uartinitfailed."); my_uart.set_callback(MY_UART_3,NULL,uart1_callback); if(E_OK!=ret) log_error("Callbacksetfailed."); staticuint8_toled_show[32]; staticuint8_ttx_buf[32]; staticuint8_tbeep_cnt; floatpm2_5=0.0f; staticuint32_tsys_cnt; while(1) { //獲取PM2.5濃度ret=gp2y.get(&gp2y,&pm2_5); if(E_OK!=ret) log_error("gp2ygetfailed."); //PM2.5濃度大于閾值蜂鳴器報(bào)警 if(pm2_5>=50&&beep_cnt==0){ open_flag=1; beep_cnt=10; ret=beep.set(&beep,SWITCH_HIGHT); } if(beep_cnt>0){ beep_cnt--; if(beep_cnt==1)open_flag=0; }else{ ret=beep.set(&beep,SWITCH_LOW); } //液晶顯示濃度信息 memset(oled_show,0,sizeof(oled_show)); sprintf(oled_show,"PM2.5:%.1f",pm2_5);OLED_ShowString(0,0,oled_show,16); if(open_flag!=0){ ret=servo.set(&servo,180.0f); //舵機(jī)控制打開窗戶 memset(oled_show,0,sizeof(oled_show)); sprintf(oled_show,"WINDOW:CLOSE"); OLED_ShowString(0,2,oled_show,16); memset(tx_buf,0,sizeof(tx_buf)); sprintf(tx_buf,"PM2.5:%.1f\r\nWINDOW:OPEN\r\n",pm2_5); }else{ ret=servo.set(&servo,0.0f); //舵機(jī)控制關(guān)閉窗戶 memset(oled_show,0,sizeof(oled_show)); sprintf(oled_show,"WINDOW:OPEN"); OLED_ShowString(0,2,oled_show,16); memset(tx_buf,0,sizeof(tx_buf)); sprintf(tx_buf,"PM2.5:%.1f\r\nWINDOW:CLOSE\r\n",pm2_5); } //藍(lán)牙發(fā)送數(shù)據(jù) if(send_flag!=0&&(sys_cnt%2)==0){ ret=my_uart.send(MY_UART_3,tx_buf,strlen(tx_buf)); if(E_OK!=ret) log_error("Uartsendfailed."); }/*重復(fù)執(zhí)行邏輯從此處開始*/ sys_cnt++; vTaskDelay(APP_1_UPDATE_TIME_MS); }}#defineAPP_2_UPDATE_TIME_MS100staticvoidmy_app_task_2(void*param){ while(1) { /*重復(fù)執(zhí)行邏輯從此處開始*/ vTaskDelay(APP_2_UPDATE_TIME_MS); }}#defineAPP_3_UPDATE_TIME_MS1000staticvoidmy_app_task_3(void*param){ while(1) { /*重復(fù)執(zhí)行邏輯從此處開始*/ vTaskDelay(APP_3_UPDATE_TIME_MS); }}voidmy_app_init(void){ taskENTER_CRITICAL(); BaseType_tos_ret;#if1 /*創(chuàng)建app任務(wù)*/ if(NULL==g_app1_handle) { os_ret=xTaskCreate((TaskFunction_t)my_app_task_1, (constchar*)MOD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論