物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計_第1頁
物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計_第2頁
物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計_第3頁
物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計_第4頁
物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、武漢華夏理工學(xué)院信息工程課程設(shè)計報告書課 程 名 稱 物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計 課程設(shè)計總評成績 學(xué) 生 姓 名 學(xué) 號 學(xué) 生 專 業(yè) 班級 指 導(dǎo) 教 師 姓名 課程設(shè)計起止日期 .15 一、課程設(shè)計項目名稱基于ZigBee協(xié)議棧的智能家居控制燈系統(tǒng)二、項目設(shè)計目的及技術(shù)要求2.1 項目設(shè)計目的通過物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計課程設(shè)計,使學(xué)生能夠掌握物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計的開發(fā)流程、設(shè)計方法,使學(xué)生能夠綜合應(yīng)用無線傳感器網(wǎng)絡(luò)技術(shù)、嵌入式技術(shù)、JAVA WEB程序設(shè)計Andriod程序設(shè)計、物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計等物聯(lián)網(wǎng)工程專業(yè)課程的知識。要求學(xué)生經(jīng)過課程設(shè)計的教學(xué)環(huán)節(jié)進一步理解物聯(lián)網(wǎng)應(yīng)用系統(tǒng)總體

2、架構(gòu),掌握物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的基本設(shè)計方法,程序開發(fā)流程,從而使學(xué)生對物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計能力有較大提高。2.2 項目的主要任務(wù)1設(shè)計內(nèi)容:課程設(shè)計題目一般由指導(dǎo)教師提供,也可以在老師的同意下學(xué)生自己題; 4人一組,每組完成的內(nèi)容不能雷同。設(shè)計參考題目如下:1)智能家居環(huán)境監(jiān)測系統(tǒng)2)智能家居控制燈系統(tǒng)3)智能農(nóng)業(yè)區(qū)-自動灌溉系統(tǒng)2.基本要求:1)學(xué)會單片機的應(yīng)用方法,開發(fā)環(huán)境;2)結(jié)合任務(wù)要求,完成系統(tǒng)設(shè)計和調(diào)試,鼓勵功能擴展和創(chuàng)新;3)會應(yīng)用protues工具,根據(jù)設(shè)計的電路,畫電路圖,并利用protues進行驗證仿真;4)熟悉匯編或C51語言,用C51完成系統(tǒng)的軟件編程;5)按規(guī)范撰寫課程設(shè)計

3、說明書。3. 項目分工上位機:李永紅、夏智君下位機:陳建、李元毅4、課程設(shè)計步驟及時間進度和場地安排1)指導(dǎo)老師下達課程設(shè)計任務(wù)書;2)完成物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計;3)完成系統(tǒng)制作和調(diào)試;4)繪制系統(tǒng)框圖和電路圖、或程序代碼;5)撰寫課程設(shè)計說明書時間進度和場地安排:16月11日,下達課程設(shè)計任務(wù)書,介紹物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計,查閱相關(guān)資料,確定設(shè)計方案,給團隊分工合作。26月11日14日,審查設(shè)計方案,確定自己在團隊的里面要完成的任務(wù),開始相關(guān)代碼的編寫及調(diào)試。3. 6月15日,撰寫課程設(shè)計報告書,并準備答辯。 5、實驗室(423)開放時間周次地點星期一星期二星期三星期四星期五第1周第5-8節(jié)第5-

4、8節(jié)第5-8節(jié)第5-8節(jié)第5-8節(jié)實驗室423實驗室423實驗室423實驗室423實驗室4236、課程設(shè)計考核及評分標準1.設(shè)計說明書要求課程設(shè)計說明書要求邏輯清晰、層次分明、書寫整潔。說明書格式包括標題(中英文)、提要、正文(包括設(shè)計項目要求與說明。電路原理分析。軟件流程分析。調(diào)試分析。實驗數(shù)據(jù)分析。答辯。成績評定。)、附錄(圖紙.程序清單或軟盤) 。課程設(shè)計說明書須每人一份,獨立完成。2.圖紙要求 系統(tǒng)結(jié)構(gòu)框圖、protel電路圖三、項目設(shè)計方案論證3.1基于ZigBee協(xié)議棧的智能家居控制燈系統(tǒng)設(shè)計的整體方案對ZigBee協(xié)議框架結(jié)構(gòu)進行分析,然后通過論述協(xié)議的應(yīng)用層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層

