1、北京XXSD教育科技有限公司01BASICRF基础知识02项目分析03工程项目创建目录目录CONTENTS04温湿度节点数据采集05火焰节点数据采集06传感器节点组网07传感数据汇聚1基础知识BASICRF简介uTI公司提供了基于CC253x芯片的BasicRF软件包,其包括硬件层(Hardware layer)、硬件抽象层(Hardware Abstraction layer)、基本无线传输层(BasicRF layer)和应用层(Application)uBasicRF是简单无线点对点传输协议,可用来进行Z-Stack协议栈无线数据传输的入门学习。与标准IEEE 802.15.4的区别点B
2、ASICRF采用了与IEEE 802.15.4 MAC兼容的数据包结构及ACK包结构。其功能与IEEE 802.15.4 MAC区别如下:不具备“多跳”、“设备扫描”功能不提供多种网络设备,如协调器、路由器等。所有节点设备同一级,只能实现点对点数据传输传输时会等待信道空闲,但不按IEEE 802.15.4 CSMA-CA要求进行两次CCA检测。不重传输数据自定义协议应用传感器节点采集到温湿度、火焰等数据将信息发送给汇聚节点,节点之间通信格式STARTCMDLENCountTYPEDATA0 DATANCHK起始位命令类型 数据长度 传感器个数传感器类型数据域校验位自定义协议应用协议各个字段解释
3、如下:START:起始位,取值0 xCC;CMD:命令类型,1表示获取采集数据;LEN:数据总长度,从START字节开始到CHK字节之前的长度;Count:传感器个数,依据传感器种类决定。如采集温湿度度传感器时,个数为2;TYPE:传感器类型,1:温度传感器;2:湿度传感器;3:火焰传感器;DATA0 DATAN:数据域;CHK:校验位,从START字节开始到CHK字节之前的累加和,该累加和与0 xFF按位与运算(保留低8位),得到的结果就是CHK的值了。2项目分析需求分析某企业为了提高生产管理效率,利用传感网技术对企业的管理实现集成化、统一化。本开发项目围绕仓库的传感网进行组网开发。仓库是工
4、厂存放生产材料、成品的地方,要注意仓库区域的温湿度,保持通风良好,干燥、不潮湿,利用温湿度传感器采集温湿度数据,同时还要对仓库进行防火检查,利用传感器检测是否有明火,通过这些传感器实现仓储环境监测功能任务要求首先在NEWLab实训平台上模拟实现仓储环境监测功能。采用温湿度传感器模块和ZigBee模块组成数字量采集节点A;火焰传感器模块和ZigBee模块组成开关量采集节点B;A、B、两个节点实时采集传感器的信号,每隔2s将采集的传感器信号通过无线网络传给汇聚节点模块(该节点通过串口与PC机相连),并在PC机串口调试软件上显示采集的数据模块连接图3工程项目创建工程项目创建搭建BasicRF开发环境
5、,并创建配置工程任务要求0201新建工程及程序文件添加修改程序项目实施03配置工程蓝牙4.0BLE主从机建立连接剖析01新建工程及程序文件添加Step 02Step 04复制库文件新建IAR工程新建程序文件为工程添加头文件Step 01Step 0302修改程序在“hal_board.h”头文件找到如下代码,查看下面宏是否正确,如果不正确,按照如下要求修改它。03配置工程General Options配置选中“Target”选项卡,在“Device”栏内选择“CC2530F256.i51”(路径:C:8051configdevicesTexas Instruments)。03配置工程Linke
6、r和Debugger配置u选中“Config”选项卡,勾选“Overide default”,并在该栏内选择“lnk51ew_CC2530F256_banked.xcl”配置文件,其路径:C:8051configdevicesTexas Instruments。u选中“Setup”选项卡,在“Driver”栏内选择“Texas Instruments”;在“Device Description file”栏内,勾选“Overide default”,并在该栏内选择“io8051.ddf”配置文件,其路径:C:8051configdevices_generic03配置工程Linker和Debug
7、ger配置4温湿度节点数据采集温湿度节点数据采集采用温湿度传感器模块和ZigBee模块组成一个数字量传感器采集节点,实现温湿度传感器的采集,并将采集数据通过自定义协议无线传输至汇聚节点。发送节点有数据发送时,LED1亮100毫秒。任务要求项目实施01修改程序02建立与配置模块设备03编译和下载程序Step 02Step 04在sensor.c中增加头文件新增宏定义定义变量和数组新增校验和函数CheckSumStep 6主函数关键函数Step 01Step 03Step 0501修改程序02建立与配置模块设备新增文件将sensor.c从workspace下的app组中移除,复制Project文件
8、夹下的sensor.c为副本,并将这个副本重命名为temprh_sensor.c,最后重新添加到workspace下的app组中。02建立与配置模块设备选择菜单“Project?Edit Configurations”,弹出项目的配置对话框,目配置对话框所示,系统会检测出项目中存在的模块设备02建立与配置模块设备单击“New”按钮,在弹出的对话框中输入模块名称为:“temprh_sensor”,基于Deubg模块进行配置,然后单击“OK”按钮完成模块设备的建立。在项目配置对话框中就可以自动检测出刚才建立的模块设备“temprh_sensor”02建立与配置模块设备单击右键选择“Options”
9、,在弹出的对话框中选择“C/C+Compile”类别,在右边的窗口中选择“Preprocessor”选项中的“Definedsymbols:”中输入“CC2530_DEBUG”知识链接将插有温湿度传感器模块的ZigBee模块固定在NEWLab平台,在Workspace中选择“temprh_sensor”模块,编译程序无误后,给NEWLab平台上电,下载程序到ZigBee模块中。03编译和下载程序知识链接设置波特率为115200,串口调试助手可以看到采集到的温湿度数据03编译和下载程序验证通过后,需要把条件编译选项中的“CC2530_DEBUG”去掉,变成“xCC2530_DEBUG”03编译和
10、下载程序5火焰节点数据采集火焰节点数据采集采用火焰传感器模块和ZigBee模块组成一个开关量传感器采集节点,实现火焰传感器的采集,并将采集数据通过自定义协议无线传输至汇聚节点。发送节点有数据发送时,LED1亮100毫秒。任务要求项目实施01修改程序02建立与配置模块设备03编译和下载程序Step 02Step 04新建fire_sensor.c新增宏定义新增函数get_adc修改main函数Step 01Step 0301修改程序02建立与配置模块设备单击“New”按钮,在弹出的对话框中输入模块名称为:“fire_sensor”,基于Deubg模块进行配置,然后单击“OK”按钮完成模块设备的建
11、立。在项目配置对话框中就可以自动检测出刚才建立的模块设备“fire_sensor”02建立与配置模块设备单击右键选择“Options”,在弹出的对话框中选择“C/C+Compile”类别,在右边的窗口中选择“Preprocessor”选项中的“Definedsymbols:”中输入“CC2530_DEBUG”02建立与配置模块设备workspace下选择“temprh_sensor”,左击选择“fire_sensor.c”,然后右击“fire_sensor.c”,弹出菜单中点击“Option”02建立与配置模块设备在弹出的窗口中,勾选“Exclude from build”,最后点击OK保存0
12、2建立与配置模块设备操作temprh_sensor.c,在弹出的菜单中勾选“Exclude from build”,最后点击OK保存知识链接将插有温湿度传感器模块的ZigBee模块固定在NEWLab平台,在Workspace中选择“fire_sensor”模块,编译程序无误后,给NEWLab平台上电,下载程序到ZigBee模块中。03编译和下载程序知识链接设置波特率为115200,串口调试助手可以看到采集到的温湿度数据03编译和下载程序验证通过后,需要把条件编译选项中的“CC2530_DEBUG”去掉,变成“xCC2530_DEBUG”03编译和下载程序6传感器节点组网传感器节点组网汇聚节点通
13、过BasicRF点对点无线通信协议正确地接收温湿度和火焰传感节点采集的数据。接收到数据后,LED2亮100毫秒任务要求任务实施01 修改程序02建立与配置模块设备03编译和下载程序04运行程序Step 02Step 04新建collect.c文件,并加入工程增加头文件定义变量和数组初始化函数ConfigRf_Init()Step 6修改主函数新增函数GetHexStr及修改定时器函数Step 01Step 03Step 0501修改程序02建立与配置模块设备单击“New”按钮,在弹出的对话框中输入模块名称为:“collect”,基于Debug模块进行配置,然后单击“OK”按钮完成模块设备的建立
14、。在项目配置对话框中就可以自动检测出刚才建立的模块设备“collect”02建立与配置模块设备单击右键选择“Options”,在弹出的对话框中选择“C/C+Compile”类别,在右边的窗口中选择“Preprocessor”选项中的“Definedsymbols:”中输入“CC2530_DEBUG”02建立与配置模块设备在IAR中,展开app组,workspace下选择“collect”,对“temprh_sensor.c”和“fire_sensor.c”执行“Exclude from build”的操作。同样的,在workspace下分别选择选择“temprh_sensor”和“fire_s
15、ensor”,依次对“collect.c”执行“Exclude from build”的操作,并将“collect.c”从编译中排除。知识链接将插有温湿度传感器模块的ZigBee模块固定在NEWLab平台,在Workspace中选择“temprh_sensor”模块,编译程序无误后,给NEWLab平台上电,下载程序到ZigBee模块中。03编译和下载程序知识链接将插有温湿度传感器模块的ZigBee模块固定在NEWLab平台,在Workspace中选择“fire_sensor”模块,编译程序无误后,给NEWLab平台上电,下载程序到ZigBee模块中。03编译和下载程序知识链接将插有温湿度传感器
16、模块的ZigBee模块固定在NEWLab平台,在Workspace中选择“collect”模块,编译程序无误后,给NEWLab平台上电,下载程序到ZigBee模块中。03编译和下载程序设备如下图所示放在NEWLab平台上04运行程序设置波特率为115200,串口调试助手可以看到数据04运行程序7传感数据汇聚传感数据汇聚在定义宏CC2530_DEBUG的情况下,汇聚节点接收到自定义协议后,对协议数据进行解析将数据显示在PC机串口调试助手上。温度显示格式:“当前温度:xx”。湿度显示格式:“当前相对湿度:xx%”,火焰显示格式:“当前红外线(火焰)强度:xxmV”。汇聚节点与串口调试助手的波特率是
17、115200,8位数据位,1位停止位。当关闭宏定义CC2530_DEBUG的情况下,汇聚节点将数据透传到串口上任务要求任务实施01 修改程序02系统测试03上报云平台Step 02collect.c文件中增加宏定义collect.c编写程序修改主函数Step 01Step 0301修改程序设备如下图所示放在NEWLab平台上02系统测试知识链接设置波特率为115200,串口调试助手可以看到采集到的温湿度等数据02系统测试验证通过后,需要把条件编译选项中的“CC2530_DEBUG”去掉,变成“xCC2530_DEBUG”03上报云平台用导线连接汇聚节点和物联网网关的RS485信号接口硬件连接0
18、3上报云平台登录云平台后,先点击“开发者中心”按钮,然后点击“新增项目”按钮即可新建一个项目新建项目03上报云平台填入设备名称:“仓储环境监测”、勾选通讯协议:“TCP”、设备标识:“BasicRFxxxxx”,最后点击“确定添加设备”添加设备03上报云平台记录下设备ID、设备标识、传输密钥,后续需要用到这三个参数设备管理界面03上报云平台确认ApiKey是否生成或有效,若未生成ApiKey,则按下图生成ApiKeyApiKey生成03上报云平台登陆物联网网关系统管理界面 192.168.14.200:8400配置物联网网关接入云平台03上报云平台将前面记录的设备ID、设备标识、处传输密钥填入到下图的标号至;物联网网关配置参数配置完毕,点击设置按钮,物联网网关系统自动重启,20秒左右,系统初始化完毕配置物联网网关接入云平台03上报云平台按下图 步骤,可让网页实时显示数据,查看数据上传情况配置实时数据开启03上报云平台实现显示如下图所示,网页每间隔5秒刷新一次实时数据03上报云平台点击下图中所指位置可跳转到历史数据页面。历史数据03上报云平台