打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
物联网的基础协议之MQTT

1.本文概述

本文主要介绍MQTT相关的概念,并且通过搭建MQTT服务器和客户端,测试MQTT的通信。本文主要从实际使用的角度去理解MQTT,并不会讲述过于深奥的理论知识。可以通过下面的文章了解MQTT的相关介绍。

2.MQTT基本介绍

MQTT的全称为Message Queuing Telemetry Transport,也就是消息队列遥测传输。1999年,IBM公司的Andy Stanford-Clark 和来自Eurotech公司的Arlen Nipper创造了MQTT协议。其中“MQTT”中的“MQ”是来自IBM的MQ系列消息队列产品线。

MQTT最初的用法是在石油管道控制中,将每一个节点的信息通过卫星传到到控制中心去。所以MQTT从创立之初就是为物联网创立。

那么什么是MQTT协议呢?简单地说,主要有下面三个特点:

(1)协议本身基于TCP/IP,轻量级的发布和订阅

(2)开放的协议

(3)简单,容易实现

所以该协议可以应用于各种环境中,非常适合需要低功耗而且带宽有限的IoT场景中,比如:

  • 遥感数据

  • 汽车

  • 智能家居

  • 智慧城市

  • 医疗医护

运用MQTT协议,设备可以很方便的接入物联网服务,管理并处理数据,最后应用到各种业务场景

3.mqtt服务器的搭建

目前服务器的搭建环境是ubuntu16.04

采用的服务器是mosquitto,官方网站https://mosquitto.org

在控制台上输入下面的命令进行下载。

  1. wget https://mosquitto.org/files/source/mosquitto-1.5.7.tar.gz

下载完成后解压并进入mosquitto-1.5.7目录

在编译时,先安装gcc编译工具,然后下载依赖的环境

  1. sudo apt-get install openssl

  2. sudo apt-get install libssl-dev

  3. sudo apt-get install uuid-dev

最后执行 make开始编译,编译完成后输入 sudo make install安装程序。

接着配置服务器相关信息

  1. sudo cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

  2. sudo vim /etc/mosquitto/mosquitto.conf

添加一个用户,如下图所示

这样,mqtt服务器就安装完成了。

下面启动服务器

  1. mosquitto -c /etc/mosquitto/mosquitto.conf -v

测试

对于MQTT协议来说,有一个非常关键的模式:发布/订阅模式。发布/订阅模式(pub / sub)是传统客户端 - 服务器模型的替代方案,客户端直接与端点通信。然而,Pub / Sub将正在接收消息(称为订户)的另一客户端(或更多客户端)发送特定消息(称为发布者)的客户端去耦,这意味着发布者和订阅者不了解彼此的存在,有一个第三个组件,称为代理,由它作为中转,它将过滤所有传入的消息并相应地分发给它们,所以我们来详细介绍一下刚刚提及的方面。

订阅者

订阅者的角色要保持长连接状态,我们可以另外开一个控制台窗口进行测试订阅一个topic01的主题,去接收这个主题的消息。

  1. mosquitto_sub -v -t topic01

这个过程可能会遇到如下的错误

解决办法

  1. sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

这样订阅者就处于不断等待消息到来的模式。

发布者

这时可以另外再开一个控制台,去发布topic01主题的消息。

  1. mosquitto_pub -t topic01 -m '123456'

不难看出,我们的订阅者已经接收到消息了。

4. mqtt客户端的使用

对于mqtt客户端的使用,可以测试mqtt,所以我们的环境选择Windows平台。可以使用MQTT.fx。

MQTT.fx 是目前主流的mqtt客户端,可以快速验证是否可以与IoT Hub 服务交流发布或订阅消息。设备将当前所处的状态作为MQTT主题发送给IoT Hub,每个MQTT主题topic具有不同等级的名称,如“建筑/楼层/温度。” MQTT代理服务器将接收到的主题topic发送给给所有订阅的客户端。

下载地址:http://www.jensd.de/apps/mqttfx

安装最新的版本就可以了

由于我们前面已经在ubuntu上搭建好了MQTT服务器,所以接下来直接使用

点击publish即可在我们的订阅者上监听到消息

同时MQTT.fx 也可以作为监听者

这样我们就创建好了一个mqtt本地的测试环境。

5. 总结

本次的实验目的是体验一下mqtt的数据传输,同时学习了mqtt的一些基本的使用方法,后面会详细介绍物联网通信以及云服务器相关的知识,本文并没有详细介绍mqtt具体在项目中的使用方法,后面再做完善。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
S7PLC通过MQTT推送消息到手机
MQTT(使用mosquitto做broker)做Android推送部分总结
使用 Mosquitto
树莓派上的MQTT环境搭建
物联网高层通讯协议揭秘1:MQTT
物联网网关API接口,轻松开发工业物联网云平台
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服