科学直通车外文翻译资料

 2021-11-06 07:11

英语原文共 8 页

在线提供www.sciencedirect.com

科学直通车

Procedia Computer Science 132(2018)1611-1618

计算智能与数据科学国际会议(ICCIDS 2018)

将MQTT和NodeMcu用于物联网:物联网通信

Monika Kasyap *, Vidushi Sharma, Neeti Gupta

高丹佛大学, 大诺伊达-201308 印度

摘要

物联网(IoT)允许使用互联网的设备之间的连接,具有收集和交换数据的能力。这些设备通常连接有Arduino等微控制器,传感器,执行器和互联网连接。在此上下文中,消息队列遥测传输协议(MQTT)在物联网中的设备之间交换数据或信息而不知道彼此的身份方面起着重要作用。本文介绍了物联网(IoT)通信的不同服务模型。模型A表示使用串行USB作为传输介质,而模型B使用消息队列遥测传输协议(MQTT)部署Wi-Fi模块(ESP8266-12)以将系统连接到互联网。对于通信,使用发布者和订阅者的概念。在代理或服务器的帮助下发布或订阅消息。此代理负责根据消息主题的选择将消息分散到目标客户端。MQTT中的代理也称为服务器。MQTT中使用的一些经纪人是:-Mosquitto,Adafruit,hiveMQ

copy;2018作者。由Elsevier Ltd.出版

