基于ZigBee的多点温度监控系统

2014-07-24 18:18刘科峰邓秀勤刘志煌
现代电子技术 2014年14期

刘科峰+邓秀勤+刘志煌

摘 要: 针对传统温度监控系统存在布线困难、线路容易老化等缺点, 开发了一种以CC2430为核心的多点无线温度监控系统。该系统采用ZigBee协议组成树状网络实现各节点之间的数据传输,采用单线数字温度传感器 DS18B20 采集现场温度数据。在给出系统总体结构的基础上, 阐述了系统硬件电路的设计和软件的实现方法。系统具有界面友好、组网灵活、成本低等优点。经测试,该系统取得了较为满意的监控效果。稍加修改,还可广泛应用于各领域的环境参数自动监控。

关键词: ZigBee; CC2430; 温度监控; DS18B20

中图分类号: TN964?34 文献标识码: A 文章编号: 1004?373X(2014)14?0081?03

Multi?point temperature monitoring system based on ZigBee

LIU Ke?feng, DENG Xiu?qin, LIU Zhi?huang

(School of Applied Mathematics, Guangdong University of Technology, Guangzhou 510520, China)

Abstract: A multi?point wireless temperature monitoring system with CC2430 as its core is developed to overcome the shortcomings in traditional system, such as difficult wiring and easily aging circuit. In the system, a tree?shaped network constructed by ZigBee protocol is adopted to implement data transmission among nodes, and the single digital temperature sensor DS18B20 is used to collect on?site temperature data. The overall structure, hardware circuit design and software implementation method are elaborated in this paper. There are many advantages in this new system, such as friendly interface, flexible networking, low cost and so on. A satisfactory monitoring result was achieved in the test of this system. It can also be widely used in automatic monitoring of environmental parameters in various fields.

Keywords: ZigBee; CC2430; temperature monitoring; DS18B20

温度在工农业生产中起着举足轻重的作用,在冶金、医药、食品制造和化学制造等行业尤其显得重要。在适当的温度下生产的产品质量、产量和合格率会大大的提高[1]。传统的温度监控系统大部分是通过有线的方式组网传送数据。但是这种传输方式存在布线麻烦、线路容易老化和网络扩展性差等问题。所以无线温度监控系统越来越受到人们的青睐。

ZigBee是一种新兴的短距离、低功耗、低数据率、低复杂度的无线网络技术[2], 相对于传统的无线网络技术,ZigBee具有支持多跳路由协议、自组网,低功耗,低成本等特点[3?4],主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输[5]。用ZigBee组成的无线网络取代有线网络是个不错的选择。本文设计的温度监控系统能够在监控端的上位机上对多个位置的温度进行设置、检测和控制。

1 系统设计方案

整个多点温度监控系统由上位机、协调器、路由器和温度监控终端组成,采用ZigBee协议组成树状网络实现各节点之间的数据传输,如图1所示。下面对各模块分别介绍。

上位机为监控中心模块, 由PC机和声光报警系统组成。用Java开发的监控软件在PC机运行,该监控软件能从串口读取协调器发送过来的实测温度值,显示各温度监控终端的实测温度值,设置各温度监控终端的期望温度值、上限报警值、下限报警值,产生报警信号和向协调器发送期望温度值。

温度监控终端负责采集监控点的温度数据, 并把数据通过ZigBee 网络发送给路由器或协调器,接收路由器或协调器发送过来的期望温度值,根据期望温度值与实测温度值的偏差产生控制信号。路由器是连接温度监控终端和协调器的桥梁,主要起扩大网络规模的作用,距离协调器较近的温度监控终端可以直接把数据发送至协调器而不必通过路由器。如果网络规模较小,可以不用路由器,直接将协调器与温度监控终端作星型连接。协调器通过RS 232接口与上位机通信,协调器与上位机之间还可以进行交互操作。

图1 温度监控系统设计方案

2 系统的硬件设计

