文章目录
前言
如何使用阿里云物联网平台,和如何连接物联网平台。
一、阿里云物联网平台
产品架构
- 设备通过MQTT等协议将数据上报到阿里云物联网平台,之后通过规则引擎,将数据发送到阿里云其他云服务,来实现需要的功能。
产品规格
基础版:提供安全可靠的设备连接能力,提供设备管理和固件升级能力,支持规则引擎进行数据引流。
高级版:在基础版的所有功能的基础上,增加了Alink协议的支持,增加了其他的一些功能。
学会基础版的前提下再学习高级版这样会更加轻松。高级版其实就是在基础版的基础上增加了一些功能。
其他概念的理论可以到阿里云官网的帮助文档观看https://help.aliyun.com/document_detail/30523.html?spm=a2c4g.11186623.6.552.71a93d9cRUqulH
计费标准
在初次开通物联网平台的前两个月,有100万条消息的免费额度。
MQTT
阿里云物联网平台MQTT与标准MQTT的区别
- 支持MQTT的PUB、SUB、PING、CONNECT、DISCONNECT、UNSUB等报文。
- 支持clean session
- 不支持will、retain mag
- 不支持QoS2
- 基于原生的MQTT Topic上支持RRPC同步模式,服务器可以同步调用设备并获取设备回执结果。
二、阿里云创建产品和设备
阿里云平台有一个月的免费试用,所以初学者可以尝试
1、开通物联网平台
- 首先打开阿里云官网,点进企业物联网平台
- 点击免费尝试
- 在开通物联网平台之前,需要先实名认证,可以选择个人实名认证和企业实名认证。实名认证之后可以开通物联网平台。
- 开通之后,首页如下:
2、创建产品
- 创建产品并添加产品相关信息
3、添加设备
- 点击添加设备、选中对应的设备、然后添加即可
- 可点击查看,可查看产品码、设备名、设备密钥等重要信息。
- 当设备连接到阿里云物联网平台时,阿里云会根据这3个参数,鉴别设备的身份。再创建MQTT-FX客户端软件对应的设备,创建完成的两个云端设备如下所示:
4、接入阿里云物联网平台
- 首先我们接入阿里云物联网平台,我们需要获取以下内容
以下是阿里云文档说明:
https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.6.588.5de26eebCAhXgL
地区和可用区如下所示:
- 这三个参数的设置方法,参见CONNECT报文参数说明:
- 其中,mqttClientId 和 mqttUsername 可以直接设置,mqttPassword比较麻烦,sign_hmac(deviceSecret, content) ,可以看到,mqttPassword 是根据设备密钥和content 进行哈希加密,而 content 又由多个参数字符合成。 这个如果自己实现会比较麻烦,可以使用自动生成的配置工具
链接:https://pan.baidu.com/s/1kYLzobVkl7CVKoT1JME1TQ
提取码:ezle
- 此工具,可以根据设备的三元组来生成MQTT连接的相关参数。
首先注意:SN/MAC这个参数。这个参数就是Clientid的值。这个值也会参与之后的哈希算法加密,一般设为设备的序列号和MACK地址。
- 如果我们是练习或者是学习,可以随便设置一个。 将对应的参数复制粘贴后,直接点击生成基本信息即可。
- 打开我们创建的产品,打开产品列表,点击参看,点击Topic列表。。可以看到预先定义了三个Topic。设备名在对应设备下会被替换。
- 我们还可以创建新的Topic类。 点击确定即可。
- 成功创建
- 这个主题可以订阅消息或者是发布消息。注意,这个主题只可以操作这四个主题,对于其他的任何主题都没有操作的权限。
5、 规则引擎
- 规则引擎可以将设备上报到IOTHub的数据转发到其他设备,并且可以将数据发送到其他的云服务来实现不同的功能。下面实现,通过规则引擎将一个主题的消息转发到另一个主题。阿里云的规则引擎有多种,这次我们选用“云产品流转”
- “云产品流转”当产品基于Topic通信时可以在规则引擎的数据流转中,编写SQL对Topic中的数据进行处理,并配置转发规则将处理后的数据转发到其他Topic或阿里云的其他服务
- 例如:将数据转发到另一个Topic中以实现M2M通信;将数据转发到RDS、表格存储、TSDB中进行存储;将数据转发到DataHub中,然后使用实时计算进行流计算,使用Maxcompute进行大规模离线计算;将数据转发到函数计算进行事件计算;可以转发到消息队列RocketMQ.消息服务实现高可靠消费数据。使用规则引擎的数据流转功能后,您无需购买服务器部署分布式架构,即呵实现采集+计算+存储的全栈服务。
- 创建规则引擎:
规则引擎需要使用SQL语句(结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统)
设置SQL语句
创建成功,启动规则引擎;
6、MQTT-FX
- MQTT-FX有问题的可以看以下我之前的学习日记
https://editor.csdn.net/md/?articleId=108580628
里面有详细的MQTT-FX操作说明,供大家参考
7、修改MQTT例程
- 设置好域名、设备ID、用户名、用户密码、wifi名、wifi密码以及修改持有人标识(每次都需要修改,随便修改即可)
- 修改主题以及注释掉向主题的回应。
下载程序,复位8266
以上说明ESP8266接入物联网成功。
连接MQT-FX客户端,配置完成之后,向以下的主题发送JSON字符串。
主题为:/a132qqtzQPK/iot_light_mqtt.fx/user/SW_LED(每个都不同)
即可点亮LED灯
参考链接
https://baike.so.com/doc/87665-92587.html