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

正文內(nèi)容

基于stm32及l(fā)abview的環(huán)境監(jiān)測系統(tǒng)設計方案(編輯修改稿)

2025-06-08 23:35 本頁面
 

【文章內(nèi)容簡介】 框圖如圖17所示。圖17 數(shù)據(jù)采集傳輸軟件總體框圖 系統(tǒng)通信協(xié)議設計現(xiàn)實生活中無線數(shù)據(jù)的傳輸過程,往往由于傳輸距離、外界電磁干擾等因素,造成數(shù)據(jù)丟包等現(xiàn)象。系統(tǒng)擁有特點的通信協(xié)議,使得系統(tǒng)通信的的安全性和可靠性進一步加強。制定協(xié)議時,一般要滿足數(shù)據(jù)包要有包頭、約定好數(shù)據(jù)長度、對數(shù)據(jù)進行自動校驗、數(shù)據(jù)盡可能短。該協(xié)議用于對終端查詢、控制以及終端的數(shù)據(jù)響應。系統(tǒng)通信協(xié)議如表2所示。表2 系統(tǒng)通信協(xié)議長 度縮 寫說 明包頭2字節(jié)SD以“$@”開頭,十六進制為0x24,0x40終端地址2字節(jié)ADDR終端的地址功能碼1字節(jié)FC命令碼數(shù)據(jù)長度1字節(jié)LEN后面帶的數(shù)據(jù)字節(jié)數(shù),沒有數(shù)據(jù)長度為 0數(shù)據(jù)內(nèi)容n字節(jié)DATA校驗碼1字節(jié)XOR從終端地址開始,到數(shù)據(jù)內(nèi)容的異或和包尾2字節(jié)ED以‘\r\n’結(jié)尾,十 六 進 制 為0x0d,0x0a系統(tǒng)主要傳遞的傳感器參數(shù)有DHT11及MQ2所采集的數(shù)據(jù),所以規(guī)定了這兩種參數(shù)的傳遞格式,如表3所示。表3 傳感器數(shù)據(jù)傳輸格式DHT11MQ2功能碼0x010x02數(shù)據(jù)長度52數(shù)據(jù)內(nèi)容一字節(jié) 0:失敗 1:成功0:失敗 1:成功二字節(jié),溫度二字節(jié),濕度0:滅 1:有煙校驗碼待計算待計算 ZigBee節(jié)點程序設計ZigBee節(jié)點程序分為協(xié)調(diào)器節(jié)點程序和終端節(jié)點程序,其中終端節(jié)點程序包含DHT11和MQ2驅(qū)動程序。兩節(jié)點程序都是基于ZigBee2007協(xié)議棧開發(fā)。有了ZigBee協(xié)議棧,只需要關(guān)注所發(fā)的數(shù)據(jù),可以少考慮ZigBee協(xié)議的具體實現(xiàn)細節(jié)。(一)終端節(jié)點程序設計DHT11數(shù)據(jù)發(fā)送程序:static void SerialApp_SendData_DHT11(){ uint8 SendBuf[20]={0}。 DHT11()。 SendBuf[0]=39。$39。SendBuf[1]=39。@39。SendBuf[2] = HI_UINT16( EndDeviceID )。SendBuf[3] = LO_UINT16( EndDeviceID )。SendBuf[4] = ZIGBEE_FUN_CODE_CHECK_TEMP_HUM。SendBuf[5]=5。 SendBuf[6]=1。 SendBuf[7]=0。 SendBuf[8] = wendu。 SendBuf[9]=0。 SendBuf[10] = shidu。 SendBuf[11] = XorCheckSum(amp。SendBuf[2],9)。SendBuf[12] = 39。\r39。SendBuf[13] = 39。\n39。}MQ2主要傳輸?shù)氖菙?shù)字信號,所以可以給CC2530的IO口一個高低電平就是反映外界情況。我們需要做的就是對CC2530相應IO口的檢測。MQ2數(shù)據(jù)發(fā)送程序:static void SerialApp_SendData_MQ2(){ uint8 SendBuf[20]={0}。SendBuf[0]=39。$39。SendBuf[1]=39。@39。SendBuf[2] = HI_UINT16( EndDeviceID )。SendBuf[3] = LO_UINT16( EndDeviceID )。SendBuf[4] = ZIGBEE_FUN_CODE_CHECK_Smoke。 SendBuf[5]=2。 SendBuf[6]=1。 SendBuf[7]=GetGas()0?true:false。 SendBuf[8] = XorCheckSum(amp。SendBuf[2], 6)。SendBuf[9] = 39。\r39。SendBuf[10] = 39。\n39。}終端節(jié)點上電后,會初始化系統(tǒng)硬件,再查詢是否組建了無線傳感器網(wǎng)絡,如果有ZigBee無線網(wǎng)絡將自動加入,然后處理傳感器采集的數(shù)據(jù)進行打包,再發(fā)送到協(xié)調(diào)器。終端節(jié)點流程圖如圖18所示。圖18 終端節(jié)點流程圖終端節(jié)點數(shù)據(jù)發(fā)送部分程序:if ( events amp。 SERIALAPP_SEND_PERIODIC_EVT ){SerialApp_SendPeriodicMessage()。 osal_start_timerEx(SerialApp_TaskID,SERIALAPP_SEND_PERIODIC_EV,(SERIALAPP_SEND_PERIODIC_TIMEOUT + (osal_rand() amp。 0x00FF)) )。return (events ^ SERIALAPP_SEND_PERIODIC_EVT)。}if ( events amp。 SERIALAPP_SEND_EVT ){SerialApp_Send()。return ( events ^ SERIALAPP_SEND_EVT )。}if ( events amp。 SERIALAPP_RESP_EVT ){SerialApp_Resp()。return ( events ^ SERIALAPP_RESP_EVT )。}(二)協(xié)調(diào)器程序設計協(xié)調(diào)器負責接收終端節(jié)點發(fā)來的數(shù)據(jù),通過串口傳輸給STM32控制器。協(xié)調(diào)器上電后,會按照編譯時給定的參數(shù),選擇合適的信道、合適的網(wǎng)絡號,從而建立ZigBee無線網(wǎng)絡。協(xié)調(diào)器接收到數(shù)據(jù)后,協(xié)議棧會自動將數(shù)據(jù)封裝成一個消息,然后消息會自動加入隊列,其中任何消息都有其個人的消息ID[12]。所以只需要到消息隊列中接收消息,然后從其中取得所需要的數(shù)據(jù)即可,其他的工作由ZigBee協(xié)議棧自動完成。程序主要用到協(xié)議棧的接收函數(shù),流程圖如圖19所示。圖19 協(xié)調(diào)器軟件流程圖程序主要用到了協(xié)議棧的接收函數(shù):SerialApp_ProcessMSGCmd( afIningMSGPacket_t *pkt )接收函數(shù)部分程序:if(afDataLen=9amp。amp。afRxData[0]==39。$39。amp。amp。afRxData[1]==39。@39。 amp。amp。afRxData[afDataLen2]==39。\r39。 amp。amp。afRxData[afDataLen1]==39。\n39。) { uint16 addr=(afRxData[2]8)|afRxData[3]。 uint8 fc=afRxData[4]。 uint8 data_len=afRxData[5]。 uint8 xor=0。 xor=XorCheckSum(amp。afRxData[2], afDataLen5)。 if(afRxData[afDataLen3]==xor) { parseRfData(afRxData,afDataLen)。 } } 數(shù)據(jù)處理顯示模塊軟件設計該部分為系統(tǒng)核心模塊,負責接收終端節(jié)點數(shù)據(jù),STM32處理數(shù)據(jù)后在液晶上進行實時顯示,同時將數(shù)據(jù)傳輸?shù)絇C機上進行顯示。而且負責GSM報警功能。該部分軟件可分為底層程序設計、任務程序設計和應用程序設計。硬件驅(qū)動程序主要分為串口驅(qū)動、液晶觸摸屏驅(qū)動、SD卡驅(qū)動、DMA驅(qū)動、SIM900A驅(qū)動等。這里主要介紹總體任務程序、SIM900A驅(qū)動,其他子程序詳見附錄。數(shù)據(jù)處理顯示模塊流程圖如圖20所示。圖20 數(shù)據(jù)處理顯示模塊流程圖 總體任務程序設計數(shù)據(jù)處理顯示部分程序是基于狀態(tài)機模型設計的[13]。整體分為觸摸屏任務、顯示任務、節(jié)點設置任務、報警任務、數(shù)據(jù)接收處理任務、DMA數(shù)據(jù)傳輸任務、事件處理等[14]。事件處理函數(shù)代碼:void even_process(void){switch(Interface) { case Wele: //歡迎界面 Lcd_show_bmp( 0,0,/)。 break。 case Set_temp: //設置界面 Lcd_show_bmp( 0,0,/)。 while(Interface == Set_temp) //等待設置完成 {Set_eventProcess()。 //設置事件處理函數(shù) } break。 case Monitor: //監(jiān)測界面 Lcd_show_bmp( 0,0,/)。 Lcd_GramScan(1)。 while(1) { data_chuli()。 //數(shù)據(jù)處理 if(Interface == Set_temp) break。 } Break; default: break。 }}觸摸屏函數(shù)代碼:void touch_process(void){ if(touch_flag == 1) { switch(Interface) { case Wele: //歡迎界面處觸摸屏幕進入設置界面 if(Get_touch_point(amp。display,Read_2046_2(),amp。touch_para ) !=DISABLE) { if((=213amp。amp。=237)amp。amp。(=262 amp。amp。=298)) Interface = Set_temp。 } break。 case Set_temp: //設置界面按鍵處理 Set_getEvent()。 //設置界面 獲取觸摸坐標及處理 break。 case Monitor: //監(jiān)測界面按鍵處理 if(Get_touch_point(amp。display,Read_2046_2(),amp。touch_para ) !=DISABLE) { if((=210amp。amp。=230)amp。amp。(=1 amp。amp。=13)) Interface = Set_temp。 } break。 default: break。} }} GSM程序設計STM32控制器是通過串口與SIM900A進行數(shù)據(jù)傳輸,其主要是利用AT指令集對SIM900A進行控制功能。系統(tǒng)主要使用其短信發(fā)射功能。報警功能的短信發(fā)送采用的是TEXT模式[15],有關(guān)的詳細AT指令步驟如下:發(fā)送:AT回車返回:AT回車OK發(fā)送:AT+CMGF=1回車返回:AT+CMGF=1回車OK發(fā)送:AT+CSCA=+8615570919927回車返回:AT+CSCA=+8615570919927回車OK發(fā)送:AT+CMGS=15570919927回車返回:AT+CMGS=15570919927回車發(fā)送:英文或是數(shù)字返回:英文或是數(shù)字發(fā)送:1A(十六進制發(fā)送)回車短信發(fā)送函數(shù)代碼:void sim900a_sms(char *num,char *smstext){ char ucsbuff[160]。 char end[2] = {0x1A,0x00}。 SIM900A_CLEAN_RX()。 if(IsASSIC(smstext)==SIM900A_TRUE) { sim900a_tx_printf(AT+CSCS=\GSM\\r)。 SIM900A_DELAY(100)。 sim900a_tx_printf(AT+CMGF=1\r)。 SIM900A_DELAY(100)。 sim900a_tx_printf(AT+CMGS=\%s\\r,num)。 SIM900A_DELAY(100)。 sim900a_tx_printf(%s,smstext)。 } sim900a_tx_printf(%s,end)。} LabVIEW上位機軟件設計LabVIEW上位機程序分為前面板設計和程序框圖設計,前面板設計就是進行人機交互界面設計,系統(tǒng)將前面板界面設計分為歡迎界面、監(jiān)測主界面、設置界面和回放界面。程序框圖設計分模塊為串口通信部分、數(shù)據(jù)處理部分、實時顯示部分等[16]。上位機軟件流程如圖21所示。串口通信部分,有波特率設置,串口號選擇,數(shù)據(jù)位選擇。根據(jù)識別串口后且打開按鈕為真時,才能進入數(shù)據(jù)處理顯示部分。串口通信程序如圖22所示。數(shù)據(jù)處理部分,采用公式節(jié)點,只需將處理程序的C程序?qū)懭爰纯?。?shù)據(jù)程序如圖23所示。顯示部分,使用波形圖標控件、滑動桿控件,將數(shù)據(jù)處理部分傳過來的數(shù)據(jù)進行捆綁顯示。顯示程序如圖24所示。前面板歡迎界面如圖25所示。前面板監(jiān)測界面如圖26所示。前面板設置界面如圖27所示。
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1