这是CC BY-NC-ND许可下的开放获取文章(https://creativecommons.org/licenses/by-nc-nd/3.0/)

由计算智能和数据科学国际会议(ICCIDS 2018)科学委员会负责的同行评审。

电子邮件地址:mkashyap856@gmail.com, svidushee@gmail.com, neeti.gupta04@gmail.com

1877-0509copy;2018作者。由Elsevier Ltd.出版

这是CC BY-NC-ND许可下的开放获取文章(https://creativecommons.org/licenses/by-nc-nd/3.0/)

由计算智能和数据科学国际会议(ICCIDS 2018)科学委员会负责的同行评审。

10.1016/j.procs.2018.05.126

键词:Arduino,ESP8266,HiveMQ,物联网(IOT),消息队列遥测传输(MQTT)。

介绍

物联网(IoT)提供通过互联网连接大量物品或设备的能力。这些东西或设备具有独特的身份。物联网通过将设备与互联网连接并使其具备收集和交换数据的能力来创建智能环境。这些设备或小工具通常与微控制器,传感器,执行器和互联网连接相连。这些小工具可能包括普通家居用品,如洗衣机,冰箱,音响系统,咖啡机,闹钟等。此外,智能城市中的物联网应用包括交通监控,空气和水污染监测,电能消耗监控等。物联网提供了一个平台在不同的对象中,他们可以相互通信,同时为他们提供自我组织的能力。在物联网中,像MQTT和CoAP这样的轻量级协议用于数据传输。消息队列遥测传输(MQTT)是一种在物联网中用于数据传输的协议[1] [2]。它是基于发布者和订户的协议,允许多个设备通过无线网络相互通信。最顶层的TCP / IP是应用层,MQTT协议用于该层。在MQTT中,发布者和订阅者(​​或客户端)不需要知道彼此的身份。MQTT将信息从源传递到目标,并在TCP层上实现。MQTT优选地适用于具有约束能力和资产的IoT节点。任何MQTT连接都考虑两种类型的代理:第一种是MQTT的客户端,另一种是MQTT代理服务器。协议传输的信息称为应用程序消息。MQTT客户端是指通过MQTT参与通信或交换消息的网络连接的设备或对象。MQTT客户端被命名为发布者和订阅者。发布者可以发送应用程序消息,并且订阅者可以请求该应用程序消息以获得与该消息相关联的信息。经纪人允许不同的客户相互联系。它在与之关联的不同客户端之间确认并传输应用程序消息。MQTT客户端可以是传感器,移动设备等。在本文中,我们使用HiveMQ作为代理。选择Wi-Fi作为模型中的对应方法,并且使用利用ESP8266执行的MQTT约定来监视设备。

在本文[3]中,创作者描述了当前的家庭机械化设计,并提出了一种家庭计算机化架构,为整个现代物联网协议提供了能力。在[4]中,作者讨论了Arduino服务接口编程模型,这是一种现代编程模型,可以让管理人员有效地计算微控制器的新功能,并为使用系统范围的网络板提供帮助,包括MQTT,socket连接等。在[5]中,模型旨在通过SMS执行家庭计算机化。GSM组织和小工具利用微控制器连接。它同样围绕系统管理中的安全角度,提出了一个受保护,可靠且通用的家庭机械化框架。

本文的其余部分如下:系统布局见第二节。实施细节见第三节。第四节展示了模型的结果和分析。第五节代表结论。

系统布局

图1显示了MQTT服务器的工作情况。消息队列遥测传输(MQTT)是指在IoT中用于数据传输的协议。

连接连接ACK

发布(主题,数据)

连接ACK订阅(主题)订阅Ack

发布(主题,数据)

MQTT客户端或

订户

MQTT客户端或

出版者

MQTT经纪人或

HiveMQ

图1:系统的工作

MQTT中的连接考虑以下类型的运算符:第一个是MQTT客户端,另一个是MQTT代理,或者我们可以说它是MQTT服务器。MQTT提供的信息称为应用程序消息。当MQTT客户端想要向MQTT代理广播或发布某些信息时,客户端需要与MQTT代理建立连接。客户端请求代理与其连接,然后代理在客户端和MQTT代理之间建立连接之后将该连接请求的确认发送到客户端。客户端可以将主题发送或发布给代理。类似地,任何其他想要客户端1发布的相同主题信息的客户端可以发送连接到代理的请求,然后代理发送确认,如果第二个客户端与代理连接。它可以订阅代理端的任何主题,或者客户端可以向代理发布新消息。因此,该系统允许客户端彼此通信而不需要彼此了解。在本文中,我们使用MQTT提供了一些与物联网通信相关的服务模型,例如将一个发布者和许多订阅者连接到代理。

实施细节

本节提供各种服务模型的实现细节。

    1. 网络设置和系统实施:

设置要求:

      1. 节点MCU esp8266
      2. Arduino的
      3. LED(发光二极管)
      4. 面包板
      5. 电线(公对母)
      6. 笔记本电脑与互联网连接
      7. 420 OHM电阻
      8. 服务模型A:使用串行连接在物联网中进行通信。

使用串行连接(USB)将客户端连接到Arduino(微控制器)。在图2中,三个LED分别连接到引脚号3,4,5的Arduino。这些根据系统给出的指令关闭或打开。这是借助USB或有线或无Wi-Fi在对象之间进行通信的服务模型。

图2:Arduino的连接 图3:用户侧的LED电路

      1. 服务模型B:使用Wi-Fi或互联网进行物联网通信(MQTT协议)

使用NodeMcu设置MQTT连接,如图3 [6],[7]所示。在图3中,NodeMcu连接到面包板上的LED。此NodeMcu连接到系统(笔记本电脑或计算机),此设置连接到MQTT代理以进行进一步通信以执行以下任务:

  1. 在同一台计算机上使用MQTT代理发布和订阅消息。
  2. 在MQTT代理上发布消息,并从服务器订阅主题以获取信息。
  3. 在一台设备上设置发布者,在另一台设备上设置订阅者。LED电路(如图3所示)连接在用户侧。该电路根据客户端在MQTT服务器上发布的消息打开或关闭。此服务模型的目的是构建MQTT发布者 - 订阅者系统,以便发布者或客户端将数字值(0和1)发布到代理,然后订阅者订阅发布者的主题,然后传递该已发布消息的信息通过经纪人向订户。根据客户端输入的值,用户侧LED将打开或关闭。
  4. 使用MQTT创建一个发布者和不同的订阅者,不同的发布者和一个订阅者以及不同的发布者和订阅者,同时还观察到在一次发布来自两个订阅者的消息时是否存在数据丢失或滞后。在此服务模型中,我们利用了MQTT的服务,可用于在多组设备之间进行通信。客户端发布消息并将其转发给多个订阅者。此外,我们已经提出了一种服务模型,其中客户端从几个订户接收消息,并观察由于同时接收而导致的数据是否滞后或丢失。通过这种方式,我们创建了一个由多个发布者和订阅者组成的网络。

所有上述服务模型之间的主要区别在于它们的代码草图。使用的算法:

第1步:连接到Internet。

步骤2:如果未连接到互联网,请尝试重新连接。

步骤3:否则在串行监视器上打印设备的IP地址。步骤4:尝试与指定的MQTT Broker建立MQTT连接。步骤5:连接后,我们可以在代理上发布消息。

步骤6:连接到代理的设备还订阅特定主题,这些主题显示在代理中

窗口。

本文将该算法应用于MQTT的所有服务模型。

接线设置说明:

  1. 拿一个面包板。
  2. 将LED插入面包板。
  3. 将LED的阴极连接到Node MCU的输出引脚。
  4. LED的阳极连接到节点MCU的地(GND引脚)。
  5. Node MCU通过外部USB供电。
    1. 单个发布者和多个订阅者:

在多个订户的情况下,订户的对象名称充当组标识符。MQTT代理将立即向该组的一个成员发送信息,并以循环方式向所有成员发送信息。因此,如果我们打算拥有多个订阅者,订阅同一个发布者,我们必须为订阅者提供不同的对象名称。订户的标识独立于它们所连接的网络。

    1. 多个发布者和单个订阅者:

多数代码将保持不变。唯一的区别是订阅者将订阅多个主题

即“客户的数量”。订阅“将增加。

    1. 多个发布者和订阅者:

大多数代码将保持不变。唯一的区别是每个发布者将发布多个主题

在“客户。发布“并且每个订阅者将使用”客户端订阅多个主题。订阅”

在所讨论的所有服务模型中,我们观察到虽然存在一些滞后,但是在通过MQTT传输多个信息时没有数据丢失。这是MQTT相对于HTTP等其他协议的主要优势。

    1. 节点MCU esp8266版本1.0

节点MCU(参见图4)是一个开源固件和开发套件,有助于物联网产品的原型设计[8]。Node MCU的编程类似于Arduino IDE的编程。它具有以下功能:

  1. Arduino就像硬件I / O.
  2. 包括USB TTL,即插即用
  3. 最低成本的Wi-Fi最低成本的Wi-Fi

图4:节点MCU esp8266

    1. 软件起源

本文采用Arduino IDE作为编程软件。HiveMQ是一个开源MQTT代理,用于实现。HiveMQ使用两个服务(Pub和Sub)来发布和订阅消息。MQTT客户端请求传感器信息并分发订单以控制ESP8266的GPIO。MyMQTT是一个Android应用程序,是另一个与Mosquitto MQTT代理关联的MQTT客户端,可以发送或分发给特定主题。

结果与分析

  • 在服务模型A中,Arduino用于计算机和LED之间的通信。在此,客户端可以使用USB连接到计算机。连接到Arduino的三个LED根据计算机指令闪烁。这里的通信是通过串行USB而不是互联网或Wi-完成的。

网络连接。

  • 在服务模型B中,使用HiveMQ设置MQTT服务器。客户发布的消息即“Out Topic”将出现在HiveMQ经纪人最近使用的主题列表中。这里的信息正在发布(见图5)。

图5:MQTT服务器上发布的数据(OutTopic)

在图6中,Arduino IDE的串行监视器显示已发布和已订阅的消息。这里发布的消息是#39;outTopic#39;,订阅的消息是#39;Hello World#39;,这个发布的消息出现在Mqtt代理(mosquitto)中。

图7演示了对来自HIVE MQ代理的主题的订阅。订户选择他想要选择的主题;在我们的例子中,我们使用了一个主题

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。