文章目录
一、前言
腾讯云物联网开发平台是一个标准的MQTT服务器。 这篇文章介绍如何利用腾讯云物联网开发平台
创建自己的产品、设备、使用MQTT设备端登录服务器,完成数据上传,命令下发响应,以及开发微信小程序,完成一条龙的 物联网产品开发
。
腾讯云物联网开发平台(IoT Explorer)为各行业的设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,提升传统行业设备智能化的效率,降低用户的开发运维成本,助力用户业务发展。
腾讯云物联网开发平台(IoT Explorer)是面向智慧生活与产业互联应用的物联网 PaaS 平台,为基于物联网的各行业设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及基于腾讯连连的小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,聚合腾讯生态内容能力。从而提升传统行业设备智能化的效率,降低用户的开发运维成本。
二、设计需求
当前以环境检测
项目为原型,从0开始介绍使用腾讯云物联网开发平台
完成自己物联网产品模型搭建,微信小程序开发,与设备实现通讯,完成数据上传、命令下发等功能。 实现一个正常的物联网产品的开发流程。
三、腾讯云平台与微信小程序设计
3.1 登录云平台
地址:https://cloud.tencent.com/
【1】选择物联网平台
微信扫描即可快速登录,然后选择产品,物联网,选择物联网开发平台。
【2】进入产品控制台
链接: https://console.cloud.tencent.com/iotexplorer
【3】选择公共实例
3.2 新建项目
【1】新建项目
【2】填写项目名称
【3】项目创建完成
3.3 产品开发
【1】进入产品页
点击项目名称,进入产品开发页面。
【2】新建产品
【3】填写产品信息
产品品类选择自定义产品品类
。
【4】产品创建完成
3.4 设备开发
【1】进入设备配置页
点击产品名称,进入设备配置页面。
【2】配置物模型
选择自定义品类。
(1)MQ2烟雾浓度
(2)MQ135空气质量
(3)MQ4有毒气体
(4)MQ7一氧化碳
(5)环境温度
(6)环境湿度
(6)添加完成
然后翻到最下面,点击下一步。
【3】设备开发-主题列表
设备开发页面有一个主题列表。可以了解到当前的主题信息。
$thing/up/property/CS0SLTKSYA/${deviceName} 发布 属性上报 $thing/down/property/CS0SLTKSYA/${deviceName} 订阅 属性下发与属性上报响应
这个页面不需要做什么,直接点击下一步即可。
【4】交互开发-配置小程序
(1)产品展示页
设置信息:
(2)快捷入口配置
(3)编辑面板
(4)产品页面
【5】设备调试-新建设备
创建完成。
设备的二维码: (打开微信小程序,搜索 腾讯连连
,打开腾讯连连,扫描下面的二维码就可以绑定设备了)
设备信息:
产品密匙:IyXmUW5sU/q1vnb5yzTkeQ== 产品ID:CS0SLTKSYA
【6】配置手机APP
如果除了小程序之外,还想使用手机APP,可以配置手机APP页面。
配置步骤和上面的微信程序一样。
3.5 设备登录
【1】MQTT协议
MQTT协议介绍:https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html
目前物联网通信支持 MQTT 标准协议接入(兼容3.1.1版本协议),具体的协议请参见 MQTT 3.1.1 协议文档。 和标准 MQTT 区别 1. 支持 MQTT 的 PUB、SUB、PING、PONG、CONNECT、DISCONNECT、UNSUB 等报文。 2. 支持 cleanSession。 3. 不支持 will、retain msg。 4. 不支持 QOS2。
【2】获取MQTT登录参数
就像我们登录QQ、登录微信需要账号密码一样,设备登录物联网平台也需要类似的东西。
官方文档地址: https://cloud.tencent.com/document/product/634/32546
生成密匙直接使用python代码获取:
#!/usr/bin/python # -*- coding: UTF-8 -*- import base64 import hashlib import hmac import random import string import time import sys # 生成指定长度的随机字符串 def RandomConnid(length): return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(length)) # 生成接入物联网通信平台需要的各参数 def IotHmac(productID, devicename, devicePsk): # 1. 生成 connid 为一个随机字符串,方便后台定位问题 connid = RandomConnid(5) # 2. 生成过期时间,表示签名的过期时间,从纪元1970年1月1日 00:00:00 UTC 时间至今秒数的 UTF8 字符串 expiry = int(time.time()) + 30*24*60 * 60 *365 # 3. 生成 MQTT 的 clientid 部分, 格式为 ${productid}${devicename} clientid = "{}{}".format(productID, devicename) # 4. 生成 MQTT 的 username 部分, 格式为 ${clientid};${sdkappid};${connid};${expiry} username = "{};12010126;{};{}".format(clientid, connid, expiry) # 5. 对 username 进行签名,生成token secret_key = devicePsk.encode('utf-8') # convert to bytes data_to_sign = username.encode('utf-8') # convert to bytes secret_key = base64.b64decode(secret_key) # this is still bytes token = hmac.new(secret_key, data_to_sign, digestmod=hashlib.sha256).hexdigest() # 6. 根据物联网通信平台规则生成 password 字段 password = "{};{}".format(token, "hmacsha256") return { "clientid" : clientid, "username" : username, "password" : password } if __name__ == '__main__': # 参数分别填入: 产品ID,设备名称,设备密匙 print(IotHmac("CS0SLTKSYA","dev1","IyXmUW5sU/q1vnb5yzTkeQ=="))
上面python的代码需要填入的参数从下面截图里获取:
运行得到的结果:
clientid CS0SLTKSYAdev1 username CS0SLTKSYAdev1;12010126;ZR5GT;2623045740 password 2debdc61b009ef8d09597f106f6f8ca36f101415459b0623780a81e711e7257c;hmacsha256
【3】MQTT主题订阅与发布
如果设备端想要得到APP页面的按钮状态就需要订阅属性下发和属性上报的响应,主题格式就是这样的:
主题订阅:
$thing/down/property/CS0SLTKSYA/dev1
主题发布:
$thing/up/property/CS0SLTKSYA/dev1
设备端向APP页面上报属性时,需要上传具体的数据,数据流的格式如下:
官方文档: https://cloud.tencent.com/document/product/1081/34916
比如:我的设备里有MQ2、MQ4、MQ7、MQ135、温度、湿度参数信息。
上传的格式如下。
{"method":"report","clientToken":"123","params":{"MQ2":30,"MQ135":95,"MQ4":30,"MQ7":20,"DHT11_T":14,"DHT11_H":70}}
【4】 物联网平台端口号与IP
官方文档: https://cloud.tencent.com/document/product/634/32546
域名格式:<产品ID>.iotcloud.tencentdevices.com
CS0SLTKSYA.iotcloud.tencentdevices.com
**得到域名对应的IP地址: ** 175.178.30.200
【5】模拟设备登录
为了方便测试,先使用MQTT客户端软件模拟硬件设备登录服务器。
依次填入参数之后,点击订阅主题、发布主题。
在设备调试页面,可以看到设备已经在线了:
打开设备页面,就能看到设备上传的数据:
【6】腾讯连连微信小程序
打开腾讯连连微信
小程序绑定设备,就可以看到设备的数据了。
步骤如下:
打开微信,找到小程序。
右上角搜索,腾讯连接。
然后打开腾讯连连,添加设备,扫描设备的二维码。
添加成功。
看到的信息:
到此,腾讯物联网云平台部署完成。
四、总结
到此,我们的 腾讯云IOT平台
的云端开发完成了。如果大家详细阅读了文章,并且跟着步骤操作了一次,相信你此刻对腾讯云IOT平台
应该有所认识了。我是DS小龙哥
,欢迎关注我,后续会有更多的技术文章、项目文章发布。