资源描述:
《实验6—无线温度检测实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、实验目的:学:>JTTZStack2007协议栈内容,掌握CC2530模块数据传输的实现过程。学习协议栈屮关于串门的基本设置和操作。二、实验原理及程序分析:a)系统流程图协调器分立ZigBee无线网络,终端节点自动加入该网络中,然后终端节点周期性的采集温度数裾并将其发送给协调器,协调器接收到温度数据后,通过串口将其输出到PC机。如图3.3.1所示。阁3.3.1无线温度检测实验效果图建立网络屮丨1发送图3.3.2无线温度检验协调器流M加入网络周期性发送温度数据阁3.3.3度检测实验终端节点流程图b)关键代码分析对于协调器而言,只需要将收集到的温度数
2、据通过申口发送到PC机即可;对于终端节点而言,需要周期性地采集温度数据,采集温度数据可以通过读取温度传感器的数据得到。温度数据包结构没计数柅包数据头温度数裾十位溫度数个位数据尾长度、字节1111默认值‘&•00‘C’该数据包结构体定义如下。typcdefunionh{uint8TEMP[4];structRPRXBUF{unsignedcharHead;unsignedcharvalue[2];unsignedcharTail;}BUF;}TEMPRETURE;使用一个共用体来表示整个数据包,里而有两个成员变fi,—个是数组TEMP,该数组有4元素:
3、另一个是结构体,该结构体具体实现了数据包的数据头、温度数据、数据尾。结构体所占的存储空间也是4个字节。协调器代码:^include"OSAL.h〃#include"AF.h〃^include"ZDApp.h"#include"ZDObject.h"^include"ZDProfile.h"^include〈string,h〉^include"Coordinator,h"^include"DebugTrace.h"#if!defined(WIN32)#include"OnBoard.h〃#endif^include"halled.h"#include"
4、hailed.h〃#include〃hal_key.h〃#include"hal_uart.PTconstcld_tGcnericApp_ClusterList[GENERlCAPP_.MAX_CLUSTERS]={GENERICAPPCLUSTERID};constSinipleDescriptionEormat_tGenericApp_Simp1eDesc={GENERICAPP_ENDPOINT,GENERICAPPPROFID,GENERTCAPPDEVTCETD,GENERTCAPP_DRVTCR_VERSTON,GENERICAPP_F
5、LAGS,GENERICAPPMAXCLUSTERS,(cldt*)GenericAppClusterList,0,(cld_t*)NULL};endPointDesc_tGenericApp_epDesc;byteGenericAppTaskID;byteGenericAppTransTD;unsignedcharuartbuf[128];voidGenericAppMessageMSGCB(afincomingMSGPackett氺pckt);voidGenericApp_SondTheMessago(void);AstaticvoidrxCB(
6、uint8port,uint8event);staticvoidrxCB(uint8port,uint8event){HalUARTReacKO,uartbuf,16);if(osaljnemcmp(uartbuf,〃'vw'v.wlwmaker.com〃,16)){HalUARTWrite(O,uartbuf,16);}}*/voidGenericApp」nit(bytetask」d){halUARTCfgtuartConfig;GenericAppTaskTD=taskid;GenericApp_TransID=0;GenericApp_epDe
7、sc.endPoint=GENERICAPP_ENDPOINT:GenericAppepDesc.taskid=&GenericAppTaskID;GenericAppepDesc.simpleDesc=(SimpleDescriptionFormatt氺)&GenericAppSimpleDesc;GenericApp_epDesc.latencyReq^noLatencyReqs;afRegister(&GenericAppepDesc);uartConfig.configured=TRUE;uartConfig.baudRate=HALUART
8、BR115200;uartConfig.flowControl=FALSE;uartConfig.callB