我是靠谱客的博主 小巧金鱼,最近开发中收集的这篇文章主要介绍基于ZigBee 的多点温度采集系统设计与实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

摘要:针对广阔空间环境温度采集系统对功耗及成本的要求,设计了基于无线传感网络技术的多点温度采集系统.以CC2430 为主控芯片,选用DS18B20 作为温度采集节点的传感器,基于ZigBee 协议栈构建无线网络实现主从节点之间数据的采集与传输,利用串口通信技术与PC 机通信,并编程实现数据处理、存储与显示。

  1 引言

  随着生产技术的提高, 环境温度指标越来越多的影响到生产效率、能源消耗和生活水平。不管是工业、农业、军事及气象领域, 还是日常生活环境, 都需要对温度进行监测。因而,设计可靠且实用的温度采集系统显得非常重要。

  在传统的温度采集系统中, 节点一般采用有线连接方式, 布线繁琐, 扩展性和可移植性较差。尤其对于广阔空间环境中的温度采集,如果采用有线方式其成本和功耗都比较高。而ZigBee 作为一种新兴的短距离、低功耗、低成本的无线通信技术, 能广泛应用于工业控制、消费电子、家庭自动化、医疗监控各种领域。

  本文设计了一种基于ZigBee 无线技术的多点温度采集系统, 实现了主从节点间数据的无线传输, 同时上位PC 机采用串口与主节点通信,并建立温度数据库,实现了数据的统一管理。该系统具有扩展性好、稳定可靠、维护方便等特点。

  2 系统整体概述

  本文设计的温度采集系统结构如图1 所示。系统采用ZigBee 星型网络拓扑结构,建立了一个主节点,四个从节点的无线传感网络,实现数据的无线传输。各个从节点连接数字温度传感器DS18B20 定时采集环境温度,并通过无线传感网络将数据依次向主节点发送,主节点收到数据后通过串口传给上位PC 机,上位机将采集的数据存入数据库, 对数据进行分析处理, 并在监控界面显示温度实时变化曲线。

 
 

图1 温度采集系统结构图

  3 系统硬件设计

  3.1 主节点硬件设计

  选择CC2430 作为主节点的处理器,该芯片是全球首款支持ZigBee 协议的片上系统(SOC)解决方案,集成了一个8051MCU 内核以及符合IEEE802.15.4 规范的2.4GHz 的无线收发器。芯片内部有8kb 的RAM,可选32/64/128kB 的Flash 存储单元,包含模拟数字转换器、定时器、看门狗定时器、AES128 协处理器等,同时提供了2 个UART 接口以及21 个可编程I/O 引脚。该芯片具有高度集成性和丰富的硬件资源,使得外围电路的设计变得十分简单。

  主节点是整个网络的协调器,作为全功能设备(FullFunction Device,FFD),负责网络组建和维护、温度采集数据无线接收、与上位PC 机串口通信。因此采用CC2430-F128(128kB Flash)芯片,并在CC2430 典型应用电路的基础上扩展串行通信接口,选用MAX3232 芯片实现TTL 与RS232 电平转换。ZigBee 主节点的硬件电路如图2 所示。



图2 ZigBee 主节点电路

  3.2 从节点硬件设计

  从节点主要负责温度采集和数据无线传输, 可作为简化功能设备(Reduced Function Device,RFD),以降低功耗和成本。芯片采用CC2430-F32(32kB Flash),其硬件电路和主节点大致相同, 只是去掉了串口通信电路,同时在从节点芯片的I / O 口上接入多个温度传感器DS18B20 以实现多点温度数据的采集。

  DS18B20 是“单总线”数字温度传感器,其测量温度范围为-55℃~+125℃,支持3~5. 5V 电压供电, 主要由四部分组成:64 位光刻ROM、温度传感器、非易失性温度报警触发器和配置寄存器。ROM 中的64 位序列号出厂前已光刻固化,每个传感器的序列号都是唯一的,因此可以在一根总线上挂接多个DS18B20,能极大减少I/O 口的占用。本系统中用DS18B20 进行多点温度采集时,传感器与从节点的CC2430 的连接形式如图3 所示。


