辜渝傧

13037102709

027-87870986

教学实训

您当前的位置:首页 > 教学资源 > 实训方案 >

无线传感网络实训|实验5.5 广播组网实验

发布者:唯众    布时间:2020-12-01 14:50:21    点击量:

1.实验目的

1)、掌握串口的使用
2)、掌握协调器和终端通讯过程

2.实验设备

硬件:PC机1台、ZIGBEE节点板1套(底板、核心板、仿真器、USB线)
软件:2000/XP/win7系统,IAR8.10集成开发环境

3.实验详解

       此实验是基于实验4.4的,只需在原工程上增加发送和接收部分即可。打开“实验4.5广播组网实验\ZStack-CC2530-2.3.0- 1.4.0\Projects\zstack\Samples\SampleApp\CC2530DB\SampleApp.eww”工程。在左边 workspace 目录下比较重要的两个文件夹分别是Zmain和App。我们开发主要在App 文件夹进 行,这也是用户自己添加自己代码的地方。主要修改SampleApp.c 和SampleApp.h 即可,如图 4.5.1 所示。

广播组网实验
由于此实验中只需在上个实验的基础上,修两个地方;我们就先修改,观察实现现象,再分 析源码。
1)、接收数据(红色字体为新增代码)SampleApp_MessageMSGCB ,在函数 case SAMPLEAPP_PERIODIC_CLUSTERID:下面增加三行代码,修改后如下:
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) //接收数据
{
uint16 flashTime; switch ( pkt->clusterId ) {
case SAMPLEAPP_PERIODIC_CLUSTERID:
HalUARTWrite(0, "Rx:", 3); //提示信息
HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); //输出接收到的数据
HalUARTWrite(0, "\n", 1); //回车换行
break;
case SAMPLEAPP_FLASH_CLUSTERID: //此实验没有使用,到后面实验详解 flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] ); HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
break;
}
}
 
2)、发送数据(红色字体为新增代码)
void SampleApp_SendPeriodicMessage( void ) //周期发送函数
{
uint8 data[11]="0123456789";
// 调用 AF_Da taRequest 将数据无线广播出去,在第一个实验详解里就不重复了。
if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc, SAMPLEAPP_PERIODIC_CLUSTERID, 10, data, &SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
else
{
// Error occurred in request to send.
}
}
 

4.实验步骤

1)、选择CoodinatorEB-Pro,下载到开发板网关A;作为协调器,通过USB线跟电脑连接
2)、选择EndDeviceEB-Pro,下载到开发板终端B;作为终端设备无线发送数据给协调器如果网关A和节点B建立通信连接,那么两个板子的蜂鸣器都会蜂鸣3秒。
3)、给两块开发板上电,打开串口调试助手,设为:1152008N1,协调器间隔5S会收到终端发过来的数据。此时你可以把终端设备的电源关闭,看电脑是否还能收到数据?自己验证一下吧。

5.实验现象

       终端发“0123456789”协调器收到后通过串口发给电脑,串口调试助手显示接收到的字符串。

广播组网实验


上一篇:无线传感网络实训|实验5.4 Zstack串口实验

下一篇:无线传感网络实训|实验5.6组播组网实验