协调器、路由器和温度监控终端的核心部件为CC2430。CC2430在单个芯片上集成了ZigBee射频收发器核心和1颗工业级小巧高效的8051控制器[6]。片上资源丰富,只需要很少的外围部件配合就能实现信号的收发功能[7]。协调器、路由器和温度监控终端通过ZigBee技术组成无线通信网络。其中路由器可由一个基本的CC2430模块构成,相对简单,不再讨论。

2.1 温度监控终端的硬件设计

本设计采用CC2430和DSl8B20作为主要芯片实现温度监控终端,其硬件结构如图2所示。

图2 温度监控终端的硬件结构

DSl8B20是Dallas公司推出的1?Wire式单总线智能数字温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度[8]。DSl8B20只有三线接口, 分别为地线、数据线、电源线[9]。CC2430的P1_3引脚与DS18B20的数据线引脚相连接,通过该连接可完成CC2430与DS18B20的双向通信。

控制信号从P0口传出,经光电隔离器件后进行D/A变换,最后对模拟信号进行功率放大以便控制升温设备和降温设备。电源模块由分压、稳压电路和电池组成,给节点提供稳定的3.3 V电源。晶振电路的本振时钟信号选择内部电路提供,外围电路由晶体振荡器和2个负载电容组成。

2.2 协调器节点的硬件设计

协调器节点由CC2430芯片和外围电路组成,外围电路包括晶振时钟电路、射频输入/输出匹配电路、微控制器接口电路和串口电路4个部分。协调器节点的大部分硬件电路与温度监控终端节点相同,主要不同体现在串口电路。串口电路通过SP3223E完成电平转换和数据收发[10],SP3223E的R1OUT,T1IN引脚分别接CC2430的P0_2,P0_3引脚。串口提供了一个标准的9针串行接口,如图3所示。

图3 串口电路

3 系统的软件设计

系统的软件实现是以ZigBee协议栈为基础,通过调用相关函数来编写应用程序。主要包括ZigBee协调器的建立网络与其他节点的加入网络、其他节点与协调器的通信、温度监控终端对温度的读取及控制信号的产生和上位机软件的设计。

3.1 协调器节点的软件设计

在一个ZigBee网络中, 只有协调器可以建立网络, 协调器承担网络管理和数据收发的功能。协调器在完成系统初始化、网络建立以及加入管理以后,通过串口读取上位机发来的各温度监控终端的期望温度值,将这些期望温度值转发给各温度监控终端,转发成功后进入接收状态,接收来自各温度监控终端的实测温度值,并将数据通过串口转发到上位机上,程序流程图如图4所示。

3.2 温度监控终端的软件设计

温度监控终端在上电以后,进行节点初始化。在成功加入已有网络后,接收来自协调器的本终端的期望温度值,并保存该期望温度值。然后初始化DS18B20,读取实测温度值,并将实测温度值发送给协调器。根据期望温度值与实测温度值的偏差产生控制信号,为了降低能耗,温度监控终端的CC2430进入低功耗状态,当定时时间到以后,进入下一轮循环。温度监控终端程序流程图如图5所示。由于每个节点事先分配了一个惟一的地址,当节点接收到一个数据包时, 先取出该数据包包头的地址与自己的地址比较, 如果一致则接收, 否则就丢弃。

图4 协调器节点程序流程图

3.3 上位机软件设计

本系统采用Java语言和Access运用面向对象思想开发上位机程序。上位机程序主要实现监控和数据处理两大功能。包含3个温度监控终端的监控部分的运行界面如图6所示,主要用来与用户实现交互式操作,设置串口,显示实测温度值,设置和显示期望温度值、上限报警值和下限报警值。按下“保存温度数据”按钮开始保存温度数据。按下“停止保存温度数据”按钮停止保存温度数据。按下“数据处理”按钮弹出“数据处理”窗体。可以查看历史数据、报表和温度统计数据。

