ThingsCloud云平台与微信小程序设计
本文主要是介绍ThingsCloud云平台的搭建及微信小程序与app的使用。
当前文章是作为一个通用案例,介绍如何快速使用 ThingsCloud云平台 以及 利用 ThingsCloud云平台平台的框架快速设计手机APP和微信小程序。 可以快速让硬件接入,实现硬件上云,完成物联网项目的开发。
之前写了很多文章,关于阿里云、腾讯云、OneNet、华为云IOT教程等等。 这些云平台之间都可以任意替换,他们都支持标准的MQTT协议,硬件设备都可以接入任何的云平台。只需要改MQTT参数以及上传的JSON格式即可。
如果你之前使用的其他云:阿里云、腾讯云、OneNet、华为云IOT?想接入ThingsCloud云平台?只需要照着之前云平台里创建的属性在ThingsCloud云平台?重新创建一遍即可, 本身大同小异,没有多大的区别。
这篇文章以智能饮水机为例,讲解如何给智能饮水机项目设计一个 微信小程序,让硬件上云。
硬件的功能:
1.1 ThingsCloud平台介绍
官网:https://www.thingscloud.xyz/
ThingsCloud 是一个专注于?物联网(IoT)设备连接、管理和应用开发?的一站式平台,旨在帮助企业快速构建和部署物联网解决方案。
(1)核心功能
1.设备接入与管理
2.?数据采集与处理
3.?可视化与监控
-
-
- ? 拖拽式仪表盘,自定义数据看板(如图表、地图、控件)。? 实时监控设备状态,异常告警通过邮件/短信/Webhook通知。
-
4.?低代码开发
5.?安全与权限
-
- ? 设备认证(证书、密钥)、数据加密(TLS/SSL)。? 多租户支持,细粒度权限控制(用户、角色、项目)。
(2)典型应用场景
??工业物联网(IIoT):设备远程监控、预测性维护。
??智能家居/楼宇:集中管理照明、安防、能耗设备。
??智慧农业:环境传感器数据采集与自动化控制。
??能源管理:实时监测电力、水、燃气等消耗。
(3)优势特点
开箱即用:减少底层开发,聚焦业务场景。
弹性扩展:支持海量设备接入和高并发数据处理。
成本优化:按需付费模式,降低中小型企业部署门槛。
开放生态:与主流云服务(AWS、阿里云)及硬件兼容。
ThingsCloud 平台的资源模型通常采用分层架构设计,涵盖设备、数据、应用等核心要素。以下是其资源模型的?图形化表示?及分层说明:
资源模型图
接入
设备ID/证书
采集
转发
触发动作
物理设备ThingsCloud 平台核心资源层设备管理数据管道规则引擎设备1..N时序数据库外部系统告警/自动化应用层可视化仪表盘API/SDK第三方集成
1.2 登录云平台
(1)注册账户
官网:https://www.thingscloud.xyz/
进来用邮箱注册,并在对应的邮箱中点击激活账号。
地址:https://console.thingscloud.xyz/signup
注册之后需到对应的邮箱中激活账号。
(2)登录控制台
1.3 产品开发
产品开发主要步骤为:创建项目--创建设备--创建设备类型--添加关联设备--添加设备功能。
下面依次进行。
(1)创建项目
免费版
-
- ?包含较少的设备数和消息量,以及部分高级功能的限制,但完全不影响您对物联网平台基本功能的评估和体验,以及硬件原型的开发,或少量设备的个人使用。
一个用户账号下只可以创建一个免费版项目。
此处注意留意自己的选区,后面只有选择对应的区才能看到所创的项目。
(2)项目创建完成
(3)创建设备
在 ThingsCloud 中,设备代表了您的物理设备在云平台对应的一个实体,这个物理设备可以是一个光照传感器或智能开关,也可以是一个智能水表或网关。 创建设备非常简单,只需要给设备起一个名称即可。当然随后您也可以修改设备名称,或者使用 API 批量给设备更新名称。
目前免费版的只能创建3个设备,每日发消息量1000条,用户数为3个。
所有设备--创建设备。
根据自己产品信息填写:
(4)设备创建完成
创建完成。
(5)创建设备类型
(6)设备类型创建成功
(7)添加设备
(8)选择设备
添加自己之前创建的设备
(9)关联设备添加成功
1.4 添加功能
文档介绍:https://www.thingscloud.xyz/docs/guide/device-type/function-define.html
功能定义是通过建立一套模型,来描述不同设备的能力,包括设备的属性、事件和命令,从而为设备接入和应用开发建立一套成熟的规范。功能定义对设备类型中的所有设备都有效。功能定义更像是给设备定义了一个类,其中约定了有哪些成员变量,以及变量的数据类型,另外还约定了一些特殊的方法。
属性一般是设备自身具备的某种状态,比如温度值、开关状态、配置参数。 属性可以由设备上报到云平台,或从云平台下发到设备。云平台会自动保存属性的当前值和历史值。
可通过添加标准功能,也可以通过添加属性编辑功能定义。
属性名称:给属性起一个简洁、明确且具有描述性的名称,支持中文。属性名称不出现在属性消息中。在一些设备面板界面的属性当前值和时序图表中,属性名称会自动代替属性标识符,便于浏览。示例:温度、土壤湿度
属性标识符:只能包含:英文大小写字母、数字、下划线、横线。如发布主题消息用json格式,必须与属性字段名一致。示例:temperature
属性类型:用来定义属性在物理设备和云平台之间的流动方向,使得设备和云平台的通信更加规范化。通过对属性定义属性类型,云平台会自动检查属性消息是否符合定义,并过滤掉不符合定义的属性消息。示例:设备上报,设备云端共享
数据类型:云平台会自动验证属性的数据类型是否合法,对于不符合数据类型或不在设定范围内的情况,会自动忽略处理。示例:数值,布尔
(1)明确项目所有属性
该项目用到的所有属性:
| 属性名称 | 属性标识符 | 属性类型 | 数据类型 | 扩展选项 |
| 出水量 | angle | 设备云端共享 | 数值 | 数值范围:100-1000 初始值:100 步长:10 单位:ml |
| 剩余水量 | water_level | 设备上报 | 数值 | 数值范围:0-100 初始值:0 步长:1 单位:% |
| 水温 | DS18B20 | 设备上报 | 数值 | 数值范围:0-100 初始值:0 步长:1 单位:℃ |
| 水温设置 | DS18B20_MAX | 设备云端共享 | 数值 | 数值范围:0-100 初始值:0 步长:1 单位:℃ |
| 水质质量 | water_data | 设备上报 | 数值 | 数值范围:0-100 初始值:0 步长:1 单位:% |
| 出水控制 | water_ctrl | 设备云端共享 | Switch (开关量) | 0 - 关 1 - 开 |
| 自动模式 | mode | 设备云端共享 | Switch (开关量) | 0 - 手动模式 1 - 自动模式 |
| 加热控制 | heat | 设备云端共享 | Switch (开关量) | 0 - 关 1 - 开 |
| 水源过滤 | water_filter | 设备云端共享 | Switch (开关量) | 0 - 关 1 - 开 |
(2)添加出水量
可用添加标准功能,也可以通过添加属性增加。
点击确定之后,可在属性下方看到添加的标准功能。
(3)添加剩余水量
添加成功
(4)添加水温
添加成功。
(5)添加水温设置
添加成功。
(6)添加水质质量
添加成功。
(7)添加出水控制
添加成功。
(8)添加自动模式
添加完成。
(9)添加加热控制
添加完成。
(10)添加水源过滤
添加完成。
根据项目实际添加功能完成。
1.5 设备登录
(1)MQTT协议
MQTT 全称是 Message Queuing Telemetry Transport,它是一种基于消息队列的轻量级应用层通信协议,实现了消息发布和订阅。设备可以作为客户端的形式通过它来发布和接收消息,实现数据上报和实时控制。
MQTT 是一种简单的消息传递协议,设计用于具有低带宽的受限设备。因此,它是物联网设备接入的完美解决方案。
当前设备是采用MQTT协议与ThingsCloud服务器进行通信。
MQTT物联网套件产品架构如下图所示:
(2)查看设备证书与MQTT接入点信息
所有设备--设备--连接
点击连接
接入地址说明:https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html
在帮助文档页面,介绍了MQTT接入的地址和端口号。 当前设备是单片机,端口采用1883非加密端口。
(3)身份认证总结
MQTT主机:sh-3-mqtt.iot-api.com
固定的端口号:?1883
username: AccessToken ? ??//点击以上的复制然后粘贴出来
password: ProjectKey ? ??//点击以上的复制然后粘贴出来
clientId: ? ? ? ? ? ? ? ? ?//空或任意 ? ?不对 clientId 做任何限制,可随意填写。
需要注意的是,ThingsCloud 对同一个设备身份信息只支持一个 MQTT 连接,也就是说,如果在两个或多个物理设备中,使用同样的 username/password 身份信息连接平台,即便 clientId 使用不同的字符串,平台仍然将这些连接视为同一个设备,这会导致后一个设备连接成功后会顶掉之前的设备连接。
(4)主题订阅
主题订阅是设备订阅平台的消息,如果设备想知道平台下发的消息,就需要订阅主题。
帮助文档: https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html
需要订阅什么数据,设备端按照下面的主题格式填写订阅即可。
在设备端订阅如下主题
attributes/push
(5)发布主题
发布主题: 就是设备向平台上传数据。
帮助文档地址:https://www.thingscloud.xyz/docs/guide/connect-device/mqtt.html#mqtt-%E4%B8%BB%E9%A2%98%E4%B8%80%E8%A7%88
文档里介绍了数据点上传的格式:
设备上报属性值
attributes
根据当前设备,总结的消息格式如下:
发布主题: attributes
发布消息:
{"angle":?110,"water_level":?34,"DS18B20":?60,"DS18B20_MAX":?80,"water_data":?60,"water_ctrl":?0,"mode":?0,"heat":?0,"water_filter":?0}//这里的属性字段就是自己之前填写的属性标识符?
特别要注意开关状态的值如果标明用true和false,必须用true和false,而不能用1或0,而反之可以,
再者值必须与之前设置的范围一致,否则消息会上报失败。
数据点是标准的JSON结构:
?{
??"angle":?110, ? ? ? ? ?
??"water_level":?34, ? ? ? ? ??
??"DS18B20":?60, ? ??
??"DS18B20_MAX":?80, ? ? ? ? ? ? ? ?
??"water_data":?60, ? ? ? ? ?
??"water_ctrl":?0, ? ? ? ? ?
??"mode":?0, ? ? ? ??
??"heat":?0, ? ? ? ? ?
??"water_filter":?0
}
(6)MQTT登录参数总结
MQTT协议登录时,需要输入4个参数: MQTT-主机,MQTT-端口,MQTT-用户名,MQTT-密码。
MQTT 主机:sh-3-mqtt.iot-api.com
MQTT 端口:1883
MQTT客户端ID:为空即可
Username:wwdhfp9pqzvwfgc9
Password:****** ??//此处作打码处理
? ??
订阅主题: ?attributes/push
发布主题:attributes
发布消息:
{"angle":110,"water_level":34,"DS18B20":?60,"DS18B20_MAX":?80,"water_data":?60,"water_ctrl":?0,"mode":?1,"heat":?0,"water_filter":?0}
(7)MQTT工具登录测试
前面已经介绍了MQTT协议登录需要用到的参数,以及订阅主题、发布主题的格式,接下来我们通过MQTT工具模拟设备登录ThingsCloud平台,完成数据交互测试。
简单来说: 就是用软件来模拟实际的硬件,登录ThingsCloud平台,上传数据,走一下这个流程。
接下来根据软件的输入框提示,输入对应的参数,然后登录设备,订阅主题,发布主题即可完成一个流程的测试。
(8)登录控制台查看设备
在设备列表页面,可以看到设备已经在线了。
在设备的当前属性页面可以看到上传的数据。
1.6 创建应用
(1)创建用户应用
(2)创建通用版
(3)用户应用创建成功
(4)保存APPID
AppID:76548517
1.7 配置应用UI
设备--设备类型-点击已创建的设备--应用配置--打开编辑器
(1)打开应用配置
(2)打开编辑器
进入编辑器界面,根据自己喜好添加
(3)添加组件
(4)选择属性
可同时选择单个或多个属性
(5)选择水温、水质质量、剩余水量设置属性
添加成功。
右边设置属性。
(6)添加出水量、水温设置组件
选择属性
根据情况设置属性。
(7)添加开关控制组件
根据自己喜好,点击设置属性修改。
修改成功。
(8)点击样式编辑修改样式
(9)UI界面设计完成
根据自己的喜好修改样式编辑后保存。
1.8 创建用户
(1)创建新用户
应用---用户--新建用户
(2)用户创建成功
保存一下登录名及密码
后面登录查看app需使用。
(3)用户名及密码
用户名:DS **** ??
密码:**** ? //账号密码为登录app及小程序的凭证,故隐藏。
(4)关联设备
应用---用户---点击用户名称
添加关联设备
(5)用户关联设备添加成功
1.9 微信小程序及手机app调试
(1)搜索微信小程序ThingsX
(2)登录小程序
账号、密码为1.8章节创建的用户名与设置的密码,APPID为1.6章节创建应用时保存的APPID.
(3)查看对应设备
当前设备为离线状态,所显示数据为历史数据。
(4)MQTT调试助手调试
(5)查看控制台
(6)查看微信小程序
现在已经能实时看到MQTT调试助手模拟上传的数据。
至此,微信小程序搭建完成。
(7)使用ThingsX app
文档介绍地址:https://www.thingscloud.xyz/docs/guide/customer-app/common-app.html#下载-android-app
安卓与苹果app下载地址:https://www.thingscloud.xyz/app/thingsx
拷贝到手机安装-登录
查看app界面
手机app与微信小程序的使用不一样,不再复述。
后续也可以根据自己的实际需要修改云平台以及UI界面,微信小程序与app会同步修改。
7145