微信小程序使用MQTT远程控制单片机——阿里云物联网平台①

  • 阿里云物联网平台的使用
    • 第一,注册阿里云
    • 第二,找到找到物联网平台并创建设备
  • MQTT协议格式的讲解
    • MQTT中文文档
    • 固定报头 Fixed header
    • 2.3 可变报头 Variable header
    • 有效载荷 Payload
  • 持续更新

阿里云物联网平台的使用

第一,注册阿里云

打开阿里云官网进行注册https://www.aliyun.com/

第二,找到找到物联网平台并创建设备

进去物联网平台里面里面点击公共实例->创建产品

创建完成,点击查看,查看里面的产品情况

Topic类列表是一些我们订阅发布主题的一些东西。意思就是说,假设我们手机app控制电灯,我们需要订阅主题,我们温湿度上传数据到app就需要发布主题。反正就是通讯所需要的一些东西,由于知识浅薄,不太能讲明白

我们在功能定义里面的添加产品的标准功能这里添加我们所需要的功能

我们再添加功能时也可以选择插座产品这个默认功能以外的东西,我们可以在其他类型那里进行搜索并添加

当然我们添加后的功能也还可以进行修改

接下来我们就要添加我们的设备了,我们之前创建产品只是设备的模型并不是我们用来控制或者显示终端信息的设备,这就相当于我们提出了我们的概念,然后我们必须添加一个设备用来跟我们的终端控制使用,因为我们在之前的产品里面添加好了我们的功能,所以我们的现在添加的设备也集成了所有的功能

我们云端对接设备时所需要的证书,其实就是确认你是那个产品那个设备。我们等下可能要用到

MQTT协议格式的讲解

MQTT中文文档

下面的内容全部都是MQTT中文文档里面所有的,因为为了记录自己所学的东西,所以干脆直接截图到自己博文做笔记了

MQTT控制报文包含三层结构

固定报头 Fixed header

每个MQTT控制的报文都有一个固定报头,这个固定报头格式如下:


MQTT控制报文的类型

标志位

  • 是不是看这个类型、标志位懵逼不知道怎么下手,其实不用太过在意啥意思,只要知道有这个东西,有这个格式到时候根据情况按照文档直接使用就行,

剩余长度
位置:从第2个字节开始。

剩余长度(Remaining Length)表示当前报文剩余部分的字节数,包括可变报头和负载的数据。剩余长度不包括用于编码剩余长度字段本身的字节数

剩余长度字段使用一个变长度编码方案,对小于128的值它使用单字节编码。更大的值按下面的方式处理。低7位有效位用于编码数据,最高有效位用于指示是否有更多的字节。因此每个字节可以编码128个数值和一个延续位(continuation bit)。剩余长度字段最大4个字节。

字节计算方式实例:原作者

2.3 可变报头 Variable header

  • 很多控制报文的可变报头部分包含一个两字节的报文标识符字段。这些报文是PUBLISH(QoS > 0时), PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE, SUBACK,UNSUBSCRIBE,UNSUBACK。

  • SUBSCRIBE,UNSUBSCRIBE和PUBLISH(QoS大于0)控制报文必须包含一个非零的16位报文标识符(Packet Identifier)[MQTT-2.3.1-1]。客户端每次发送一个新的这些类型的报文时都必须分配一个当前未使用的报文标识符 [MQTT-2.3.1-2]。如果一个客户端要重发这个特殊的控制报文,在随后重发那个报文时,它必须使用相同的标识符。当客户端处理完这个报文对应的确认后,这个报文标识符就释放可重用。QoS 1的PUBLISH对应的是PUBACK,QoS 2的PUBLISH对应的是PUBCOMP,与SUBSCRIBE或UNSUBSCRIBE对应的分别是SUBACK或UNSUBACK [MQTT-2.3.1-3]。发送一个QoS 0的PUBLISH报文时,相同的条件也适用于服务端 [MQTT-2.3.1-4]。

  • QoS等于0的PUBLISH报文不能包含报文标识符 [MQTT-2.3.1-5]。

  • PUBACK, PUBREC, PUBREL报文必须包含与最初发送的PUBLISH报文相同的报文标识符 [MQTT-2.3.1-6]。类似地,SUBACK和UNSUBACK必须包含在对应的SUBSCRIBE和UNSUBSCRIBE报文中使用的报文标识符 [MQTT-2.3.1-7]。

  • 需要报文标识符的控制报文在 表格 2.5 -包含报文标识符的控制报文 中列出。

有效载荷 Payload

某些MQTT控制报文在报文的最后部分包含一个有效载荷,对于PUBLISH来说有效载荷就是应用消息。表格 2.6 – 包含有效载荷的控制报文 列出了需要有效载荷的控制报文。