由于Java SE本身并不提供对串口操作的类,所以必须下载javax.comm包,并配置编程环境[11]。SerialPort对象调用setSerialPortParams()方法设置串口属性后,再调用getOutputStream()方法获得输出流对象,输出流对象调用write(byte b[])方法将数组b中的内容写入输出流。同理,SerialPort的对象调用getInputStream()方法获得输入流对象,输入流对象调用read()方法接收串口数据。

图5 温度监控终端程序流程图

图6 上位机程序运行界面

4 系统测试

为了保证温度监控系统正常可靠的工作,必须对系统进行测试,测试系统由1台上位机、1个协调器节点、2个路由器节点、3个温度监控终端节点和升温降温设备组成。协调器节点、路由器节点和温度监控终端节点组成树状网络。测试结果表明:系统数据传输准确、可靠,功耗小, 成本低,能使实测温度值逼近期望温度值,符合系统设计要求。

5 结 语

本文提出了一种基于ZigBee的多点温度监控系统的解决方案,完成了以CC2430芯片为核心的传感器节点的软硬件设计。测试结果表明:基于ZigBee的多点温度监控系统, 具有可靠性高、功耗小和成本低等特点, 能够满足多点温度监控系统的需要。ZigBee方案组网灵活、传输可靠、成本低廉,可以很好地解决有线通信方式布线麻烦、线路容易老化和网络扩展性差等问题。本系统稍加修改还可实现对湿度,压强、光照度等参数的监控。

参考文献

[1] 李强,田国栋.基于DS18B20的室内智能温度控制系统设计[J].电子设计工程,2012,20(3):34?36.

[2] 曹莉,曾黄麟,乐英高.基于ZigBee 和MSP430 无线温度控制系统设计[J].四川理工学院学报:自然科学版,2012,25(1):52?55.

[3] 陈国绍,丁莉,王中生.基于ZigBee的大棚环境监测系统设计[J].物联网技术,2013,3(10):16?18.

[4] 白晓亮,宗晓萍,孙雪.基于ZigBee的无线灯光调节器的设计[J].现代电子技术,2013,36(4):13?15.

[5] 刘一婷,杨恒,张正炳.基于ZigBee的仓库监控系统设计[J].物联网技术,2013,3(4):33?35.

[6] 李明亮,蒙洋,康辉英.例说ZigBee[M].北京:北京航空航天大学出版社,2013.

[7] 陈晓燕,庞涛.基于ZigBee网络的温室节水灌溉系统设计[J].传感器与微系统,2013,32(5):82?85.

[8] 李萍.基于DS18B20的多路温度监测系统设计与仿真[J].现代电子技术,2013,36(10):122?124.

[9] 吕建波.基于单总线数字温度传感器DSl8B20的测温系统设计[J].现代电子技术,2012,35(19):117?119.

[10] 余谦.基于ZigBee与51内核的射频无线传感器网络节点硬件设计[J].物联网技术,2013,3(7):11?12.

[11] 邱占芝,于晓龙.基于Java的汽车衡称重管理系统关键技术[J].大连交通大学学报,2011,32(4):75?78.

2.1 温度监控终端的硬件设计

本设计采用CC2430和DSl8B20作为主要芯片实现温度监控终端,其硬件结构如图2所示。

图2 温度监控终端的硬件结构

DSl8B20是Dallas公司推出的1?Wire式单总线智能数字温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度[8]。DSl8B20只有三线接口, 分别为地线、数据线、电源线[9]。CC2430的P1_3引脚与DS18B20的数据线引脚相连接,通过该连接可完成CC2430与DS18B20的双向通信。

控制信号从P0口传出,经光电隔离器件后进行D/A变换,最后对模拟信号进行功率放大以便控制升温设备和降温设备。电源模块由分压、稳压电路和电池组成,给节点提供稳定的3.3 V电源。晶振电路的本振时钟信号选择内部电路提供,外围电路由晶体振荡器和2个负载电容组成。

2.2 协调器节点的硬件设计

