基于家庭自动化系统与ESP8266的MQTT外文翻译资料

 2021-11-06 17:51:03

英语原文共 12 页

基于家庭自动化系统与ESP8266的MQTT

Ravi Kishore Kodali and SreeRamya Soratkal

Department of Elecronics and Communication Engineering,

National Institute Of Technology, Warangal

WARANGAL 506004 INDIA

摘要

由于自动化工业的蓬勃发展和无线连接,家庭中的所有设备都可以连接起来。这提高了舒适性,能源效率,室内安全,节省了家庭成本。小型和受限嵌入式设备用于远程监控家庭环境和控制家用电器。在这种情况下,功耗和网络带宽成为一个主要问题。我们需要一个低功耗并且可以通过一个不那么冗长的协议传输消息的设备。由于WiFi的普遍可用性,家庭中的所有电器都可以通过一个公共网关连接。本文概述了一种轻量消息队列遥测传输(MQTT)协议。在原型中,我们尝试在基于WiFi的开发板ESP8266上实现MQTT。传感器和执行器连接到ESP8266和建立了一个基于Mosquitto的MQTT代理,用于远程监控。

关键词:消息队列遥测传输(MQTT) ESP8266 Mosquitto 家庭自动化

I. 引言

家庭自动化是指远程监控条件在家中执行所需的驱动。通过家庭自动化,家庭设备如电视,灯泡,风扇等被分配一个唯一的地址并被连接通过一个共同的家庭网关。这些可以是远程的可从任何PC、移动设备或笔记本电脑访问和控制。这个可以大幅度减少能源浪费,改善生活增强室内安全的条件。

由于技术的快速发展,设备在最近一段时间正在变得智能起来。现实世界中的设备是具备智能和计算能力,以便他们可以相应地配置自己。传感器已连接到嵌入式设备以及低功耗无线连接便于远程监控设备。这组成了部分物联网络。物联网可以考虑作为无线连接的设备网络,他们根据预定义规则进行相互交流和组织。然而,这些设备被限制在资源条款。因此,轻量级协议如MQTT、COAP等用于无线连接的数据传输。有很多种射频模块常见的有GSM、3G、WiFi、蓝牙、ZigBee等。然而,由于WiFi热点和范围足以执行所需的控制和监控,选择WiFi作为样机与设备通信模块并通过使用ESP8266实现的MQTT协议。

论文的组织结构如下:概述关于MQTT协议,见第二节。这个在这方面已经完成的相关工作是在第三节中讨论。在第四节中讨论实施有关网络设置、所用硬件和软件的详细信息简报。已开发原型的结果将在中讨论第五节第六节给出了结论和未来的范围工作的。

II.消息队列遥测传输

消息队列遥测传输(MQTT)是一个高效利用带2字节固定首部带宽的轻量传输协议[1]。MQTT工作基于TCP,并确保将消息从节点传递到服务器。作为面向消息的信息交换协议,MQTT非常适合于能力和资源有限的物联网节点。MQTT最初是由IBM于1999年开发的,如今被结构化信息标准促进组织(OASIS)[3]承认为一种标准。

MQTT是一种基于发布/订阅的协议。任何MQTT连接通常涉及两种代理:MQTT客户机和MQTT公共代理或MQTT服务器。正在由MQTT传输的数据被称为应用程序消息。任何经由MQTT连接到网络并交换应用信息的设备或进程被称为MQTT客户端。MQTT客户端可以是发布者也可以是订阅者。发布者发布应用程序消息和订阅者请求应用程序消息。MQTT服务器是连接MQTT客户机的设备或程序。它在多个应用程序之间接受和传输应用程序消息连接到它的客户端。传感器、手机等设备等被视为MQTT客户机。当MQTT客户机有一定的信息要广播,它发布数据到MQTT代理。MQTT代理负责数据收集和组织。应用程序消息由MQTT客户端发布,转发到其他订阅它的MQTT客户端。MQTT旨在通过集中所有复杂度在代理处那里来简化在客户端的复杂度。发布者和订阅者是独立的,这意味着他们不需要知道其他人的存在或应用。在传输应用程序消息之前,控制数据包交换基于与之相关联的QoS。MQTT控制包由固定首部、可变首部和有效载荷构成。CONNECT, CONNACK, PUBLISH,PUBACK, PUBREC, PUBREL, SUBSCRIBE, SUBACK等是一些在MQTT客户机和MQTT服务器的MQTT控制包。MQTT中的“主题”提供路由信息。每个主题都有一个主题名称和主题与之相关的级别。主题树可能有多个主题级别他们由/分隔。通配符,如#和 用于匹配主题中的多个级别。如果客户机处于脱机状态并且会话已启用,MQTT服务器以队列系统为特点缓冲所有消息。

