概述
接入百度云服务
- 前言
- 什么是mqtt
- mqtt主要功能
- 对接mqtt服务
- 物联网平台介绍
- 百度iot物联网平台
- mtqq.fx模拟接入
- esp32使用mqtt
前言
由于微信对接mqtt服务需要服务器备案等一系列操作,而我的服务器一直是裸奔状态,故选择第三方mqtt服务,在阿里云,腾讯云,百度云中,百度云物联网服务是限制相对较少,对接比较简单,适合新手上手。同样适合新手阅读。
什么是mqtt
首先简单介绍一下mqtt通信,引用百度的话:
MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。
说白了,其实mqtt服务器就相当与一个信息处理中转站
mqtt协议是一个轻量级的通信协议,而且速度快,容易对接,因此在物联网行业中较为常用,由于其开销很小,很容易在单片机上运行。
首先放一张图
假设我们有一台智能冰箱,我们想用手机接受或者控制冰箱,而冰箱已经接入网络,手机也接入了网络,但是现在的问题是冰箱和手机获取的是区域网ip,如果手机和冰箱不在同一个区域网下,该怎么传输呢?网络中的传输底层是通过ip地址来访问,两者无法直接通信,中间需要一个具有公网ip的桥梁,这个桥梁有很多种,而mqtt便是其中的一种。
mqtt主要功能
这里仅说mqtt两大主要功能,其他的功能可以自行查找,分别是publish和subscribe,从英文名字就可以看出来,分别是发送和订阅,这两个功能怎么用呢?我们还需要了解一个概念-主题topic。
我们继续从刚刚的手机和冰箱说起,假设我们要控制冰箱的温度,我们就要给服务器发送信息,需要用到publish发送,但是如果有很多设备都接入了这个服务器,服务器怎么知道你的信息要发给哪个设备,所以在发送时要指定这个信息的主题topic,而冰箱需要subscribe订阅这个主题,这就好像在某些社交软件上,我想关注某样东西,我只要关注了这个圈子,别人往这个圈子发信息,我就知道这个东西有新进展,同样,如果冰箱订阅subscribe了"温度"这个主题,我的手机往温度这个主题发信息,服务器看到我的信息是关于温度的,然后通过查找发现冰箱关注这这个主题,于是便向冰箱发送这个消息。
对接mqtt服务
接着上面的话题,冰箱怎么接入服务器呢,这里有种方法,包括tcp通信,ssl,wss等,都是不同的通信协议。esp32基本支持主流的接入协议,这里选用较为简单的tcp接入方式,tcp通信即通过ip地址进行传输,但仅仅知道服务器的ip地址是不行的,就像我们登陆qq,同样需要认证,认证的方法也是多种多样,我们选用用户名,密码登陆。有了用户名和密码就可以使冰箱接入服务器,但是如果我家多台设备,怎么区分多台设备呢,不能每一台设备都申请一个用户名和用户密码吧,这里就需要另一个东西,id即给自己的设备唯一的编号,每一个设备用户名密码一样,但是id不一样,这样就可以区分每一个接入的设备,于是便有了接入三要素:用户名 ,密码,id编号。
物联网平台介绍
目前主流的物联网平台包括阿里云,百度云,腾讯云都支持mqtt协议的设备接入,但是出于安全考虑,他们的接入方式都进行了相关限制,比如阿里云的id编号不能随意设置,传输需要加密等等,但大体上都是差不多的,这里选用较为简单的百度云
百度iot物联网平台
先来看一下百度云的接入收费价格
<100万条免费,如果是学习的话,这个完全够用
如果是新用户,需要注册认证,然后我们就进入物联网服务
在项目列表处我们新建一个项目,如下
可以看到这里划分了两者类型,一种是设备型,一种是数据型,设备型是将设备发送的信息看成各种属性,然后提供一些更高级的服务,比如像物可视啊等服务,而数据型则是比较基本的通信,它负责传输信息,这里我们选择数据型,当然,数据型的信息可以通过规则引擎发送给设备型等。
提交成功后我们便可以在项目列表看见我们的项目
我们有了一个项目了,然后我们需要获取到接入的三要素
进入项目,首先是创建用户
接下来便是填写用户名,同时选择密码接入
下一步是创建策略,我们可以在里面定义我们的主题toupic
这里我们定义一个ctrl_led的主题
到此我们已经完成用户设置,点击下一步便可以获取用户密码,这里主要,下图只有我们需要的密码
我们的用户名在哪里呢?
点击创建完成后,在这里
到此,我们有了三要素中的两个,还有一个设备id编号呢?这个在百度云物联网服务中用户可以自己设定,只要不一样便可,而在阿里云需要指定每一个设备的id编号。另外一定要保存好上面的密码,一旦丢失只能重新生成。
mtqq.fx模拟接入
首先我们在百度云上点击连接测试
输入我们刚刚获取的密码,点击connet
接着我们使用一个mqtt.fx软件模拟设备接入百度云
点击设置
然后进入这样一个界面
tcp连接端口默认是1883端口,client id即三要素中的设备编号id,这个可以任意,但是要唯一,我们还需要百度云的ip,这里可以使用电脑,同时按下win+r,win键就是那个win图标键,然后在输入框输入cmd,便可打开cmd命令框
然后在百度云设备列表找到百度云物联网服务的域名
复制域名,在cmd窗口输入 ping加域名便可获取百度云物联网服务ip地址
复制ip地址到mqtt.fx软件
然后输入用户名和密码
点击下方apply应用并关闭
点击connet
如果这里为绿色代表接入成功
然后在这里输入订阅的主题
可以看到我已经订阅了ctrl_led
然后我们返回百度云测试界面,在ctrl_led主题发送消息
然后便可以在mqtt.fx看到接受的消息
到此已经成功接入百度云
使用esp32接入我会在下一篇更新
esp32使用mqtt
最后
以上就是复杂斑马为你收集整理的esp32使用mqtt接入百度云服务前言什么是mqttmqtt主要功能对接mqtt服务物联网平台介绍百度iot物联网平台mtqq.fx模拟接入esp32使用mqtt的全部内容,希望文章能够帮你解决esp32使用mqtt接入百度云服务前言什么是mqttmqtt主要功能对接mqtt服务物联网平台介绍百度iot物联网平台mtqq.fx模拟接入esp32使用mqtt所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复