协调器节点由CC2430芯片和外围电路组成,外围电路包括晶振时钟电路、射频输入/输出匹配电路、微控制器接口电路和串口电路4个部分。协调器节点的大部分硬件电路与温度监控终端节点相同,主要不同体现在串口电路。串口电路通过SP3223E完成电平转换和数据收发[10],SP3223E的R1OUT,T1IN引脚分别接CC2430的P0_2,P0_3引脚。串口提供了一个标准的9针串行接口,如图3所示。

图3 串口电路

3 系统的软件设计

系统的软件实现是以ZigBee协议栈为基础,通过调用相关函数来编写应用程序。主要包括ZigBee协调器的建立网络与其他节点的加入网络、其他节点与协调器的通信、温度监控终端对温度的读取及控制信号的产生和上位机软件的设计。

3.1 协调器节点的软件设计

在一个ZigBee网络中, 只有协调器可以建立网络, 协调器承担网络管理和数据收发的功能。协调器在完成系统初始化、网络建立以及加入管理以后,通过串口读取上位机发来的各温度监控终端的期望温度值,将这些期望温度值转发给各温度监控终端,转发成功后进入接收状态,接收来自各温度监控终端的实测温度值,并将数据通过串口转发到上位机上,程序流程图如图4所示。

3.2 温度监控终端的软件设计

温度监控终端在上电以后,进行节点初始化。在成功加入已有网络后,接收来自协调器的本终端的期望温度值,并保存该期望温度值。然后初始化DS18B20,读取实测温度值,并将实测温度值发送给协调器。根据期望温度值与实测温度值的偏差产生控制信号,为了降低能耗,温度监控终端的CC2430进入低功耗状态,当定时时间到以后,进入下一轮循环。温度监控终端程序流程图如图5所示。由于每个节点事先分配了一个惟一的地址,当节点接收到一个数据包时, 先取出该数据包包头的地址与自己的地址比较, 如果一致则接收, 否则就丢弃。

图4 协调器节点程序流程图

3.3 上位机软件设计

本系统采用Java语言和Access运用面向对象思想开发上位机程序。上位机程序主要实现监控和数据处理两大功能。包含3个温度监控终端的监控部分的运行界面如图6所示,主要用来与用户实现交互式操作,设置串口,显示实测温度值,设置和显示期望温度值、上限报警值和下限报警值。按下“保存温度数据”按钮开始保存温度数据。按下“停止保存温度数据”按钮停止保存温度数据。按下“数据处理”按钮弹出“数据处理”窗体。可以查看历史数据、报表和温度统计数据。

由于Java SE本身并不提供对串口操作的类,所以必须下载javax.comm包,并配置编程环境[11]。SerialPort对象调用setSerialPortParams()方法设置串口属性后,再调用getOutputStream()方法获得输出流对象,输出流对象调用write(byte b[])方法将数组b中的内容写入输出流。同理,SerialPort的对象调用getInputStream()方法获得输入流对象,输入流对象调用read()方法接收串口数据。

图5 温度监控终端程序流程图

图6 上位机程序运行界面

4 系统测试

为了保证温度监控系统正常可靠的工作,必须对系统进行测试,测试系统由1台上位机、1个协调器节点、2个路由器节点、3个温度监控终端节点和升温降温设备组成。协调器节点、路由器节点和温度监控终端节点组成树状网络。测试结果表明:系统数据传输准确、可靠,功耗小, 成本低,能使实测温度值逼近期望温度值,符合系统设计要求。

5 结 语

本文提出了一种基于ZigBee的多点温度监控系统的解决方案,完成了以CC2430芯片为核心的传感器节点的软硬件设计。测试结果表明:基于ZigBee的多点温度监控系统, 具有可靠性高、功耗小和成本低等特点, 能够满足多点温度监控系统的需要。ZigBee方案组网灵活、传输可靠、成本低廉,可以很好地解决有线通信方式布线麻烦、线路容易老化和网络扩展性差等问题。本系统稍加修改还可实现对湿度,压强、光照度等参数的监控。

参考文献

[1] 李强,田国栋.基于DS18B20的室内智能温度控制系统设计[J].电子设计工程,2012,20(3):34?36.

