基于 B-S-C 架构的物联网数据处理系统开发与研究

2017-08-09 19:12作者程治国张昆保定职业技术学院郭献崇张家口职业技术学院
电子制作 2017年12期
关键词:开发板中间件数据处理

作者/程治国张昆,保定职业技术学院;郭献崇,张家口职业技术学院

基金项目:河北省教育厅高等学校科学研究计划课题“基于 B-S-C 架构的物联网数据处理系统开发与研究”,项目编号QN2016323。

基于 B-S-C 架构的物联网数据处理系统开发与研究

作者/程治国张昆,保定职业技术学院;郭献崇,张家口职业技术学院

基金项目:河北省教育厅高等学校科学研究计划课题“基于 B-S-C 架构的物联网数据处理系统开发与研究”,项目编号QN2016323。

本文主要讲述了基于 B(浏览器)—S(数据处理平台服务器)—C(数据采集单元客户机) 架构的物联网数据处理系统设计开发方面的内容,文章的核心是基于m0n0的通用型共享平台(数据处理平台)的二次开发工作,使用该平台可使得各种物联网传感器组成的采集控制单元通过WIFI网络灵活的接入到系统当中,用户可以非常方便的实现一个低成本、高效率的传感器网络。

m0n0;传感器;数据处理平台

引言

传统的物联网构建多由“感知层、网关、中间件、应用层”四部分组成,各个部分通常独立配置和运行,对于中小规模企业的简单物联网应用需求而言,四层架构物联网实现难度较大,投入不菲,特别是还需要配合大量的针对性开发。为解决上述问题,本课题提出一种简化、高效的物联网解决方案,即 B—S—C架构的物联网数据处理系统,该系统中,用户可以通过手机或联网计算机远程查看和控制各个传感器的工作状态,该架构当中数据平台为基于m0n0软件二次开发的独立硬件设备,功能上实现了“网关、中间件”的高度整合,可基于各种模板对不同传感数据进行数据处理和控制功能;数据采集控制单元通过ESP 8266开发板实现对温度、湿度、PM2.5、GPS等传感器的数据采集和传输工作,并可接受指令控制继电器的运行。整个系统基于WiFi网络进行通信、使用TCP/IP协议栈进行数据传输,兼容性强、应用范围广,是一套廉价的通用型物联网解决方案,在相关专业的日常教学和中小型物联网系统集成项目中具有良好的应用前景。

1. 物联网数据处理系统整体设计

该物联网数据处理系统由用户端、数据处理平台、数据采集控制单元三部分构成(如下图所示),各部分的具体功能如下:

图1 B—S—C 架构的物联网数据处理系统逻辑结构示意图

1.1 数据处理平台

数据处理平台是整个系统的核心部分,该部分基于m0n0开源防火墙系统二次开发而成,在逻辑上发挥的是物联网网关的功能,并将中间件和应用层进行有机整合,其中采用C语言开发的中间件实现与数据采集单元的远程通信功能,采用PHP语言开发的数据处理逻辑模块实现数据的再加工和显示功能。通过该平台可以采集和控制数据采集控制单元的数据,并根据不同的传感器数据采用不同的模板进行显示和应用。

1.2 数据采集控制单元

数据采集控制单元主要是基于果云的ESP 8266开发板采用C语言开发而成。可以根据不同的实际应用需求连接温湿度、PM2.5、GPS等传感器,通过Socket套接字和数据处理平台进行通信,并由继电器接受用户对物联网终端的控制。

1.3 用户端显示

由于数据处理平台本身具有物联网网关的特性,并且连接互联网,所以外部用户可以使用手机或者计算机通过网页的形式访问数据处理平台的系统页面,该部分由PHP开发而成,用户可以通过状态图实时查看温湿度、PM2.5的数据、也可以通过地图查看GPS的坐标轨迹,甚至可以通过设定的各个传感器阀值控制继电器的工作状态。

2. 数据处理平台设计

m0n0开源防火墙最初是由瑞士人Manuel Kasper开发的基于X86平台的嵌入式防火墙系统。本系统将m0n0构建一个多功能的数据处理平台,首先应用了m0n0的互联网网关功能,实现无线网络接入、NAT转换、路由和访问控制列表等功能,并在此基础上集成MySQL数据库作为保存各种传感器采集数据的仓库,该平台的逻辑结构示意图如图2所示。

