作者:付强

物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本。物联网本身也是 AI 和区块链应用很好的落地场景之一,各大云服务商也在纷纷上架物联网平台和服务。在 AI 和区块链的热潮过去之后,物联网很有可能成为下一个风口,在风口到来之前,提前进行一些知识储备,是很有必要的。

纵观人工智能的发展路线我们可以看到,人工智能近年来之所以能够突飞猛进,第一个原因是硬件的发展,使得深度学习神经网络的学习时间迅速缩短;第二就是数据,在我们这个大数据的时代,获取大量数据的成本已经很低了。

再来说物联网,像传感器、智能家电、可穿戴设备等,每天也都在产生着巨量的数据,这也是反馈给深度学习良好的训练数据。同时,学习的结果又可以再应用到物联网的终端,形成一个良性的循环。举个例子:

从交通探头我们可以采集到大量的交通实时图片,经过处理之后,喂给神经网络,比如 SSD。SSD 学会在图片中标注出人和汽车的位置,然后再把模型部署到探头端,探头就可以利用深度学习的接口,来实时地分析人流和车流情况了。

所以我认为物联网是 AI 落地的一个非常好的应用场景,随着 AI 的迅速发展,物联网这个同样在很多年前就提出的理论和技术,也会迎来新的春天。

如果想入门物联网,学习和了解 MQTT 协议是非常必要的,它解决了物联网中的一个最基础的问题,设备和设备之间,设备和云端服务之间,是怎么通讯的。MQTT 之于物联网,就好像 HTTP 之于 Web 那么重要。目前基本所有开放云平台比如阿里云、腾讯云、青云等都支持 MQTT 的接入。

MQTT 是什么

MQTT,全称为 Message Queue Telemetry Transport。在 1999 年,由 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 为了一个通过卫星网络连接输油管道的项目开发的。

之后 IBM 一直将 MQTT 作为一个内部协议在其产品中使用,直到 2010 年,IBM 公开发布了 MQTT 3.1 版本。在 2014 年,MQTT 协议正式成为了 OASIS(结构化信息标准促进组织)的标准协议。随着多年的发展,MQTT 协议的重点也不再只是嵌入式系统,而是更广泛的物联网(Internet of Things)世界了。

MQTT 的优点

为了满足低电量消耗和低网络带宽的需求,MQTT 协议在设计之初就包含了以下一些特点:

  1. 实现简单
  2. 提供数据传输的 QoS
  3. 轻量、占用带宽低
  4. 可传输任意类型的数据
  5. 可保持的会话(session)

MQTT 协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通讯保障。而它的应用范围也不仅如此,在移动互联网领域也大有作为:很多 Android App 的推送功能,都是基于 MQTT 实现的,也有一些 IM 的实现,是基于 MQTT 的。

MQTT 为什么如此轻量且灵活?


MQTT 发布和订阅模型

简单来说是因为 MQTT 协议有以下特性:

  • 基于 TCP 协议的应用层协议;
  • 采用 C/S 架构;
  • 使用订阅/发布模式,将消息的发送方和接受方解耦;
  • 提供 3 种消息的 QoS(Quality of Service): 至多一次,最少一次,只有一次;
  • 收发消息都是异步的,发送方不需要等待接收方应答。

虽然 MQTT 协议名称有 Message Queue 两个词,但是它并不是一个像 RabbitMQ 那样的一个消息队列,这是初学者最容易搞混的一个问题。MQTT 跟传统的消息队列相比,有以下一些区别:

  1. 在传统消息队列中,在发送消息之前,必须先创建相应的队列;在 MQTT 中,不需要预先创建要发布的主题(可订阅的 Topic);
  2. 在传统消息队列中,未被消费的消息总是会被保存在某个队列中,直到有一个消费者将其消费;在 MQTT 中,如果发布一个没有被任何客户端订阅的消息,这个消息将被直接扔掉;
  3. 在传统消息队列中,一个消息只能被一个客户端获取,在 MQTT 中,一个消息可以被多个订阅者获取,MQTT 协议也不支持指定消息被单一的客户端获取。

一个物联网老兵的经验之谈

我从 2015 年开始带领团队在物联网领域创业,从物联网软硬件平台的架构到实现,从上线运营到盈利,中间走过一些弯路,也踩过一些坑。同时,我在社区、论坛、QQ 群里面也经常看见一些刚刚接触 MQTT 的同学在问各种问题。我曾经在网络上面也搜索过 MQTT 相关的内容,发现系统介绍 MQTT 协议的内容很少,要么是翻译协议的 Specification,要么是单独实现某一个功能的教程。只教其然,未教其所以然。

所以我总结了自己的实践经验,以及我看到的大家常遇到的问题,写了这一门课程,系统地介绍 MQTT 协议,希望对学习 MQTT 的同学有所帮助。

课程大纲

本课程共有三部分内容,总计 14 课:

  • 第一部分:讲解 MQTT 协议以及其特性,并辅以代码。
  • 第二部分:讲解一个 AI+IoT 实战项目。
  • 第三部分:讲解如何搭建 MQTT Broker 和安全实践,同时也会介绍 MQTT 5.0 版本的新特性。

