APP下载

基于OneNET智能云的岩体灾变数据采集节点设备关键技术研究

2018-09-10宋志鹏张健廖家明吴君钦

现代信息科技 2018年2期
关键词:物联网

宋志鹏 张健 廖家明 吴君钦

摘 要:本文针对矿山企业信息化和智能化的应用特点,在OneNET智能云平台的基础上,采用STM32F103和ESP8266芯片,设计了一套矿山岩体灾变数据采集技术方案。在文中详细讨论了该方案分层模型、网络结构、协议接口、数据采集节点软硬件的设计与实现等内容。经实验测试,结果表明采用该技术方案设计的数据采集系统可准确地测量和记录岩体裂变过程,技术方案可行,节点设备运行可靠,具有应用推广价值。

关键词:矿山安全;物联网;WIFI模块;OneNET智能云;激光测距

中图分类号:TN929.5;TP391.44 文献标识码:A 文章编号:2096-4706(2018)02-0001-06

Research on the Key Technology of Rock Mass Disaster Data Acquisition Node Equipment Based on OneNET Intelligent Cloud

SONG Zhipeng,ZHANG Jian,LIAO Jiaming,WU Junqin

(Jiangxi University of Science and Technology School of Information Engineering,Ganzhou 341000,China)

Abstract:For mine enterprise informatization and intelligentize application characteristics,based on OneNET,using STM32F103 and ESP8266 chip designed a set of mine disaster data acquisition scheme.In this paper,we discuss the layered model, network structure,protocol interface,data acquisition node's software and hardware design and implementation.The experimental results show that the data acquisition system designed by this technology can accurately measure and record the process of rock fission,the technical scheme is feasible,the node equipment is reliable,and has the application and popularization value.

Keywords:mine safety;internet of things;WIFI module;OneNET intelligent cloud;laser ranging

0 引 言

在礦山采掘过程中,岩爆等岩体动力灾害属于常发事件,威胁着作业人员和设备的安全,另外盗采活动也经常扰乱矿山正常开采秩序。为了最大限度地降低岩爆、盗采活动给矿山带来的安全隐患,有必要对岩爆等岩体动力灾害孕育及演化过程进行长时间的连续监测[1],并定期进行岩体稳定性给予评价,指导矿山实现安全生产。

在矿山岩体灾变数据采集系统的设计和实施过程中,需要解决分散采集和数据集中存储之间的矛盾。矿山监控节点高度分散在数平方公里甚至数十平方公里的范围内[2]。有线传输方案设计复杂、布线工程大、成本高、维护难,所以难于实施;而基于无线传传输又没有成熟的工业级产品可用,组网开发难度大。所以针对矿山的特殊应用,按常规概念开发的产品系统不能满足其要求。

随着无线物联网技术日趋成熟以及开放智能云平台[3]的出现,低成本高效能的矿山灾变数据采集系统的设计和实现成为可能。本文针对矿业企业的信息化、智能化的应用特点,设计了一套矿山灾变数据采集系统技术方案。设计方案采用中移物联OneNET智能云平台,该平台是一个开放的智能云平台。中国移动已为物联网用户提供了一套完整的智能硬件接入API技术方案,网络层的数据库、应用层的APP客户端都有成熟技术方案,可直接使用案例模板,无需编写软件代码,大幅降低了开发难度的同时,也降低了开发成本,用户可专注于硬件和特殊应用开发。本文先概要介绍OneNET平台的功能模型、网络结构、开发流程、接入协议等,然后重点讨论岩体裂缝距离测量、数据采集节点设备技术方案、节点设备软硬件实现等内容。

1 OneNET智能云平台概述

1.1 OneNET应用系统功能分层模型

如图1所示,OneNET开放智能云平台[3]系统功能分为三层:设备接入层、智能云平台网络层和应用层。每一层所含功能或设备可以根据应用的实际需求增加或减少。

1.2 OneNET应用系统软硬件组成

采用OneNET平台设计的应用系统一般由下列四部分组成:(1)智能云大数据业务服务器与服务软件(A);(2)有线/无线接入网关路由器(B);(3)有线/无线感知节点监测及控制设备(C);(4)大数据应用层APP软件(D)。图2是基于OneNET的应用系统网络拓扑结构图。

