目录

腾讯云物联网服务器与微信小程序设计讲解设备如何上云,如何对接微信小程序

腾讯云物联网服务器与微信小程序设计(讲解设备如何上云,如何对接微信小程序)

文章目录

一、前言

腾讯云物联网开发平台是一个标准的MQTT服务器。 这篇文章介绍如何利用 腾讯云物联网开发平台 创建自己的产品、设备、使用MQTT设备端登录服务器,完成数据上传,命令下发响应,以及开发微信小程序,完成一条龙的 物联网产品开发

腾讯云物联网开发平台(IoT Explorer)为各行业的设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,提升传统行业设备智能化的效率,降低用户的开发运维成本,助力用户业务发展。

腾讯云物联网开发平台(IoT Explorer)是面向智慧生活与产业互联应用的物联网 PaaS 平台,为基于物联网的各行业设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及基于腾讯连连的小程序应用开发能力,并打通腾讯云基础产品及 AI 能力,聚合腾讯生态内容能力。从而提升传统行业设备智能化的效率,降低用户的开发运维成本。

二、设计需求

当前以 环境检测 项目为原型,从0开始介绍使用 腾讯云物联网开发平台 完成自己物联网产品模型搭建,微信小程序开发,与设备实现通讯,完成数据上传、命令下发等功能。 实现一个正常的物联网产品的开发流程。

三、腾讯云平台与微信小程序设计

3.1 登录云平台

地址:https://cloud.tencent.com/

【1】选择物联网平台

微信扫描即可快速登录,然后选择产品,物联网,选择物联网开发平台。

https://i-blog.csdnimg.cn/blog_migrate/ec64d5e88bbd500d0257d70ad34b559b.png

【2】进入产品控制台

链接:

https://i-blog.csdnimg.cn/blog_migrate/1a3185051d69dbf8fad650334d1f3cb9.png

【3】选择公共实例

https://i-blog.csdnimg.cn/blog_migrate/9dcb21310f6e239d8ed16d2fa1162fbd.png

3.2 新建项目

【1】新建项目

https://i-blog.csdnimg.cn/blog_migrate/d02b072b4eff10152209c301a9e0f25a.png

【2】填写项目名称

https://i-blog.csdnimg.cn/blog_migrate/ebec37f3f880823cbdaf963cc8b1d708.png

【3】项目创建完成

https://i-blog.csdnimg.cn/blog_migrate/56736369ff9d699385309861c4a39ea0.png

3.3 产品开发

【1】进入产品页

点击项目名称,进入产品开发页面。

https://i-blog.csdnimg.cn/blog_migrate/be495daf0baa6043d05c22c0eea9c70c.png

【2】新建产品

https://i-blog.csdnimg.cn/blog_migrate/f0fcc655a16392c96ceafd4296f6ab1f.png

【3】填写产品信息

产品品类选择 自定义产品品类

https://i-blog.csdnimg.cn/blog_migrate/3c7b5e8c4f2ab3fc7e8b59aa21a9cd92.png

【4】产品创建完成

https://i-blog.csdnimg.cn/blog_migrate/a6e7731d5759b1010575a23773dc618c.png

3.4 设备开发

【1】进入设备配置页

点击产品名称,进入设备配置页面。

https://i-blog.csdnimg.cn/blog_migrate/7169e8d94132e7fe439c5eaad0593d65.png

【2】配置物模型

选择自定义品类。

https://i-blog.csdnimg.cn/blog_migrate/a02007f11ecfb786d353a28450e1ad1a.png

(1)MQ2烟雾浓度

https://i-blog.csdnimg.cn/blog_migrate/9acad38c5ca306e4fd039cd6c19b971e.png

(2)MQ135空气质量

https://i-blog.csdnimg.cn/blog_migrate/76a8bcc88c806d45f44692efc7d69e19.png

(3)MQ4有毒气体

https://i-blog.csdnimg.cn/blog_migrate/ef2cc4a5dbe1e6e7cf3ed4e2fdefd42d.png

