一种面向大数据分析的物联网平台架构

2017-10-21 15:29刘芳陈义明
电脑知识与技术 2017年20期

刘芳+陈义明

摘要:根据现代化智能农业的需求调查,对于温湿度传感器的农业物联网的设计进行了研究,系统采用dht11温湿度传感器作为数据采集器,通过NodeMCUwifi模块使dht11传感器与消息中转服务器MQTT server处于同一局域网下,MQTT代理服务器根据发送者发送的消息将消息转发给符合条件的订阅者,MQTT server再将获取到的数据发送给sitewhere物联网云服务平台进行数据汇聚,然后使用MongoDB数据库进行数据分析。

关键词:温湿度传感器;NodeMCU;MQTT代理服务器;Sitewhere平台;MongDB数据库

空气的温湿度对于农作物来说极为重要,直接性的影响着农作物的存活率与产量,因此,生产人员需要时刻了解该项指标的数据,并且将其控制在合适的范围内,同时,这也是一项极为繁琐的工程。如果通过人力去时刻测量的话,而物联网的提出给这一难题提供了便利的解决办法,农业物联网技术是通过无线网络和互联网进行传输,将感知层采集到的数据进行合聚、存储、处理,最后通过智能化来操作终端实现数据监测,科学决策和实时服务的过程,采用物联网技术可以轻松实现时时刻刻对空气温湿度的监测,不仅可以保证数据获取的实时性、大幅度的提高测量的数据的精确性、便利性,而且可以通过物联网云平台对所监测的数据进行汇总,使用数据库从数据中提取总结出问题的所在并找出合理的解决方案反馈给控制传感器,然后实施控制以确保温湿度被控制在合理的范围内。本方案可以运用在温室大棚、室内动物培育应用中,本研究结合dhtll温湿度传感器,MQrr与Sitewhere物联网云平台,Mon-goDB数据库实现了对空气温湿度的实时监测和数据采集分析,可通过该分析结果反馈控制传感器,使各项指标稳定在用户需求的范围内。

1系统总体设计方案

本方案是以dht11温湿度传感器和NodeMCU开发板为主要硬件,使用Arduino软件进行编程,首先传感器将数据传送至开发板上,然后利用串口来显示数据检测传感器是否可成功获取到温湿度数据,确定数据可成功获取后,通过NodeMCU的WIFI模块进行指定的WIFI网络连接,使其与客户端在同一局域网下,然后将数据发送至MQTT,通过MQTT代理服务器作为中间消息件将传感器采集到的数据实时的发送到Sitewhere物联网云平台进行数据存储、处理,然后MongoDB数据库再将Sitewhere平台上获取到的数据进行分析,将分析结果反馈控制传感器使其处于理想的状态下,系统的总体设计结构如图1所示。

2传感器及Arduino编程

2.1DHT11温湿度传感器用途与构成简单介绍

DHT11传感器是一款含有已校准数字信号输出的温湿度复合传感器,主要用于测量空气中的温室度,广泛应用于温室大棚、畜牧业养殖等工程中,它采用单总线方式直接读取温度、湿度数据,应用专用的数字采集技术和温度传感技术,具有良好的靈敏感应特性、功耗低、稳定性高、成本低等特点。

2.2 NodeMCU开发板与DHT11的连线

将DHT11模块的VCC、GND、DATA引脚分别与NodeMCU的VCC、GND、D4引脚进行连接,NodeMCU通过D4引脚从传感器的数据端接收数据,图2为NodeMCU与DHT11的连线图。

2.3用传感器dht11编程的核心代码

1)实例化dht11对象

dht11 DHT11:

2)setup初始化串口

Serial-begin(9600);

3)loop0中读取DHT11状态,分析状态后使用串口输出

4)烧写程序到NodeMCU,并使用Arduino IDE串口查看输出数据。

3开发板NodeMCU的WiFi网络TCP连接

3.1NodeMCU的特点与构成简要介绍

NodeMCU包含了可以运行在esp8266Wi-FiSoC芯片之上的固件,以及基于ESP-12模组的硬件,NodeMCU Lua WIFI是一款基于ESP8266 CP2102的物联网开发板,它以Lua语言为基础,可让开发者以arduino的方式与底层硬件打交道,使开发人员可以轻松对硬件设备进行操作,具有成本低、交互简单等特点。

3.2 NodeMCU下的WIFI编程

3.2.1NodeMCU下的WIFIClient编程步骤