[2] 曹莉,曾黄麟,乐英高.基于ZigBee 和MSP430 无线温度控制系统设计[J].四川理工学院学报:自然科学版,2012,25(1):52?55.

[3] 陈国绍,丁莉,王中生.基于ZigBee的大棚环境监测系统设计[J].物联网技术,2013,3(10):16?18.

[4] 白晓亮,宗晓萍,孙雪.基于ZigBee的无线灯光调节器的设计[J].现代电子技术,2013,36(4):13?15.

[5] 刘一婷,杨恒,张正炳.基于ZigBee的仓库监控系统设计[J].物联网技术,2013,3(4):33?35.

[6] 李明亮,蒙洋,康辉英.例说ZigBee[M].北京:北京航空航天大学出版社,2013.

[7] 陈晓燕,庞涛.基于ZigBee网络的温室节水灌溉系统设计[J].传感器与微系统,2013,32(5):82?85.

[8] 李萍.基于DS18B20的多路温度监测系统设计与仿真[J].现代电子技术,2013,36(10):122?124.

[9] 吕建波.基于单总线数字温度传感器DSl8B20的测温系统设计[J].现代电子技术,2012,35(19):117?119.

[10] 余谦.基于ZigBee与51内核的射频无线传感器网络节点硬件设计[J].物联网技术,2013,3(7):11?12.

[11] 邱占芝,于晓龙.基于Java的汽车衡称重管理系统关键技术[J].大连交通大学学报,2011,32(4):75?78.

2.1 温度监控终端的硬件设计

本设计采用CC2430和DSl8B20作为主要芯片实现温度监控终端,其硬件结构如图2所示。

图2 温度监控终端的硬件结构

DSl8B20是Dallas公司推出的1?Wire式单总线智能数字温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度[8]。DSl8B20只有三线接口, 分别为地线、数据线、电源线[9]。CC2430的P1_3引脚与DS18B20的数据线引脚相连接,通过该连接可完成CC2430与DS18B20的双向通信。

控制信号从P0口传出,经光电隔离器件后进行D/A变换,最后对模拟信号进行功率放大以便控制升温设备和降温设备。电源模块由分压、稳压电路和电池组成,给节点提供稳定的3.3 V电源。晶振电路的本振时钟信号选择内部电路提供,外围电路由晶体振荡器和2个负载电容组成。

2.2 协调器节点的硬件设计

协调器节点由CC2430芯片和外围电路组成,外围电路包括晶振时钟电路、射频输入/输出匹配电路、微控制器接口电路和串口电路4个部分。协调器节点的大部分硬件电路与温度监控终端节点相同,主要不同体现在串口电路。串口电路通过SP3223E完成电平转换和数据收发[10],SP3223E的R1OUT,T1IN引脚分别接CC2430的P0_2,P0_3引脚。串口提供了一个标准的9针串行接口,如图3所示。

图3 串口电路

3 系统的软件设计

系统的软件实现是以ZigBee协议栈为基础,通过调用相关函数来编写应用程序。主要包括ZigBee协调器的建立网络与其他节点的加入网络、其他节点与协调器的通信、温度监控终端对温度的读取及控制信号的产生和上位机软件的设计。

3.1 协调器节点的软件设计

在一个ZigBee网络中, 只有协调器可以建立网络, 协调器承担网络管理和数据收发的功能。协调器在完成系统初始化、网络建立以及加入管理以后,通过串口读取上位机发来的各温度监控终端的期望温度值,将这些期望温度值转发给各温度监控终端,转发成功后进入接收状态,接收来自各温度监控终端的实测温度值,并将数据通过串口转发到上位机上,程序流程图如图4所示。

3.2 温度监控终端的软件设计

温度监控终端在上电以后,进行节点初始化。在成功加入已有网络后,接收来自协调器的本终端的期望温度值,并保存该期望温度值。然后初始化DS18B20,读取实测温度值,并将实测温度值发送给协调器。根据期望温度值与实测温度值的偏差产生控制信号,为了降低能耗,温度监控终端的CC2430进入低功耗状态,当定时时间到以后,进入下一轮循环。温度监控终端程序流程图如图5所示。由于每个节点事先分配了一个惟一的地址,当节点接收到一个数据包时, 先取出该数据包包头的地址与自己的地址比较, 如果一致则接收, 否则就丢弃。