应用系统的数据传输流程为:监测节点设备将感知测量的数据经智能云网关路由器,上传至智能云大数据服务平台,然后大数据平台将数据分类记录在数据库中,由应用层软件分析和处理数据库所记录的海量数据,最终输出各类监测预警数据。

1.3 OneNET设备开发流程

在设备开发前,必须在OneNET上进行注册用户、创建产品和设备,添加数据流等必要操作。开发设备基本流程如下:(1)用户注册,在OneNET上注册开发者账号,创建专属的“开发者中心”;(2)创建产品和设备,登录进入“开发者中心”相关页面,选择“设备接入方式”和“设备接入协议”,确认完成产品设备的创建,并为设备添加必要数据流和数据点;(3)注册完成之后,根据平台提供的API协议及要求,设计开发设备的软硬件技术方案;(4)设备开发完成,设备即可接入智能云,启动各类应用服务,上传数据和控制命令等。更详细的开发流程说明参见“OneNET开发者文档中心”,即文献[3]。

1.4 OneNET设备接入有关概念

在描述接入协议和API接口之前,需对设备APIKey、数据流、数据点等几个关键概念作简要说明。

设备APIKey:用户在设备云中创建的一台设备,OneNET后台将为该真实设备分配一个独立的且唯一的ID号,称为“设备ID”,并为访问该台设备资源分配一个“设备APIKey”。

数据流(Datastream):一个数据流可以理解为一类数据,如传感器的温度、位置的经纬度、空气的湿度等。用户可以自定义数据流名称,即数据流ID,一台设备可以添加多个数据流。

数据点(Datapoint):即一个数据流中某一个具体的数据值。数据点采用键值对(“Key-Value”)的方式存储。其中Key的组成包括设备ID、数据流ID和时间等信息,value部分可以为任何数据对象,如整数、字符串或者JSON数据类型。

2 OneNET设备接入协议

2.1 OneNET支持协议类型

OneNET支持符合当前行业应用的多种协议的解析和转换。公开协议包括EDP、MODBUS、MQTT以及HTTP等,还支持定制私有协议。由于各协议都有专门的协议描述文档,本文仅对开发中使用的HTTP等协议做简要描述。

2.2 HTTP接入协议

HTTP协议:HTTP协议是建立在TCP/IP传输控制层协议之上的应用层协议,本文仅对应用层协议做详细描述。应用层之下的TCP/IP协议栈已相当成熟,在嵌入式设备开发中可完全通过软件实现,也可用具备透明传输功能的TCP/IP硬件模块来实现。

如图3所示,使用HTTP协议接入智能云架构模型可简化为客户/服务器(C/S)结构,智能云提供一组服务,即数据存储服务和HTTP访问服务。智能设备和应用终端都是HTTP客户端,传输请求总是由客户端发起,服务器对请求做出响应。

智能设备通过HTTP协议中的GET/POST/PUT等方法上传命令/数据等,从HTTP响应获取下传指令/数据,所有数据库操作必须经由Web服务器作为中介,使用SQL语句进行访问。

OneNET/HTTP接入协议:OneNET支持设备采用HTTP协议接入平台,HTTP协议具有接入鉴权、控制命令下发、告警出发等功能,适合平台与平台、设备与平台间的数据对接。

OneNET/HTTP接入协议就是一组API接口,包括“设备”“数据流”“数据点”和“触发器”等10大类操作API接口。设备/数据流等有关操作API多在设备的注册和后台管理中使用,OneNET平台已开发好相关服务软件,无需编写代码,在本监测节点设备的开发过程中,仅用到数据点的上传API协议,故在2.3节中以示例方式给出新增数据点操作API的用法,更详细的其他API解释见参考文献[3]。

2.3 HTTP/POST数据包格式

OneNET平台的新增数据点(键-值对)上传API接口用于上传数据打包,使用HTTP/POST方法传送数据。HTTP协议POST方法传输报文由URL、包头和正文三部分组成,上传数据点API接口协议是描述如何填写URL、HTTP头、HTTP正文。下面是上传采集数据点API最简示例描述:

HTTP方法:POST

URL示例:

