基于ZigBee与安卓的智能远程监控系统的设计
2015-06-22冯陈伟袁江南
冯陈伟,张 璘,袁江南
(厦门理工学院 光电与通信工程学院 通信工程系,福建 厦门 361024)
基于ZigBee与安卓的智能远程监控系统的设计
冯陈伟,张 璘,袁江南
(厦门理工学院 光电与通信工程学院 通信工程系,福建 厦门 361024)
随着中国经济与社会的快速发展,环境监测引起人们的广泛关注。为了解决目前监控系统的不足,设计一种基于ZigBee和因特网的智能远程监控系统。该系统采用TI公司的CC2530芯片及相应传感器构建ZigBee局域网,将采集到的温湿度信息,经过上位机存储并处理,利用因特网或无线移动网络,在安卓智能手机终端上实现数据的远程传输。通过上位机与手机终端,可以查看当前环境状态,保存历史数据,并进行自动报警。给出系统硬件及软件实现方法,包括节点设计、组网流程、数据传输功能、上位机软件设计、安卓智能手机终端软件设计等。实验测试结果说明该系统工作稳定、容易扩展、上位机及手机操作简便。
ZigBee技术;安卓;远程监控;CC2530芯片
随着我国经济的快速发展,环境监控问题越来越值得重视。传统的监控以有线传输方式为主,但随着通信技术的发展,越来越多的人将智能监控信息通过网络传送到监控区域之外的远程终端上[1]。因此,本文采用ZigBee和因特网技术以及上位机与安卓智能手机终端软件实现了智能远程监控。该系统利用ZigBee技术构建了区域无线传感器网络(WSN)网络,完成对环境温湿度信息的收集,通过上位机将现场监控数据传送至远程手机终端完成实时监控。测试结果表明该系统成本低、功耗小、容易扩展、工作稳定,可以广泛应用于各类监控场景。
1 系统方案
基于ZigBee技术的智能远程监控系统由ZigBee协调器和ZigBee 终端节点、上位机、智能手机终端等构成[2],系统方案设计如图1所示。连接温湿度传感器的ZigBee终端节点周期性收集环境数据,ZigBee协调器和终端节点建立ZigBee网络,协调器节点汇聚各节点的数据后,经RS-232转USB接口传送到上位机进行处理。上位机在接收到协调器传输过来的数据后,不仅能在上位机界面实时显示,还可以通过因特网与智能手机进行网络连接。借助基于Java的安卓手机客户端程序,用户可以进行温湿度信息查看、查询及限值报警等功能。当监控人员因为需要离开监控岗位时,就可以通过智能手机终端来远程监控。
图1 系统方案设计图
2 系统硬件设计
ZigBee是一种物理层和MAC层基于IEEE802.15.4的短距离无线通信技术。ZigBee具有很强的网络健壮性和系统可靠性,广泛应用于智能监控、无线传感器网络、家居智能化等领域[3]。网络中的ZigBee节点主要包括协调器和终端节点,协调器和终端节点的硬件结构相同,不同的功能是由软件进行控制[4]。下面对系统方案设计中的主要硬件设备进行设计。
2.1 协调器硬件设计
ZigBee协调器主要负责建立网络并将其他节点加入网络,同时汇聚接收数据等功能。本系统中ZigBee节点使用TI公司的CC2530模块,该模块内部集成了射频(RF)前端、8051内核、A/D等功能,因此以CC2530为核心的硬件电路只需少量外围元器件配合就能实现收发功能[5]。本系统协调器的硬件结构框图如图2所示,它由稳压电路模块、USB转串口电路、接收数据的天线组成。
图2 协调器的硬件结构框图
USB转串口驱动电路是为了提高本系统的实用性与便捷性,使用目前计算机普遍配备的USB接口与计算机进行通信,将原本需要使用串口的通信转换成USB接口。USB转串口驱动电路如图3所示,将CC2530的TX和RX分别与PL2303芯片的RXD和TXD相连接,并加以扩展相应的外设电路即可。完成硬件的设计之后,在上位机上安装USB转串口驱动,就能把USB接口当串口正常使用。
图3 USB转串口驱动电路
2.2 终端节点设计
终端节点包括处理器模块、传感器模块、无线通信模块以及电源模块。CC2530芯片集成了处理器模块和无线通信模块,从而简化了外部电路设计,因此终端节点的设计主要就是传感器模块的设计[6]。
本系统采用DHT11温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器,采用单线制串行接口,1个I/O接口就可以同时对温湿度进行测量[7]。温湿度检测电路图如图4所示,注意接线时将空脚NC悬空。
图4 温湿度检测电路图
2.3 电源模块
电源模块主要为协调器和终端节点供电。协调器和终端节点均为直流供电,电压适用范围在2~3.6 V。在实际系统中,终端节点可以采用2节AA电池供电,协调器工作频率高,能量消耗大,因此协调器可采用锂电池供电,通过低压差稳压芯片AMS117-3.3 V为CC2530提供直流3.3 V工作电压。
3 系统软件设计
3.1 协调器软件设计
ZigBee节点软件在IAR开发环境下使用C语言进行编译和调试。硬件模块上电后程序进行相应的初始化,协调器选择一个适当的信道创建网络,其他终端节点通过主动扫描发现并加入已创建的网络。组网成功后,协调器便可接收来自ZigBee网络内各终端节点所发送的数据,并将数据传输至上位机。协调器组网的功能流程如图5所示。
图5 协调器功能流程
3.2 终端节点软件设计
终端节点上电后程序进行相应的初始化,通过主动扫描发现并加入对应网络,在启动定时器后进入待机状态,等待定时到进入工作模式,这样做主要为了减少节点能量消耗[8]。终端节点功能流程如图6所示。
图6 终端节点功能流程
3.3 上位机软件设计
ZigBee协调器对温湿度信息进行接收后通过串口发送至上位机,即服务器。在服务器,使用基于Java中RXTX的串口类库采集并处理温湿度数据,将其存储在MySQL数据库中,并按照自定义的数据帧格式解析后进行实时显示,包括节点编号、温湿度、接收时间等信息,并可以通过查询等功能观测环境变化情况。最后利用socket协议与安卓手机终端进行通信,传输所需的温湿度信息。具体分为构建串口通信协议、上位机数据处理、socket网络通信设计3部分。
3.3.1 串口通信协议
在上述ZigBee终端节点中,传感器DHT11的DATA引脚输出40位二进制数据,基本格式为:湿度高8位,湿度低8位,温度高8位,温度低8位,校验位8位。
通过串口传输至上位机的数据,利用RXTX类库中包含的语句获取串口信息,只需要设定好串口号、波特率、数据位、停止位以及奇偶校验就可以通过串口接收到ZigBee协调器发来的信息。具体实现方法下:
public static final String PARAMS_PORT = “port name”; // 端口名称
public static final String PARAMS_DATABITS = “data bits”; // 数据位
public static final String PARAMS_STOPBITS = “stop bits”; // 停止位
public static final String PARAMS_PARITY = “parity”; // 奇偶校验
public static final String PARAMS_RATE = “rate”; // 波特率
public static final String dataBit = “”+SerialPort.DATAVITS_8; // 数据位
public static final String stopBit = “”+SerialPort.STOPBITS_1; // 停止位
public static final int parityInt = SerialPort.PARITY_NONE; // 无奇偶校验
public static final String port = “COM3”; // 端口名称
public static final String rate = 115200; // 波特率
3.3.2 上位机数据处理
出于对实时性要求和用户体验度的考虑,本系统采用C/S(客户端/服务器)的连接方式,上位机也因此作为服务器使用。服务器通过串口程序读取ZigBee协调器发送的温湿度信息并将其存放到MySQL数据库。在数据库中,用户可以自由地对数据进行管理操作,例如对需要的数据进行查询,对错误的数据删除,还有根据查看要求对数据进行排序等。数据库还将存储用户的登录信息以便于实现对客户端进行服务器登录时的验证,个人信息的查询等功能。
本系统服务器所使用的表单较为简单,包括用户注册信息表与温湿度信息记录表。用户注册信息表对象名有Username,Userpwd,Name,Sex,Age,Phone,分别用于表示用户名、密码、姓名、性别、年龄、电话号码;温湿度信息记录表对象名有ID,Node,Temperature,Humidity,Time,分别用于表示序号、节点、温度、湿度、接收时间。
为了在服务器能够方便地查看数据,本系统还设计了一个可视化程序用于数据查看、报警及检索等功能,如图7所示。
图7 服务器数据查看(截图)
3.3.3 socket通信设计
服务器的另一个作用就是与手机客户端进行交互通信,如发送所查询的信息、保存注册信息以及验证登录信息等。服务器与手机客户端进行数据通信时采用的是基于TCP/IP的socket协议。
首先,服务器需要将所有的端口与数据库初始化,即所有端口数据置零,打开串口,确认串口数据通断,尝试连接数据库,创建套接字并侦听端口。接着确认通断,判断是否连接等。在加载完成并成功建立通信以后,服务器就开始处理客户端的各种请求。客户端在与服务器的交互中主要涉及:登录信息的判断、注册信息的保存、报警信息的推送以及根据时间、节点查询温湿度信息所做出的回应。服务器程序流程图如图8所示。
图8 服务器程序流程图
3.4 安卓手机客户端软件设计
安卓智能手机客户端应用程序是以Java作为编程语言,通过Eclipse来创建和开发的,使用Java开发包JDK以及安卓ADT进行软件开发和调试。客户端软件设计分为与服务器的网络通信以及用户界面设计,详细的手机客户端程序流程图如图9所示。
图9 手机客户端程序流程图
与服务器的网络通信过程主要包括系统初始化、创建socket连接、向服务器发送连接请求、接收数据和发送控制命令、退出程序等。在客户端的连接模块中,其原理与思路与服务器类似,只需把收发关系颠倒即可。
用户界面设计包括用户访问界面与用户主界面。其中用户访问界面用于用户注册与登录,用户主界面用于数据的查询、显示、报警等功能。
3.4.1 访问界面设计
访问界面设计包括注册/登录界面、登录提示及跳转到主界面等功能。首先客户端向服务器发送socket请求,接着判断服务器与客户端是否连接成功,如果连接成功则进行用户验证并跳转至主界面,否则提示错误。
在访问界面中,用户需要输入服务器的IP及端口号,而不是采用默认的套接字,这样做是为以后可能连接至其他服务器而预留设置。访问界面登录成功的状态如图10所示。
图10 登录成功状态(截图)
3.4.2 用户主界面设计
当用户登录成功后程序跳转至用户主界面,如图11所示。主界面上方显示“当前温度”、“当前湿度”以及“温度阀值”,其中“温度阀值”可以根据需要手动设置,“当前温度”和“当前湿度”则实时显示当前的温湿度信息。主界面下方为“历史报警”、“监控记录”、“温度查询”和“个人信息”4个按钮,选择后分别跳转至相应功能页面。
图11 用户主界面(截图)
如果用户需要实时温度预警功能,只需要设置好温度阈值,然后进入“历史报警”页面,客户端就通过该温度阈值向服务器发送请求,服务器将数据库中保存的温度进行判断,当温度超过该阈值时,服务器返回数据在手机客户端显示,并且手机客户端通过震动作为警报提醒用户。若数据均在阈值以下,则服务器返回控值,并在手机客户端显示“暂无数据”。
进入“监控记录”界面可以显示近期的温湿度数据,并能够手动刷新获取最新采集的信息,如图12所示。在“温度查询”界面可以通过输入节点号、起始时间和终止时间来检索需要的温湿度信息。“个人信息”界面可供用户查看注册时的个人信息,但不能作任何的修改。
图12 监控记录界面(截图)
4 实验
为测试系统的数据传输能力以及稳定性,通过传输一个8字符长度的数据进行性能的检测。由于系统中因特网的传输性能取决于运营商,因此测试主要以协调器与终端节点之间的传输条件为前提进行实验。通过多次测试得出相关数据,如表1所示。
表1 测试结果
遮挡物厚度/cm传输距离D/m数据传输情况数据更新速度无D<12无字符缺失正常无12
通过一般室内环境进行测试,分析数据后可以发现,在近距离范围内(12 m),数据没有丢包,但是在20 m以上出现了较大的数据丢包情况;当存在门或墙等遮挡物时,在3 m范围以内均可以正常通信。因此,在一般的家居环境下,将协调器放置于终端节点之间的适当位置,可以实现无线采集环境信息的功能,能够满足一般家居环境的监控需求,满足工程设计要求,同时可以通过因特网将数据传输到远程手机终端查看,实现了完整的智能远程监控系统。
5 小结
本文设计了基于ZigBee与因特网技术的智能远程监控系统。该系统利用ZigBee的无线特性进行环境信息的采集,将数据通过传输至上位机进行显示与存储,并通过因特网将数据信息传输至安卓手机客户端,实现数据的远程监控,所设计的手机客户端程序界面友好、功能完善。测试结果表明,该系统稳定可靠、成本低、能耗低、易于扩展性,可以广泛应用于各类监控场景。
[1] 南忠良,孙国新.基于ZigBee技术的智能家居系统设计[J].电子设计工程,2010,18(7):117-119.
[2] 王志伟,钱承山,李俊,等.基于无线传感网络的智能移动监控系统设计[J].电子器件,2013,36(6):876-880.
[3] 张立立,徐勇,孙开宇.基于ZigBee技术的无线数据采集系统的研制[J].实验技术与管理,2012,29(5):139-142.
[4] 钟永锋,刘永俊.ZigBee无线传感器网络[M].北京:北京邮电大学出版社,2011.
[5] 龚文超,吴猛猛,刘双双.基于CC2530的无线监控系统设计与实现[J].电子测量技术,2012,35(6):33-36.
[6] 纪志仁,冯陈伟,陈丽莲.基于ZigBee的智能监控系统的设计[J].中国新通信,2013,15(14):70-71.
[7] 周建民,尹洪妍,徐冬冬.基于ZigBee技术的温室环境监测系统[J].仪表技术与传感器,2011(9):50-52.
[8] 童英华.基于Z-Stack的无线温湿度采集系统[J].现代电子技术,2013,35(23):115-117.
Design of Intelligent Remote Monitoring System Based on ZigBee and Android
FENG Chenwei, ZHANG Lin,YUAN Jiangnan
(Department of Communication Engineering,School of Opto-electronic and Communication Engineering,Xiamen University of Technology,Fujian Xiamen 361024,China)
With the rapid development of China's economy and society,the environment monitoring is paid wide attention to the masses. To settle the current lack of monitoring system, a smart remote monitoring system based on ZigBee and Internet is designed. CC2530 chip produced by TI and corresponding sensors are used to build the ZigBee area network, then the data collected such as temperature, humidity is sent to PC, saved and handled, remotely through Internet network, monitored by Android phone finally. The current state of the environment can be viewed by PC and phone then be preserved; meanwhile automatic alarm also can be achieved. The principle of the system hardware and the implementation methods of the software are introduced,including the node designing,networking forming process, data transmission capabilities, PC software design, Android smart phone software design. The actual test results show that the system is reliable and easy to expand with friendly software interface.
ZigBee technology;Android;remote monitoring;CC2530 chip
福建省中青年教师教育科研项目A类(JA14233);国家自然科学基金项目(61202013);福建省自然科学基金项目(2015J01670)
TP391
A
10.16280/j.videoe.2015.20.010
冯陈伟(1981— ),博士生,讲师,研究方向为无线传感网络技术;
2015-02-26
【本文献信息】冯陈伟,张璘,袁江南.基于ZigBee与安卓的智能远程监控系统的设计[J].电视技术,2015,39(20).
张 璘(1981— ),女,硕士,讲师,研究方向为无线通信技术。
责任编辑:时 雯