图4 协调器节点程序流程图

3.3 上位机软件设计

本系统采用Java语言和Access运用面向对象思想开发上位机程序。上位机程序主要实现监控和数据处理两大功能。包含3个温度监控终端的监控部分的运行界面如图6所示,主要用来与用户实现交互式操作,设置串口,显示实测温度值,设置和显示期望温度值、上限报警值和下限报警值。按下“保存温度数据”按钮开始保存温度数据。按下“停止保存温度数据”按钮停止保存温度数据。按下“数据处理”按钮弹出“数据处理”窗体。可以查看历史数据、报表和温度统计数据。

由于Java SE本身并不提供对串口操作的类,所以必须下载javax.comm包,并配置编程环境[11]。SerialPort对象调用setSerialPortParams()方法设置串口属性后,再调用getOutputStream()方法获得输出流对象,输出流对象调用write(byte b[])方法将数组b中的内容写入输出流。同理,SerialPort的对象调用getInputStream()方法获得输入流对象,输入流对象调用read()方法接收串口数据。

图5 温度监控终端程序流程图

图6 上位机程序运行界面

4 系统测试

为了保证温度监控系统正常可靠的工作,必须对系统进行测试,测试系统由1台上位机、1个协调器节点、2个路由器节点、3个温度监控终端节点和升温降温设备组成。协调器节点、路由器节点和温度监控终端节点组成树状网络。测试结果表明:系统数据传输准确、可靠,功耗小, 成本低,能使实测温度值逼近期望温度值,符合系统设计要求。

5 结 语

本文提出了一种基于ZigBee的多点温度监控系统的解决方案,完成了以CC2430芯片为核心的传感器节点的软硬件设计。测试结果表明:基于ZigBee的多点温度监控系统, 具有可靠性高、功耗小和成本低等特点, 能够满足多点温度监控系统的需要。ZigBee方案组网灵活、传输可靠、成本低廉,可以很好地解决有线通信方式布线麻烦、线路容易老化和网络扩展性差等问题。本系统稍加修改还可实现对湿度,压强、光照度等参数的监控。

参考文献

[1] 李强,田国栋.基于DS18B20的室内智能温度控制系统设计[J].电子设计工程,2012,20(3):34?36.

[2] 曹莉,曾黄麟,乐英高.基于ZigBee 和MSP430 无线温度控制系统设计[J].四川理工学院学报:自然科学版,2012,25(1):52?55.

[3] 陈国绍,丁莉,王中生.基于ZigBee的大棚环境监测系统设计[J].物联网技术,2013,3(10):16?18.

[4] 白晓亮,宗晓萍,孙雪.基于ZigBee的无线灯光调节器的设计[J].现代电子技术,2013,36(4):13?15.

[5] 刘一婷,杨恒,张正炳.基于ZigBee的仓库监控系统设计[J].物联网技术,2013,3(4):33?35.

[6] 李明亮,蒙洋,康辉英.例说ZigBee[M].北京:北京航空航天大学出版社,2013.

[7] 陈晓燕,庞涛.基于ZigBee网络的温室节水灌溉系统设计[J].传感器与微系统,2013,32(5):82?85.

[8] 李萍.基于DS18B20的多路温度监测系统设计与仿真[J].现代电子技术,2013,36(10):122?124.

[9] 吕建波.基于单总线数字温度传感器DSl8B20的测温系统设计[J].现代电子技术,2012,35(19):117?119.

[10] 余谦.基于ZigBee与51内核的射频无线传感器网络节点硬件设计[J].物联网技术,2013,3(7):11?12.

[11] 邱占芝,于晓龙.基于Java的汽车衡称重管理系统关键技术[J].大连交通大学学报,2011,32(4):75?78.