图3 温度传感器节点连接图

  由于ZigBee 设备功耗很低,并且能设置成定时睡眠模式以进一步省电,而DS18B20 本身功率也非常小,所以本系统中的主、从各节点均采用2 节1.5V 电池供电即可满足实际需要。

  4 系统软件设计

  4.1 温度传感器数据采集

  DS18B20 可设定9~12 位的分辨率,本系统采用12位分辨率,转换精度为0. 0625℃,转换温度信号所需最长时间为750ms。温度数据由2 字节组成,以符号扩展的二进制补码形式存储,最低4 位是小数部分,中间7 位是整数部分, 1 位符号位。

  DS18B20 内部RAM 由9 个字节的高速缓存器和E2PROM 组成,前2 个字节即为温度数据。通过复位指令、ROM 和RAM 功能命令,即可完成对指定DS18B20温度数据的采集和读取, 所有读写操作都是通过与CC2430 的I/O 口连接的DQ 引脚完成。

  在一线制总线上串接多个DS18B20 器件时,需要先发送跳过ROM 指令,将所有传感器都进行一次温度转换,之后通过匹配ROM 依次读取每个传感器的温度数据,实现对单I/O 口上的多个DS18B20 器件的操作。整个温度采集的流程如图4 所示。



图4 DS18B20 温度采集流程图

  4.2 ZigBee 无线组网及数据通信

  ZigBee 通信协议采用分层结构,节点通过在不同层上的特定服务来完成所要执行的各种任务。本系统采用TI 提供的ZigBee2006 协议栈Z-Stack,在IEEE 802.15.4 标准物理层(PHY)和媒体访问控制层(MAC)基础上增加了网络层、应用层和安全服务规范,是一种较好的无线传感网络组建方案。

  ZigBee 设备类型按网络功能分为三种:协调器、路由器、终端。由于本系统采用星型网络拓扑结构,所以只存在协调器和终端两种设备。

  本系统中主节点被初始化为网络协调器。协调器包含所有的网络消息, 存储容量最大、计算能力最强。

  它的功能是发送网络信标、建立网络、管理网络节点、存储网络节点信息、收发信息。

  从节点被初始化为无信标网络中的终端设备。上电复位后,即开始搜索指定信道上的网络协调器,并发出连接请求。建立连接成功后, 从节点将得到一个16 位的网络短地址,并采用非时隙CSMA-CA 机制,通过竞争取得信道使用权,向主节点发送数据。各从节点每30 秒读取一次I/O 接口上多片温度传感器数值, 同时开启睡眠定时器,当数据发送成功后该节点立即进入睡眠状态,最大程度地降低功耗, 延长从节点的电池使用时间。

  数据包的格式由从节点串接的DS18B20 的数量决定,每个DS18B20 传输的数据长度定义为3 字节,第1 字节为标识符,包括从节点编号,CC2430 的I/O 口编号以及此温度传感器的编号, 后2 个字节为温度采集数据。

  主节点收到数据包后, 对数据进行分析处理, 把从节点上的每个温度传感器的数据采集值进行转换,得到实际的温度值,然后发送给上位PC 机。主从各节点的组网及通信流程如图5 所示。


图5 主从节点组网通信流程图

  4.3 PC 机串口通信及监控


图6 上位机软件运行界面

  上位机采用VB 编程语言编写串口通信及数据库程序,在工程中添加MSComm 控件实现串口传输和接收数据[4]。使用ADO 对象连接Access 数据库,将当前数据存入数据库中,将控件Pictur eBox 作为容器,实现曲线图的动态显示,此过程涉及到曲线、坐标轴、格线和坐标刻度的消隐和重绘。消隐的实现主要用背景色重绘曲线和网格线, 并覆盖坐标刻度数字, 重绘实时曲线和坐标轴网格线通过Li n e 方法来实现, 坐标轴刻度、标签、图标等的标注使用Print 方法实现[5]。

  当程序开始运行后, 打开串口, 就可将接收到的实时数据加入到各节点的历史温度数据库,同时可以从运行界面看到历史温度变化曲线。图表中曲线的最右端为当前温度, 点击节点按钮, 然后选中指定的温度数据框,即可查看对应传感器节点的温度历史数据和变化情况, 软件运行时的界面如图6 所示。

  5 结束语

  本文设计了一种基于ZigBee 技术的无线温度采集系统,采用CC2430 芯片设计主从节点,硬件结构精简、体积小、能耗低, 所组成的无线传感网络具有自组织,自适应的特点。通过实验调试,该温度采集系统达到了设计要求,效果良好。鉴于无线传感网络技术具有功耗低、数据传输可靠、网络容量大、兼容性好、实现成本低等诸多优点, 可广泛应用于生产生活的各个领域, 尤其适用于数字家庭、智能大厦温度控制、小区安防监测等, 具有较好的通用性和应用前景。


 

来源:http://www.360doc.com/content/11/1022/08/7906690_158127418.shtml

最后

以上就是小巧金鱼为你收集整理的基于ZigBee 的多点温度采集系统设计与实现的全部内容,希望文章能够帮你解决基于ZigBee 的多点温度采集系统设计与实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部