5、、物理層和MAC層的功能,將無線傳感器網(wǎng)絡(luò)與ZigBee技術(shù)相結(jié)合,闡述無線傳感器網(wǎng)絡(luò)節(jié)點的硬件和軟件設(shè)計方法。在本設(shè)計中,選用功耗較小的CC2530芯片作為通信芯片來設(shè)計節(jié)點。通過編寫協(xié)議棧程序,進行包含匯聚節(jié)點及傳感器節(jié)點的組網(wǎng)通信實驗。利用VC+編寫上位機程序,通過串口進行數(shù)據(jù)交互,從而控制小燈。此系統(tǒng)的組成框圖如圖3-1所示:發(fā)送無線模塊接收CC2530Zigbee4模塊CC2530 Zigbee3模塊 圖3-1 基于ZigBee協(xié)議棧的智能家居控制燈系統(tǒng)設(shè)計的整體方案3.2系統(tǒng)實現(xiàn)原理3.2.1硬件原理圖本實驗使用的是CC2530芯片, CC2530 具有一個IEEE 802.15.

6、4 兼容無線收發(fā)器。RF 內(nèi)核控制模擬無線模塊。另外,它提供了MCU 和無線設(shè)備之間的一個接口,這使得可以發(fā)出命令,讀取狀態(tài),自動操作和確定無線設(shè)備事件的順序。無線設(shè)備還包括一個數(shù)據(jù)包過濾和地址識別模塊。本系統(tǒng)主要涉及LED、RS485模塊、USB轉(zhuǎn)串口電路、CC2530典型應(yīng)用電路。如下圖所示:圖3-2-1 CC2530的LED模塊 圖3-2-2 小燈模塊圖3-2-3 USB轉(zhuǎn)串口電路3.2.2 節(jié)能燈模塊本實驗用的節(jié)能燈傳感器為12V供電,接通電源后節(jié)能燈亮,該節(jié)能燈可以通過繼電器控制其開關(guān),通過控制四路繼電器P1的吸合與斷開,控制節(jié)能燈的打開與關(guān)閉。圖3.2.2 節(jié)能燈傳感器接線說明節(jié)能

7、燈模塊信號DC12VGND-四路繼電器端子電源板+ J1電源板-P1機柜面板-IO(綠色)表3.2 節(jié)能燈模塊連線說明通信協(xié)議設(shè)計SOFSensor typeSensor indexCmd idDataExten DataEND2Byte1Byte1Byte1Byte6Byte2Byte1Byte說明:SOF:固定為0xEE 0xCC,標志一幀的開始。Sensor type:見附表一傳感器說明。Sensor index:固定為0x01。Cmd id:固定為0x01。Data:為6Byte傳感器數(shù)據(jù)域,見附表一傳感器說明。Exten Data:為2Byte擴展數(shù)據(jù)域END:固定為0xFF,標志一

8、幀的結(jié)束。開燈指令:EE CC 01 01 01 00 00 00 00 00 01 00 00 FF關(guān)燈指令:EE CC 01 01 01 00 00 00 00 00 00 00 00 FF3.2.3 實驗連線說明1.首先將節(jié)能燈模塊下方的信號孔(綠色香蕉孔)與香蕉線相連。2.將zibgee模塊下方的綠色香蕉孔(P1_4)與風(fēng)扇的香蕉線相連接。然后將紅黃藍三根信號線分別插到對應(yīng)顏色的香蕉孔。Zigbee Debuger USB仿真器連接到ZigBee模塊下方的20PIN插孔上。3.通過上位機軟件給ZigBee下載本實驗程序(路徑:家居農(nóng)業(yè)綜合實訓(xùn)區(qū)傳感層工程實驗九 節(jié)能燈模塊),具體下載方

