MQTT之OneNet物联网通信
本帖最后由 ZeroQin 于 2021-6-28 10:45 编辑之前介绍了掌控MQTT与Easy IoT平台的联合使用,这里介绍下MQTT与OneNet物联网的简单通信。OneNet平台和Easy IoT之间最大的不同在于它可以支持多个设备同时订阅。也就是说,可以用一个掌控板来控制其他的掌控板。我这里仅用了两块掌控板来进行通信。
用前须知
OneNet平台新增了新版的物联网接入协议,以下教程仅支持旧版协议。因此,如果要使用Mind+和OneNet连接,用户必须使用旧版协议创建产品。
mqtt在onenet平台的实现:OneNet灯光控制
进入OneNet云平台注册登录自己的账号,登录之后进入开发者中心,在左上角的“全部产品-基础服务”中选择“多协议接入”。
进入页面后,切换到“HTTP”协议页面下,点击“添加产品”
填写完产品信息,点击“确定”之后,可以看到我们的产品创建完成。接下来,我们进入Test这个产品里,可看到一些产品信息。
我们再给这个产品添加设备
进入添加设备界面
我们给这个产品添加一个pub和sub设备我们进入设备查看,给设备添加APIKey。
到这,云平台创建设备就完成了。
接着,我们把设备联网后与云平台的设备连接上。使用两个掌控板,一个用来发送消息给topic0,一个用来接收topic0的消息。初始化MQTT参数(ONENET的设备的TOPIC是用户自己定义的) 各个参数:产品IDAPIKEY和设备ID
编写程序(1)发送端:掌控1连接pub设备使用pub的参数 (2)接收端:掌控2连接sub设备,这里的Topic_0必须定义成和发送端相同的topic——t0,并且使用扩展板,在P1引脚连接一个LED。使用sub的参数(3)开始通信:将发送端的程序上传的掌控1,接收端的程序上传到掌控2。上传成功后,按下掌控1的A键,掌控2连接的LED点亮;按下掌控1的B键,掌控2连接的LED熄灭。
同时,在OneNet平台可以看到设备处于在线的状态
在此通信基础上进行改动,甚至可以实现多块掌控板互联,这一部分就要各位看官自行探索了。
请问楼主添加设备的时候,设备名称和鉴权信息填写原则是什么?为什么要用sub和pub呢?
添加apiKey的原则又是什么?一定要用sub吗?
Forgotten 发表于 2019-11-1 16:12
请问楼主添加设备的时候,设备名称和鉴权信息填写原则是什么?为什么要用sub和pub呢?
添加apiKey的原则又 ...
设备名称和设备编号都是自定义的,随便写什么都可以。
sub和pub只是我定义的名称而已。
apiKey是平台生成的,我们只需要点击添加按钮即可。 另外设备添加apiKey是两个设备都要添加吗?都是填sub还是一个填sub一个填pub呢?
只能实现板和板的通信吗?可以实现网页或者手机控制板子吗? Forgotten 发表于 2019-11-1 16:17
只能实现板和板的通信吗?可以实现网页或者手机控制板子吗?
OneNet官方有个“应用管理”,看样子是可以自己定义组件,然后监控信息流的,但是好像也没法直接控制板子。你可以研究下。 ZeroQin 发表于 2019-11-1 16:22
OneNet官方有个“应用管理”,看样子是可以自己定义组件,然后监控信息流的,但是好像也没法直接控制板子 ...
我测试下来通过“设备列表”里面的“下发命令”是不能用的
图和图都不一样呀,协议一会儿是HTTP,一会是MQTT,怎么回事? onenet在地图定位是不能采用mqtt协议,根据我最近的学习,只能采用他的HTTP格式发送定位信息。 服务器的URL怎么知道的啊
求解释
Forgotten 发表于 2019-11-1 16:12
请问楼主添加设备的时候,设备名称和鉴权信息填写原则是什么?为什么要用sub和pub呢?
添加apiKey的原则又 ...
设备名称和设备编号都是自定义的,我使用sub和pub只是为了表示这两个设备分别作为发布端和订阅端(publish subscribe),便于自己理解。
OneNet在升级之前,添加APIKey都是平台自动生成的默认Master-APIKey,拥有对所有设备的访问控制权限,我文章中使用的也是这种APIKey。现在升级后的OneNet,添加APIKey会让用户自己设置,按照平台要求的格式设置就好,会默认关联当前设备,提交添加的APIKey后,平台回对数据进行处理,并不是显示设定的APIKey的原格式,但是应该不影响使用,这种新方式我最近几天找个时间研究一下,更新到文章中。 Forgotten 发表于 2019-11-1 16:16
另外设备添加apiKey是两个设备都要添加吗?都是填sub还是一个填sub一个填pub呢?
两个设备都要添加。项目是两个掌控板通过OneNet平台通信,OneNet平台相当于一个中转站,掌控1把信息发送给OneNet,OneNet处理后又发送给掌控2。因此必须保证两个掌控板必须和OneNet平台都连接上,而连接的方式就是一个掌控板连接一个OneNet设备,而Mind+里要连接OneNet设备,是必须要APIKey的。 Forgotten 发表于 2019-11-1 16:17
只能实现板和板的通信吗?可以实现网页或者手机控制板子吗?
应该可以通过网页控制,平台提供了一个应用管理,我后面研究下 ZeroQin 发表于 2019-11-1 16:16
设备名称和设备编号都是自定义的,随便写什么都可以。
sub和pub只是我定义的名称而已。
apiKey是平台生成 ...
现在OneNet升级了,需要自己输入APIKey,按照平台规则来就行,不影响使用 云天 发表于 2019-11-5 15:49
图和图都不一样呀,协议一会儿是HTTP,一会是MQTT,怎么回事?
这篇帖子第一次发布的时候OneNet平台还没有升级,使用的是MQTT协议;后来平台升级了,Mind+使用的协议被OneNet平台移到了“多协议接入--HTTP”协议中,因此我第二次发布的时候,对新版修改部分重新截图了,后面的图没有改完。只要明确一点,目前都是“多协议接入--HTTP”协议就行。 ZeroQin 发表于 2020-7-7 16:52
这篇帖子第一次发布的时候OneNet平台还没有升级,使用的是MQTT协议;后来平台升级了,Mind+使用的协议被O ...
明白了,OK tangjie 发表于 2020-4-18 14:18
onenet在地图定位是不能采用mqtt协议,根据我最近的学习,只能采用他的HTTP格式发送定位信息。 ...
这里其实用的就是HTTP协议 春风拂槛露华浓 发表于 2020-6-9 09:28
服务器的URL怎么知道的啊
求解释
Mind+里给出了的,在block上选择了OneNet平台,服务器地址会自动显示 ZeroQin 发表于 2020-7-7 16:45
应该可以通过网页控制,平台提供了一个应用管理,我后面研究下
研究了一下,OneNet平台提供了设备上传数据流的API,但是Mind+中并不支持。因此使用Mind+的话,只能够实现板与板的互联,因为物理设备没有办法上传数据到OneNet的数据流节点上。 您好,可以将掌控板的光强值传到onenet平台,形成折线图吗?不知道差在哪里,我的没成功。 请问新版还支持掌控板吗?
页:
[1]
2