A.建立连接

MQTT客户端与MQTT服务器端一旦成功建立连接,控制包就在客户端和服务器端进行交换。客户端希望连接到MQTT服务器发送CONNECT数据包到服务器指定其标识符、标志、协议级别和其他字段。服务器确认客户端通过使用具有指定的标识符表示连接状态的返回代码的CONNECT包。

B.发布应用程序消息

如果客户希望成为发布者,它将发送一个PUBLISH数据包到服务器。此数据包包含有关传输的QoS级别、主题名称、有效负载等。MQTT对客户端支持三个级别的服务质量(QoS)[5]。如果应用程序消息以QoS 0传输,客户端没有收到已发布数据包。对于QoS 1,服务器使用PUBACK确认已发布的包,包括包标识符。然而在QoS 2中,交换了四个数据包。这个服务器确认收到发布数据包PUBREC包。然后,MQTT客户机将数据包发送到使用PUBREL包发布。然后服务器发送第四个数据包PUBCOMP,指示完成发布给定主题的应用程序消息。

C.订阅主题

如果MQTT客户机想要订阅应用程序在主题上发布的消息,它发送订阅数据包以及以UTF-8编码表示的主题名。这个服务器用SUBACK包确认订阅以及指示请求状态的返回代码。一旦订阅成功,应用程序消息在指定的主题上,使用最大QoS。要取消订阅主题,客户端将发送一个取消订阅确认数据包给服务器,服务器可以识别这是一个带着UNSUBACK包。

D.保持连接活动

在一定的超时之后,客户机之间的连接服务器被终止。为了保持连接,客户端通过发送PINGREQ包来指示它是活动的数据包到服务器。MQTT服务器响应客户机带有指示的标识符和PINGRESP包,保持连接。

E.终止连接

为了终止连接,MQTT客户端将发送一个DISCONNECT数据包给服务器。服务器没有确认此数据包。但是,所有应用程序消息与客户端相关的将被清除,并且客户端已断开与服务器的连接。

III..相关工作

在[6]中,作者讨论了现有的体系结构针对家庭自动化提出了一种新型的家庭自动化为所有新的物联网协议提供空间的架构。在〔7〕中,设计了一个原型,通过SMS。GSM网络和设备是使用微控制器的一个桥梁。它还关注网络的安全方面并提出一个安全、可靠和适应性强的家庭自动化系统。[8]中的研究工作证明对于受约束的节点,MQTT优于HTTP资源。事实证明,数据传输通过使用MQTT仅消耗约0.05%的电池/小时由3G网络连接。

IV.实施细则

A.网络设置

使用连接到ESP8266开发板连接LDR传感器检测光强度。ESP8266开发板处理传感器数据并执行驱动。它是通过WiFi进行数据传输的网关。ESP8266配置为MQTT客户端,将传感器数据发布到MQTT代理,并订阅控制驱动的命令。样机采用LED和蜂鸣器作为执行器。ESP8266模块发布主题“esp\sense”下的传感器数据。它订阅主题“esp \led”和“esp \buzzer”,接收控制连接到ESP8266的GPIOs的led和buzzer的命令。为ESP8266设置了MQTT mosquito broker,以发布和订阅应用程序消息。其他MQTT客户端(如PC和移动设备)可以通过现有的通信技术(如以太网、2G、3G、WiFi等)连接到MQTT服务器。

B.ESP8266

ESP8266[9]是一个低成本的开发委员会,它整合了GPIOS、I2C、UART、ADC、PWM和WiFi,实现快速原型制作。由3.3V电源供电,ESP8266和电压调节器和USB-to-serial封装为ESP-12模块。可通过以下方式在此板上开发应用程序: Arduino-IDE或基于 Espllorer的Lua。

C.软件设置

Arduino IDE用于编程ESP8266模块作为MQTT客户端。Mosquitto[10],一个开源的MQTT代理程序在Windows PC上实现。它使用两个服务要发布和订阅的mosquittoub和mosquittoub应用程序消息。MQTT代理与代理一起设置mosquitto代理所在PC的主机IP的URL安装在端口1883上。mqttlens[11],谷歌Chrome基于应用程序用作订阅的MQTT客户机传感器数据并发布控制ESP8266的GPIOS。这会探测正在在Mosquitto MQTT代理和ESP8266之间传输的消息。Android应用程序也是另一个MQTT客户机连接到Mosquitto MQTT代理并发布或订阅主题

V.结果与讨论

