MQTT协议详解:物联网中的轻量级消息传输与发布订阅模式
MQTT(Message Queue Telemetry Transport),遥测传输协议,提供订阅/发布模式,更加简单、轻量级、易于使用。对于受限环境(低带宽、高网络延迟、网络通信不稳定),可以简单概括为“为物联网而构建”。
MQTT 是一种基于“轻量级”发布-订阅的消息传递协议,在 TCP/IP 协议之上使用。它适用于连接到需要“小代码占用空间”或网络带宽有限的远程位置。一种支持一对多通信(称为发布或订阅)的协议。它由三个功能组成,即经纪人、发布者和订阅者。
中介充当转发 MQTT 通信的服务器。相反,发布者和订阅者充当客户端。发布者是负责发送消息的客户端,而订阅者是负责接收消息的客户端。 MQTT 交换的消息都附有一个“主题”地址。每个客户端都将这个“主题”视为接收地址,并对其进行发送消息的操作。用一个形象的比喻来说,中介就是接收电子邮件的邮箱。
MQTT通信机制
中介等待各个客户端连接到它。订阅者连接到中介并告诉中介他们想要订阅的主题的名称。这称为订阅。然后,发布者连接到中介并发送以主题作为收件人地址的消息。这就是出版。一旦发布者发布主题,中介就会将消息传递给订阅该主题的订阅者。
如上图所示,如果订阅者订阅了主题A,那么只有发布者发布了主题A,中介才会将消息传递给订阅者。订阅者和中介一直保持连接,而发布者只需要在发布时建立连接,但是当短时间内多次发布时,需要保持连接。由于中介者起到转发消息的作用,因此每个客户端不需要知道彼此的IP地址和网络上的其他接收地址。并且由于多个客户端可以订阅同一个主题,因此发布者和订阅者具有一对多的关系。在设备与服务器的通信中,设备相当于发布者,服务器相当于订阅者。
目前互联网上有很多MQTT物联网平台。这次我们将学习如何在Easy IoT中使用mqtt订阅主题和发布消息。
DFRobot Easy IoT平台链接:
学习目标
1.学习使用MQTT(EasyIot)与控制板交互
程序功能介绍
通过Easy IoT平台发送消息并在控制板上显示效果
配置步骤
1.通过以上链接进入Easy IoT平台,进入工作坊
2.选择自己的登录方式,按要求登录
3. 平台介绍
区域1:用户密码区域,用户和密码自动生成,不可修改。控制板的用户和密码必须与平台的用户和密码一致。
区域4:重新生成用户名和密码,点击右眼显示用户名和密码
2 区域:主题区域。每个主题代表不同类型的命令。当平台发出该主题的命令时,接收端将执行该主题对应的程序。
主题名称是自动生成的,无法修改。点击发送消息,输入主题,发送命令。
区域 3:添加新主题
点击发送消息后,出现如下界面,通过该界面我可以将字符串发送到控制板。
程序流程
1.连接wifi
2.MQTT模块介绍及程序搭建
配置MQTT信息,其中lot id(用户名)和lot pwd(密码)必须与平台一致
连接到 MQTT
初始化主题显示的文本
当主体收到命令时,就会执行相应的程序。在此程序中,一名受试者接收“on”以打开灯并打开显示器,并接收“off”以关闭灯并关闭显示器。另一个受试者在控件中画了一个圆圈。形状的半径为输入值的大小,主题名称必须与平台主题名称一致。流程如下(如果对程序部分有疑问,可以回到基础章节进行巩固复习)
控制板等待主题消息,收到命令后执行相应的程序。
示例程序
示范效果
生活日报网·版权声明
本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
【特别提醒】:如您不希望作品出现在本站,可联系我们要求撤下您的作品。邮箱 sunny@sdlife.com.cn