(4)MQ7一氧化碳

https://i-blog.csdnimg.cn/blog_migrate/e9bd12d2a40e99e3ccb8003a03e77845.png

(5)环境温度

https://i-blog.csdnimg.cn/blog_migrate/ffba7f87cd3641a5d7fd77b26f04fe7d.png

(6)环境湿度

https://i-blog.csdnimg.cn/blog_migrate/7e75c686dfd6874ec58fa768c6377067.png

(6)添加完成

https://i-blog.csdnimg.cn/blog_migrate/c1030096d4e7db5e9689f26c14222a58.png

然后翻到最下面,点击下一步。

【3】设备开发-主题列表

设备开发页面有一个主题列表。可以了解到当前的主题信息。

https://i-blog.csdnimg.cn/blog_migrate/6d8e8169c971e90221f3ec2258d71537.png

$thing/up/property/CS0SLTKSYA/${deviceName}	   发布	属性上报
$thing/down/property/CS0SLTKSYA/${deviceName}	订阅	属性下发与属性上报响应

这个页面不需要做什么,直接点击下一步即可。

https://i-blog.csdnimg.cn/blog_migrate/dca57081e8c1327969ed3e70481c2c99.png

【4】交互开发-配置小程序

(1)产品展示页

https://i-blog.csdnimg.cn/blog_migrate/bb3cd6cb2c17e0adc730081d43c11d14.png

设置信息:

https://i-blog.csdnimg.cn/blog_migrate/3d73c5601a7cd0b909ced3071059c2ba.png

(2)快捷入口配置

https://i-blog.csdnimg.cn/blog_migrate/e216897437186f1d3e28c38c5dc57ce5.png

https://i-blog.csdnimg.cn/blog_migrate/475924da61b64a9ffb66157e82fef5b5.png

(3)编辑面板

https://i-blog.csdnimg.cn/blog_migrate/cf1917a2d97009282e24b422e715a77c.png

(4)产品页面

https://i-blog.csdnimg.cn/blog_migrate/75b78d0df231b4ae6ada23b78a8f85a3.png

https://i-blog.csdnimg.cn/blog_migrate/fde8088d5ce3c9b3621e59136f97bc06.png

【5】设备调试-新建设备

https://i-blog.csdnimg.cn/blog_migrate/6a7500694475531518d28551cb9cd500.png

https://i-blog.csdnimg.cn/blog_migrate/58c7b7f710712279b2c85b0e498c599d.png

创建完成。

https://i-blog.csdnimg.cn/blog_migrate/219de62a0a7c3f115a9d93e44d9c4ec7.png

设备的二维码: (打开微信小程序,搜索 腾讯连连 ,打开腾讯连连,扫描下面的二维码就可以绑定设备了)

https://i-blog.csdnimg.cn/blog_migrate/b00ea74b621d4bdc8e53855a2c48282b.png

设备信息:

https://i-blog.csdnimg.cn/blog_migrate/2524cb2d1eaf9a990e88e1081d8d1799.png

产品密匙:IyXmUW5sU/q1vnb5yzTkeQ==
产品IDCS0SLTKSYA

【6】配置手机APP

如果除了小程序之外,还想使用手机APP,可以配置手机APP页面。

https://i-blog.csdnimg.cn/blog_migrate/c6009469a0a0899bc3970f1b3737bff6.png

配置步骤和上面的微信程序一样。

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  PUBSUBPINGPONGCONNECTDISCONNECTUNSUB 等报文。
2. 支持 cleanSession
3. 不支持 willretain msg
4. 不支持 QOS2

【2】获取MQTT登录参数

就像我们登录QQ、登录微信需要账号密码一样,设备登录物联网平台也需要类似的东西。

官方文档地址:

生成密匙直接使用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的代码需要填入的参数从下面截图里获取:

https://i-blog.csdnimg.cn/blog_migrate/62fe47febbd408eac16470d7551b3525.png

