-
1 知识介绍
-
2 PPT
-
3 学习视频
-
4 大国重器
案例介绍
本次课将介绍第五单元基于BasicRF的通信应用当中的第四个任务,传感器节点组网开发。通过对仓储环境监测系统进行分解得到四个子任务,本任务将要完成第三个子任务A、B两个节点实时采集传感器的数据。
仓储环境监测系统子任务如下:
(1) 采用温湿度传感器模块和通信模块组成数字量采集节点A
(2) 火焰传感器模块和通信模块组成开关量采集节点B
(3) A、B两个节点实时采集传感器的数据
(4) 每隔2s将采集的传感器数据通过无线网络传给汇聚节点模块
案例分析
通过对案例的任务进行分析,得到需要实现的具体关键点如
汇聚节点通过BasicRF点对点无线通信协议正确地接收温湿度和火焰传感节点采集的数据,接收到数据后,LED2亮100毫秒。

知识储备
传感器节点与汇聚节点间要进行通信,通信协议格式需要进行确定,如
START | CMD | LEN | Count | TYPE0 | DATA0 | TYPE1 | DATA1 | ... | TYPEx | DATAx | CHK |
起始位 | 命令类型 | 数据长度 | 传感器个数 | 传感器类型0 | 数据域0 | 传感器类型1 | 数据域1 | ... | 传感器类型x | 数据域x | 校验位 |

任务实施
任务的实施过程主要有编写程序、建立配置模块设备、模块连接和下载程序三个步骤。
一、编写程序
在编写程序过程中,首先在工程源码文件夹下新建collect.c文件,在IAR中将collect.c添加到workspace下的app组中,打开 collect.c,并在文件中进行汇聚节点的代码的编写。汇聚节点的程序构成如

(一)增加头文件
在collect.c文件中,添加程序需要用到的头文件,如

(二)定义宏和变量
接下来编写好点对点通讯地址、无线参数结构、无线数据缓存数组和闪烁LED灯这几个部分的宏定义。
(三)子功能函数
代码的主体部分主要包括ConfigRf_Init、GetHexStr和TIM1_PwmInit几个子功能函数,如



(四)主函数main()
main主函数包括LED灯、串口、中断初始化,呼吸灯、指示CC2530启动,检查是否收到新的数据包,LED点亮100ms,串口打印接收信息几个部分的功能代码,如
main函数运行应用程序前,需要先初始化各个功能模块,halBoardInit()初始化了 LED 灯、串口、开启总中断,ConfigRf_Init()初始化了无线收发器的初始参数。初始化完成后需要执行无限循环任务,在这里面编写一个呼吸灯程序,I/O 口 P1_0 输出 PWM 波控制 LED 灯亮灭,PWM 占空比周期性渐变,从而实现 LED 的渐变,达到呼吸灯的效果。

basicRfReceive ()用来接收无线数据, uart_printf()用来往串口打印调试信息, uart_printf()的用法和 printf()一样。

二、建立配置模块设备
代码编写完成后,第二个步骤是建立配置模块设备并进行配置。
(一)项目配置
首先是进行项目配置。如

(二)传感器数据汇集模块配置
(1)单击“New”按钮,在弹出的对话框中输入模块名称为:“collect”,基于Debug模块进行配置;
(2)单击“OK”按钮完成模块设备的建立。如图

(三) 模设置块设备条件编译参数设置
接下来对设备进行条件编译参数设置,操作步骤如下:如

三、模块连接和下载程序
模块配置完成后,最后是模块的连接与程序的下载。
(一)温湿度传感器模块程序下载:
将插有温湿度传感器模块的 ZigBee 模块固定在 NEWLab 平台,在 Workspace 栏下选择 “temprh_sensor”模块,重新编译程序无误后,给 NEWLab 平台上电,下载程序到 ZigBee 模块中。
(二) 火焰传感器模块程序下载:
将插有温湿度传感器模块的 ZigBee 模块固定在 NEWLab 平台,在 Workspace 栏下选择 “fire_sensor”模块,重新编译程序无误后,给 NEWLab 平台上电,下载程序到 ZigBee 模 块中。
(三)汇聚节点程序下载:
选用黑色的ZigBee版模块,并为其接通5V直流电源适配器,作为汇聚节点,在Workspace 栏下选择“collect”模块,重新编译程序无误后,下载程序到汇聚节点中,如

程序下载完后,将设备按图所示放在 NEWLab 平台上,程序运行效果为当发送和接收到数据有相应的 LED 闪烁,指示有数据发送和接收,如


