freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

智能家居中的環(huán)境監(jiān)測(cè)系統(tǒng)畢業(yè)論文-資料下載頁(yè)

2025-06-28 04:23本頁(yè)面
  

【正文】 收到的數(shù)據(jù)和節(jié)點(diǎn)信息消息進(jìn)行處理。節(jié)點(diǎn)的數(shù)據(jù)消息格式如表53所示,節(jié)點(diǎn)信息消息格式如表54所示。(2)串口通信模塊 在ZStack中,節(jié)點(diǎn)的串口通信單元已經(jīng)由硬件抽象層實(shí)現(xiàn)了接口封裝,其實(shí)現(xiàn)文件為hal 。設(shè)計(jì)人員在使用的過(guò)程中,只需要對(duì)該單元進(jìn)行適當(dāng)?shù)呐渲镁涂梢哉{(diào)用該單元,實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。該模塊功能函數(shù)包括串I=1初始化void Hal UART Init(void)、開(kāi)串I=1 uint8 HalUART Open(uint8 port,halUARTCfgtconfig)、關(guān)串void HalUART Close(uint8 port)以及讀串口uintl6 HalUARTRead(uint8 port,uint8*bur,uintl6lell)和寫(xiě)串口uintl6 Hal UART Write(uint8 port,uint8*bur,uintl6 l)等。本系統(tǒng)在硬件設(shè)計(jì)時(shí),已選用串口0與管理中心的通信,對(duì)其串口0的配置如下所示: =TRUE; =HALUART_BIU38400。//比特率:38400 =FALSE。//不使用流控制 =SERIAL_APP_THRESH; =SERIAL_APP_RX_MAX; =SERIAL_APP_TX_MAX; =SERLAL_APP_IDLE; =TRUE; =rxcb。//串口數(shù)據(jù)接收回調(diào)函數(shù)配置好了的串口單元,通過(guò)調(diào)用其接口函數(shù)就可以實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。為了實(shí)現(xiàn)串口收發(fā)程序中的數(shù)據(jù)格式統(tǒng)一,本系統(tǒng)對(duì)串口通信格式做了規(guī)定。 (由管理中心發(fā)送到控制中心節(jié)點(diǎn))下行數(shù)據(jù)是指由管理中心發(fā)送到控制中心節(jié)點(diǎn)的指令信息。根據(jù)以上對(duì)控制中心節(jié)點(diǎn)的功能介紹,下行數(shù)據(jù)指令信息及其格式如下表55所示:表55 下行數(shù)據(jù)指令信息格式指令(2字符)負(fù)載(變長(zhǎng)) 說(shuō)明“01”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)命令該節(jié)點(diǎn)執(zhí)行數(shù)據(jù)采集。如:“01796F”“02”無(wú)功能定義“03”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)獲取指定符點(diǎn)的能量信息。如:“03796F”“04”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)+周期值(2字符)對(duì)指定節(jié)點(diǎn)設(shè)置采樣周期。如:“04796F3A”其他擴(kuò)展串口數(shù)據(jù)(由控制中心節(jié)點(diǎn)發(fā)送到管理中心)上行數(shù)據(jù)是指由控制中心節(jié)點(diǎn)發(fā)送到管理中心的數(shù)據(jù)信息。根據(jù)以上對(duì)控制中心節(jié)點(diǎn)的功能介紹,上行數(shù)據(jù)信息及其格式如下表56所示:表56 上行數(shù)據(jù)指令信息格式指令(2字符) 負(fù)載(變長(zhǎng))說(shuō)明“01”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)+數(shù)據(jù)對(duì)象(2字符)+數(shù)據(jù)值(2字符)。發(fā)送節(jié)點(diǎn)采集點(diǎn)的數(shù)據(jù)信息到管理中心。如:“01796F0539”“02”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)+數(shù)據(jù)對(duì)象(2字符)+角色信息(1字符)。角色信息:1表示協(xié)調(diào)器;2表示路由器;3表示端節(jié)點(diǎn);發(fā)送節(jié)點(diǎn)網(wǎng)絡(luò)信息到管理中心。如:“02796F3”“03”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)+能量級(jí)別(1字符)。能量級(jí)別分為8級(jí),見(jiàn)節(jié)點(diǎn)能量管理部分。發(fā)送節(jié)點(diǎn)的能量信息到管理中心。如:“03796F6”“04”節(jié)點(diǎn)的網(wǎng)絡(luò)地址(4字符)+周期值(2字符)。發(fā)送節(jié)點(diǎn)采樣周期信息到管理中心。如:“04796F3A”其他擴(kuò)展串口數(shù)據(jù) 在串口通信中,以上格式中的數(shù)據(jù)負(fù)載以字符形式傳輸。本模塊中的函數(shù)如下所示: void sendMSGtoPC(char*msg)。 //將字符串通過(guò)串口發(fā)送到管理中心 void rxeb(uint8 port,uim8 event)。//串口接收回調(diào)函數(shù) char*longtochar(long n,char *buf)。//將長(zhǎng)整形轉(zhuǎn)化為16進(jìn)制字符串 int chtoim(char*msg)。//將16進(jìn)制數(shù)據(jù)的字符串轉(zhuǎn)為整形 void strcpy(char* msgl,char* msg32)。//將字符串ms復(fù)制到字符串msgl前 void strcat(char* msgl,char *msg32)。//將字符串ms附加到字符串msgl后(3)用戶操作界面模塊用戶操作界面是為了方便用戶單獨(dú)使用控制中心節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集而設(shè)計(jì)的模塊。該模塊通過(guò)使用按鍵和LCD顯示模塊進(jìn)行配合操作,實(shí)現(xiàn)指令的發(fā)送和數(shù)據(jù)的顯示。 本系統(tǒng)的按鍵部分有四個(gè)獨(dú)立的按鍵,可實(shí)現(xiàn)菜單界面的上下翻轉(zhuǎn),菜單命令的撤銷與確定。該模塊所實(shí)現(xiàn)的函數(shù)如下所示: void menu select(void)。 //菜單界面程序; Uint8 getmykey(void) 。//獲取按鍵值:Up、Down、Back、Enter void HalLcdWriteSereen(chat**line2)。//LCD顯示字符串?dāng)?shù)據(jù)void send cmd(intn)。//根據(jù)菜單選擇,發(fā)出命令 節(jié)點(diǎn)在啟動(dòng)時(shí),它首先執(zhí)行硬件的初始化和網(wǎng)絡(luò)的初始化。硬件的初始化包括I/0口的配置、中斷的設(shè)置,能量的檢測(cè),外圍設(shè)備的初始化。網(wǎng)絡(luò)的初始化包括網(wǎng)絡(luò)的配置與網(wǎng)絡(luò)的建立。當(dāng)完成了初始化工作后,控制中心節(jié)點(diǎn)就開(kāi)始等待接收消息。消息既可以是來(lái)自管理中心的指令信息,也可以是來(lái)自其他節(jié)點(diǎn)發(fā)送過(guò)來(lái)的數(shù)據(jù)消息。如果是管理中心發(fā)送的指令信息,控制中心節(jié)點(diǎn)將解析該指令,并根據(jù)指令中包含的信息將指令發(fā)送到指定的節(jié)點(diǎn)。當(dāng)接收到的消息是其他節(jié)點(diǎn)發(fā)往管理中心的消息時(shí),控制中心節(jié)點(diǎn)將根據(jù)表56的格式來(lái)發(fā)送消息到管理中心。 路由器節(jié)點(diǎn)在網(wǎng)絡(luò)中的主要作用是負(fù)責(zé)網(wǎng)絡(luò)節(jié)點(diǎn)的管理與數(shù)據(jù)的接受、發(fā)送。路由器節(jié)點(diǎn)啟動(dòng)后也是先進(jìn)行初始化工作,完成初始化工作之后,它將發(fā)送自己的網(wǎng)絡(luò)地址與角色信息到控制中心節(jié)點(diǎn)。隨后,該節(jié)點(diǎn)進(jìn)入消息等待狀態(tài)。如果收到的消息不是發(fā)送給自己的,則將消息轉(zhuǎn)發(fā)出去;否則,路由器節(jié)點(diǎn)將根據(jù)收到的消息中的指令執(zhí)行操作。在本系統(tǒng)中,路由器節(jié)點(diǎn)接收到的指令只有節(jié)點(diǎn)能量檢測(cè)。當(dāng)路由器節(jié)點(diǎn)完成能量檢測(cè)后,它將檢測(cè)的結(jié)果按照表54發(fā)送到控制中心節(jié)點(diǎn)。根據(jù)ZStack中對(duì)電池能量級(jí)別的定義,系統(tǒng)的能量分為8級(jí),即{, , , , },節(jié)點(diǎn)能量檢測(cè)程序如下所示: uint8 (void) { uint8 vdd_pass_n=0。uint8 i=7; while(HalAdcCheckVdd(i)==FALSE)//進(jìn)行電壓能量級(jí)別的判斷 { vdd_pass_n++; MicroWait(50000)。//等待50ms MicroWait(50000)。 //等待50ms if(vdd__pass_n==3) {i。vdd_pass_n=O; if(iO) break; retum(i++); } 傳感器節(jié)點(diǎn)的主要功能是數(shù)據(jù)的采集與發(fā)送。為了降低系統(tǒng)的功耗,節(jié)點(diǎn)在沒(méi)有進(jìn)行數(shù)據(jù)采集時(shí),應(yīng)通過(guò)電源的管理功能關(guān)斷數(shù)據(jù)采集部分的電源。傳感器節(jié)點(diǎn)的程序流程如圖53所示:圖53 傳感器節(jié)點(diǎn)程序流程圖 如圖53所示,傳感器節(jié)點(diǎn)啟動(dòng)后,它先進(jìn)行初始化工作。在它完成初始化工作之后,它將發(fā)送自己的網(wǎng)絡(luò)地址與角色信息到控制中心節(jié)點(diǎn)。隨后,該節(jié)點(diǎn)斷開(kāi)數(shù)據(jù)采集模塊的電源并進(jìn)入指令等待狀態(tài)。根據(jù)收到指令的不同,傳感器節(jié)點(diǎn)的處理程序也各不相同。下面分別對(duì)各個(gè)指令的執(zhí)行程序介紹。(1)數(shù)據(jù)采集程序當(dāng)傳感器節(jié)點(diǎn)收到該指令時(shí),它首先打開(kāi)數(shù)據(jù)采集部分的工作電源。延長(zhǎng)一段時(shí)間后,它再進(jìn)行數(shù)據(jù)的采集操作。隨后將采集的數(shù)據(jù)信息按照表53的格式將數(shù)據(jù)發(fā)送到控制中心節(jié)點(diǎn)。其工作流程如下圖54所示:圖54 傳感器節(jié)點(diǎn)執(zhí)行數(shù)據(jù)采集程序流程圖 數(shù)據(jù)采集部分的電源管理通過(guò)對(duì)CC2430的P0_0引腳輸出高低電平來(lái)控制。當(dāng)P0Q輸出高電平時(shí),模擬開(kāi)關(guān)CD4066導(dǎo)通了各個(gè)電源,為各數(shù)據(jù)采集單元供電。當(dāng)其輸出為低電平時(shí),模擬開(kāi)關(guān)斷開(kāi)了各個(gè)電源的輸出。 由于傳感器模塊在上電之后需要一定響應(yīng)時(shí)間來(lái)采集環(huán)境數(shù)據(jù),不同種類的傳感器所需采集響應(yīng)時(shí)間不一樣。為此,系統(tǒng)在軟件設(shè)計(jì)時(shí)為不同的傳感器節(jié)點(diǎn)設(shè)定了不同的采樣延遲時(shí)間,以保障系統(tǒng)獲得精確的采樣數(shù)據(jù)。 在本系統(tǒng)中,傳感器有三種輸出信號(hào)類型:數(shù)字型,模擬型,開(kāi)關(guān)型。在數(shù)據(jù)采集的過(guò)程中,這三類信號(hào)的程序處理也各不相同,下面將對(duì)其作具體介紹。1. SHTll傳感器數(shù)據(jù)采集程序 由于SHTll傳感器采用12C總線的形式與CC2430通信,它有兩根信號(hào)線:DATA和SCK,其中SCK為時(shí)鐘信號(hào)線,DATA為數(shù)據(jù)信號(hào)線。這兩根信號(hào)線分別與CC2430的Pll和Pl2連接,如圖416所示。在后面的描述中,定義CC2430為主機(jī),SHTll傳感器為從機(jī)。從機(jī)在一個(gè)啟動(dòng)時(shí)序后就可以開(kāi)始傳輸數(shù)據(jù),其在啟動(dòng)時(shí)序序如圖55所示。DATA CSK圖55 初始化時(shí)序圖 ,當(dāng)SCK時(shí)鐘高電平時(shí),DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖?隨后是在SCK時(shí)鐘高電平時(shí)DATA翻轉(zhuǎn)為高電平。 在完成上述啟動(dòng)時(shí)序后,主機(jī)發(fā)出一個(gè)后續(xù)8位命令碼,該命令碼包含3個(gè)地址位(默認(rèn)地址位為“000”)和5個(gè)命令位(如表45所示)。發(fā)送完該命令碼,將DATA總線設(shè)為輸入狀態(tài)等待從機(jī)的響應(yīng)。從機(jī)接收到上述地址和命令碼后,在第8個(gè)時(shí)鐘下降沿,將DATA下拉為低電平作為從機(jī)的ACK;在第9個(gè)時(shí)鐘下降沿之后,從機(jī)釋放DATA(恢復(fù)高電平)總線。釋放總線后,從機(jī)開(kāi)始測(cè)量當(dāng)前溫濕度(根據(jù)采集指令確定是溫度還是濕度),測(cè)量結(jié)束后,再次將DATA總線拉為低電平。主機(jī)檢測(cè)到DATA總線被拉低后,得知量已經(jīng)結(jié)束,給出SCK時(shí)鐘信號(hào)。從機(jī)在第8個(gè)時(shí)鐘下降沿,先輸出高字節(jié)數(shù)據(jù)。在第9個(gè)時(shí)鐘下降沿,主機(jī)將DATA總線拉低作為ACK信號(hào)。然后釋放總線DATA。在隨后8個(gè)SCK周期下降沿,從機(jī)發(fā)出低字節(jié)數(shù)據(jù)。接下來(lái)的SCK下降沿,主機(jī)再次將DATA總線拉低作為接收數(shù)據(jù)的ACK信號(hào)。最后8個(gè)SCK下降沿從機(jī)發(fā)出CRC校驗(yàn)數(shù)據(jù),主機(jī)不予應(yīng)答(NACK)則表示測(cè)量結(jié)束。SHT11傳感器有一個(gè)狀態(tài)寄存器,可以通過(guò)設(shè)置其寄存器對(duì)應(yīng)的位來(lái)實(shí)現(xiàn)其高級(jí)應(yīng)用。該寄存器的第0位,可以設(shè)置該傳感器的分辨率大小。當(dāng)該位為0時(shí),濕度的分辨率為12位,溫度的分辨率為14位。當(dāng)該位置1時(shí),濕度的分辨率為8位,溫度的分辨率為12位。系統(tǒng)默認(rèn)情況下,該位為0。SHT11傳感器采集部分的程序如下表56所示:表56 SHT11傳感器數(shù)據(jù)采集程序列表函數(shù)名功能說(shuō)明void SH_start(void) SHT11的啟動(dòng)子程序;void SH_ACK(void)SHT11發(fā)送應(yīng)答位子程序void SH_NOACK(void)SHT11發(fā)送非應(yīng)答子程序,使數(shù)據(jù)傳輸過(guò)程結(jié)束void check_ACK(void)CC2430應(yīng)答檢查子程序,使數(shù)據(jù)傳輸過(guò)程結(jié)束void SH_send Byte(uint8 ch)發(fā)送~個(gè)字節(jié)uint8 SH receive Byte(void) 接收一字節(jié)void Init SHT(void) 初始化SHT11Void SH_Measure Tem(void)發(fā)送測(cè)量溫度命令,調(diào)用后應(yīng)延遲void SH_Measure Hum(void) 發(fā)送測(cè)量濕度命令,調(diào)用后應(yīng)延遲int Read Data(void)讀測(cè)量數(shù)據(jù)charload_data(int n) 將讀取的數(shù)值轉(zhuǎn)化為16進(jìn)制字符串格式void time_delay_Isec(void)延遲1秒 SHT11可通過(guò)12C總線直接輸出數(shù)字量溫濕度值,SHT11的輸出特性呈一定的非線性,為了計(jì)算其溫濕度值,可進(jìn)行如下計(jì)算: A.濕度計(jì)算 由于濕度輸出具有非線性,可按如下公式修正濕度值: () 式中X為傳感器相對(duì)濕度測(cè)量值,系數(shù)取值如下:12位時(shí):。8位時(shí): ,。由于溫度對(duì)濕度的影響十分明顯,而實(shí)際溫度和測(cè)試參考溫度(25℃)有所不同,所以對(duì)線性補(bǔ)償后的濕度值進(jìn)行溫度補(bǔ)償很有必要。補(bǔ)償公式如下:式中:RH為經(jīng)過(guò)線性補(bǔ)償和溫度補(bǔ)償后的最終濕度值,T為測(cè)試濕度值時(shí)的溫度,溫度補(bǔ)償系數(shù)取值如下:12位時(shí):,; 8位時(shí):。由于SHT11溫度傳感器的線性非常好,故可用下列公式將溫度數(shù)字輸出轉(zhuǎn)換成實(shí)際溫度值:式中,SOT為其溫度測(cè)量輸出值,當(dāng)電源電壓為3V時(shí),其系數(shù)如下:分辨率為14位時(shí),。分辨率為12位時(shí),本部分的數(shù)據(jù)計(jì)算將在管理中心程序中執(zhí)行。亮度與一氧化碳濃度傳感器數(shù)據(jù)采集程序在本系統(tǒng)中,亮度與一氧化碳濃度檢測(cè)傳感器都屬于模擬信號(hào)輸出型,輸出的電流信號(hào)進(jìn)過(guò)轉(zhuǎn)換后變成電壓信號(hào),該信號(hào)再經(jīng)過(guò)放大之后被ADC量化成數(shù)字信息。本系統(tǒng)ADC數(shù)據(jù)量化可利用協(xié)議棧自帶的API函數(shù)進(jìn)行數(shù)據(jù)的讀取,其分辨率選擇為8位。該函數(shù)的原形為:uintl 6 HaLucRead(uint8 chel,uim8 rolmion)//讀ADC的轉(zhuǎn)換數(shù)據(jù)值其中,形參channel為ADC的通道。本系統(tǒng)使用ADC通道4,分辨率為8位。在ADC進(jìn)行數(shù)據(jù)數(shù)模轉(zhuǎn)換的過(guò)程中時(shí),如果模擬信號(hào)未達(dá)到穩(wěn)定,輸出數(shù)字量的誤差會(huì)比較大。為了精確地實(shí)現(xiàn)模擬信號(hào)的量化,本文在每一次采樣過(guò)程中,多次讀取ADC通道的數(shù)據(jù)值,并且連續(xù)兩次讀取之間,具有一定的時(shí)間間隔。經(jīng)過(guò)多次比較采集的數(shù)據(jù),如果數(shù)值相同時(shí),方可認(rèn)為傳感器輸出的信號(hào)達(dá)到穩(wěn)定,這樣采集到的數(shù)據(jù)比較精確。下面將分別針對(duì)這兩種傳感器的輸出數(shù)據(jù)進(jìn)行計(jì)算。(2)亮度傳感器照度計(jì)算,當(dāng)負(fù)載RL的大小為1K時(shí),其輸出接近線性特性,可根據(jù)如下公式()進(jìn)行計(jì)算:
點(diǎn)擊復(fù)制文檔內(nèi)容
外語(yǔ)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1