扫描下方二维码或点此试读订阅

其他推荐

  • 物体识别:TensorFlow on Android
  • 图解物联网

本课程地址:https://gitbook.cn/gitchat/column/5be4f4df2c33167c317beb8c

MQTT,物联网圈的 HTTP,万物互联第一步相关推荐

  1. 物联网概念升级,万物互联来袭

    物联网概念尚在升温,万物互联又袭来. 本月中旬,知名IT研究与咨询公司Gartner在2013 GartnerSymposium/Itxpo全球大会上向大家分享了他们对2014科技趋势的预测. 在会上 ...

  2. ESP8266+Blinker 的万物互联(智能家居篇)

    前面学习了使用ESP8266将温湿度等上传到阿里云平台,于是我想起来了万物互联,就想先做个有关智能家居的,通过查阅资料发现了Blinker(轻松物联网).下面是演示视频 Esp8266物联网 文章目录 ...

  3. 5G让万物互联成为可能 大连接时代谋划物联网

    5G.云计算和人工智能等技术的发展,将进一步激活物联网应用落地,5G作为下一代通信技术,不仅得到了众多国家大力支持,通信.芯片和运营商等企业积极谋划5G商业进程,从而使得物联网时代下的万物互联得以实现 ...

  4. 万物互联机遇 物联网步入迅速发展期

    物联网是一个泛概念,涵盖了所有领域,全球范围内不同厂商均从自身资源出发包装其物联网概念,如IBM早期所提的"智慧地球",思科倡导万物互联等等.以及在全球大多数国家也都纷纷推出本国的 ...

  5. 解读全球十大公司物联网战略,一个万物智能的世界即将到来

    解读全球十大公司物联网战略,一个万物智能的世界即将到来 互联网时代已经过去,移动互联网红利已褪去,信息科技开始向物联网转变,为社会数字化带来重大变革,并且物联网发展席卷全球,被视为未来科技发展重要方向 ...

  6. 全球十大公司物联网战略,一个万物智能的世界即将到来

    全球十大公司物联网战略,一个万物智能的世界即将到来 杨剑勇 百家号12-2207:28 文/杨剑勇 互联网时代已经过去,移动互联网红利已褪去,信息科技开始向物联网转变,为社会数字化带来重大变革,并且物 ...

  7. 万物互联之~网络编程基础篇

    入门篇¶ 官方文档:https://docs.python.org/3/library/ipc.html(进程间通信和网络) 实例代码:https://github.com/lotapp/BaseCo ...

  8. 万物互联!盘点国内八大物联网平台

    本文是对马智撰写的<国内物联网平台初探>系列文章的整理. 作者:马智.北京资信物联科技有限公司联合创始人兼研发总监. 责编:贾维娣.关注物联网领域,寻求报道或投稿请邮件联系 jiawd@c ...

  9. 从万物互联到万物智联,物联网的下一个爆发点在哪里?

      引言 2008年11月,IBM提出"智慧地球"的概念,意为将感应器嵌入到全球的汽车.建筑.电网等各种物体中,形成大规模的普遍连接,而后通过超级计算机和云计算实现对生活.生产的实 ...

最新文章

  1. windows 下frp服务启动_内网穿透frp linux服务端搭建和windows客户端使用
  2. 2021春季学期-创新设计与实践-Lesson4
  3. 读“ModSecurity配置关键字说明”之摘抄
  4. 不改代码也能全面 Serverless 化,阿里中间件如何破解这一难题?
  5. 打乱 数字_崔召幼儿园中班悦享时光——亲子益智游戏数字配对
  6. 大型网站的可伸缩性架构如何设计?
  7. java算法之希尔排序
  8. 计算机视觉标准数据集整理—PASCAL VOC数据集
  9. Linux卸载JDK的方法
  10. OSEK Os的任务调度
  11. 海贼王里面路飞的一些台词翻译
  12. 零基础学UI设计难吗?
  13. mysql存储包含单引号英文字符串,SQL中写入包含有英文单引号“ '' ”失败问题深入详解...
  14. java 集合之Interface Map<K,V> HashMap实现类
  15. Mybatis数据框架整合
  16. 前端展示图片404后使用onerror替换图片或其他变化
  17. Pb数字变成英文字母金额
  18. 表白套路计算机公式,520 超酷表白公式 520表白套路
  19. 手把手教你开发IOT设备
  20. 程序员免费学习编程的5个网站,你知道几个?

热门文章

  1. DirectX教程(6):初始化Direct3D
  2. oracle入门学习
  3. [原创]虚拟机检测技术剖析
  4. 关于“拉丁方”的C语言程序
  5. 获取当前url地址的方法
  6. 手把手教你 SSM 整合(非常非常非常非常非常详细)
  7. HDMI转MIPI DSI芯片TC358870XBG
  8. 05. HAXM is not installed
  9. 联邦学习——用data-free知识蒸馏处理Non-IID
  10. c语言计算2的n次方代码,计算2的N次方........有什么错吗?