运行得到的结果:

https://i-blog.csdnimg.cn/blog_migrate/5e96c19d12ac9cb734bc72044bf02dae.png

clientid CS0SLTKSYAdev1
username CS0SLTKSYAdev1;12010126;ZR5GT;2623045740
password 2debdc61b009ef8d09597f106f6f8ca36f101415459b0623780a81e711e7257c;hmacsha256

【3】MQTT主题订阅与发布

https://i-blog.csdnimg.cn/blog_migrate/3b0fcc9af31c8ce47a66d2dc4936dc49.png

如果设备端想要得到APP页面的按钮状态就需要订阅属性下发和属性上报的响应,主题格式就是这样的:

主题订阅:

$thing/down/property/CS0SLTKSYA/dev1

主题发布:

$thing/up/property/CS0SLTKSYA/dev1

设备端向APP页面上报属性时,需要上传具体的数据,数据流的格式如下:

官方文档:

比如:我的设备里有MQ2、MQ4、MQ7、MQ135、温度、湿度参数信息。

上传的格式如下。

{"method":"report","clientToken":"123","params":{"MQ2":30,"MQ135":95,"MQ4":30,"MQ7":20,"DHT11_T":14,"DHT11_H":70}}

https://i-blog.csdnimg.cn/blog_migrate/ac64cfb4e37f05addc5a6371c86e06ee.png

【4】 物联网平台端口号与IP

官方文档:

https://i-blog.csdnimg.cn/blog_migrate/28ebb2a0521280e4e1a5441838b5c878.png

域名格式:<产品ID>.iotcloud.tencentdevices.com

CS0SLTKSYA.iotcloud.tencentdevices.com

https://i-blog.csdnimg.cn/blog_migrate/490a17d7d1a9283bc55c0c410cd82fe0.png

**得到域名对应的IP地址: ** 175.178.30.200

https://i-blog.csdnimg.cn/blog_migrate/9ffd7504e338290e3bd5fedf0f0e764b.png

【5】模拟设备登录

为了方便测试,先使用MQTT客户端软件模拟硬件设备登录服务器。

依次填入参数之后, 点击订阅主题、发布主题。

https://i-blog.csdnimg.cn/blog_migrate/e6adfd831d18f049bd73579b9fc90074.png

在设备调试页面,可以看到设备已经在线了:

https://i-blog.csdnimg.cn/blog_migrate/cc3c3bd796b01342ac87ba943f7abe2d.png

打开设备页面,就能看到设备上传的数据:

https://i-blog.csdnimg.cn/blog_migrate/1eebdaf16ec258c62f0da281e5c6d918.png

【6】腾讯连连微信小程序

打开 腾讯连连微信 小程序绑定设备,就可以看到设备的数据了。

步骤如下:

打开微信,找到小程序。

https://i-blog.csdnimg.cn/blog_migrate/a0694b152418592919a13137d98afe43.png

右上角搜索,腾讯连接。

https://i-blog.csdnimg.cn/blog_migrate/112282a6911fa90b90f7b5309ae4e861.png

然后打开腾讯连连,添加设备,扫描设备的二维码。

https://i-blog.csdnimg.cn/blog_migrate/48faf18c3557f08f1ee49d2c3f4a04dd.png

添加成功。

https://i-blog.csdnimg.cn/blog_migrate/5c9fc8e9d4c5c3f6bd0285de0e70b2c8.png

看到的信息:

https://i-blog.csdnimg.cn/blog_migrate/208c7addef72591393126f9a983a145d.png

到此,腾讯物联网云平台部署完成。

四、总结

到此,我们的 腾讯云IOT平台 的云端开发完成了。如果大家详细阅读了文章,并且跟着步骤操作了一次,相信你此刻对 腾讯云IOT平台 应该有所认识了。我是 DS小龙哥 ,欢迎关注我,后续会有更多的技术文章、项目文章发布。