{ api.heclouds.com/devices/device-ID/datapoints?

type=3\r\n }

HTTP包头示例: //api-key:设备注册生成的字符串

{ api-key: 242RprHyALimOZLCKiXeT7IRdLM= \r\n

Content-Type:application/json\r\n }

HTTP内容示例: //上传:温度、湿度键值对

{ "temperature":22.5,"humidity":"95.2%" \r\n }

请求返回示例:

{"errno":0,\r\n"error": "succ"\r\n }

在上传示例中,除带下画线字段外,都由OneNET定义,无需更改,带下画线部分需根据注册及数据信息填入设备ID、api-key等。注意:“{”、“}”是API字段内容描述性分界符,实际传输数据包中不包含这两个符号,“\r\n”是C语言转义字符,代表回车换行等不可见字符,“//”符号后面的文字代表注解。

3 数据采集设备功能需求

3.1 设备功能需求

设计目标:实现矿区安全环境与岩体灾变数据实时监测与记录等功能。主要监测变量包括:危险岩体裂缝距离、温度、湿度、水浸和有害气体等。

主要功能:(1)实时高效地对矿区安全隐患点的多个参量进行监测;(2)对监测数据进行长期连续记录与存储;(3)综合分析岩体灾变数据,给出岩体裂缝距离变化曲线;(4)使可连接节点设备数量大于200。

图4是岩体位移灾变数据采集系统功能框图,其中基本数据的处理与显示子系统有现成模板可参考,通信子系统选用成熟商用设备组网,所以工作重点是数据采集子系统设计。

在节点设备设计过程中,首先需在OneNET云端注册设备,添加数据流,创建和编辑应用界面。因在节点设备的软件设计过程中,涉及设备及数据流注册信息,所以在此仅需对设备注册和数据流内容作出说明。

3.2 设备及数据流注册

在使用OneNET智能云服務前,先注册设备、并为设备添加数据流。一般矿区有几十个甚至几百个监测节点,一个监测点注册一个设备,每个设备下挂多个数据流。本项目在OneNET智能云中注册了2台开发用测试设备,其中一台设备ID为11283817,表1是该设备所挂载的数据流等注册信息。

4 数据采集节点设备设计

本采集系统设计的关键和难点是数据采集子系统设计,即节点设备的软硬件开发。节点设备开发内容包括:硬件结构设计、测距方案选择、网络接口设计和软件代码实现等方面。

4.1 节点设备硬件结构

如图5所示,接入设备的硬件组成包括:STM32F103/LCD等组件构成的MCU部基本系统、I2C接口激光测距模块、UART接口WIFI模块和温湿度等其他传感器模块。

在低成本、低功耗设备的设计中,网络接口设计是关键,本设计采用硬件TCP/IP协议栈,解决了低成本MCU联接网络关键问题。

4.2 岩体裂缝距离测量技术方案

岩体裂缝距离测量技术方案主要包括:(1)基于图像识别的裂缝检测[4];(2)光纤位移传感器测量[5];(3)激光测距法[6]等。前两种技术方案开发的检测设备技术复杂且成本高,难以批量应用,第三种方法技术成熟可靠,成本低廉,并且安装简便,可大批量应用。

VL53L0X是法意半导体开发的第二代智能激光测距传感器,用于测量岩体裂缝距离,其安装位置如图6所示。测距工作原理为:传感器主动发射激光脉冲,测量反射激光的飞行时间(ToF),根据ToF可计算传感器到反射体间的距离。VL53L0X最大测距长度为两米,精确度在±3%范围内,采用I2C接口与MCU联接,接口电路如图6。测距模块主要用来测量岩体裂缝的动态变化实时数据。

图6 激光传感器安装示意图

4.3 网络接口设计

在低功耗硬件设计中,因MCU处理能力有限,一般选用固化了TCP/IP协议栈的网络通信模块联接网络,可选模块种类有GPRS、3G/4G、NB-IoT、WIFI等。当节点設备需要连接更多数量的传感器和控制器时,可以进一步与ZigBee[7]无线传感器网络、MODBUS[8]工控网络连接,这时节点拓展成一个工控网络,应用就更为复杂了。本设计设备直接与传感器接口。

