【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据

目录

  • MQTT协议简单介绍(每句都是干货)
  • 手把手流程
    • 服务器:阿里云物联网平台
    • 客户端:MQTTfx
  • 后记

MQTT协议简单介绍(每句都是干货)

MQTT是应用层协议,基于TCP/IP。
是一种发布订阅系统,发布订阅系统原理类似于总线。将一条消息发布到一个主题(topic) 上,那么所有订阅了该主题的客户端都可以获得该消息的一份拷贝。
对于消息发送者而言,无需知道哪些人在订阅消息;只需将消息发布到一系列主题,并订阅一些你感兴趣的主题。就像参加了一场聚会,选取并加入感兴趣的对话。
+++++++++++++++++++++++++++++++++++++++++++
深入一点:
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(服务器)(Broker)、订阅者(Subscribe)
消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload) 两部分:
Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息payload;payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
+++++++++++++++++++++++++++++++++++++++++++

手把手流程

在这里,我将演示发布者(Publish)往代理(Broker)发送MQTT消息
这里的发布者采用MQTTfx模拟,代理即为阿里云物联网平台。

服务器:阿里云物联网平台

网址:https://iot.console.aliyun.com/product(直接在百度搜还不能直接找到,不是很方便)
进入后的界面如下图:
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
1.点击公共实例,进入如下界面:
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
3.点击设备管理,之后这里主要关注产品和设备。它们是一对多的关系,产品如智能门锁,设备就可以是张三家的智能门锁,李四家的智能门锁。【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
4.首先新建一个产品,这里以MQTT上传车辆速度为例。点击创建产品。进入如下界面,所属品类选择自定义品类。其他的保持默认即可,可完全参考下图。最后点击确认。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
之后再点击左侧产品栏,就可以看到新建成功。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
5.为产品添加功能。点击查看我们刚刚新建的speed产品。进入如下页面。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
点击功能定义,来添加属性。这里需要启用编辑草稿,同时这里的物模型,大家可以自己理解一下。【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
点击编辑草稿后,这里以添加标准功能为例。【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
如图选择,我们在搜索框中输入速度,得到一个速度属性,点击将其选中后点击确认。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
然后点击发布上线。这里要注意框起来的标识符,后续很重要。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
6.新建设备。点击左侧设备,进入页面后点击添加设备。如下图。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
所有的设备一定是属于某一个产品的,所以选择刚刚新建的speed产品。DeviceName自己取即可。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
这时候我们就把阿里云物联网平台这里的工作做好了。接下来需要将MQTTfx与刚刚创建的这个stext设备做一个绑定

客户端:MQTTfx

自行下载,长右边这个样子。左边的工具我们待会也要用到。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
1.打开MQTTfx,页面如下,点击齿轮进行设置,即和刚刚阿里云平台创建的设备stext做绑定
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
2.绑定
点击齿轮后进入如下界面,需要填入5个东西。这5个东西都是从上面和MQTTfx图标放一起的左边的小工具:阿里云物联平台配置。
下载地址:https://pan.baidu.com/s/1YDebpLqCTjj8BPuA-yD8sg 提取码:3xzo
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
3.按上一步下载好阿里云物联平台配置,打开界面如下。也是需要填写5个内容,但是这些内容都是在阿里云物联网平台中获取的。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
首先,RegionID,看阿里云物联网平台的这里。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
接下来的ProductKey,DeviceName,DeviceSecret,点击下图的查看。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
这里就是这3个内容啦。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
阿里云物联平台配置中最后要填的一个ClientID我一般写和DeviceName一致

阿里云物联平台配置中的5个内容填好后,点击生成。结果如下图。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据

这里阿里云连接参数输出中只有4项,与刚刚我们说的MQTTfx中需要5个内容不一致是因为。在阿里云连接参数输出的连接域名,包括了MQTTfx中的下图2项。
阿里云连接参数输出的连接域名:gmllqG1A4wX.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883,
分为MQTTfx中的两部分,Broker Address为:mllqG1A4wX.iot-as-mqtt.cn-shanghai.aliyuncs.com,Broker Port为:1883。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
只所以要用阿里云物联平台配置这个工具,是因为其中涉及到了阿里云的一个加密算法

之后将对应的内容填入MQTTfx中,点击OK
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
4.MQTTfx与阿里云物联网平台连接。点击Connect,之后右边变为小绿灯。如下图。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
这时候我们再回到阿里云物联网平台,刷新一下,就能看到我们的stext设备已经是在线状态了。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
5.MQTTfx数据上传。
在发送数据前,需要指定发送上传的数据是哪一个topic,在下图位置。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
如何查看topic呢,在阿里云物联网平台中的产品项,如下图。因为我们一开始设置了速度属性,所以就在物模型通信Topic中的属性上报中查找Topic名。
这里是:/sys/gmllqG1A4wX/${deviceName}/thing/event/property/post,需要根据自己的deviceName修改一下,即改为了:/sys/gmllqG1A4wX/stext/thing/event/property/post。
将其填入MQTTfx中的topic框中,即上图。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
之后编写我们需要上传的数据,采用的是JSON格式。我们定义了一个速度属性,需要一个标识符来明确,这个标识符就在我们创建这个属性时的标识符。见下图。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
在MQTTfx中输入如下内容:

{
    "params":{
	"VehSpeed":60,}
}

其中的“params”是固定的,VehSpeed即为产品功能定义中的标识符。之后在MQTTfx中点击Publish。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据
(如果有很多的属性,参考下面的内容(主要是理解一下JSON格式):

{
    "params":{
	"LockState":0,
	"can":{
		"id":"11223344",
		"data":"0102030405060700",
		},
	"GeoLocation":{
		"latitude": 30.267763,  
		"longitude": 120.132707,  
		"altitude":1000,
		}
    }
}

6.在阿里云物联网平台中查看传上来的数据。
【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据

后记

以上便完成了使用MQTTfx模拟客户端,往阿里云物联网平台发布数据的功能实现,认真记录每一步。
后续继续记录如何将阿里云物联网平台数据存到阿里云的数据库中。

研究生了才抓紧学习,努力努力
欢迎交流讨论

本文章来源于互联网,如有侵权,请联系删除!原文地址:【阿里云物联网平台-1】使用MQTTfx模拟客户端,往阿里云物联网平台发布数据

相关推荐: OneNET物联网平台11 使用OneNET平台提供的API向设备发送命令

1、API介绍 使用onenet平台提供的设备命令API,直接向设备下发指令,当设备收到指令并进行应答时,API返回设备应答内容 请求API:POST http://api.heclouds.com/v1/synccmds?device_id=86676044…