9、法詳見IAR軟件下載說明文檔。用軟件,打開光盤源碼目錄中的人體傳感器工程并下載。4.將無線通訊節(jié)點的三根信號線分別接在智能網(wǎng)關(guān)上,設(shè)備上電(注意:紅黃兩根線一定要交叉!)。5.打開網(wǎng)關(guān)端的SensorDemo軟件,配置好串口波特率115200并連接。6.點擊界面上的開關(guān)按鍵進行控制。當(dāng)DATA數(shù)據(jù)區(qū)打印00 00 00 00 00 00:表示關(guān)閉狀態(tài),打印00 00 00 00 00 01:時表示打開狀態(tài)(具體協(xié)議詳見CBT 模塊通訊協(xié)議V2.5文檔)。風(fēng)扇上電后ZigBee模塊上的LED1紅燈會亮。四、軟件流程分析開始開始終端接收點擊上位機中的按鈕 是否等于01串口發(fā)送 是 是是否等于00協(xié)

10、調(diào)器接收節(jié)能燈亮節(jié)能燈滅協(xié)調(diào)器廣播發(fā)送終端組播發(fā)送應(yīng)答指令協(xié)調(diào)器接收通過串口發(fā)送至上位機顯示在上位機的編輯框中結(jié)束4.1硬件部分功能程序?qū)崿F(xiàn)4.1.1 終端程序voidSampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) uint16flashTime;switch ( pkt->clusterId )case SAMPLEAPP_PERIODIC_CLUSTERID: /接收廣播消息HalLedBlink( HAL_LED_1, 4, 50,1000 );if(pkt->cmd.Data0=0xEE)&&(pkt

11、->cmd.Data1=0xCC) HalLedBlink( HAL_LED_2, 4, 50, 500 );if(pkt->cmd.Data10=0x01) P1_4=0x01;HalLedBlink( HAL_LED_2, 4, 50, 500 );if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc,SAMPLEAPP_FLASH_CLUSTERID, 14,xzj,&SampleApp_TransID, AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) =

12、 afStatus_SUCCESS ) if(pkt->cmd.Data10=0x00) P1_4=0x00;HalLedBlink( HAL_LED_2, 4, 50, 500 );if ( AF_DataRequest( &SampleApp_Flash_DstAddr, &SampleApp_epDesc,SAMPLEAPP_FLASH_CLUSTERID, 14,xzz,&SampleApp_TransID,AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) HalLedBlink( HAL_L

13、ED_1, 4, 50,1000 );break;4.1.2串口的使用經(jīng)過CC2530芯片處理無線傳輸?shù)絽f(xié)調(diào)器節(jié)點,串口調(diào)試助手在PC機上顯示。在Z_Stack協(xié)議棧中,利用串口回調(diào)函數(shù)進行發(fā)送和接收。UART操作由USART控制和狀態(tài)寄存器UxCSR以及UART控制寄存器UxUCR來控制。寄存器UxBAUD用于設(shè)置波特率,寄存器 UxBUF是USART接收/傳送數(shù)據(jù)緩存。uint8 RX_BUFFER20; /接收緩沖區(qū);void UartCallBackFunction(uint8 port , uint8 event); /回調(diào)函數(shù)聲明,定義在最后面;Uart_Config(); /配置

14、串口HalUARTOpen(0 , &uartConfig); /打開串口/* 配置串口 */ halUARTCfg_tuartConfig; /定義串口配置結(jié)構(gòu)體變量;void Uart_Config(void); /函數(shù)聲明;void Uart_Config(void) /函數(shù)定義; uartConfig.configured = TRUE; /允許配置;uartConfig.baudRate = HAL_UART_BR_9600;/波特率;uartConfig.flowControl = FALSE;uartConfig.flowControlThreshold = 64; /d