本文所设计节点设备与智能云通信接口采用ESP8266 WIFI模块,该模块具有功耗超低、UART-WIFI透传等特征,模块内置完整的TCP/IP协议栈,MCU使用串口AT命令操作模块,实现SOCKET接口及网络TCP/IP协议功能,更详细的说明见参考文献[9]。

4.4 软件设计与实现

如图7是节点设备内部程序流程图,节点设备软件开发主要包括下列内容:(1)STM32串行口读写函数与AT命令发送函数编写;(2)编写ESP8266模块初始化函数,启动服务器链接SOCKET通信,实现TCP/IP应用层数据的透明传输;(3)采集数据与打包,根据OneNET接入API协议,编写HTTP数据打包函数;(4)发送HTTP数据包,接收并处理HTTP回应数据包,实现相关硬件操作功能。

软件开发中,一些关键宏定义和功能函数原型定义如下:

#define CWJAP \

"AT+CWJAP=\"MY_WIFI_ID\",\"MiMa123456\"\r\n"

#define CIPSTART \

"AT+CIPSTART=\"TCP\",\"183.230.40.33\",80\r\n"

#define API_KEY \

“ACA6kzvie3wVBbaK2UfA=nHKBmg=”

#defien DEV_ID “11283817”

#define DS_ID1 “V_D1”

char *USART3_Read(void);

void USART3_Write(char *Data, int len);

void USART3_Clear(void);

int GetDistance(void); //激光测距模块数集采集函数

unsigned int HTTP_PostPkt(char *pbuf, char *key,

char *dev_id, char *ds_id, char *val);

上述代码段说明:(1)CWJAP宏,是WIFI访问参数,包含WIFI_ID及密码;(2)CIPSTART宏,包含中移物联服务器地址及端口号,由OneNET给定;(3)API_KEY宏,设备绑定的访问参数;(4)DEV_ID、DS_ID,即注册设备ID、数据流ID等;(5)USART3串口读、写、清除操作函数;(6)GetDistance距离数据采集函数;(7)HTTP_PostPkt()是HTTP/POST数据包封装函数。

HTTP_PostPkt()是与OneNET接口的关键函数,下面是经过实验测试的打包函数和上传数据示例代码,它可正确完成POST数据包的封装。

unsigned int HTTP_PostPkt(

char *pbuf, //pbuf报文缓存指针

char *key, //key是API_KEY指针

char *dev_id, //dev_id指设备ID

char *ds_id, //ds_id上传数据流ID(键名)

char *val ) { //val指字符串形式的数据点(值)

char dataBuf[100] = {0}; //定义dataBuf参数

char lenBuf[10] = {0}; //定义lenBuf参数

//①格式化键值对,生成包正文数据和正文长度字符串

sprintf(dataBuf, ",;%s,%s", ds_id, val);

sprintf(lenBuf, "%d", strlen(dataBuf)); //计算长度

//②设备ID号写入包头

*pbuf = 0;

strcat(pbuf, "POST /devices/"); strcat(pbuf, dev_id);

strcat(pbuf, "/datapoints?type=5 HTTP/1.1\r\n");

//③API-KEY写入包头

strcat(pbuf, "api-key:");

strcat(pbuf, key); strcat(pbuf, "\r\n");

//④OneNET定义API接口主机名写入包头

strcat(pbuf, "Host:api.heclouds.com\r\n");

//⑤正文數据dataBuf长度写入包头

strcat(pbuf, "Content-Length:");

strcat(pbuf, lenBuf); strcat(pbuf, "\r\n\r\n");

//⑥添加数据到POST包数据正文段中

strcat(pbuf, dataBuf);

return( strlen(pbuf)); //返回POST格式数据包长度

}

void main(void){

//…

USART3_Clear();

//⑦上传示例代码,调用打包函数

len = HTTP_PostPkt ( \

buf, API_KEY , DEV_ID, DS_ID1 , val );

USART3_Write(buf, len); //串口透明传输TCP/IP报文

//…

}

5 实验与测试