使用Mosquitto设置MQTT服务器。设立时服务器和启动服务,应用程序的发布/订阅可以在命令提示下查看消息。任何授权的MQTT客户机可以发布或订阅数据在此服务器上,其主机IP和端口号为1883。这个传感器数据由ESP8266模块汇总并发布到主题“esp/sense”上的MQTT代理。任何MQTT订阅此主题的客户可以查看传感器读数。可打开连接到ESP8266的LED和蜂鸣器,并且通过在适当话题。交换的MQTT消息通过mqttlens和mymqtt Android应用程序。多个执行器可以通过在同时。

VI.结论及今后工作

因此,MQTT是一种轻量协议,占用低带宽,消耗较少的功率。考虑到WiFi无线互联网接入的便利性,MQTT客户机应用程序构建在ESP8266上。在ESP8266上实现了基于MQTT的家庭自动化系统原型。连接到ESP8266的传感器和执行器通过公共家庭网关进行远程监控。因此,现有的基础设施可用于增强家用电器并使其智能化。这一实施提供了一个智能、舒适和节能的自动化系统。它还帮助老年人和不同能力的人更好、更容易地控制他们家中的电器。进一步,云平台可以用来汇总、分析和可视化数据。可以开发定制的图形用户界面,远程访问设备以监视和控制它们。

摘要

输液是将药物或维生素注入人体的治疗方法之一。这是加速治疗的有效方法,因为它在人体吸收的同时速度更快,并且可以避免对消化的影响。如果给药剂量不匹配或液体进入身体过多,会导致患者健康受到影响。本文的主要目的是提供关于使用光电二极管传感器和node.js服务器的每个患者使用的输液速度和输液量的信息。该服务器可以利用MQTT上的主题特性来区分每个输入数据。主题功能用于使用ESP8266身份交换数据,发送的数据是输液的体积和速度。主题作为MQTT的一个特性可以用来管理从多个注入到服务器中的数据。此外,当输注速率超过用户规定的正常极限时,系统还提供剩余体积和速度极限的警告信息。

三、理论基础

A.输液IV配方

监控是护士的责任,以确保病人的舒适和安全。根据医生的医嘱,输液器每分钟滴一次,可每8或24小时滴一次,可根据这些因素调整治疗、疾病、患者情况,治疗目标、液体成分和水平需要限制。程序是根据滴注治疗设定的,不应快或慢。有两种方法[12]用于计算滴数:

bull;毫升/小时。滴数是通过比较应给予的液体体积(ml)和给药时间(小时)来计算的。

bull;滴数/分钟。滴数的计算方法是将所需液体量(ml)乘以系数滴数,然后除以给药时间(分钟)。系数下降,或每毫米下降的数量,是由设备的大小决定的,而不是滴落。更广泛使用的因子滴剂是15、20、60滴毫升。

B.ESP8266

ESP8266是使用802.11 b/g/n协议的WiFi通信模块。它使用WPA/WPA2安全性、集成10位ADC、温度-40o至125oC、RAM:指令64kbytes、数据96kbytes、ROM:64kbytes、电源3.3V、深度睡眠电源lt;10uA、断电泄漏电流lt;5uA、唤醒和发送包时间lt;2毫秒,待机功耗lt;1.0兆瓦[3]具有I/O模拟引脚等附加功能的ESP8266设备之一是Wemos D1 Mini。该引脚可接受小于3.2V的数据。该设备还具有11个I/O数字引脚。使用这些ESP8266的其他优点是USB端口,用于串行数据通信和将程序上载到设备中。此外,程序可以通过Arduino IDE和Nodemcu以80/160MHz的时钟速度使用C语言上传,电源有两个输入端(5V和3.3V)。针脚5 V可被授予3.6至5.5 V的电压,功率大于200 mAh。Wemos D1 Mini拥有的另一个管脚是TX和RX作为串行管脚,G管脚用于接地,RST管脚以及复位。作为一种更容易重置的方法,在插脚3.3V[2]的一侧有一个重置按钮。

C.MQTT

MQTT(消息队列遥测传输)协议,在TCP/IP上运行,具有低开销(最小2字节)的数据包大小,因此对电源消耗的影响也很小。有两个组件,MQTT客户端、设备上的pub/sub和用于处理pub/sub数据的MQTT代理。pub/sub可以互相传输数据,而无需知道,因为它们之间的代理(空间去耦),并且不需要同时连接,因为代理将存储要发送回的数据。(时间去耦)。发布服务器或订阅服务器发送数据的过程不会相互干扰,因为代理程序将确保同步去耦。此外,MQTT还可以为其特性QoS(服务质量)可靠地发送数据。这些级别是:

bull;级别0,消息发送一次,如果一个不能传输数据,就不会再传输。

bull;级别1,消息至少发送一条,如果订阅方不识别,代理将向发布方发送消息,以接收确认

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

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