概述
今天心血来潮想通过MQTT协议连接中移物联网OneNet。然后找了个MQTT客户端——MQTT.fx。
MQTT.fx 是目前主流的mqtt客户端,可以快速验证是否可以与IoT Hub 服务交流发布或订阅消息。设备将当前所处的状态作为MQTT主题发送给IoT Hub,每个MQTT主题topic具有不同等级的名称,如“小区/区域/车位闲置” 。MQTT代理服务器将接收到的主题topic发送给给所有订阅的客户端。
☛ 点击下载MQTT.fx ☚
☞ 转到中移物联网OneNet ☜
1. 创建物联网设备
- 注册–>登录–>开发者中心–> 添加产品
- 添加设备
然后大概就是酱紫咯
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.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.fx设置
插入证书
- 连接
连接成功
消息的发布/订阅下周再继续调试吧,18:36下班咯,拜!!!!
最后
以上就是善良高跟鞋为你收集整理的【MQTT】MQTT.fx连接OneNet平台的全部内容,希望文章能够帮你解决【MQTT】MQTT.fx连接OneNet平台所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复