- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于Z-Stack协议栈的传感网络构建
基于Z-Stack协议栈构建无线传感器数据采集系统,分别采集开关量数据和模拟量数据,采用3个ZigBee模块,节点A作为协调器使用,负责组建网络并将路由点B和末端节点C采集的数据上传给PC机,路由节点B收集开关量传感器数据,末端节点C收集模拟量传感器数据,PC机可通过串口助手软件查看接收到的传感器数据。本应用可拓展为N个节点。一、任务描述
HEADLENSTYPESDATA1字节1字节1字节1字节1字节数据头,固定为0xFE数据包长度:从HEAD到SDATA传感器类型:0x01代表开关量;0x02代表模拟量传感器数据低8位传感器数据高8位二、知识讲解自定义传感器上传数据格式在本例中自定了简单的传感器上传数据格式,由于本案例未涉及上位机开发,所以在协调器解析数据,通过串口显示相关信息。上传数据格式:
开关量传感器数据采集模块二、知识讲解1开关量传感器数据采集在单片机CC2530开发中,通过I/O口采集传感器的数据,如传感器没有采集到数据时,引脚状态为高电平,传感器有采集到数据时,引脚为低电平。根据此原理,我们在本任务中通过按键模拟开关量传感器的数据采集,只不过传感器是自动采集数据,此任务是手动模拟,原理是一致的。
在具体的工作中需要根据自己使用设备进行相应配置,可自行编写初始化函数,根据掌握的CC2530单片机知识可直接配置寄存器,完成按键引脚初始化,以及通过扫描引脚或通过外部中断方式查看引脚输入状态。例如我们可编写如下函数:开关量传感器数据采集模块二、知识讲解uint8get_swsensor(void) {P0SEL=~(11);//设置P0.1为普通I/O口 P0DIR=~(11);//设置P0.1为输入方向 returnP0_1;//返回P0.1电平 }
通过函数osal_start_timerEx()将SAMPLEAPP_SEND_PERIODIC_MSG_EVT事件定时5秒后设置。开关量传感器数据采集模块二、知识讲解2编写开关量传感器模块新任务的事件处理函数根据自定义指令格式第一个字节为数据头:固定为0xFE;第二个字节为发送数据长度0x05;第三个字节为开关量传感器值0x01;第四个字节为传感器数据,若按下按键传输0x00,否则传输0xEE,第五个字节自定义为0xEE。代码如下所示:
开关量传感器数据采集模块voidSampleApp_SendPeriodicMessage(void){uint8Switch_Data[5]={0xFE,0x05,0x01,0xEE,0xEE};if(get_swsensor()==0){Switch_Data[3]=0x00;//00代表采集到数据}if(AF_DataRequest(SampleApp_Periodic_DstAddr,SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,5,Switch_Data,SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS)==afStatus_SUCCESS){HalLedBlink(HAL_LED_2,0,50,500);}else{//Erroroccurredinrequesttosend.}}二、知识讲解
模拟量传感器采集模块1模拟量传感器数据采集二、知识讲解在本任务中,我们通过CC2530芯片的ADC模块获取片内温度,将节点的片内温度传输给协调器。在实际的工作中可根据具体电路配置ADC的相关寄存器。本例获取片内温度代码如下:
uint16get_adc(void){uint32value;ADCIF=0;//清ADC中断标志//采用内部参考电压,128抽取率,获取片内温度,启动AD转化ADCCON3=(0x00|0x10|0x0E);while(!ADCIF){;//等待AD转化结束}value=ADCL; //ADC转换结果的低位部分存入
您可能关注的文档
- 基于ZStack协议栈的点对点通信27课件讲解.pptx
- 机电设备故障诊断与维修机电设备故障诊断维修65课件讲解.pptx
- 机架零件的三维建模季有昌56课件讲解.pptx
- 机器人运动控制实操运动控制技术与应用59课件讲解.pptx
- 机器学习技术应用浙江工商78课件讲解.pptx
- 机体对药物的作用药动学Pharmacokinetics34课件讲解.pptx
- 机械工程基础材料力学05课件讲解.pptx
- 机械工程基础材料力学72课件讲解.pptx
- 机械工程基础材料力学85课件讲解.pptx
- 机械工程基础材料力学90课件讲解.pptx
- 2026年大连外国语大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年电子科技大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年东北大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年东北师范大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年东华大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年福州大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年贵州大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年国际关系学院翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年哈尔滨工业大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
- 2026年哈尔滨理工大学翻译硕士(MTI)考研招生人数、参考书、考研经验、真题回忆.pdf
原创力文档


文档评论(0)