矿区巷道水浸和有害气体的预警相对简单,与之相比,岩体裂缝的灾变过程就比较复杂,它是一个长期缓变过程,缓变积累到一定程度,就可能发生现实灾变,且不同地质地貌的变化规律不尽相同。所以必须首先部署大量的采集节点,收集大量的岩体裂变数据,并记录裂变过程。只有当数据积累到一定数量时,才能分析灾变规律。本项目的数据采集实验测试阶段仅部署了少量实验性的数据采集点,采集的数据可通过Web客户端或Android APP显示。Web版OneNET客户端APP界面有多种数据显示方式,常见的有曲线显示、仪表显示等。图8是通过PC浏览器打开本应用链接显示的部分数据截图,子图(a)为某一个岩体裂缝距离变化曲线,子图(b)为打开APP时刻采集记录到的某巷道温度和湿度数值。

(a)某岩体裂缝距离变化曲线

(b)值仪表显示的某巷道温湿度数据

实验测试表明,所设计的数据采集节点设备工作稳定,数据测量精确,岩体位移精度达mm级别,可记录微小缓慢的变化。

6 结 论

本文针对矿山环境安全监测问题的特点,提出了一种基于智能云的矿山岩体裂变数据采集节点设备技术方案。概要介绍了OneNET平台功能模型和网络接口协议,重点分析了数据采集节点设备设计所涉及的关键技术,包括OneNET网络接入技术、设备的软硬件实现等,并对节点设备和系统进行了实验测试。测试结果表明,设备可准确测量和记录岩体裂变过程,技术方案可行,节点设备运行可靠。本文的设计为矿山安全环境监测提供了一套可行的技术方案,可实现低成本的数据存储和网络接入,为智能矿山灾害监测系统的发展奠定了技术基础,具有广泛的参考价值。

参考文献:

[1] 林连宝.露采生产工程岩体裂缝类型与危害控制 [J].黄金,2006(5):26-29.

[2] 陈尔奎.基于OneNET的矿山综合监控系统的研究 [J].煤炭技术,2017,36(9):195-197.

[2]陈尔奎,张敏,尹晓钢,等.基于OneNET的矿山综合监控系统的研究 [J].煤炭技术,2017,36(9):195-197.

[3] 中国移动.OneNET开发者文档中心 [EB/OL].https://open.iot.10086.cn/doc/art246.html#68.2017.

[4] 肖玲玲,魏浩.基于DSP的井下岩体裂缝检测系统的设计 [J].电视技术,2013,37(7):167-170.

[5] 谢全敏,吴定洪,王红彬,等.薄盒式光纤岩体裂缝计研究 [J].山地学报,2009,27(6):747-751.

[6] ST Microelectronics. VL53L0X ToF detection sensor datasheet [EB/OL].http://www.st.com/content/st_com/en/search.html#q=VL53L0X-t=keywords-page=1.May 2016.

[7] 董哲,宋红霞.ZigBee-WiFi协同无线传感网络的节能技术 [J].计算机工程与设计,2015,36(1):22-29.

[8] 李秉荣,刘夫云,鲁倪亚.基于RS485和TCP/IP网络的分布式称重系统 [J].计算机系统应用,2011,20(9):35-38.

[9] 乐鑫信息科技.ESP8266用户手册V03 [EB/OL].https://wenku.baidu.com/view/dd2f8965581b6bd97e19ea37.html.Setp 2,2014.

作者简介:宋志鹏(1995-),男,汉族,江西萍乡人,2014级通信工程专业本科生。研究方向:物联网技术;廖家明(1995-),男,汉族,江西九江人,2014级通信工程专业本科生。研究方向:嵌入式系统与物联网技术;张健(1997-),男,汉族,河南信阳人,2015级通信工程专业本科生。研究方向:嵌入式系统设计;通讯作者:吴君钦(1966-),男,硕士,教授。研究方向:嵌入式系统,无线宽带通信。

猜你喜欢

物联网
基于物联网的无线测温模块设计
基于物联网ZigBee技术的智能家居监控系统 
基于高职院校物联网技术应用人才培养的思考分析
如何在高校架设学生洗衣服务系统
基于无线组网的智慧公交站点信息系统研究与实践
基于LABVIEW的温室管理系统的研究与设计
论智能油田的发展趋势及必要性
中国或成“物联网”领军者