15、on't care - see uart driver.uartConfig.rx.maxBufSize = 128; /串口接收緩沖區(qū)大小uartConfig.tx.maxBufSize = 128; /串口發(fā)送緩沖區(qū)大小uartConfig.idleTimeout = 6; /don't care - see uart driver.uartCEnable = TRUE; /使能中斷uartConfig.callBackFunc = UartCallBackFunction; static void UartCallBackFunction(uint8 p

16、ort , uint8 event)uint8 RX_Length = 0; /接收到字符串大??;RX_Length = Hal_UART_RxBufLen(0); /讀取接收字符串大??;if(RX_Length != 0)HalUARTRead(0 , RX_BUFFER , RX_Length);if(RX_BUFFER0=0xEE)&&(RX_BUFFER1=0xCC)SampleApp_SendPeriodicMessage();delay_ms(100);HalLedBlink( HAL_LED_1, 4, 50,500 ); 4.1.3處理組播消息voidSampl

17、eApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )uint16flashTime;switch ( pkt->clusterId )case SAMPLEAPP_PERIODIC_CLUSTERID: /接收廣播消息 / HalUARTWrite(0 ,pkt->cmd.Data,12 ); / HalLedBlink( HAL_LED_1, 4, 50,1000 ); / HalUARTWrite(0 ,pkt->cmd.Data ,14 );break;case SAMPLEAPP_FLASH_CLUSTERID:HalLedB

18、link( HAL_LED_2, 2, 50,500 );HalUARTWrite(0 , pkt->cmd.Data , 14);/ flashTime = BUILD_UINT16(pkt->cmd.Data1, pkt->cmd.Data2 );/ HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break; 4.2 軟件部分功能程序?qū)崿F(xiàn)4.2.1串口發(fā)送查詢指令void CCMonitorList:Onon() UpdateData(TRUE);/讀取編輯框內(nèi)容 int Count=14; int j=0; int T

19、xData14=0xee,0xcc,0x01,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff;/要發(fā)送的字符串送字符數(shù)組 CByteArray array; array.SetSize(Count);for(j=0;j<Count;j+) array.SetAt(j,TxDataj);/將字符數(shù)組型 AfxMessageBox("發(fā)送數(shù)據(jù)!"); m_ctrlcomm.SetOutput(COleVariant(array);/發(fā)送數(shù)據(jù) AfxMessageBox("發(fā)送成功!");m

20、_state="開燈"void CCMonitorList:Onoff() UpdateData(TRUE); int Count=14;/字符串長度 int j=0; int TxData14=0xee,0xcc,0x01,0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff;/要發(fā)送的字符串送字符數(shù)組 CByteArray array;array.SetSize(Count);for(j=0;j<Count;j+)array.SetAt(j,TxDataj);/將字符數(shù)組型AfxMessageBox(&qu

21、ot;發(fā)送數(shù)據(jù)!");m_ctrlcomm.SetOutput(COleVariant(array);/發(fā)送數(shù)據(jù)AfxMessageBox("發(fā)送成功!");m_state="關(guān)閉"4.2.2接受應(yīng)答指令void CCMonitorList:OnOnCommMscomm1() VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; CString strtemp; BYTE rxdata2048; /設(shè)置BYTE數(shù)組 if( m_ctrlcomm.GetCommEvent()=

22、2) /事件值為2表示接收緩沖區(qū)內(nèi)有字符 variant_inp=m_ctrlcomm.GetInput(); /讀緩沖區(qū) safearray_inp=variant_inp; /VARIANT變量轉(zhuǎn)化為COleSafeArray變量 len=safearray_inp.GetOneDimSize(); /得到有效的數(shù)據(jù)長度 for( k=0;k<len;k+) safearray_inp.GetElement(&k,rxdata+k); for( k=0;k<len;k+) BYTE bt=*(char*)(rxdata+k); /字符型 strtemp.Format("%2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論