阿里云物联网平台设置:
一、创建设备
1、阿里云物联网平台,进入设备管理,创建产品和设备(新建一个产品和两个设备)
2、记录以下内容(三元组)
(1)创建IOT_ESP8266,给真实设备(ESP8266)使用
(2)创建IOT_MQTT,给虚拟设备(MQTT.fx软件)使用
二、自定义topic
1、进入产品详情
2、点击“定义topic类”添加topic,产品下面的设备会继承产品定义的topic
三、创建规则
作用:将发送到“数据源 topic ”的消息转发到“目的地 topic ”
数据源:IOT_MQTT topic:/{ProductKey}/IOT_MQTT/SW_LED
目的地:IOT_ESP8266 topic:/{ProductKey}/IOT_ESP8266/SW_LED
1、使用 mqtt.fx 软件发布 topic :/{ProductKey}/IOT_MQTT/SW_LED 消息
2、该规则将数据源 topic ”的消息转发到“目的地 topic ”
3、设备(ESP8266)订阅 topic:/{ProductKey}/IOT_ESP8266/SW_LED
4、设备接收到消息
设备上报消息到 数据源,通过该规则转发到 目的地,使用mqtt.fx软件订阅topic查看消息。
1、进入“规则引擎-云产品流转”
2、新建规则
3、添加数据源 topic
4、添加目的地 topic
5、规则创建完成
6、启动规则
设备端设置:
一、连接参数简介
1、域名和三元组
连接域名:
公共实例的连接域名为
${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883
。 其中:
${YourProductKey}
:设备所属产品的的ProductKey。
- ${YourRegionId}:区域节点ID,参见地域和可用区。
MQTT的CONNECT报文参数 :
mqttClientId: clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|" mqttUsername: deviceName+"&"+productKey mqttPassword: sign_hmac(deviceSecret,content)
mqttPassword:sign签名需把提交给服务器的参数按字典排序后,根据signmethod加签。
content的值为提交给服务器的参数(ProductKey、DeviceName、timestamp和clientId),按照字母顺序排序, 然后将参数值依次拼接。
- clientId:表示客户端ID,建议使用设备的MAC地址或SN码,64字符内。
- timestamp:表示当前时间毫秒值,可以不传递。
- mqttClientId:格式中
||
内为扩展参数。- signmethod:表示签名算法类型。支持hmacmd5,hmacsha1和hmacsha256,默认为hmacmd5。
- securemode:表示目前安全模式,可选值有2 (TLS直连模式)和3(TCP直连模式)。
示例:
假设
clientId = 12345,deviceName = device, productKey = pk, timestamp = 789,signmethod=hmacsha1,deviceSecret=secret
,那么使用TCP方式提交给MQTT的参数如下:mqttclientId=12345|securemode=3,signmethod=hmacsha1,timestamp=789| mqttUsername=device&pk mqttPassword=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString();
加密后的Password为二进制转16制字符串,示例结果为:
FAFD82A3D602B37FB0FA8B7892F24A477F85****
2、生成mqtt密匙
mqttPassword 是结合DeviceSecret、ProductKey、DeviceName、timestamp和clientId 使用哈希算法加密的。
为了方便,直接使用以下工具进行计算(使用三元组生成对应参数):
二、开发板程序调试
1、参数修改
2、烧录
3、重启开发板查看调试信息
三、MQTT.fx软件调试
1、配置mqtt
2、点击”connect“连接平台成功
3、发布消息
(1)输入数据源 topic:/{ProductKey}/IOT_MQTT/SW_LED
(2)输入要发布的消息,json格式
(3)点击”Publish“发布消息
4、查看开发板
(1)开发板LED亮
(2)调试信息收到订阅主题的消息