边做边学 之 树莓派系列 - MQTT (1)

13 篇文章 2 订阅
6 篇文章 0 订阅

边做边学 之 树莓派系列 - MQTT (1)

标题有点长。 这个系列以树莓派为锚。MQTT是网络的主干。BLE,enocrean 以及其他一些现场总线(fieldbus) 是分支。我们先从MQTT协议入手。树莓派上跑MQTT不管是client还是Broker在网上都已经有不少教程,非常容易,不用一个小时跑起来。但我们自然是不单满足于此。果断往细了学(要不这个系列很快就没货了), 最后学以致用,搭平台验证。

MQTT 简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),目前有两个分支,MQTT,MQTT-SN。 MQTT for sensor network还没有正式发布,我们略过 (我也不知道啊)。 MQTT 是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

首先一个粗粒度的了解:
1. MQTT的拓扑结构
2. MQTT的应用
3. MQTT协议

MQTT的拓扑结构

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。下图是从官网(下文有链接)拷贝过来的。
* 图中的数据生产者是一个温度传感器,作为MQTT client.
* 图中的数据消费着是一个手机App,以及一个后端系统(比如可以是空调控制器)
* 图中的"消息代理"(Broker), 或者称之为MQTT服务器可以是树莓派这样的嵌入式设备,也可以是台式机,也可以是位于cloud端的服务(SAAS, software as a service)。

在这里插入图片描述
做个比喻,看官您在关注本公共号并收到该篇文章的推送,便是如上的数据消费者,首先订阅(subscribe)某个"主题"(Topic),然后收到该“主题”的推送(publish)。 而该篇文章的生产者(作者)并不直接和消费者(您)发生直接交互。生产者需要做的就是把数据打上“主题”标签(Topic)推送给Broker。

MQTT的应用

MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。尤其在物联网(IoT)、小型设备、移动应用等方面。目前看到的案例有

  • 车联网
    提供汽车共享服务的BMW “DriveNow"团队采用了MQTT技术
    在这里插入图片描述

  • 工业4.0
    基于MQTT,在工业领域用在许多典型实时SCADA/IIoT、监视、和数据收集系统中的Sparkplug的典型架构如下。可参见如下图中groov公司的产品。
    在这里插入图片描述

  • 仓储运输
    下图为HiveMQ Cloud给出的案例

  • 智能家居
    网上能看到最多的MQTT的DIY一般都是智能家具的例子了。 但是智能家居成熟的产品以及市场还有待观察。我后面也准备利用树莓派+蓝牙传感器+enocean传感器 + RS485 + 执行器 做一个简单的演示(这个最贴近生活,最容易搭建)。
    在这里插入图片描述

MQTT的协议

MQTT已有的版本MQTT3.1,3.1.1 以及MQTT5。 后面就从MQTT5的协议入手。

  • 1999 MQTT Invention

  • 2010 MQTT3.1

  • 2014 MQTT3.1.1 OASIS standard

  • 2016 MQTT3.1.1 ISO standard

  • 2019 MQTT5 OASIS standard

开篇的最后介绍一下一些有用的资源
官网的链接: https://mqtt.org/
开源代码: 开源的代码很多。商业的也不少。我用过的没几个。挑知道的说。
* Mosquitto,C, https://www.mosquitto.org/
* Cassandana,JAVA
* FlashMQ, C++
* HBMQTT , Python, https://github.com/beerfactory/hbmqtt

Cloud:
* MyQttHub.com: https://myqtthub.com/
* HiveMQ Cloud: https://www.hivemq.com/mqtt-cloud-broker/
* CouldMQTT: https://www.cloudmqtt.com/

Sparkplug:
https://projects.eclipse.org/projects/iot.sparkplug

也自建了一个公众号,用于交流学习。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值