高亭
摘要:随着物联网技术的兴起,其广泛应用也在深刻地改变着人们的生活。越来越多的技术被应用到智慧农业、智能家居等领域。文章在研究物联网相关的技术发展和整体架构的同时,探讨基于MQTT协议的物联网实时数据采集及数据可视化相关的应用,希望能够通过数据可视化技术,让更多人更方便地使用物联网技术。文章提出的模型使用Arduino Uno作为微处理器,控制各种传感器获取环境中的数据,并使用ESP8266模块将相关数据发送到云平台,在ThingSpeakTM云平台实现可视化。MQTT协议主要用于将数据传送到应用层。
关键词:MQTT;Arduino Uno;ThingSpeakTM;数据可视化
中图分类号:TP391 文献标志码:A
0 引言
物联网技术是继计算机、互联网、移动通信后的又一次技术浪潮,实现了人與人、人与物、物与物的全面互联。物联网应用在改善人们的生活质量方面发挥了显著的作用。这些应用包括交通自动化、医疗保健、工业自动化和应急响应等。数据实时监测和数据实时可视化影响着物联网应用的普及和发展,是物联网技术研究中的重要一环。
1 理论
1.1 物联网概念
物联网一词由凯文·阿什顿于1999年在供应链管理领域首次提出。物联网是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能[1]。
1.2 MQTT协议
MQTT是用于物联网(IoT)OASIS标准的协议,运行在TCP/IP协议上。它是一种极其轻量级的基于“发布/订阅”模式的消息传输协议,可以用极少的代码和有限的带宽为远程设备提供实时可靠的消息服务[2]。发送方(发布者)和接收方(订阅者)通过Topics进行通信,并且彼此分离。它们之间的连接由MQTT代理处理。MQTT代理过滤所有传入消息,并将它们正确分发给订阅服务器。
服务质量(QoS)级别是消息的发送者和消息的接收者之间的协议,该协议定义了特定消息的传递保证[3]。MQTT中有3个QoS级别:QoS-0为MQTT最低的QoS级别。QoS-1保证消息至少一次被传递给接收方。QoS-2是MQTT中的最高服务级别,此级别保证预期接收者只接收一次消息,是最安全和最慢的服务质量级别。
2 系统总体设计
本文提出了一个基于物联网温室的实时监测系统模型。该系统不仅能监测温室内部气候和工作条件,还可以让管理者通过互联网控制相应的工作部件。在本文提出的模型架构中,收集的数据经历了从传感器到接口,到执行器的阶段。整个阶段可以分为6个数据流阶段:传感器、通信/运输、加工、储存、分析和驱动。分层系统架构如图1所示。
本系统的整体架构设计从物联网三层结构展开,每层用于完成不同的工作。感知层的主要工作是完成数据采集,该层主要包含微控制器,不同类型的传感器,制动部件。传感器是采集信息的重要工具。温室日常监测经常使用到的传感器主要包括光传感器、温/湿度传感器、土壤传感器、气体传感器。制动部件主要包含门窗、照明设备等。用户发布的相关命令通过微控制器进行处理,进而控制设备打开和关闭。
网络层的主要工作是完成数据的传送。根据数据传送距离和能耗的不同需求,可以将网络层通信协议分为短距离通信协议和远程通信协议。短距离通信技术用于控制信号的传输,使用了WiFi技术。远程通信协议用于将监测数据发送至远程平台,以及将相关管理指令传送至微控制器,使用了MQTT协议。
应用层的主要工作是完成数据的处理和数据可视化。常见的环境数据主要围绕气候、土壤和植物3个部分来产生。在气候监测方面:用户根据不同地区,不同气候以及不同需求设定相应的值,主要监测目标有二氧化碳的浓度、温/湿度、气压等。土壤数据主要包括土壤湿度、土壤盐度和土壤成分。当传感器检测到温室中的监测值不满足设定值时,微处理器模块会将相关数据发送至用户侧,并以可视化的方法展示给用户。植物监测的内容应该包括作物病害和叶片温度。这两项数据的监测主要是为了识别植物生长的情况,从而使用户能够实时获得植物的健康数据。
3 硬件设计
硬件系统部分主要包含有微处理器、ESP8266(ESP-01)通信模块、温湿度监测模块。
微处理器采用Arduino Uno。它是基于ATmega328P的微控制器板,有14个数字输入/输出引脚、6个模拟输入,可以使用USB电缆连接到计算机或使用AC-DC适配器或电池为其供电。
Node MCU ESP8266模块带有AT命令固件,具有4MB的闪存,80MHz的系统时钟,大约50 kB的可用RAM和片上Wifi收发器。
湿度传感器是能够测量大气中湿度并将其结果转换为相应电信号的设备。将给定温度下的实时湿度读数与等效温度下空气的最大湿度进行比较,计算出相应的电信号比。本文根据温室中的温度和湿度判断,选用了DHT11温湿度传感器进行了测试。
以温湿度监测为例,将DHT11传感器与ESP8266连接至Arduino Uno的GPIO引脚。连接电路如图2所示。关于湿度和温度的计算都将在Arduino Uno模块中进行,通过ESP-01发送到ThingSpeak API上,从ThingSpeak上可以看到生成的图表。
4 软件设计
系统软件部分使用Arduino IDE开发环境,采用C++语言编写,使用MQTT协议连接到物联网云平台上,物联网云平台采用ThingSpeakTM。
ThingSpeakTM是物联网的数据收集和数据分析的云平台。用户可以使用连接到互联网的传感器来收集数据,ThingSpeakTM免费存储收集到的数据,并提供免费的在线使用的MATLAB来分析这些数据。
ThingSpeakTM在mqtt3.thingspeak.com和端口1883上有一个MQTT代理。该代理支持MQTT发布和MQTT订阅。通过互联网或局域网,用户可以使用MQTT协议从传感器节点检索实时数据。目前Thingspeak API 仅支持QoS-0(at most once)。
Arduino IDE(集成开发环境)是用C和C++编程的函数编写的一个跨平台的计算机应用程序,用于编写、编译程序并将其载到Arduino和其他兼容板[4]。
如表1所示,软件部分主要实现了5个功能。如图3所示,本文主要介绍的是功能实现的主程序流程。
除了要实现以上功能外,还要使用代码对连接到ThingSpeak MQTT broker的过程进行设置。连接到ThingSpeak的MQTT代理的流程如图4所示。
如图5—6所示,本系统在ThingSpeak平台上成功对测试环境中的温度和湿度变化进行了可视化展示,从而说明该系统具有实时、可视化的特点。
5 结语
本文介绍了基于MQTT协议的物联网温室数据
采集和可视化系统,设计了系统的硬件电路和采集环境数据操作的流程,实现了一套完整的物联网数据采集和可视化系统。该系统能够获取设备和环境的各项数据,并实时设定和修改监测值。本文的研究为物联网的远程监控提供了一种可以参考的解决方案,为物联网实时数据采集和可视化技术应用提供参考。
参考文献
[1]GUBBI J, BUYYA R, MARUSIC S,et al. Internet of Things (IoT): a vision, architectural elements, and future directions[J]. Future Generation Computer Systems, 2013 (7):1645-1660.
[2]Al-F A, GUIZANI M, MOHAMMADI M, et al. Internet of Things: a survey on enabling technologies, protocols, and applications[J]. IEEE Communications Surveys & Tutorials, 2015 (4):2347-2376.
[3]FAROOQ M S, RIAZ S, HELOU M A,et al. Internet of Things in greenhouse agriculture: a survey on enabling technologies, applications and protocols[J].IEEE Access, 2022(10):53374-53397.
[4]KWIZERA V, LI Z, LUMORVIE V E, et al. IoT based greenhouse real-time data acquisition and visualization through message queuing telemetry transfer (MQTT) protocol[J]. Advances in Internet of Things, 2021 (2):77-93.
(編辑 李春燕)
Real time data acquisition and visualization system of iot greenhouse based on MQTT protocol
Gao Ting
(Bohai Vocational College of Science and Technology, Huanghua 061100, China)
Abstract: With the rise of IoT technology, IoT applications are changing our lives. More and more technologies are applied to smart agriculture, smart home and other fields. This paper aims to study the technology development of IoT and discuss the application of real-time data collection and data visualization of IoT based on MQTT protocol. It is hoped that more people can use the IoT technology conveniently through data visualization technology. In the proposed model, Arduino Uno is used as a microprocessor to control various sensors to obtain environmental data. Use the ESP8266 module to send relevant data to the cloud platform ThingSpeakTM, realizes visualization on the cloud platform.
Key words: MQTT; Arduino Uno; ThingSpeakTM; data visualization