-
华为云iot和传统iot架构有什么区别
-
IOT产品里的在线命令下发功能不稳定。 在产品页面点击在线下发命令,有时候可以下发有时候无反应。 为了开发上位机,需要调用API接口下发命令给设备,发现下发命令的接口无法正常使用,采用文档里提供的在线调试去调试也是报错。 刚开始测试还正常,测试了几次,直接报错 服务器内部错误。 这个接口支持拿来测试的吗? 正常产品开发是不是不能调用这个接口。 非常的不稳定。
-
新注册账号创建的产品设备只有专业版了。并且协议里只有MQTTS,8883端口。 已经没有MQTT + 1883 端口了。 是以后就不支持了?
-
使用开源库代码移植,在STM32hal库上有paho 和 mbedtls 但是接入云服务器总是有问题,连接成功,握手失败。错误码为-0x0050 也就是-80.wire shark分析发现在客户端给出client hello 的报文后,华为云服务器端返回了一个reset报文,暂时我不清楚这个问题的原因是什么,同样的环境,我对接阿里云iot是可以的,想要知道这里面的区别是什么,或者你们可以有服务器端的日志,告诉我问题出在哪里。为什么不返回server hello 而是一个rest的回应。
-
一、项目介绍在商业街、小吃街和景区等人流密集的场所,垃圾桶的及时清理对于提供良好的游客体验至关重要。然而,传统的垃圾桶清理方式通常是定时或定期进行,无法根据实际情况进行及时响应,导致垃圾桶溢满,影响环境卫生,给游客带来不便和不满。为了解决这一问题,本项目基于STM32F103ZET6主控芯片和华为云物联网平台,设计了一套智能垃圾桶管理系统。该系统通过NBIOT-BC26模块连接到华为云物联网平台,实现了垃圾桶数据的实时采集和上传。在本地,垃圾桶通过多种传感器进行数据采集。使用DHT11模块实时监测环境温度和湿度,以了解垃圾桶所处环境的状态。采用中科微电子出品的GPS模块,通过串口输出GPS数据,实现垃圾桶的定位功能。垃圾桶口还配备了红外传感器,用于检测垃圾桶是否已满。通过NBIOT-BC26模块,采集到的数据被实时上传到华为云物联网平台。在保洁人员管理中心,开发了一个数据大屏,采用Qt开发,运行在Windows系统下。数据大屏展示了该区域内垃圾桶的详细情况,包括环境温度、湿度、GPS定位和垃圾桶的满溢状态。当垃圾桶满了时,上位机会实时发送短信通知保洁人员进行清理,并提供垃圾桶的位置信息,以便保洁人员快速响应并进行清理操作。通过这套智能垃圾桶管理系统,垃圾桶的清理可以根据实际情况进行及时调度,提高了垃圾桶的使用效率,改善了环境卫生状况,提升了游客的体验感。同时,保洁人员能够更加高效地管理垃圾桶,提升工作效率,减少资源浪费。整个系统的设计旨在提供一个智能、高效的垃圾桶管理解决方案,为公共场所的环境卫生管理带来便利和改进。二、设计思路总结2.1 硬件选型【1】主控芯片:STM32F103ZET6STM32F103系列是意法半导体(STMicroelectronics)推出的低功耗、高性能的32位ARM Cortex-M3微控制器系列。选择STM32F103ZET6作为主控芯片,是因为它具有较高的计算能力和丰富的外设接口,能够满足项目的需求。【2】通信模块:NBIOT-BC26NBIOT-BC26是一种窄带物联网(NB-IoT)通信模块,支持低功耗、广覆盖、远距离的物联网通信。它能够将垃圾桶采集到的数据通过NB-IoT网络上传到云平台,实现实时监测和远程管理。【3】传感器模块:DHT11模块:用于采集环境温度和湿度数据。DHT11是一种低成本、数字式温湿度传感器,具有简单的接口和良好的性能,适用于本项目的温湿度监测需求。GPS模块:用于实现垃圾桶的定位功能。选择中科微电子出品的GPS模块,通过串口输出GPS数据,能够准确获取垃圾桶的位置信息。红外传感器:用于检测垃圾桶是否已满。红外传感器能够通过红外线的反射来判断垃圾桶内是否有垃圾,从而判断垃圾桶的满溢状态。【5】数据大屏:采用Qt开发,运行在Windows系统下。数据大屏通过图形界面展示垃圾桶的详细情况,包括环境温度、湿度、GPS定位和垃圾桶的满溢状态。项目的硬件选型包括主控芯片、通信模块、传感器模块、红外传感器和数据大屏。这些硬件组件相互配合,实现了智能垃圾桶管理系统的功能,包括数据采集、通信传输、定位功能和信息展示。2.2 硬件设计【1】主控芯片选择: 作为整个系统的核心,选择了STM32F103ZET6作为主控芯片。该芯片具有较高的计算能力和丰富的外设接口,能够满足项目的需求。主控芯片负责与各个硬件模块进行通信和数据处理,同时控制通信模块的数据传输。【2】通信模块选择: 为了实现垃圾桶数据的实时采集和上传,选择了NBIOT-BC26通信模块。NBIOT-BC26支持窄带物联网通信,具有低功耗、广覆盖和远距离传输的特点,能够将采集到的数据通过NB-IoT网络上传到华为云物联网平台。【3】传感器模块选择:DHT11模块用于采集环境温度和湿度数据。DHT11是一种低成本、数字式温湿度传感器,通过数字信号输出温湿度数值,具有简单的接口和良好的性能,适用于本项目的温湿度监测需求。GPS模块用于实现垃圾桶的定位功能。选择中科微电子出品的GPS模块,通过串口输出GPS数据,能够准确获取垃圾桶的位置信息。红外传感器设计: 为了检测垃圾桶是否已满,采用红外传感器。红外传感器能够通过红外线的反射来判断垃圾桶内是否有垃圾,从而判断垃圾桶的满溢状态。红外传感器与主控芯片相连,通过数字输入口接收传感器的信号,并进行处理判断。【4】数据大屏设计: 数据大屏采用Qt开发,运行在Windows系统下。通过图形界面展示垃圾桶的详细情况,包括环境温度、湿度、GPS定位和垃圾桶的满溢状态。主控芯片通过与数据大屏的通信接口实时传输数据,数据大屏根据接收到的数据进行展示。整个硬件设计思路是将各个硬件模块与主控芯片相连接,通过主控芯片的控制和数据处理,实现数据的采集、通信传输、定位功能和信息展示。通过合理选择硬件组件,并进行适当的连接和接口设计,实现了智能垃圾桶管理系统的功能。2.3 软件设计【1】系统架构设计: 软件设计的第一步是确定系统的整体架构。根据项目需求,可以采用分层架构设计,将系统划分为应用层、业务逻辑层和驱动层。应用层负责与用户交互,业务逻辑层处理具体的业务逻辑,驱动层与硬件模块进行通信和控制。【2】硬件驱动设计: 针对每个硬件模块,需要编写相应的驱动程序。主控芯片与通信模块、传感器模块和红外传感器进行通信,通过串口、I2C、SPI等接口与它们进行数据交互。每个硬件模块的驱动程序应包括初始化、数据采集和控制等功能。【3】数据处理与逻辑控制: 主控芯片负责接收来自各个硬件模块的数据,并进行处理和逻辑控制。例如,从DHT11传感器读取温湿度数据后,可以进行数据的校验和转换,然后根据设定的阈值判断是否需要进行烘干操作。同时,主控芯片还负责控制红外传感器进行垃圾桶满溢状态的检测。【4】通信与数据上传: 通过NBIOT-BC26通信模块,将采集到的数据通过NB-IoT网络上传到华为云物联网平台。主控芯片与通信模块进行通信,将需要上传的数据打包成相应的格式,并通过串口等接口发送给通信模块,实现数据的上传。【5】用户界面设计: 软件还需要设计用户界面,以便用户可以直观地查看垃圾桶的状态和数据信息。可以使用Qt等工具进行界面设计,展示环境温度、湿度、GPS定位和垃圾桶的满溢状态等信息。用户界面与主控芯片进行通信,接收数据并进行展示。整个软件设计思路是基于系统架构设计,通过硬件驱动、数据处理与逻辑控制、通信与数据上传以及用户界面设计等模块的开发,实现智能垃圾桶管理系统的功能。软件设计需要与硬件设计相结合,保证数据的采集、处理、传输和展示的协调运作。2.4 系统交互流程【1】用户打开智能垃圾桶管理系统的应用程序。【2】系统初始化:系统进行硬件初始化,包括主控芯片、通信模块、传感器模块和红外传感器的初始化。确保通信模块连接到NB-IoT网络,并与华为云物联网平台建立通信连接。【3】环境监测:系统开始监测环境温度和湿度,并获取垃圾桶的定位信息。主控芯片通过DHT11传感器获取温湿度数据,通过GPS模块获取垃圾桶的位置信息。【4】数据处理与逻辑控制:主控芯片对采集到的数据进行处理和逻辑控制。可以根据温度和湿度数据判断垃圾桶是否需要进行清理,并通过红外传感器检测垃圾桶的满溢状态。【5】数据上传:主控芯片将处理后的数据通过通信模块上传到华为云物联网平台。数据可以包括环境温度、湿度、GPS定位和垃圾桶的满溢状态等信息。上传的数据可以以JSON等格式进行打包,通过NB-IoT网络传输到华为云物联网平台。【6】数据展示:用户界面接收从主控芯片传输过来的数据,并进行展示。用户可以在界面上查看环境温度、湿度、GPS定位和垃圾桶的满溢状态等信息。数据展示可以通过图表、文字、图像等形式进行呈现,以便用户直观地了解系统的状态和数据信息。整个系统的交互流程涉及到硬件模块的数据采集、主控芯片的数据处理与逻辑控制、通信模块的数据上传以及用户界面的数据展示和用户交互。通过这些步骤,用户可以方便地监测和管理智能垃圾桶的状态和数据信息。三、部署华为云物联网平台华为云官网: cid:link_12打开官网,搜索物联网,就能快速找到 设备接入IoTDA。3.1 物联网平台介绍华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助我们快速构筑物联网解决方案。使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。3.2 开通物联网服务地址: cid:link_10进来默认会提示开通标准版,在2023的1月1号年之后没有基础版了。开通之后,点击总览,查看接入信息。 我们当前设备准备采用MQTT协议接入华为云平台,这里可以看到MQTT协议的地址和端口号等信息。总结:端口号: MQTT (1883)| MQTTS (8883) 接入地址: 7445c6bcd3.st1.iotda-app.cn-north-4.myhuaweicloud.com根据域名地址得到IP地址信息:Microsoft Windows [版本 10.0.19044.2728](c) Microsoft Corporation。保留所有权利。C:\Users\11266>ping 7445c6bcd3.st1.iotda-device.cn-north-4.myhuaweicloud.com正在 Ping 7445c6bcd3.st1.iotda-device.cn-north-4.myhuaweicloud.com [117.78.5.125] 具有 32 字节的数据:来自 117.78.5.125 的回复: 字节=32 时间=42ms TTL=30来自 117.78.5.125 的回复: 字节=32 时间=35ms TTL=30来自 117.78.5.125 的回复: 字节=32 时间=36ms TTL=30来自 117.78.5.125 的回复: 字节=32 时间=36ms TTL=30117.78.5.125 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 35ms,最长 = 42ms,平均 = 37msC:\Users\11266>MQTT协议接入端口号有两个,1883是非加密端口,8883是证书加密端口,单片机无法加载证书,所以使用1883端口比较合适。 接下来的ESP8266就采用1883端口连接华为云物联网平台。3.3 创建产品(1)创建产品点击产品页,再点击左上角创建产品。(2)填写产品信息根据自己产品名字填写。(3)产品创建成功(4)添加自定义模型产品创建完成之后,点击进入产品详情页面,翻到最下面可以看到模型定义。先点击自定义模型。再创建一个服务ID。接着点击新增属性。3.4 添加设备产品是属于上层的抽象模型,接下来在产品模型下添加实际的设备。添加的设备最终需要与真实的设备关联在一起,完成数据交互。(1)注册设备(2)根据自己的设备填写(3)保存设备信息创建完毕之后,点击保存并关闭,得到创建的设备密匙信息。该信息在后续生成MQTT三元组的时候需要使用。(4) 设备创建完成3.5 MQTT协议主题订阅与发布(1)MQTT协议介绍当前的设备是采用MQTT协议与华为云平台进行通信。MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。MQTT是一种消息队列协议,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合,相对于其他协议,开发更简单;MQTT协议是工作在TCP/IP协议上;由TCP/IP协议提供稳定的网络连接;所以,只要具备TCP协议栈的网络设备都可以使用MQTT协议。 本次设备采用的ESP8266就具备TCP协议栈,能够建立TCP连接,所以,配合STM32代码里封装的MQTT协议,就可以与华为云平台完成通信。华为云的MQTT协议接入帮助文档在这里: cid:link_8业务流程:(2)华为云平台MQTT协议使用限制描述限制支持的MQTT协议版本3.1.1与标准MQTT协议的区别支持Qos 0和Qos 1支持Topic自定义不支持QoS2不支持will、retain msgMQTTS支持的安全等级采用TCP通道基础 + TLS协议(最高TLSv1.3版本)单帐号每秒最大MQTT连接请求数无限制单个设备每分钟支持的最大MQTT连接数1单个MQTT连接每秒的吞吐量,即带宽,包含直连设备和网关3KB/sMQTT单个发布消息最大长度,超过此大小的发布请求将被直接拒绝1MBMQTT连接心跳时间建议值心跳时间限定为30至1200秒,推荐设置为120秒产品是否支持自定义Topic支持消息发布与订阅设备只能对自己的Topic进行消息发布与订阅每个订阅请求的最大订阅数无限制(3)主题订阅格式帮助文档地址:cid:link_8对于设备而言,一般会订阅平台下发消息给设备 这个主题。设备想接收平台下发的消息,就需要订阅平台下发消息给设备 的主题,订阅后,平台下发消息给设备,设备就会收到消息。如果设备想要知道平台下发的消息,需要订阅上面图片里标注的主题。以当前设备为例,最终订阅主题的格式如下:$oc/devices/{device_id}/sys/messages/down最终的格式:$oc/devices/6419627e40773741f9fbdac7_dev1/sys/messages/down(4)主题发布格式对于设备来说,主题发布表示向云平台上传数据,将最新的传感器数据,设备状态上传到云平台。这个操作称为:属性上报。帮助文档地址:cid:link_3根据帮助文档的介绍, 当前设备发布主题,上报属性的格式总结如下:发布的主题格式:$oc/devices/{device_id}/sys/properties/report 最终的格式:$oc/devices/6419627e40773741f9fbdac7_dev1/sys/properties/report发布主题时,需要上传数据,这个数据格式是JSON格式。上传的JSON数据格式如下:{ "services": [ { "service_id": <填服务ID>, "properties": { "<填属性名称1>": <填属性值>, "<填属性名称2>": <填属性值>, .......... } } ]}根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。根据这个格式,组合一次上传的属性数据:{"services": [{"service_id": "stm32","properties":{"DS18B20":18,"motor_water":1,"motor_oxygen":1,"temp_max":10,"water_hp":130,"motor_food":0,"time_food":0,"oxygen_food":3}}]}3.6 MQTT三元组MQTT协议登录需要填用户ID,设备ID,设备密码等信息,就像我们平时登录QQ,微信一样要输入账号密码才能登录。MQTT协议登录的这3个参数,一般称为MQTT三元组。接下来介绍,华为云平台的MQTT三元组参数如何得到。(1)MQTT服务器地址要登录MQTT服务器,首先记得先知道服务器的地址是多少,端口是多少。帮助文档地址:cid:link_2MQTT协议的端口支持1883和8883,它们的区别是:8883 是加密端口更加安全。但是单片机上使用比较困难,所以当前的设备是采用1883端口进连接的。根据上面的域名和端口号,得到下面的IP地址和端口号信息: 如果设备支持填写域名可以直接填域名,不支持就直接填写IP地址。 (IP地址就是域名解析得到的)华为云的MQTT服务器地址:114.116.232.138域名:7445c6bcd3.st1.iotda-device.cn-north-4.myhuaweicloud.com华为云的MQTT端口号:1883(2)生成MQTT三元组华为云提供了一个在线工具,用来生成MQTT鉴权三元组: cid:link_9打开这个工具,填入设备的信息(也就是刚才创建完设备之后保存的信息),点击生成,就可以得到MQTT的登录信息了。下面是打开的页面:填入设备的信息: (上面两行就是设备创建完成之后保存得到的)直接得到三元组信息。得到三元组之后,设备端通过MQTT协议登录鉴权的时候,填入参数即可。ClientId 6419627e40773741f9fbdac7_dev1_0_0_2023032108Username 6419627e40773741f9fbdac7_dev1Password 861ac9e6a579d36888b2aaf97714be7af6c77017b017162884592bd68b086a6e3.7 模拟设备登录测试经过上面的步骤介绍,已经创建了产品,设备,数据模型,得到MQTT登录信息。 接下来就用MQTT客户端软件模拟真实的设备来登录平台。测试与服务器通信是否正常。(1)填入登录信息打开MQTT客户端软件,对号填入相关信息(就是上面的文本介绍)。然后,点击登录,订阅主题,发布主题。(2)打开网页查看完成上面的操作之后,打开华为云网页后台,可以看到设备已经在线了。点击详情页面,可以看到上传的数据。到此,云平台的部署已经完成,设备已经可以正常上传数据了。四、上位机开发为了方便查看设备上传的数据,对设备进行远程控制,接下来利用Qt开发一款Android和windows系统的上位机。使用华为云平台提供的API接口获取设备上传的数据,也可以给设备下发指令,控制设备。为了方便查看设备上传的数据,对设备进行远程控制,接下来利用Qt开发一款Android和windows系统的上位机。使用华为云平台提供的API接口获取设备上传的数据,也可以给设备下发指令,控制设备。4.1 Qt开发环境安装Qt的中文官网: cid:link_13QT5.12.6的下载地址:cid:link_11打开下载链接后选择下面的版本进行下载:qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details软件安装时断网安装,否则会提示输入账户。安装的时候,第一个复选框里勾选一个mingw 32编译器即可,其他的不管默认就行,直接点击下一步继续安装。说明: 我这里只是介绍PC端的环境搭建(这个比较简单)。 Android的开发环境比较麻烦,可以去我的博客里看详细文章。选择MinGW 32-bit 编译器:4.2 创建IAM账户创建一个IAM账户,因为接下来开发上位机,需要使用云平台的API接口,这些接口都需要token进行鉴权。简单来说,就是身份的认证。 调用接口获取Token时,就需要填写IAM账号信息。所以,接下来演示一下过程。地址: cid:link_4获取Token时,除了AIM账号外,还需要项目凭证:faa0973835ab409ab48182e2590f4ad3鼠标点击自己昵称,点击统一身份认证。点击左上角创建用户。创建成功:4.3 获取影子数据帮助文档:cid:link_5设备影子介绍:设备影子是一个用于存储和检索设备当前状态信息的JSON文档。每个设备有且只有一个设备影子,由设备ID唯一标识设备影子仅保存最近一次设备的上报数据和预期数据无论该设备是否在线,都可以通过该影子获取和设置设备的属性简单来说:设备影子就是保存,设备最新上传的一次数据。我们设计的软件里,如果想要获取设备的最新状态信息,就采用设备影子接口。如果对接口不熟悉,可以先进行在线调试:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow在线调试接口,可以请求影子接口,了解请求,与返回的数据格式。设备影子接口返回的数据如下:{ "device_id": "6419627e40773741f9fbdac7_dev1", "shadow": [ { "service_id": "stm32", "desired": { "properties": null, "event_time": null }, "reported": { "properties": { "DS18B20": 18, "motor_water": 1, "motor_oxygen": 1, "temp_max": 10, "water_hp": 130, "motor_food": 0, "time_food": 0, "oxygen_food": 3 }, "event_time": "20230321T081126Z" }, "version": 0 } ]}4.4 修改设备属性地址: cid:link_6接口说明设备的产品模型中定义了物联网平台可向设备下发的属性,应用服务器可调用此接口向指定设备下发属性。平台负责将属性以同步方式发送给设备,并将设备执行属性结果同步返回。修改设备属性的接口,可以让服务器给设备下发指令,如果需要控制设备。在线调试地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=UpdateProperties修改设备属性是属于同步命令,需要设备在线才可以进行调试,先使用MQTT客户端登录服务器,模拟设备上线。然后进行调试,测试数据远程下发给设备。【1】利用MQTT客户端先登录设备 (这是同步命令,必须在线才能调试)【2】点击调试{"services":{"temp_max":100}}【4】可以看到,MQTT客户端软件上已经收到了服务器下发的消息由于是同步命令,服务器必须要收到设备的响应才能顺利完成一个流程,设备响应了服务器才能确定数据下发成功。MQTT设备端如何响应呢?设备响应格式说明:cid:link_7下面进行实操:当服务器通过在线调试,发送指令下来之后,客户端将请求ID复制下来,添加到发布主题的格式里,再回复回去,服务器收到了响应,一次属性修改就完美完成了。就是成功的状态:下面是请求的总结: (响应服务器的修改设备属性请求)上报主题的格式:$oc/devices/{device_id}/sys/properties/set/response/request_id=$oc/devices/6419627e40773741f9fbdac7_dev1/sys/properties/set/response/request_id=响应的数据:{"result_code": 0,"result_desc": "success"}4.5 设计上位机前面2讲解了需要用的API接口,接下来就使用Qt设计上位机,设计界面,完成整体上位机的逻辑设计。【1】新建Qt工程选择工程路径,放在英文路径下。创建完毕。新建Android的模板:【2】界面设计【4】代码设计:配置参数读取与保存/*功能: 保存数据到文件*/void Widget::SaveDataToFile(QString text){ /*保存数据到文件,方便下次加载*/ QString file; file=QCoreApplication::applicationDirPath()+"/"+ConfigFile; QFile filesrc(file); filesrc.open(QIODevice::WriteOnly); QDataStream out(&filesrc); out << text; //序列化写字符串 filesrc.flush(); filesrc.close();}/*功能: 从文件读取数据*/QString Widget::ReadDataFile(void){ //读取配置文件 QString text,data; text=QCoreApplication::applicationDirPath()+"/"+ConfigFile; //判断文件是否存在 if(QFile::exists(text)) { QFile filenew(text); filenew.open(QIODevice::ReadOnly); QDataStream in(&filenew); // 从文件读取序列化数据 in >> data; //提取写入的数据 filenew.close(); } return data; //返回值读取的值}【3】代码设计:云端数据解析//解析反馈结果void Widget::replyFinished(QNetworkReply *reply){ QString displayInfo; int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); //读取所有数据 QByteArray replyData = reply->readAll(); qDebug()<<"状态码:"<<statusCode; qDebug()<<"反馈的数据:"<<QString(replyData); //更新token if(function_select==3) { displayInfo="token 更新失败."; //读取HTTP响应头的数据 QList<QNetworkReply::RawHeaderPair> RawHeader=reply->rawHeaderPairs(); qDebug()<<"HTTP响应头数量:"<<RawHeader.size(); for(int i=0;i<RawHeader.size();i++) { QString first=RawHeader.at(i).first; QString second=RawHeader.at(i).second; if(first=="X-Subject-Token") { Token=second.toUtf8(); displayInfo="token 更新成功."; //保存到文件 SaveDataToFile(Token); break; } } QMessageBox::information(this,"提示",displayInfo,QMessageBox::Ok,QMessageBox::Ok); return; } //判断状态码 if(200 != statusCode) { //解析数据 QJsonParseError json_error; QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error); if(json_error.error == QJsonParseError::NoError) { //判断是否是对象,然后开始解析数据 if(document.isObject()) { QString error_str=""; QJsonObject obj = document.object(); QString error_code; //解析错误代码 if(obj.contains("error_code")) { error_code=obj.take("error_code").toString(); error_str+="错误代码:"; error_str+=error_code; error_str+="\n"; } if(obj.contains("error_msg")) { error_str+="错误消息:"; error_str+=obj.take("error_msg").toString(); error_str+="\n"; } //显示错误代码 QMessageBox::information(this,"提示",error_str,QMessageBox::Ok,QMessageBox::Ok); } } return; } //设置属性 if(function_select==12 || function_select==13) { //解析数据 QJsonParseError json_error; QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error); if(json_error.error == QJsonParseError::NoError) { //判断是否是对象,然后开始解析数据 if(document.isObject()) { QJsonObject obj = document.object(); if(obj.contains("response")) { QJsonObject obj1=obj.take("response").toObject(); int val=0; QString success; if(obj1.contains("result_code")) { val=obj1.take("result_code").toInt(); } if(obj1.contains("result_desc")) { success=obj1.take("result_desc").toString(); } if(val==0 && success =="success") { //显示状态 QMessageBox::information(this,"提示","远程命令操作完成.",QMessageBox::Ok,QMessageBox::Ok); return; } else { //显示状态 QMessageBox::information(this,"提示","设备未正确回应.请检查设备网络.",QMessageBox::Ok,QMessageBox::Ok); return; } } } } } //查询设备属性 if(function_select==0) { //解析数据 QJsonParseError json_error; QJsonDocument document = QJsonDocument::fromJson(replyData, &json_error); if(json_error.error == QJsonParseError::NoError) { //判断是否是对象,然后开始解析数据 if(document.isObject()) { QJsonObject obj = document.object(); if(obj.contains("shadow")) { QJsonArray array=obj.take("shadow").toArray(); for(int i=0;i<array.size();i++) { QJsonObject obj2=array.at(i).toObject(); if(obj2.contains("reported")) { QJsonObject obj3=obj2.take("reported").toObject(); if(obj3.contains("properties")) { QJsonObject properties=obj3.take("properties").toObject(); qDebug()<<"开始解析数据...."; } } } } } } return; }}五、代码实现5.1 BC26连接云平台实现代码下面是使用STM32F103ZET6和BC26连接华为云物联网平台实现MQTT设备登录、主题订阅和主题发布的实现代码:#include "stdio.h"#include "string.h"#include "stdlib.h"// 定义华为云物联网平台的服务器地址、端口号、设备ID和设备密码#define MQTT_SERVER "mqtt://xxxxxx.iotplatform.com" // 请替换为实际的服务器地址#define MQTT_PORT 1883 // 请根据实际情况修改端口号#define DEVICE_ID "your_device_id" // 请替换为实际的设备ID#define DEVICE_PASSWORD "your_device_password" // 请替换为实际的设备密码// 定义MQTT相关的参数#define MQTT_CLIENT_ID "your_client_id" // 请替换为实际的客户端ID#define MQTT_TOPIC "your_topic" // 请替换为实际的主题// 定义MQTT消息接收回调函数void mqtt_message_received(char *topic, char *payload) { printf("Received message on topic: %s\n", topic); printf("Payload: %s\n", payload);}// 建立MQTT连接void mqtt_connect() { // 连接到华为云物联网平台的MQTT服务器 // 这里使用的是MQTT的QoS 1级别 // 请根据实际情况修改QoS级别和其他参数 char command[256]; sprintf(command, "AT+QMTCFG="aliauth",0,%d,"%s","%s"", MQTT_PORT, DEVICE_ID, DEVICE_PASSWORD); printf("Sending command: %s\n", command); // 发送AT指令连接到MQTT服务器 // ... // 订阅主题 sprintf(command, "AT+QMTSUB=0,1,"%s",1", MQTT_TOPIC); printf("Sending command: %s\n", command); // 发送AT指令订阅主题 // ...}// 发布MQTT消息void mqtt_publish(char *payload) { // 发布消息到指定的主题 char command[256]; sprintf(command, "AT+QMTPUB=0,0,0,0,"%s"", MQTT_TOPIC); printf("Sending command: %s\n", command); // 发送AT指令设置发布的主题 // ... sprintf(command, "AT+QMTPUB=0,1,0,0,%d", strlen(payload)); printf("Sending command: %s\n", command); // 发送AT指令设置消息的长度 // ... printf("Sending payload: %s\n", payload); // 发送消息的内容 // ... // 等待MQTT服务器返回发布结果 // ...}int main() { // 初始化串口和其他硬件模块 // ... // 连接到华为云物联网平台的MQTT服务器 mqtt_connect(); // 进入主循环 while (1) { // 处理其他任务 // ... // 检查是否有需要发布的消息 // 如果有,调用mqtt_publish函数发布消息 // ... // 检查是否有接收到的MQTT消息 // 如果有,调用mqtt_message_received函数处理消息 // ... } return 0;}5.2 BC26模块的MQTT协议指令BC26模块是一款支持NB-IoT通信技术的物联网模块,可以通过AT指令与外部设备进行通信和控制。下面是BC26模块与MQTT协议相关的一些常用AT指令及其功能:【1】AT+QMTOPEN:打开MQTT客户端连接。功能:通过该指令连接到MQTT服务器。参数:服务器地址、端口号、用户名和密码等。示例:AT+QMTOPEN=0,"mqtt://xxxxxx.iotplatform.com",1883【2】AT+QMTCLOSE:关闭MQTT客户端连接。功能:通过该指令关闭与MQTT服务器的连接。参数:无。示例:AT+QMTCLOSE=0【3】AT+QMTCONN:建立MQTT连接。功能:通过该指令建立与MQTT服务器的连接。参数:客户端ID、用户名、密码等。示例:AT+QMTCONN=0,"your_client_id","your_username","your_password"【4】AT+QMTDISC:断开MQTT连接。功能:通过该指令断开与MQTT服务器的连接。参数:无。示例:AT+QMTDISC=0【5】AT+QMTSUB:订阅MQTT主题。功能:通过该指令订阅指定的MQTT主题。参数:主题、QoS级别等。示例:AT+QMTSUB=0,1,"your_topic",1【6】AT+QMTUNS:取消订阅MQTT主题。功能:通过该指令取消订阅指定的MQTT主题。参数:主题。示例:AT+QMTUNS=0,1,"your_topic"【7】AT+QMTPUB:发布MQTT消息。功能:通过该指令发布消息到指定的MQTT主题。参数:主题、消息内容、QoS级别等。示例:AT+QMTPUB=0,0,0,0,"your_topic"【8】AT+QMTRECV:接收MQTT消息。功能:通过该指令接收从MQTT服务器接收到的消息。参数:无。示例:AT+QMTRECV=0这些是BC26模块中与MQTT协议相关的一些常用AT指令。5.3 读取DHT11传感器的温湿度数据以下是使用STM32F103ZET6读取DHT11传感器的温湿度数据的实现代码:#include "stm32f10x.h"#include "dht11.h"int main(void){ // 初始化DHT11传感器 DHT11_Init(); while (1) { // 读取DHT11传感器的温湿度数据 DHT11_Result result = DHT11_Read(); if (result.status == DHT11_OK) { // 温度数据 uint8_t temperature = result.temperature; // 湿度数据 uint8_t humidity = result.humidity; // 在这里进行温湿度数据的处理和使用 // ... // 延时一段时间后再次读取 DelayMs(2000); } else { // 读取失败,可以进行相应的错误处理 // ... } }}在主函数中,通过循环不断读取DHT11传感器的温湿度数据。如果读取成功,可以从result结构体中获取温度和湿度数据,并进行相应的处理。如果读取失败,可以根据需要进行错误处理。5.4 DHT11.c和DHT11.h代码dht11.h:#ifndef DHT11_H#define DHT11_H#include "stm32f10x.h"typedef struct{ uint8_t status; // 读取状态,0表示成功,其他表示失败 uint8_t humidity; // 湿度值 uint8_t temperature; // 温度值} DHT11_Result;void DHT11_Init(void);DHT11_Result DHT11_Read(void);#endifdht11.c:#include "dht11.h"#define DHT11_PORT GPIOA#define DHT11_PIN GPIO_Pin_0static void DHT11_Delay(uint32_t us){ uint32_t count = us * 8; while (count--) { __NOP(); }}static void DHT11_SetOutput(void){ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = DHT11_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DHT11_PORT, &GPIO_InitStructure);}static void DHT11_SetInput(void){ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = DHT11_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(DHT11_PORT, &GPIO_InitStructure);}static uint8_t DHT11_ReadByte(void){ uint8_t byte = 0; for (uint8_t i = 0; i < 8; i++) { while (!GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { // 等待低电平结束 } DHT11_Delay(30); if (GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { byte |= (1 << (7 - i)); } while (GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { // 等待高电平结束 } } return byte;}void DHT11_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = DHT11_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DHT11_PORT, &GPIO_InitStructure); GPIO_SetBits(DHT11_PORT, DHT11_PIN);}DHT11_Result DHT11_Read(void){ DHT11_Result result; result.status = 1; DHT11_SetOutput(); GPIO_ResetBits(DHT11_PORT, DHT11_PIN); DHT11_Delay(18000); GPIO_SetBits(DHT11_PORT, DHT11_PIN); DHT11_Delay(20); DHT11_SetInput(); if (!GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { while (!GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { // 等待低电平结束 } while (GPIO_ReadInputDataBit(DHT11_PORT, DHT11_PIN)) { // 等待高电平结束 } uint8_t data[5]; for (uint8_t i = 0; i < 5; i++) { data[i] = DHT11_ReadByte(); } uint8_t sum = data[0] + data[1] + data[2] + data[3]; if (sum == data[4]) { result.status = 0; result.humidity = data[0]; result.temperature = data[2]; } } return result;}dht11.h文件定义了DHT11传感器的初始化函数DHT11_Init()和读取函数DHT11_Read(),以及DHT11_Result结构体用于存储读取结果。dht11.c文件实现了DHT11传感器的初始化和读取函数。在初始化函数中,配置了DHT11引脚的GPIO模式和速度。在读取函数中,通过发送开始信号和接收数据的方式读取DHT11传感器的温湿度数据,并进行校验。5.5 GPS数据解析在STM32F103ZET6上通过串口2读取GPS模块返回的定位数据并解析经纬度和定位状态。#include "stm32f10x.h"#include <stdio.h>#include <string.h>// 定义串口2接收缓冲区大小#define RX_BUFFER_SIZE 256// 定义GPS数据解析状态typedef enum { GPS_STATE_IDLE, // 空闲状态 GPS_STATE_RECEIVING, // 接收中状态 GPS_STATE_COMPLETE // 接收完成状态} GPS_State;// 定义接收缓冲区和接收状态变量char rxBuffer[RX_BUFFER_SIZE];volatile uint16_t rxIndex = 0;volatile GPS_State gpsState = GPS_STATE_IDLE;// 处理接收到的GPS数据void processGPSData() { // 在这里进行GPS数据解析和处理 // 解析经纬度和定位状态等信息 // 根据需要进行相应的操作或显示 // 例如,打印经纬度和定位状态 printf("Latitude: %s\n", latitude); printf("Longitude: %s\n", longitude); printf("Position Fix Status: %s\n", positionStatus);}// 串口2接收中断处理函数void USART2_IRQHandler(void) { if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) { char data = USART_ReceiveData(USART2); // 接收到回车换行符表示一条完整的GPS数据 if (data == '\n') { rxBuffer[rxIndex] = '\0'; rxIndex = 0; gpsState = GPS_STATE_COMPLETE; } else { // 将接收到的数据存储到缓冲区中 rxBuffer[rxIndex] = data; rxIndex++; // 接收缓冲区溢出时进行处理 if (rxIndex >= RX_BUFFER_SIZE) { rxIndex = 0; gpsState = GPS_STATE_IDLE; } } }}int main(void) { // 初始化串口2和GPIO引脚 // 设置串口2的波特率、数据位、停止位等参数 // 使能串口2接收中断 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); NVIC_EnableIRQ(USART2_IRQn); while (1) { // 如果接收到完整的GPS数据 if (gpsState == GPS_STATE_COMPLETE) { // 处理接收到的GPS数据 processGPSData(); // 处理完成后,重置接收状态为IDLE gpsState = GPS_STATE_IDLE; } }}代码中的串口初始化和中断处理部分是基于标准库的使用方式。
-
上传数据的格式正确但是数据上传不上云端
-
我使用的开发板是凌蒙派,芯片是RK3568,使用标准系统内核。尝试将华为云文档里Openharmony版本的IoT Device SDK集成到Openharmony源码里,编译时提示找不到“cmsis_os2.h”,反复查找都找不到解决的方法。
-
目前专业版看到参数提示如下:实例版本 免费单元S0 实例单元个数 1 同时在线设备数上限 1,000 注册设备数上限 20,000 上下行消息TPS峰值 10 每日消息数上限 10,000 计费模式 包年包月只要不超过 每日消息上限 10000 是不是就不会扣除费用? 超过了按计费模式扣费是吧?
-
现在有基础版、标准版、专业版。 标准版 与 专业版 是否一样?
-
物联网设备端需要接入摄像头拍照这种。 防盗猫眼,防盗的一些常见。触发报警拍照上传云端。 华为云IOT我用了段时间,发现好像不能直接传图像显示。onenet之前测试过,上传的图片可以在网页后台数据页面直接看到图片的。就是能看到渲染出来的图片。
-
就是设备上云之后,如果想开发一款应用界面这种。 华为云有没有现成的框架,可以一键生成打包成Android手机APP或者发布网页这种。阿里云、onenet 中国移动云是有网页和手机APP。 就是可以直接操作设备这种。
-
这个结构体前面这几个uint8_t是干什么的?应该怎么填啊?
-
通过将能源分项计量和 CT健康纳入楼宇自动化系统,业主可以有效管理能源使用、分配成本、识别异常情况并实施节能措施。这些工具提供实时数据,支持可持续发展计划,并支持主动决策,以实现更资源高效、更环保的建筑运营和维护。在增强楼宇自动化控制系统方面,能源分项计量是一个游戏规则改变者。通过在主公用电表下游安装计量设备,分项计量可以更精细地跟踪能源使用情况。然后,这些数据可用于有效管理建筑物的系统、分配成本并识别任何异常能源消耗。此外,CT监测可测量交流电路上的电流,为能源效率分析、HVAC 效率评估、资产状况监控和运行时可视性提供宝贵的见解。分项计量和CT监测相结合在跟踪能源消耗、优化能源和水效率以及促进建筑物中可再生能源的使用方面发挥着至关重要的作用。他们通过提供实时数据、促进基准测试、实现成本分配和确定需要改进的领域来支持可持续发展计划。通过实施分项计量和CT监测,建筑物可以实现更加资源高效、环境友好的运营和维护。要点:能源分项计量可以更精确地跟踪楼宇自动化系统中的能源使用情况。CT监测为能效分析和 HVAC 效率评估提供了宝贵的见解。辅助计量和 CT 监测通过实现实时数据分析和识别需要改进的领域来支持可持续发展计划。实施分项计量和 CT监测可以实现资源节约型和环境友好型的建筑运营。通过分项计量和 CT监测促进成本分配和基准比较,促进公平的能源使用分配和改进识别。能源管理在智能建筑中的重要性有效的能源管理是智能建筑解决方案的基石,可实现成本节约和环境可持续性。通过实施稳健的能源管理策略,建筑业主和运营商可以优化能源消耗,降低运营成本,并最大限度地减少对环境的影响。智能建筑中的能源管理涉及使用先进技术和数据分析来监视、控制和优化各种建筑系统的能源使用。能源管理的一个重要方面是能源分项计量的集成。分项计量涉及在主公用事业仪表下游安装计量设备,以更精细地跟踪能源使用情况。这样可以精确监控和识别能源消耗模式,使建筑运营商能够发现效率低下的情况并实施有针对性的节能措施。此外,CT监测通过测量交流电路上的电流,在能源管理中发挥着至关重要的作用。该数据可用于能源效率分析、HVAC 效率评估、资产状况监控和运行时可视性。通过利用这些信息,建筑业主可以确定需要改进的领域、优化系统性能并减少能源浪费。智能建筑能源管理的好处:通过优化能源消耗节省成本提高运营效率和绩效提高使用者舒适度和生产力减少环境影响和碳足迹通过将能源分项计量和 CT健康纳入楼宇自动化系统,业主可以有效管理能源使用、分配成本、识别异常情况并实施节能措施。这些工具提供实时数据,支持可持续发展计划,并支持主动决策,以实现更资源高效、更环保的建筑运营和维护。分项计量技术在楼宇自动化中的作用分项计量技术通过提供精细的能源使用数据并促进高效的资源分配,在楼宇自动化控制系统中发挥着至关重要的作用。通过在主公用电表下游安装子电表,可以更详细地跟踪能源消耗,从而更好地监控和管理建筑物的能源使用情况。这些数据对于识别高能耗领域和优化能源效率非常宝贵。分项计量技术的主要优点之一是能够实现准确的成本分配。通过跟踪建筑物各个区域或部门的能源使用情况,组织可以根据实际消耗而不是依赖估计或面积来分配成本。这促进了公平使用并可以激励节能措施。除了成本分配之外,分项计量技术在识别异常能源消耗模式方面也发挥着至关重要的作用。通过实时监控能源使用情况,可以快速发现与正常能源消耗的偏差,以便及时调查和采取行动。这有助于识别潜在的设备故障、能源浪费或未经授权的使用,最终改善能源管理并节省能源。分表计量技术的优点精确跟踪细粒度的能源使用情况高效的资源配置和成本分配及时发现能耗异常改进能源管理和节约通过将分项计量技术纳入楼宇自动化控制系统,组织可以深入了解其能源消耗、提高能源效率并推动可持续实践。分项计量技术能够实时监控能源使用情况并准确分配成本,是优化能源效率和提高智能建筑整体性能的重要工具。通过利用从分项计量技术获得的数据,组织可以就能源使用做出明智的决策,确定需要改进的领域,并实施策略以提高效率。此外,通过检测异常能源消耗模式的能力,可以最大限度地减少潜在的能源浪费,从而节省成本并提高可持续性。分表计量技术的优点:准确的能量跟踪:允许精确监控能源使用情况成本分配:实现根据实际消耗公平分配能源成本异常消耗检测:有助于快速识别异常能源消耗模式能源管理和节约:提高能源效率并减少能源浪费“分项计量技术正在彻底改变建筑物的管理和优化方式。它能够提供详细的能耗数据并实现高效的资源分配,是楼宇自动化控制系统的游戏规则改变者。” – John Smith 能源效率专家通过分项计量提高能源效率分项计量技术是提高建筑物能源效率的强大工具,可以有针对性地优化和减少能源浪费。通过在主公用电表下游安装分表计量设备,建筑业主可以更详细地了解其能源消耗情况,从而确定需要改进的领域并实施提高效率的策略。分项计量数据提供了有关建筑物内能源使用情况的宝贵见解。它可以识别能源密集型区域或设备,使建筑管理者能够采取主动措施减少能源浪费并优化使用。借助这些数据,决策者可以实施节能举措,例如升级陈旧设备、优化暖通空调系统以及实施能源管理系统。此外,分项计量技术可以为租户或建筑物内的不同部门准确分配成本。通过更具体地跟踪能源使用情况,确保根据实际消耗公平分配能源成本。这提高了透明度并鼓励建筑居住者采取节能意识行为。分项计量技术对能源效率的好处:有针对性地优化能源使用能源密集区域或设备识别实施节能举措为租户或部门准确分配成本总之,分项计量技术在提高建筑物能源效率方面发挥着至关重要的作用。它为建筑业主和管理者提供优化能源使用、减少浪费和促进可持续发展所需的数据。通过利用分项计量数据,决策者可以做出明智的决策,实施节能举措,并确保公平的能源成本分配。分项计量技术的集成是朝着更加资源节约型和环境友好型建筑运营迈出的一步。能源分析在智能建筑管理中的优势能源分析由分项计量技术提供支持,为明智的决策和运营优化提供宝贵的见解,从而实现智能建筑管理。通过利用从分项计量设备获得的数据,建筑业主和运营商可以更深入地了解其能源消耗模式,确定潜在的改进领域,并实施提高能源效率的策略。能源分析的主要优势之一是它能够促进数据驱动的决策。通过访问实时和历史能源数据,建筑经理可以分析趋势、检测异常并做出明智的选择,以优化能源使用并降低成本。例如,确定能源使用高峰期可以帮助在非高峰时段安排能源密集型任务,从而最大限度地减少需求费用并最大限度地提高能源效率。此外,能源分析可以实现主动维护和资产管理。通过精细监控能耗,建筑运营商可以及早发现设备故障或效率低下。这样可以及时进行维修或更换,防止发生代价高昂的故障,并确保暖通空调系统、照明和其他耗能设备的最佳性能。此外,能源分析支持智能建筑的可持续发展计划。通过分析能源数据,建筑业主可以评估可再生能源整合的影响、测量碳足迹并确定进一步节能的机会。这种数据驱动的方法可帮助组织设定可持续发展目标、跟踪进度并做出基于证据的决策,以减少对环境的影响。能源分析的主要优点:通过数据驱动决策提高运营效率及早发现设备故障或效率低下,进行主动维护支持可持续发展倡议和可再生能源整合通过优化能源使用提高能源效率并降低成本“能源分析是智能建筑管理的游戏规则改变者。它为建筑运营商提供优化能源使用、降低成本和推动可持续发展所需的见解。通过利用分项计量技术,组织可以控制其能源消耗模式,并为提高建筑效率做出明智的决策。”通过 CT 监测推动能源优化CT 监测为能源效率分析和绩效评估提供有价值的数据,在推动能源优化方面发挥着关键作用。通过测量交流电路上的电流,CT 监视器可捕获实时数据,这些数据可用于识别能耗模式并检测效率低下的区域。这些数据对于了解建筑物中能源的使用方式至关重要,并可以进行有针对性的改进。通过 CT 监控,建筑业主和设施管理者可以精细地分析能源使用情况并确定优化机会。通过监测能源流,他们可以查明消耗过多能源的设备或流程,从而采取纠正措施并减少浪费。此外,CT 监测还可以进行 HVAC 效率评估,帮助识别可能导致能源效率低下的供暖、通风和制冷系统的潜在问题。CT 监测对能源优化的主要优势:能源效率分析暖通空调效率评估资产状况监控运行时可见性CT 监测使我们能够深入了解建筑物中能源的利用情况。通过监控交流电路的电流,我们可以识别能源浪费过程,评估 HVAC 系统的效率,监控关键资产的状况,并实时了解能源消耗情况。有了这些信息,我们就可以做出数据驱动的决策,优化能源使用、提高系统性能并降低成本。将 CT 监控作为综合能源管理策略的一部分实施对于实现长期能源优化目标至关重要。通过持续监控能源消耗并进行必要的调整,建筑业主和运营商可以推动可持续发展工作,减少对环境的影响,并确保高效的建筑运营。通过分项计量和 CT 监控支持可持续发展计划通过支持可持续发展计划,分项计量技术和 CT 监控有助于实现资源高效且环保的建筑运营和维护。这些工具在识别能源使用模式、优化能源效率和促进可再生能源整合方面发挥着至关重要的作用。借助通过分项计量获得的详细能源数据,建筑业主和设施管理者可以准确分配能源成本,确定需要改进的领域,并实施提高效率的策略。另一方面,CT 监控可以提供有关能源消耗、HVAC 效率和资产状况的宝贵见解,从而实现实时决策和主动维护。除了提供实时数据之外,分项计量和 CT 监控还有助于进行基准测试,这对于评估建筑物的性能并将其与行业标准进行比较至关重要。这使得建筑业主能够设定切合实际的可持续发展目标并跟踪其进展情况。此外,分项计量技术可以实现成本分配,确保能源成本在租户或部门之间公平分配。这鼓励负责任的能源使用并激励个人采取节能做法。实施分项计量和 CT 监控还有助于确定能源效率和资源消耗方面需要改进的领域。无论是优化 HVAC 系统、识别设备故障还是检测异常能源使用模式,这些工具都为可持续建筑管理提供了重要的见解。通过利用获得的数据,建筑业主可以做出明智的决策、减少浪费并优化能源和水效率。这不仅可以节省成本,还有助于建筑物的整体可持续性。分项计量和 CT 监测对可持续发展计划的好处实时数据有助于明智决策和主动维护促进基准测试和绩效评估公平成本分配,促进负责任的能源使用确定能源效率和资源消耗方面需要改进的领域总之,分项计量技术和 CT 监测是支持可持续发展计划和实现资源节约型和环境友好型建筑运营的重要工具。通过分项计量和 CT 监控获得的数据驱动的见解可实现主动决策、成本优化和提高能源效率。通过实施这些技术,建筑业主可以在实现可持续发展目标方面取得重大进展,减少对环境的影响,并创造更可持续的生活和工作环境。通过分表计量实现实时数据和成本分配通过分项计量技术获得的实时数据有助于主动决策,而准确的成本分配可确保公平的能源使用分配。分项计量可以更精细地测量能源消耗,提供有关使用模式的详细见解并确定需要改进的领域。通过实时跟踪能源使用情况,建筑业主和设施管理者可以做出明智的决策,以优化能源效率并降低成本。通过分项计量获得的数据可用于各种目的,包括租户、部门或个人用户之间的成本分配。这可以实现能源费用的公平和透明分配,促进问责制并激励节能。通过准确的成本分配,鼓励建筑物居住者更加意识到自己的能源使用情况,从而实现建筑物更加可持续和高效的运营。实施分表计量技术还有助于数据驱动的决策。实时数据可以识别异常能源消耗,从而能够及时采取行动解决任何潜在问题。它还提供对能源使用趋势的洞察,帮助建筑管理者确定优化领域并实施有效的节能策略。通过访问实时能源数据的能力,建筑物业主和设施管理者可以更好地控制其能源资源,并可以主动响应不断变化的能源需求。通过将分项计量技术纳入楼宇自动化系统,组织可以利用实时数据和准确成本分配的力量来提高能源效率、促进可持续性并降低运营成本。分项计量和成本分配的结合为优化能源使用提供了全面的解决方案,使组织能够做出明智的决策并推动积极变革,迈向更绿色、更可持续的未来。分项计量和 CT 监控的基准测试和改进识别的重要性基准测试和改进识别是建筑管理的关键方面,分项计量技术和 CT 监测可实现准确的性能比较和有针对性的改进策略。通过实施这些工具,建筑业主可以深入了解其能源消耗模式,并确定可以提高效率的领域。分项计量技术可以对能源使用情况进行精细监控,提供建筑物内各个系统或部门的实时数据。该数据可以与基准进行比较,以确定高能耗领域并制定改进目标。此外,CT 监控还提供有关当前负载的宝贵信息,可用于评估 HVAC 系统的效率并识别可能表明潜在问题的任何异常情况。分项计量在基准测试中的作用分表计量技术在建筑物内的能源消耗基准测试中发挥着至关重要的作用。通过跟踪特定区域或系统的能源使用情况,建筑业主可以将其性能与既定基准、行业标准甚至其投资组合中的类似建筑进行比较。这样可以更准确地评估能源效率,并有助于确定需要改进的领域。通过分项计量,建筑物业主可以收集有关建筑物不同部分的能源使用模式、峰值需求和低效率的数据。然后,这些信息可用于制定有针对性的改进策略并实施节能措施,例如设备升级或行为改变。总体而言,分项计量技术和 CT 监测为能源消耗基准测试和确定需要改进的领域提供了重要工具。通过利用这些工具,建筑业主可以优化能源使用、降低成本并为更加可持续的未来做出贡献。分项计量和 CT 监控的优点例子实时数据有助于做出明智的决策建筑运营商可以实时监控能源使用情况并进行调整以优化效率。促进成本分配分项计量可以将能源成本准确分配给各个部门或租户。确定需要改进的领域来自分项计量和 CT 监测的数据可以揭示效率低下的情况并指导有针对性的改进策略。实施分项计量和 CT 监控可以提高资源效率和环境友好型的建筑运营和维护。借助准确的能源消耗数据,建筑业主可以做出明智的决策、优化效率并减少环境足迹。基准测试和改进识别对于实现建筑运营的能源效率和可持续性至关重要。分项计量技术和 CT 监测提供了必要的数据和见解,以准确比较性能、确定需要改进的领域并实施有针对性的策略。通过利用这些工具,建筑业主可以优化能源使用、降低成本并为绿色未来做出贡献。在建筑运营中实现资源效率和环境可持续性通过实现数据驱动的决策、能源优化和可再生能源集成,分项计量和 CT 监控有助于实现资源高效且环境可持续的建筑运营。这些工具在跟踪能源消耗、优化能源和水效率以及促进建筑物中可再生能源的使用方面发挥着至关重要的作用。通过分项计量,建筑物业主可以在主公用事业仪表下游安装计量设备,以更精细地跟踪能源使用情况。然后,该数据可用于有效管理建筑物系统、成本分配以及识别异常能源消耗。另一方面,CT 监控可测量交流电路上的电流,并为能源效率分析、HVAC 效率评估、资产状况监控和运行时可视性提供有价值的见解。通过监测电流,建筑运营商可以识别需要改进的领域并优化能源使用。这种数据驱动的方法使建筑业主能够做出明智的决策,从而提高能源效率并减少对环境的影响。为了进一步提高建筑运营中的资源效率,分项计量和 CT 监测通过提供实时数据、促进基准测试、实现成本分配和确定需要改进的领域来支持可持续发展计划。通过分项计量获得的实时数据使建筑运营商能够准确监控和管理能源使用情况,进行主动调整以确保最佳效率。基准测试数据有助于比较不同建筑物或系统的性能,确定能源消耗高于平均水平的区域,并实施提高效率的策略。此外,分项计量和 CT 监控可实现准确的成本分配,促进建筑物内租户或部门之间公平的能源使用分配。通过根据实际消耗分配成本,分项计量有助于激励个人和组织更负责任、更高效地使用能源,从而实现长期可持续发展。分项计量和 CT 监测对资源效率和环境可持续性的好处能耗监测实时数据促进基准测试和确定需要改进的领域准确的成本分配以实现公平的能源使用分配促进可再生能源的利用和整合通过实施分项计量和 CT 监控,建筑业主可以实现资源高效且环境可持续的建筑运营。这些工具提供了必要的数据和见解,以优化能源和水效率、减少碳足迹并促进负责任的能源使用。楼宇自动化系统可以利用分项计量和 CT 监控的力量来创建更智能、更可持续的建筑,这不仅有利于居住者,而且有助于创造更绿色的未来。总结能源分项计量和 CT 监控是增强楼宇自动化控制系统、提高能源效率和推动可持续楼宇运营的重要工具。通过分表计量,建筑物业主可以更精细地跟踪能源使用情况,从而有效管理建筑物系统并识别异常能源消耗。该数据还可用于成本分配,确保租户或部门之间公平的能源使用分配。另一方面,CT 监测可以提供有关能源效率和 HVAC 性能的宝贵见解。通过测量交流电路上的电流,建筑经理可以评估能源使用情况、HVAC 效率、资产状况和运行时可见性。这种数据驱动的方法使业主能够做出明智的决策、优化能源使用并降低成本。除了优化能源和水效率之外,分项计量和 CT 监测在促进可再生能源的使用和支持可持续发展举措方面发挥着至关重要的作用。这些工具提供实时数据,支持主动决策并提高运营效率。它们促进基准测试,使业主能够比较性能并确定需要改进的领域。此外,分项计量和CT监控可实现精确的成本分配,确保能源费用的公平分配。通过实施分项计量和 CT 监控,建筑业主可以实现资源节约型和环境友好型的建筑运营。这些工具有助于更好的能源管理,有助于减少浪费、优化能源使用并推动可持续发展。分项计量和 CT 监控能够提供详细的能源数据和见解,是旨在提高效率、节省成本和环境可持续性的楼宇自动化系统不可或缺的工具。FAQ问:什么是电能分项计量?答:能源分项计量涉及在主公用电表下游安装计量设备,以更精细地跟踪能源使用情况。问:能源分项计量如何增强楼宇自动化系统?答:能源分项计量可以有效管理建筑物的系统、成本分配以及异常能源消耗的识别。问:什么是CT监测?答:CT 监测可测量交流电路上的电流,并为能源效率分析、HVAC 效率评估、资产状况监控和运行时可视性提供宝贵的见解。问:分表计量和 CT 监测如何促进可持续发展?答:分项计量和 CT 监测提供实时数据、促进基准测试、实现成本分配并确定需要改进的领域,从而提高能源和水效率并支持建筑物中的可再生能源使用。问:实施分项计量和 CT 监控有哪些好处?答:实施分项计量和 CT 监控可以提高资源效率和环境友好型的建筑运营和维护。原文链接:https://www.51cto.com/article/768028.html
-
请问下大家,华为云的物联网服务器能主动通知自己的服务器不?设备上传数据之后,华为云的服务器能主动通知我自己搭建的服务器吗?
-
看提示说:每日消息上限10000,同时在线1000个设备。 只要不超过这个范围,标准版目前是可以免费使用吧?我现在准备采用华为云IOT平台作为产品的物联网服务器,先测试看看项目的稳定性。 还有一个问题就是: 每日消息上限10000,这个10000是什么单位呀。 是设备向服务器发送的一条设备上报的消息吗? 还是消息的字节单位呀。 心跳包算不算条数呢?
上滑加载中
推荐直播
-
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
回顾中 -
用代码全方位驱动 OBS 存储
2025/01/14 周二 16:30-18:00
阿肯 华为云生态技术讲师
如何用代码驱动OBS?常用的数据管理,对象清理,多版本对象访问等应该如何编码?本期课程一一演示解答。
即将直播 -
GaussDB数据库开发
2025/01/15 周三 16:00-17:30
Steven 华为云学堂技术讲师
本期直播将带你了解GaussDB数据库开发相关知识,并通过实验指导大家利用java基于JDBC的方式来完成GaussD数据库基础操作。
去报名
热门标签