图2 数据处理平台的逻辑结构设计

中间件程序使用C语言编写,设置为Socket套接字通信的Server端,应用的端口号为5000,通过条件控制循环和多进程编程机制保证可以接收到每一个主机发生来的信息,采用非阻塞机制保证如果线路连线中断,恢复后可以继续接受数据,然后将各个传感器的数据源源不断的保存到MySQL数据库当中。

中间件采集的数据格式为:[头部串(01111110)、IP地址(String)、类型(Char)、数据1(f l oat)、数据2(f l oat)、数据3(f l oat)、尾部串(1000001)];其中温度传感器的类型为“T”,数据1;湿度传感器的类型为“H”,数据1;PM2.5的采集的类型为“P”,数据1为为PM 2.5,数据2为PM 10;GPS的采集类型为“G”,数据1为经度,数据2为纬度。

业务逻辑处理层由PHP编写,其中控制指令部分使用消息队列的方式由表示层向中间件部分发送数据,由于只控制一个板子的继电器,所以控制指令的发送关键字为“STOP”,中继器关闭电源,发送“START”为开启电源;对于继电器的控制又可以细化为两种方式,其中一种是手动的发送开启、关闭指令指导ESP 8266进行工作,另一种情况是根据设置的阀值由设备自行进行继电器的控制,比如当温度高于25度,打开继电器,低于25度关闭继电器。

表示层由PHP结合JS编写,该部分主要是设计两种通用型模板,比如温度、湿度、PM2.5等各种数据采集的值都是一个随着时间变化的数值,该部分采用状态图的形式动态显示各个传感器的状态,而GPS则是根据经、纬度在地图上显示的一个点阵轨迹,通过这些模板可以将各个传感器的工作状况良好的展现出来。

3. 数据采集控制单元

数据采集单元基于ESP 8266 2.0 SDK开发包进行开发,该部分目前可以支持三种传感器进行联动(由于8266的接口限制,各个传感器独立工作,不能协同工作),其中PM2.5监测仪采用的是锦州海伦的DSL—03 PM 2.5检测仪,采用激光检测法检测PM 0.3~2.5、PM 2.5~10两个级别的粒子浓度,采用串口线连接8266开发板;GPS采用的是UBLOX模块,使用杜邦线连接8266开发版,温湿度模块采用8266开发板自带模块,继电器也采用自带模块。

图3 数据采集控制单元的逻辑结构设计

开发板主程序实现思路为设置任务队列,首先通过调用system_os_task函数,实现ESP 8266开发板通过WiFi连接数据处理平台,连接成功后再次调用该函数尝试进行Socket TCP通信的5000号端口连接,连接成功后,调用各个传感器函数获得采集数值后通过TCP协议发送给数据处理平台,对于各个传感器的工作频率采用时间容器函数os_timer每1秒采集一次数据并进行发送。

本地的Socket通信的客户端如果接收到服务器端传来的信息,按照事先规定格式进行处理,比如收到“START”关键字则开启中继器,收到“STOP”关键字则关闭中继器。

4. 物联网数据处理系统的应用前景预期

通过上述思路设计和开发的物联网数据处理系统,不仅具有极高的应用和推广价值,而且为高职物联网应用技术专业的学生学习、实践提供了良好的平台。

由于该产品源代码来源于开源系统,所以在本科院校可以在此基础上进行深入的学习研究和二次开发。

此外,该系统设计简单、集成度高、所以开发的实际产品具有性价比高,应用性广的特点,特别适合于农业物联网、交通物联网等中小型企业的应用。

* [1]白秀伟.物联网中间件数据处理研究[J].计算机测量与控制.2012,20(7):1938—1940

* [2]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用.2016,16(9):52—56

* [3]陈素羡.基于m0n0的网络计费系统开发与研究[J].煤炭技术.2013,32(5):179—181

猜你喜欢
开发板中间件数据处理
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
无人机测绘数据处理关键技术及运用
基于STM32H7的FDCAN通信系统设计与实现∗
我国自主可控中间件发展研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
RFID中间件技术及其应用研究
开发板在单片机原理及接口技术课程教学中的应用
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证