1)Arduino IDE下安装ESP8266开发板扩展程序后进行网络连接,在连接之前确定NodeMCU可以wifi路由器进行连通。

2)创建WIFIClient并向服务器发起TCP连接请求。

3)向服务器发送信息

4)服务器接收信息

3.2.2 NodeMCU下连接VCIFI的主要代码

4代理服务器MQTT模块

4.1MQTT协议的的背景

MQTT是1999年由IBM公司的Andv Stanford博士以及Ar-con公司ArlenNipper博士发明的一项技术,是一种基于二进制消息的发布/订阅编程模式的消息协议,面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制可通过很少的代码宽带与远程设备进行连接,使设备对设备之间的短消息通信简单易用,该协议具有开销小、传输小、耗电量小等特点,它采用小型传输,可以将数据包最小化并有效分配与传输。可广泛应用于移动即时通信、物联大数据、智能家居、消息通信等方面。与RESTful架构的物联网系统相比,MQTT协议借助了消息推送功能,可以更好地实现远程控制,另外,RESTful具有客户端和服务器端两个角色,而MQTT协议包括发布者,代理服务器和订阅者三个角色。endprint

4.2MQTT协议的特点

1)发布/订阅的消息模式

在MQTT协议的发布/订阅模式中,发布者与订阅者只需要认同一个代理就可以,不需要相互了解对方,可以不同时在线,也不需要等待对方的消息确认,可随时发布订阅消息,以UTF-8字符串形式进行传输。

21使用了TCP/IP进行网络连接

3)具有三种消息发布服务质量

可根据不同场景进行选择不同的级别服务质量,共有Qos0、Qos1、Qos2三种服务质量可选择。Qos0是指消息发送者会尽可能地去发送消息,但是如果发送失败了就不会再次发送,Qosl是指如果消息发送失败或者接收者未作应答,发送者会重新发送消息,直到接收者应答确保接收者至少收到一次消息,Qos2是指接收者能且只能接收到一次消息。这三种服务质量各有优缺点,第一种可能会导致接收者未接收到消息,第二种可能会导致消息接收重复,第三种虽然避免了前两种的弊端,但是会增加一定的开销。

4)通信传输小、开销小

采用UTF-8字符串形式进行传输,使消息最小化传输,大大降低了网络流量的使用。

4.3 MQTT代理服务器的工作原理

发送者通过TCP/IP与订阅者进行网络连接,并向订阅者的broker发送带有某一主题的消息,订阅着登录broker,使用mos-quitto_sub-v-t Topic命令订阅发送者发送的Topic主题的消息,然后等待着消息从broker的到来并会打印到命令框中,图3为iQrr代理服务器的工作原理图。

4.4 MQTT消息发布主要代码

5Sitewhere物聯网云平台模块

Sitewhere是一款开源的用于数据采集,存储,处理的物联网平台,具有设备管理,数据存储等功能,Sitewhere的体系结构为一个租户可以对应多个不同的站点,每一个站点又可以对应多个不同的资产。每一个资产可以对应多个不同的规格,每一个规格可以对应多个不同的设备,从租户到设备这样层层细分,使不同规格的设备所获取到的数据都能发送到Sitewhere平台上进行数据的汇聚,图4为Sitewhere的组织结构。

6Mongo DB数据库

Mongo DB是目前在IT行业非常受欢迎的一种非关系型数据库,具有灵活的数据存储方式,很好的实现的面向对象的思想,在该数据库中每一条记录都代表一个文件对象。Mongo DB最受欢迎的地方在于不需要开发人员手动编写SQL语句,直接通过调用方法就可以实现CRUD操作分布式文档存储数据库。

在本架构中,MongoDB对Sitewhere物联网平台上汇聚的数据进行分析处理,然后将数据分析结果反馈给MQTI"代理服务器,再通过MQTT反馈控制传感器以完成用户的需求。

7结束语

以上介绍了一种面向大数据分析的物联网平台架构的具体实现过程,并附加了主要代码以便于读者的理解。经过多次测试,当MQTT与NodeMCU处于同一局域网时订阅者可通过broker成功实时的接收到数据,并可成功地将数据发送到Site-where物联网开发平台进行数据汇总,系统较为稳定,获取总结数据信息极为便利轻松,用户可以通过MongDB数据库分析出来的结果来反馈控制温室大棚等内部的各项指标,确保动植物的健康成长。endprint