无线传感器节点数据采集及分布式远程控制
2020-07-25顾逸枫张正华
顾逸枫,张正华*,沈 逸,苏 权
(1.扬州大学 信息工程学院,江苏 扬州 225000;2.扬州苏水科技有限公司,江苏 扬州 225000;3.扬州国脉通信发展有限责任公司,江苏 扬州 225000)
0 引言
随着无线传感器网络技术的不断发展,人们获取信息和处理信息的方式日新月异,人类世界、物理世界和计算机世界之间的联系不断加强[1],其在军事、民用、医疗和环境监测等领域发挥了极其重要的作用[2]。无线传感器网络建立在大量传感器节点基础上,并通过对不同传感器技术和功能方面的完善来逐渐组成一个自由、灵动的网络组织结构[3]。节点通过对区域环境的智能感知,采集相应信息,利用传输协议将数据信息输送至接收端[4],数据会通过数据接收器路由到中央服务器以进行处理、存储、可视化和解释[5],此过程需要考虑无线传感器节点的稳定性、能耗和体积等多个方面。目前的无线传感器网络主要有ZigBee网络、WiFi网络等,ZigBee技术主要适用于短距离传输,凭借其功耗低、成本低、时延短、可靠性高、安全性高和网络容量大等特点[6],在各个领域内都得到广泛的应用。
远程控制技术以计算机通信技术为基础,二者通过信息反馈和数据处理,然后充分利用远程控制软件进入到服务终端,从而达到利用互联网进行远程控制的目的[7]。此技术具有不受时间空间约束的优点,对解放大量人力物力,最大化资源利用率起到重要作用。鉴于以上优点,各高校也纷纷建立远程实验平台,其硬件体系结构可以非常灵活,并且可以使用许多不同的形式及其应用[8],远程技术的运用将越来越广泛。
得益于无线传感器网络技术和远程控制技术的发展,物联网理论及应用水平不断提高[9]。实施“互联网+农业”“互联网+水利”“互联网+交通”等工程,对于探索物联网理论研究、系统集成、重点领域、发展模式及推进路径,促进生产方式转变有重要意义[10]。本文构建了一种基于ZigBee的无线传感器节点数据采集及分布式远程控制系统,系统以远程采集土壤氮磷钾含量数据为例说明运行过程,该系统由网页客户端、服务器端、主机端和无线传感器节点端构成,用户远程控制节点采集相应数据,通过主机端上传数据至服务器端,网页客户端可观察服务器端回传的数据。
1 系统总体设计
系统主要由网页客户端、服务器端、主机端和无线传感器节点端构成。无线传感器节点端包括发送节点和协调器节点。系统总体设计如图1所示。
图1 统体系结构Fig.1 System architecture diagram
以远程采集土壤氮磷钾含量数据为例说明系统运行过程。用户在网页客户端编写代码并提交,网页客户端通过socket通信将代码发送到服务器,主机端通过MQTT协议订阅该代码,服务器将代码转发到主机端,主机将代码编译下载到实验箱中,若代码编译失败,主机会通过服务器将错误说明返回到网页客户端,若编译通过,CC2530无线传感器发送节点通过ZigBee无线传输技术将采集到的数据信息发送给协调器节点,协调器节点通过串口线将数据信息输送至主机,服务器端通过MQTT协议订阅该数据信息,并将接收到的数据信息存进数据库,当网页请求数据时,服务器从数据库取出数据发送给网页客户端,网页端实时显示该数据。
2 系统硬件设计
2.1 ZigBee无线模块
ZigBee技术是一种新型的短距离无线通信技术,拥有自组织性、动态拓扑、低功耗和传输稳定等特点[11],相比于蓝牙等无线通信技术有不可比拟的优势。ZigBee技术凭借这些先天性优势,逐渐成为物联网行业的主流技术,在工业、农业和智能家居等领域得到大规模应用[12]。在ZigBee技术应用下,技术人员在电子设备上设置多个节点,将其安装至设备当中,使用计算机等信息技术,构建成一个完整的无线传感器网络系统[13],在该系统的支持下,能够更好地达到信息间传递的目的[14]。
本系统运用以CC2530为微控制器的ZigBee无线传感网络,CC2530发送节点用于接收信号源信息并对其进行数据格式处理,然后将数据通过点对点无线传输至CC2530协调器节点;CC2530协调器节点用于汇总接收到的各参数数据,然后通过无线节点调试接口板传输至主机端。具体连接方式如下:CC2530发送节点、协调器节点通过调试接口板、CC2530仿真器与主机相连,将程序编译下载进相关节点,CC2530协调器节点通过232转USB串口线将接收到的氮磷钾数据发送给主机,通过串口显示。
2.2 传感器模块
本系统硬件具有扩展性,可增加传感器种类以测量更多的参数数据。系统选用485型土壤氮磷钾三合一传感器来检测土壤中氮磷钾的含量,选定合适的测量地点,避开石块,确保钢针不会碰到坚硬的物体,按照所需测量深度抛开表层土,保持下面土壤原有的松紧程度,紧握传感器垂直插入土壤。485型土壤氮磷钾三合一传感器共有4根接线,棕色线为电源正(12~24 V DC),黑色线为电源负,黄色线为485-A,蓝色线为485-B,其中正负电源线外接12 V电源,负电源线、485-A、485-B与485转TTL模块一端相连,485转TTL模块另一端与CC2530发送节点的UART_TX,UART_RX,VDD,GND相连,这一部分用于CC2530发送节点发送问询并获取氮磷钾三合一传感器采集的数据。
ZigBee可采用星状、片状和网状网络结构,容量大[15],本系统中可增加传感器种类,测得的数据均发送给CC2530协调器节点进行汇总,最后均通过无线节点调试接口板传输至主机端。
硬件具体连接方式如图2所示。
图2 硬件连接Fig.2 Hardware connection diagram
3 系统软件设计
3.1 无线传感器节点端
无线传感器节点端包括发送节点和协调器节点,程序主要实现无线传感器数据采集功能,具体内容包括各类功能函数的定义及初始化、氮磷钾数据的接收与发送、进制转换和收发数据格式规定等。
CC2530发送节点板工作流程如图3所示,首先配置好各参数的初始化值,按照规定数据帧格式发送问询码0x01 0x03 0x00 0x1e 0x00 0x03 0x65 0xcd,传感器返回氮磷钾数据,若成功返回,D7 LED灯闪烁。
图3 发送节点流程Fig.3 Sending node flowchar
CC2530协调器节点板工作流程图如图4所示,协调器节点与发送节点通过ZigBee组成点对点无线传输网络,当发送节点数据准备好后,协调器节点开始接收数据,若成功接收,协调器节点将该数据通过串口发送给PC机。
图4 协调器节点流程Fig.4 Coordinator node flowchart
3.2 主机端
主机端负责实现如下功能:① 接收采集数据并发布数据;② 订阅并下载学生代码,编译并下载代码,发布编译情况信息。
主机端包括串口监听程序、bat文件批量处理程序、MQTT订阅和发布程序。串口监听程序,用于通过串口监听显示主机端接收到的信息采集模块采集的氮磷钾数据;bat文件批量处理程序,用于下载服务器端的代码以及用命令行实现IAR文件的编译、下载和执行;MQTT订阅和发布程序,用于主机端订阅服务器代码以及发布氮磷钾数据。主机端工作流程图如图5所示。
图5 主机端工作流程Fig.5 Host-side work flowchart
3.3 服务器端
服务器端负责实现如下功能:① 建立与客户端的Web Socket连接(多进程实现多个客户端同时访问同一服务器);② 保存网页上传的代码为具体文本,并发布代码,订阅学生代码的编译情况信息;③ 收到正确网页请求后,发送学生代码的编译情况信息和相应数据到网页端;④ 数据库订阅采集数据并存入数据表。
云端服务器包括MQTT服务器、SQL Server数据库和Web Socket通信。MQTT服务器,其中WAMP Server用于快速安装配置Web服务器,MQTT服务用于实现消息的订阅和发布,HTTP服务用于主机端从服务器下载代码;SQL Server数据库,用于存储数据,也可查看历史数据;Web Socket通信,用于客户端和服务器之间的数据交换,进行双向数据传输。服务器端工作流程图如图6所示。
图6 服务器端工作流程Fig.6 Server-side work flowchart
3.4 网页客户端
服务器端负责实现如下功能:① 用户编写、提交无线节点端所需代码;② 实时显示采集到的信号源信息。
用户在网页端点击选择文件按钮后,选择485.c代码文件,随后点击上传按钮,通过构建multipart formdata的HTTP请求,借助FormData对象,实现文件上传至云端。若代码编译失败,主机会通过服务器将错误说明返回到网页端,若编译通过,485型土壤氮磷钾三合一变送器通过串口将氮磷钾数据发送给主机,主机将接收到的数据存入数据库。网页端调用Highcharts图表库,通过ajax技术实时访问数据库数据,从而以图表的方式显示实时更新的数据。
4 实验结果与分析
为测试系统的实用性与稳定性,进行了多次试验。
串口接收节点采集数据界面如图7所示。串口显示界面中,第1位为标志“*”,第2位为主机号,后6位为氮磷钾数据,数据显示为16进制,即0C1C为氮数据,0021为磷数据,0075为钾数据。
图7 串口显示界面Fig.7 Serial display interface
数据库界面如图8所示。数据库界面利用查询功能,将主机号、当前时间以及氮磷钾数据逐一显示。
图8 数据库查询界面Fig.8 Database query interface
网页客户端数据实时显示界面如图9所示。
图9 网页端显示界面Fig.9 Web-side display interface
试验结果表明,系统能够实现用户远程控制基于ZigBee技术的无线传感器节点进行数据采集的功能,并实时监测数据库中保存的数据信息。对比基于传统51单片机,HTTP,MQ,CoAP等协议的数据采集方案,系统具有以下优势:采用基于CC2530的无线传感器节点,节点可靠性高,具备良好的扩展性,抗干扰性强[16],功耗低,应用范围广;服务器基于MQTT协议,使用发布/订阅消息模式[17],提供一对多的消息发布,解除应用程序耦合,使用TCP/IP提供网络连接,小型传输,开销很小[18];系统将采集的数据上传至云端数据库,即可对历史数据进行查看与比较,便于实验人员对信号源进行实时监控与管理。
5 结束语
结合试验数据可以看出,系统利用ZigBee技术、MQTT协议、Web Socket通信协议和SQL Server数据库等实现了用户远程控制无线传感器节点进行数据采集并保存进数据库的功能,这有利于农业墒情、工业控制等各领域数据的远程采集,并且可对历史数据进行查看与比较,不受时间空间的限制。该系统还可应用于学校远程实验平台等范围,具有一定应用前景。但系统能够测量的数据种类不够丰富,今后将进行完善,尝试学习ZigBee协议栈内容,优化整个系统。