天天看点

【MQTT】MQTT.fx连接OneNet平台

今天心血来潮想通过MQTT协议连接中移物联网OneNet。然后找了个MQTT客户端——MQTT.fx。

MQTT.fx 是目前主流的mqtt客户端,可以快速验证是否可以与IoT Hub 服务交流发布或订阅消息。设备将当前所处的状态作为MQTT主题发送给IoT Hub,每个MQTT主题topic具有不同等级的名称,如“小区/区域/车位闲置” 。MQTT代理服务器将接收到的主题topic发送给给所有订阅的客户端。

☛ 点击下载MQTT.fx ☚
☞ 转到中移物联网OneNet ☜
1. 创建物联网设备
  • 注册–>登录–>开发者中心–> 添加产品
    【MQTT】MQTT.fx连接OneNet平台
  • 添加设备
【MQTT】MQTT.fx连接OneNet平台

然后大概就是酱紫咯

【MQTT】MQTT.fx连接OneNet平台
2. MQTT.fx连接OneNet
  • 设置–>名称–>服务器地址/端口–>产品的名称或ID

服务地址

MQTTS 接入套件支持标准 MQTT V3.1.1 版本,支持TLS加密,接入服务地址如下

连接协议 证书 地址 端口
MQTTS 证书下载 183.230.40.16 8883

注意:要下载证书

设备安全认证

设备创建时,平台为每个设备分配了唯一的 key,设备登录时需要使用 通过 key 计算出的访问token 来进行访问安全认证。

设备可通过MQTT connnect报文进行登录,connect报文中三要素填写方法如下:

参数 是否必须 参数说明 示例
clientId 设备名称 A2-Area
username 平台分配的产品ID 288XXX
password 填写经过 key 计算的 token Trc9tlrmS18v**************************1BQt756wfPE=
  • 如何查看password

    注:需要经过处理才能在MQTT.fx 中使用

    【MQTT】MQTT.fx连接OneNet平台
    【MQTT】MQTT.fx连接OneNet平台
MQTT.fx中Password的处理
  • 直接上代码吧
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:OneNet.py

import base64
import hmac
import time
from urllib.parse import quote

def token(name,access_key):
    version = '2018-10-31'
    res = id  
    et = str(int(time.time()) + 3600)
    method = 'sha1'
    key = base64.b64decode(access_key)
    # 计算sign
    org = et + '\n' + method + '\n' + res + '\n' + version
    sign_b = hmac.new(key=key, msg=org.encode(), digestmod=method)
    sign = base64.b64encode(sign_b.digest()).decode()
    sign = quote(sign, safe='')
    res = quote(res, safe='')
    token = 'version=%s&res=%s&et=%s&method=%s&sign=%s' % (version, res, et, method, sign)
    return token


if __name__ == '__main__':
    id = 'products/288XXX/devices/A2-Area'	#设备目录,根据自己的目录修改
    access_key = 'Trc9tlrmS18v**************************1BQt756wfPE='

    print(token(id,access_key))
           

运行,得到Password然后复制到MQtt.fx 中的Password即可。

【MQTT】MQTT.fx连接OneNet平台
  • MQTT.fx设置
【MQTT】MQTT.fx连接OneNet平台

插入证书

【MQTT】MQTT.fx连接OneNet平台
  • 连接
【MQTT】MQTT.fx连接OneNet平台

连接成功

【MQTT】MQTT.fx连接OneNet平台

消息的发布/订阅下周再继续调试吧,18:36下班咯,拜!!!!

继续阅读