持续更新

微信小程序使用MQTT远程控制单片机——阿里云物联网平台①

微信小程序使用MQTT远程控制单片机——MQTT控制报文②

微信小程序使用MQTT远程控制单片机——MQTT控制报文③
学习视频
该博文为个人学习笔记记录,由于知识量储备不够若有错误之处或者补充,请各位大佬批评指正,持续更新中……

微信小程序使用MQTT远程控制单片机——阿里云物联网平台相关推荐

  1. 微信小程序使用MQTT.js连接阿里云IoT物联网平台

    官方已经开源了一个SDK版本,也是基于mqtt.js,进行了各种封装: https://github.com/aliyun/alibabacloud-iot-device-sdk · 阅读以下内容需要 ...

  2. 微信小程序连接物联网(三):微信小程序远程遥控宿舍开门 基于NodeMCU通过MQTT协议连接阿里云物联网平台

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

  3. Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  4. java实现mqtt服务端_基于Swoole使用MQTT协议连接阿里云物联网平台设备实现消息订阅

    阿里云物联网平台为设备提供安全可靠的连接通信能力,支撑设备数据采集上云,我们这里认为阿里云物联网平台是 MQTT 服务端,那么我们自己的设备作为客户端,应该如何实现消息订阅? 阿里云没有提供 PHP ...

  5. 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

    树莓派mqtt协议连接阿里云物联网平台(三) 前面树莓派的数据已经上传到云端,可是我的android手机该如何获取树莓派上传的这些数据呢,,困惑了我好几天的疑问,解开的那一刻,真的时拨开云雾见青天啊. ...

  6. MQTT之十一 阿里云物联网平台网址

    阿里云物联网平台--阿里云  网址 https://help.aliyun.com/product/30520.html?spm=a2c4g.11186623.6.540.70283e3cGZdZMA ...

  7. 中移M5311模块MQTT协议连接阿里云物联网平台(干货)

    一.准备三元组 在阿里云物联网平台新建产品和设备后,平台给每一个设备自动赋予三元组. 二.准备MQTT协议参数 新建产品时,阿里云物联网平台会分配一个含productkey的子域名,端口号固定是188 ...

  8. 微信小程序文件直接上传阿里云OSS

    第一步 配置Bucket跨域访问 第二步 微信小程序配置域名白名单 以上两步,请参考阿里云官网,如何在微信小程序环境下将文件上传到OSS_对象存储 OSS-阿里云https://help.aliyun ...

  9. 微信小程序将资源上传阿里云OSS

    我们在实际业务中经常能遇到将各种资源上传到云服务器,这样做第一是能更好的管理我们的比如图片资源,视频,音频资源等,同时也能节约公司的网络带宽,减少各种资源随着时间的推移资源越来越多造成服务器的硬盘压力 ...

最新文章

  1. 增加service_.NET Core + Kubernetes:Service
  2. sublime配置全攻略
  3. python 使用全局变量_如何在Python中的不同模块中使用全局变量
  4. c++怎么保存汉字_“的汉字 ”写作练习
  5. java mac postgresql_PostgreSQL 的安装与使用 for mac
  6. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)
  7. 腾讯云技术复盘「数据丢失事件」,为什么业务上云还要再做云备份?
  8. 最新发布|深度学习必学“圣经”花书出视频课了!附带论文代码精读讲解!
  9. python嵌套列表输出_Python列表的增删改查排嵌套特殊输出格式
  10. 异步任务+JSON解析+ListView分页
  11. Orcad Schematic常用功能
  12. 数理统计01:线性相关性系数,斯皮尔曼相关性系数计算及详解
  13. 2020年百度运维工程师笔试真题(附答案)
  14. LaTeX 公式左对齐与右对齐
  15. 爬虫开发04--代理IP
  16. git仓库账号或着密码修改之后需要重新配置SSH公钥
  17. 企业应如何选择服务器,既能节省成本又保证性能
  18. Apache Commons Codec介绍
  19. 机械中计算机的应用研究,机械设计制造自动化中计算机技术的应用
  20. 寒假训练十(map,pair,string)2020.02.17(4题)

热门文章

  1. 【ProVerif学习笔记】6:握手协议(handshake protocol)建模
  2. Java知识点全面汇总
  3. 工信部成立12321垃圾信息举报中心
  4. Idel中maven全局配置
  5. 【VBA】在word中写多级列表
  6. vs2012 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。
  7. 第十四章 SQL命令 CREATE TABLE(一)
  8. 1.1到底什么是云计算
  9. 微信公众平台定制开发
  10. mysql 多个select查询_MySQL的select多表查询