基于Z-Stack的室内温湿度监测系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本系统由于终端之间并不要求通讯 ,只是与协调器相 互通信 ,因此将所有的终端监测节点都设置为点播方式 , 目标地址设置为协调器的网络地址 :
SampleApp_Point_DstAddr .addrM ode = (afAddrM ode_t)Addr16Bit ; SampleApp_Point_DstAddr .addr .shortAddr = 0x0000 ; 而对于协调器来说 ,为便于协调和管理所有的子节 点 ,宜采用广播的方式让所有的子节点都能收到信息 ,因 此将地址信息设置为 : SampleApp_Periodic_DstAddr .addrM ode = (afAddrM ode_t)AddrBroadcast ; SampleApp _ Periodic _ DstAddr . addr . shortAddr = 0xFFFF ; (2)串口通信 。 串口通信的程序设计包括串口初始 化 、串口发送和串口接收 ,其中初始化部分包括配置串口 号 、波特率 、流控 、校验位等 。 比如 ,在工程配置选项中的 C/C + + Compiler 一栏选择 preprocessor ,然后在 Defined symbols 下的白色书写框中输入定义的符号 ,如果输入 ZTOOL_P1 ,编译后系统则选择串口 0 进行相关的操作 ; 若输入 ZT OOL_P2 ,则选中串口 1 。 在 mt_uart .h 文件中 编写串口初始化宏参数 ,例如 # define M T _ U ART _DE‐ FA UL T_BA UDRA T E 、HAL_UART_BR_115200 ,将波特 率设置为 115200bps 。 Z‐Stack 协议栈上开发的串口应用可以分为接收部分 和发送部分 ,接收部分是终端节点通过串口接收单片机采 集到的温湿度数据 ,而发送部分则是协调器通过串口将数 据发送给 PC 机 ,具体如下 :
3 软件设计
单片机 STC89C52 的软件开发平台选择 Keil uVi‐ sion4 ,Zigbee 协议栈 Z‐Stack 的应用开发平台选择 IAR Embedded Workbench 。 其中 ,Z‐Stack 的应用开发需先下 载并安装 Z‐Stack 软件包(使用 Zstack‐CC2530‐2 .5 .1a) 。 3 .1 Z‐Stack 协议栈
ZigBee 技术是一种新兴的短距离 、低复杂度的双向无 线网络技术 ,具有能耗低 、成本低 、网络容量大 、时延短和 安全等特点[4] 。 此外 ,ZigBee 还具备自组织网络的功能 , 能实现网络自我功能恢复 。 ZigBee 技术以其经济 、可靠 、 高效等优点在物联网中有着良好的应用前景[5] 。
对于 Zigbee 部分软件设计 ,采用基于协议栈 Z‐Stack 的应用开发方式 ,节点无线收发的程序设计按照节点种类
的不同分为两类 ,即终端(监测节点)程序设计与协调器程 序设计 。 两类程序的架构基本一致 ,由于功能实现要求不 同 ,存在一定差异 ,主要表现在以下方面 :
图 3 协议栈工作流程
· 96 ·
软 件 导 刊 2015 年
接收部分(见图 4) :终端节点的 Zigbee 模块通过串口 接收单片机采集到的温湿度数据 ,并通过 RF 将其发送至 协调器节点 。
发送部分(见图 5) :协调器节点的 Zigbee 模块将监测 终端传来的数据呈送给 PC 机 ,以方便用户通过 PC 机了 解当前室内所有房间温湿度情况 。
0 引言
后 ,即可在串口调试窗口上显示出协调器接收到的温湿度 数据 。
在物联网时代 ,智能家居发展已成为一种趋势 ,而温 度 、湿度与人们的日常生活息息相关 ,影响着安全 、舒适的 生活体验 。 因此 ,对这些环境参量进行监测和调节在智能 家居生活中必不可少 。 采用铺设电缆的传统方式 ,当需要 监测和控制的对象较多时 ,布线繁琐 、维护和升级困难 ,成 本高 、灵活性差等一系列的问题就凸显出来[1‐3] 。
模块和电源模块组成 。 控制模块采用高性能 、低功耗的 8 位微控制器 STC89C52 ,按照一定的时序读写数字温湿度 传感器 D HT21 来获取区域内的温湿度 ,单片机获得温湿 度后通过串口将具体的数据发送给射频芯片 CC2530 ,再 由射频收发器终端节点将温湿度值发送给协调器 。
图 2 终端节点硬件
4 结语
图 4 接收部分流程 图 5 发送部分流程
3 .3 数据采集单元 终端监测节点数据采集单元由单片机 STC89C52 和
数字温湿度传感器 D HT21 组成 ,单片机使用单总线的方 式控制 D HT21 输出温度和湿度 ,输出数据的格式为 :
Z‐Stack 是 T I 公司推出的 Zigbee2007 协议栈 ,是 Zig‐ bee 协议的具体实现 ,它相当于一个小型的操作系统 ,包 括 14 个文件目录 :App 、HAL 、M AC 、M T 、NWK 、OSAL 、
Profile 、Securitey 、Services 、Tools 、ZDO 、ZM AC 、ZM ain 、 Output 。 T I Z‐Stack 协议栈总体上由硬件抽象层 HAL 、 操作系统抽象层 OSAL 和 Zigbee 协议层组成[6] 。 HAL 层提供 Timer 、I/O 、U ART 等硬件资源的 API ,OASL 层 负责任务管理 。 用户可以使用协议栈提供的 API 进行应 用程序开发 ,在开发过程中完全不必关心 ZigBee 协议的 具体实现细节[7] 。 Z - Stack 系统采用任务轮询的机制 ,各 层任务初始化之后便进入查询等待的低功耗模式 ,如果有 事件发生 ,系统便被唤醒 ,中断并处理发生的事件 ,处理完 后再次进入低功耗模式 。 若几个事件同时发生 ,系统便根 据事件的优先级依次进行处理[7] 。 协议栈工作流程如图 3 所示 。 3 .2 Z‐Stack 无线收发程序设计
(3)事件及处理方式 。终端监测节点主要功能是将数 据定时上报给协调器 。 终端事件来源于串口接收到的数 据 ,将其无线发送给设置好的目标地址 (协调器 ) ;协调器 的事件则来源于无线接收到一帧数据 ,其处理方式是通过 串口发送给 PC 机 。
Sensor_Data[i] = Read_SensorData() ; 其中 ,Sensor_Data[0] 、Sensor_Data[1]存储的是湿度 量 ,Sensor_Data[2] 、Sensor_Data [3 ]存储的是温度量 ,因 此 ,温湿度分别为 : humidity = Sensor_Data[0] 倡 256 + Sensor_Data[1] ; temperature = Sensor_Data [2 ] 倡 256 + Sensor_Data ; 若 接 收 到 的 前 32bit 数 据 为 :0000000111110101 _ 0000000100011010 ,那 么 ,humidity = 1 倡 256 + 245 = 501 ,temperature = 1 倡 256 + 26 = 282 ,得到最终相对湿度 和温度 。
基于 Z‐Stack 的室内温湿度监测系统设计
李 延 ,张发生
(中南林业科技大学 计算机与信息工程学院 ,湖南 长沙 410004)
摘 要 :针对布设线缆监测室内温湿度的传统方式存在的布线复杂 、成本较高 、维护难及扩展性较差等不足 ,结合 Zigbee 及嵌入式开发技术 ,提出一种基于 Zigbee 协议栈的 Z‐Stack 室内温湿度监测系统设计方案 。 系统使用射频芯 片 CC2530 、处理器 STC89C52 和温湿度传感器 D H T21 ,具有结构简单 、可靠性与扩展性好 、布点灵活等特点 ,为 Z‐ Stack 应用开发及智能家居环境调控的研究及实现提供重要的理论及应用基础 。 关键词 :Zigbee ;Z‐Stack ;温湿度监测 ;智能家居 DOI :10 .11907 /rjdk .143967 中图分类号 :T P319 文献标识码 :A 文章编号 :1672‐7800(2015)002‐0094‐03
(1)通讯方式设置 。 Zigbee 的通讯方式主要有 3 种 : 点播 、组播 、广播 。 点播 ,顾名思义是点对点通信 ,也就是 2 个设备之间的通讯 ,不容许有第三个设备收到信息 ;组 播就是将网络中的节点分组 ,组员发出的信息只有组号相 同的组员才能收到 ;广播就是 1 个设备上发出的信息所有 设备都能接收到 。
(2)传感器模块 。 D HT21 数字温湿度传感器是一款 含有已校准数字信号输出的温湿度复合传感器 。 它应用 数字模块采集技术和温湿度传感技术 ,确保产品具有极高 的可靠性与卓越的长期稳定性 。 该产品具有品质卓越 、响 应快 、抗干扰能力强 、性价比高等优点 。 外接 3 个接口分 别为 VCC 、SDA 和 GND ,SDA 用于微处理器与 D HT21 之间的通讯和同步 。
第 2 期 李 延 ,张发生 :基于 Z‐Stack 的室内温湿度监测系统设计
· 95 ·
频芯片采用 T I‐CC2530 ,同时使用 PL2303 模块 (STC 下 载器)连接协调器和 PC 机 。 2 .3 主要模块
(1)无线模块 。本系统使用 T I 公司的 CC2530 无线射 频芯片 。 该芯片使用的 8051CPU 内核是一个单周期的 8051 兼容内核 ,它有 3 个不同的存储器访问总线 (SFR 、 DA T A 和 CODE/XDA T A ) ,以单周期访问 SFR 、DA T A 和主 SRAM 。 它还包括一个调试接口和一个扩展中断单 元 。 另外 ,CC2530 具有电源管理功能 ,可以实现工作模式 的切换 ,从而保证了芯片的低功耗性能 。 芯片内部提供了 一个 IEEE 802 .15 .4 兼容的无线收发器 ,RF 内核控制模 拟无线模块 ,提供了 M CU 和无线设备之间的一个接口 , 可以发出命令 、读取状态 、自动操作和确定无线设备事件 的顺序 。 此外 ,无线设备还包括一个数据包过滤及地址识 别模块 。
如图 1 所示 ,3 个终端节点作为监测节点 ,实时检测 房间内的温湿度 ,并将其定时传送至协调器 。 协调器节点 通过串口与 PC 机相连 ,接收到温湿度数据后通过串口将 其发送至 PC 机 。 在 PC 上设置好串口号 、波特率等参数
图 1 系统总体结构
2 硬件设计Leabharlann Baidu
2 .1 终端节点硬件设计 如图 2 所示 ,终端节点由控制模块 、传感器模块 、无线
2 .2 协调器节点硬件设计 网络协调器承担着网络组建 、网络管理以及收集监测
节点的数据并上传给 PC 机的任务 ,是一个 ZigBee 全功能 设备 。 在本系统中 ,协调器节点的硬件电路比较简单 ,射
作者简介 :李延(1990 - ) ,男 ,湖南邵阳人 ,中南林业科技大学计算机与信息工程学院硕士研究生 ,研究方向为智能检测与自动控制 。
1 系统总体设计方案
系统使用单片机 STC89C52 作为节点控制器 ,使用数 字温湿度传感器 D HT21(AM2301)构建节点传感器单元 , 使用 T I 无线射频芯片 CC2530 搭建无线网络节点 。 考虑 到家庭住房较密集 、面积较大等特点 ,以及 Zigbee 节点网 络容量大的特性 ,整个系统采用星型拓扑结构的连接方 式 。 为验证方案的可行性 ,本设计选用 3 个终端节点 ,分 别安装在室内 3 个不同方位 。
相关文档
最新文档