• [技术干货] 基于STM32+华为云IOT设计的智能窗帘控制系统
    一、项目背景随着智能家居技术的不断发展,人们对于家居生活的需求也越来越高。智能窗帘作为智能家居领域的重要组成部分,为用户提供了更便捷、舒适的生活体验。本项目基于STM32主控芯片和华为云物联网平台,设计一款智能窗帘控制系统,以满足家庭和商业场所的需求。在本项目中,选择了STM32F103ZET6作为主控芯片具有强大的处理能力和丰富的外设接口,适合用于物联网设备的控制和通信。通过与ESP8266-WIFI模块的连接,可以实现智能窗帘与华为云物联网平台的互联互通,实现远程控制和监测。为了方便用户的操作和控制,使用Qt开发了Android手机APP和Windows上位机软件,用户可以通过这些应用程序进行窗帘的远程控制。同时,本地窗帘也支持手动控制,用户可以通过物理按钮或开关来操作窗帘的开关、升降等功能。在智能化方面,引入了语音识别技术(LD3320模块),用户可以通过语音指令来控制窗帘的运行。这为用户提供了更加便捷、智能的控制方式,使得窗帘的操作更加自然和智能化。除了远程控制和智能化功能,还引入了自动模式。在自动模式下,系统会根据环境条件进行智能判断和控制。例如,当检测到阳光强度超过设定阈值时,系统会自动关闭窗帘,以避免阳光直射室内;在晚上时,系统也会自动拉上窗帘,提供更好的隐私和安全性。本智能窗帘控制系统基于STM32主控芯片和华为云物联网平台,结合语音识别、智能家居控制等功能,为家庭和1商业场所提供便捷、舒适的智能化服务。通过远程控制、自动模式和智能化功能,用户可以实现对窗帘的灵活、智能的控制,提升生活质量和用户体验。二、硬件选型在设计智能窗帘控制系统的硬件方案时,需要考虑主控芯片、通信模块和传感器等关键组件的选型。以下是当前系统的具体硬件选型:【1】主控芯片:采用STM32F103ZET6作为主控芯片。具备强大的处理能力和丰富的外设接口,适合用于物联网设备的控制和通信。可以驱动各种传感器和执行器,并与ESP8266-WIFI模块和LD3320语音识别模块进行通信。【2】通信模块:选择了ESP8266-WIFI模块作为通信模块,用于连接华为云物联网平台。ESP8266-WIFI模块具有低功耗、高集成度和稳定的无线连接能力,能够实现智能窗帘与互联网的互联互通。【3】光照传感器:采用BH1750光照传感器来检测光照强度。BH1750是一种数字式光强度传感器,能够准确测量环境光的强度。通过获取光照强度数据,系统可以根据设定的阈值来判断是否需要自动拉窗帘。【4】语音识别模块:选择了LD3320语音识别模块,用于实现语音控制功能。LD3320是一种高性能语音识别芯片,能够实现对语音指令的识别和解析。通过语音识别模块,用户可以通过语音指令来控制窗帘的开合和模式切换。【5】电机和驱动模块:选择了28BYJ40步进电机作为窗帘控制的电机,并使用ULN2003驱动模块来驱动电机。28BYJ40步进电机具有较高的精度和稳定性,适合用于窗帘的控制。ULN2003是一种高电压、高电流驱动芯片,能够提供足够的电流和电压来驱动步进电机。【6】用户界面设备:采用Qt开发Android手机APP和Windows上位机来实现用户界面。通过这两个界面,用户可以进行远程控制窗帘的操作,包括开关窗帘、调整窗帘的开合程度和切换窗帘的工作模式。三、系统设计智能窗帘控制系统的软件设计主要包括主控程序、通信模块驱动、传感器驱动和用户界面等部分。以下是系统软件设计的思路:【1】主控程序:主控程序是系统的核心,负责控制窗帘的运行、处理传感器数据、与通信模块进行通信等。主控程序需要实现以下功能:初始化各个硬件模块,包括通信模块、传感器和电机驱动等。循环读取传感器数据,根据数据进行窗帘的控制和判断。处理用户的控制指令,包括远程控制指令和本地控制指令。与通信模块进行通信,实现与华为云物联网平台的互联互通。实现自动模式下的智能判断和控制逻辑。【2】通信模块驱动:通信模块驱动负责与华为云物联网平台进行通信,实现远程控制和数据传输。通信模块驱动需要实现以下功能:初始化通信模块,建立与华为云物联网平台的连接。接收来自云平台的控制指令,解析指令内容。将传感器数据和窗帘状态等信息上传到云平台,实现实时监测和数据传输。【3】传感器驱动:传感器驱动负责与光敏传感器、时间传感器等传感器进行交互,获取环境数据。传感器驱动需要实现以下功能:初始化传感器,配置传感器的工作模式和参数。定期读取传感器数据,包括光敏传感器的光强度和时间传感器的时间信息。将传感器数据传递给主控程序,供其进行判断和控制。【4】用户界面:用户界面是用户与系统进行交互的界面,可以通过Android手机APP或Windows上位机软件实现。用户界面需要实现以下功能:显示窗帘的状态和实时数据,如光强度、时间。提供远程控制窗帘的功能,包括开关、升降和自动模式的切换。接收用户的控制指令,将指令传递给主控程序进行处理。三、部署华为云物联网平台华为云官网: 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=30​117.78.5.125 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 35ms,最长 = 42ms,平均 = 37ms​C:\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 ESP8266连接云平台实现代码以下是使用STM32F103ZET6和ESP8266连接华为云物联网平台,通过MQTT协议实现设备登录、主题订阅和主题发布的实现代码:#include "stm32f10x.h"#include "stdio.h"#include "string.h"// 定义ESP8266的串口USART_TypeDef* ESP_USARTx = USART1;// 定义MQTT服务器的地址和端口const char* MQTT_SERVER = "mqtt.eclipse.org";const int MQTT_PORT = 1883;// 定义设备ID和设备密码const char* DEVICE_ID = "your_device_id";const char* DEVICE_PASSWORD = "your_device_password";// 定义订阅的主题const char* SUBSCRIBE_TOPIC = "your_subscribe_topic";// 定义发布的主题const char* PUBLISH_TOPIC = "your_publish_topic";// 定义接收缓冲区和发送缓冲区的大小#define RX_BUFFER_SIZE 1024#define TX_BUFFER_SIZE 1024// 定义接收缓冲区和发送缓冲区char rxBuffer[RX_BUFFER_SIZE];char txBuffer[TX_BUFFER_SIZE];// 定义接收缓冲区的索引和标志位volatile uint16_t rxIndex = 0;volatile uint8_t rxComplete = 0;// 发送数据到ESP8266void ESP8266_SendData(const char* data) { sprintf(txBuffer, "%s\r\n", data); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n'); USART_SendData(ESP_USARTx, (uint16_t)'\r'); USART_SendData(ESP_USARTx, (uint16_t)'\n');}// 从ESP8266接收数据void ESP8266_ReceiveData(uint16_t size) { while (size--) { rxBuffer[rxIndex++] = USART_ReceiveData(ESP_USARTx); } if (rxIndex >= RX_BUFFER_SIZE) { rxComplete = 1; rxIndex = 0; }}// 处理接收到的数据void ProcessReceivedData() { // TODO: 根据接收到的数据进行处理}// ESP8266串口中断处理函数void USART1_IRQHandler(void) { if (USART_GetITStatus(ESP_USARTx, USART_IT_RXNE) != RESET) { ESP8266_ReceiveData(1); }}// 连接到MQTT服务器void MQTT_Connect() { // 发送连接请求 sprintf(txBuffer, "AT+CIPSTART="TCP","%s",%d\r\n", MQTT_SERVER, MQTT_PORT); ESP8266_SendData(txBuffer); // 等待连接成功 while (!strstr(rxBuffer, "CONNECTED")) { if (rxComplete) { ProcessReceivedData(); rxComplete = 0; } } // 发送MQTT连接请求 sprintf(txBuffer, "AT+MQTTCONNECT="%s","%s"\r\n", DEVICE_ID, DEVICE_PASSWORD); ESP8266_SendData(txBuffer); // 等待连接成功 while (!strstr(rxBuffer, "CONNECTED")) { if (rxComplete) { ProcessReceivedData(); rxComplete = 0; } }}// 订阅主题void MQTT_Subscribe() { sprintf(txBuffer, "AT+MQTTSUBSCRIBE="%s"\r\n", SUBSCRIBE_TOPIC); ESP8266_SendData(txBuffer);}// 发布消息void MQTT_Publish(const char* message) { sprintf(txBuffer, "AT+MQTTPUBLISH="%s","%s"\r\n", PUBLISH_TOPIC, message); ESP8266_SendData(txBuffer);}int main(void) { // 初始化ESP8266的串口 USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(ESP_USARTx, &USART_InitStructure); USART_Cmd(ESP_USARTx, ENABLE); USART_ITConfig(ESP_USARTx, USART_IT_RXNE, ENABLE); NVIC_EnableIRQ(USART1_IRQn); // 连接到MQTT服务器 MQTT_Connect(); // 订阅主题 MQTT_Subscribe(); while (1) { if (rxComplete) { ProcessReceivedData(); rxComplete = 0; } // TODO: 处理其他业务逻辑 // 发布消息 MQTT_Publish("Hello, MQTT!"); // 延时一段时间 delay_ms(1000); }}以上代码用于演示使用STM32F103ZET6和ESP8266连接华为云物联网平台,通过MQTT协议实现设备登录、主题订阅和主题发布的基本功能。5.2 ESP8266的MQTT协议指令ESP8266通过MQTT协议连接到服务器的相关AT指令主要有以下几个:【1】AT+CIPSTART:建立TCP连接功能:使用TCP协议连接到远程服务器用法:AT+CIPSTART="TCP","<服务器地址>",<服务器端口>示例:AT+CIPSTART="TCP","mqtt.eclipse.org",1883【2】AT+MQTTCONNECT:连接到MQTT服务器功能:使用MQTT协议连接到MQTT服务器用法:AT+MQTTCONNECT="<设备ID>","<设备密码>"示例:AT+MQTTCONNECT="your_device_id","your_device_password"【3】AT+MQTTPUBLISH:发布消息功能:向指定主题发布消息用法:AT+MQTTPUBLISH="<主题>","<消息内容>"示例:AT+MQTTPUBLISH="your_publish_topic","Hello, MQTT!"【4】AT+MQTTSUBSCRIBE:订阅主题功能:订阅指定的主题用法:AT+MQTTSUBSCRIBE="<主题>"示例:AT+MQTTSUBSCRIBE="your_subscribe_topic"【5】AT+CIPCLOSE:关闭TCP连接功能:关闭当前的TCP连接用法:AT+CIPCLOSE这些AT指令可以通过串口与ESP8266进行通信,实现与MQTT服务器的连接、消息发布和订阅等功能。通过这些指令,可以在嵌入式设备上实现与云端的通信和数据交换,从而实现物联网应用。5.2 步进电机控制代码以下是使用STM32F103ZET6单片机通过ULN2003驱动芯片控制28BYJ-48步进电机实现角度控制和速度控制的实现代码:#include "stm32f10x.h"#include "delay.h"// 定义步进电机控制引脚#define IN1_PIN GPIO_Pin_0#define IN2_PIN GPIO_Pin_1#define IN3_PIN GPIO_Pin_2#define IN4_PIN GPIO_Pin_3#define IN_PORT GPIOA// 定义步进电机角度和速度参数#define ANGLE_1 512 // 控制步进电机转动一圈的步数#define SPEED_1 5 // 控制步进电机转动的速度// 步进电机转动顺序const uint8_t stepSequence[8] = {0x01, 0x03, 0x02, 0x06, 0x04, 0x0C, 0x08, 0x09};// 步进电机当前角度和速度volatile uint16_t currentAngle = 0;volatile uint8_t currentSpeed = 0;// 初始化步进电机控制引脚void StepperMotor_Init() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = IN1_PIN | IN2_PIN | IN3_PIN | IN4_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(IN_PORT, &GPIO_InitStructure);}// 控制步进电机转动一步void StepperMotor_Step() { static uint8_t stepIndex = 0; GPIO_Write(IN_PORT, stepSequence[stepIndex]); stepIndex = (stepIndex + 1) % 8;}// 控制步进电机转动到指定角度void StepperMotor_MoveToAngle(uint16_t targetAngle) { uint16_t steps = targetAngle - currentAngle; uint16_t absSteps = steps > 0 ? steps : -steps; uint8_t direction = steps > 0 ? 1 : -1; for (uint16_t i = 0; i < absSteps; i++) { StepperMotor_Step(); delay_ms(2); // 控制步进电机转动的速度 } currentAngle = targetAngle;}// 控制步进电机以指定速度连续转动void StepperMotor_MoveWithSpeed(uint8_t speed) { currentSpeed = speed; while (1) { StepperMotor_Step(); delay_ms(20 - currentSpeed); // 控制步进电机转动的速度 }}int main(void) { // 初始化步进电机控制引脚 StepperMotor_Init(); // 控制步进电机转动到指定角度 StepperMotor_MoveToAngle(ANGLE_1); // 控制步进电机以指定速度连续转动 StepperMotor_MoveWithSpeed(SPEED_1); while (1) { // 主循环中可以添加其他逻辑代码 }}5.3 LD3320识别代码以下是使用STM32F103的串口2接收LD3320语音识别结果并进行判断控制的代码:#include "stm32f10x.h"#include <stdio.h>// 定义LD3320串口通信引脚#define LD3320_RX_PIN GPIO_Pin_2#define LD3320_RX_PORT GPIOA#define LD3320_USART USART2// 定义接收缓冲区大小#define BUFFER_SIZE 128// 接收缓冲区volatile char rxBuffer[BUFFER_SIZE];volatile uint8_t rxIndex = 0;volatile uint8_t rxComplete = 0;// 初始化LD3320串口通信引脚void LD3320_UART_Init() { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); GPIO_InitStructure.GPIO_Pin = LD3320_RX_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(LD3320_RX_PORT, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx; USART_Init(LD3320_USART, &USART_InitStructure); USART_ITConfig(LD3320_USART, USART_IT_RXNE, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_Cmd(LD3320_USART, ENABLE);}// 串口2中断处理函数void USART2_IRQHandler() { if (USART_GetITStatus(LD3320_USART, USART_IT_RXNE) != RESET) { char data = USART_ReceiveData(LD3320_USART); if (rxIndex < BUFFER_SIZE - 1) { rxBuffer[rxIndex++] = data; } if (data == '\n') { rxComplete = 1; } }}// 处理接收到的LD3320识别结果void ProcessLD3320Result() { // 在这里进行LD3320识别结果的判断和控制逻辑 // 可以根据接收到的字符串进行判断,例如使用strcmp()函数进行比较 // 示例:if (strcmp(rxBuffer, "ON") == 0) { // 执行打开操作 } // 清空接收缓冲区 rxIndex = 0; rxComplete = 0;}int main(void) { // 初始化LD3320串口通信引脚 LD3320_UART_Init(); while (1) { if (rxComplete) { ProcessLD3320Result(); } }}以上代码使用STM32F103的串口2接收LD3320语音识别结果并进行判断控制。代码中使用了串口2的接收中断来接收LD3320的识别结果。在中断处理函数USART2_IRQHandler()中,将接收到的数据存储到接收缓冲区rxBuffer中,并通过检测换行符\n来判断一条完整的识别结果是否接收完成。当识别结果接收完成时,调用ProcessLD3320Result()函数进行识别结果的判断和控制逻辑处理。在ProcessLD3320Result()函数中,可以根据接收到的字符串进行判断和控制逻辑的实现。例如,使用字符串比较函数strcmp()来比较接收到的字符串与预设的控制命令是否匹配,从而执行相应的操作。在这个函数中,可以添加你需要的控制逻辑,例如打开或关闭某个设备,执行特定的动作等。
  • [其他问题] 沙盒实验桌面没有script文件--MindSpore训练手写数字识别模型
    沙盒实验界面没有script文件,我看了桌面只有Xfce、谷歌、data文件夹。导致后面60%的实验都不能进行下去。请问这种情况怎么处理?
  • [训练管理] 云原生AI算法套件实现水表识别 训练报错ImportError: cannot import name 'string_metric' from 'rapidfuzz' (/home/ma-user/anaconda3/envs/PyTor
    如图,按实验手册操作后,报模块导入错误。
  • [获奖公告] 【云声·建议】提产品优化建议,领开发者定制飞盘
    23年【云声·建议】反馈活动第四场来啦~现在万物复苏,是不是已经按捺不住踏青的心情啦?小编贴心的备好出行好礼,有开发者定制飞盘和棒球帽快带上你的小伙伴一起来云声提建议吧!云声建议入口PS:华为云产品相关的有效建议分值更高,积分排名更容易靠前哟~【活动时间】4月1日-4月30日【活动对象】所有华为云用户如果您是老用户功能问题?体验不好?快来云声告诉我们吧!!云声建议入口(点击即可提交建议)如果您是新用户您也可以先去体验我们的免费产品服务~再来吐吐槽~可点击免费试用产品领取直达【奖项设置】有效建议总积分> 4:300元开发者大礼包(定制礼盒+飞盘+棒球帽)4≥ 有效建议总积分≥ 2 : 100元开发者大礼包(飞盘+棒球帽)PS:满足发放条件的前10名用户均可获得奖励哟(飞盘黑白色随机)【活动规则】1.有效建议积分云声关联产品/功能分为云产品建议、解决方案建议、平台建议,三种类型的建议对应的分值不相同,云产品建议(1分)、解决方案建议(0.5分)、平台建议(0.2分),按照当月有效建议类型对应不同分值以及邀请加分项来进行计算总排名,建议类型可在云声提建议页面查看;2.邀请用户加分a.每成功邀请一个用户,邀请者和被邀请者额外加0.2分,邀请加分可叠加,禁止互相推荐,否则双方都取消加分b.被邀请者在云声提交建议后,需要在本条帖子下方评论“被XXX邀请参加云声4月活动”,本此邀请才被认为有效邀请(4月双方都有在云声上提建议)示例:用户A邀请用户B参与云声建议反馈活动,用户B在云声提交优化建议后,在本帖下面评论“被A邀请参加云声4月活动”,则A和B用户各加0.2分c.邀请者和被邀请者双方需要完成华为云官方平台实名认证,否则为无效邀请3.注意事项a.若出现积分相同且排名一致的情况,在每月的已实现和已采纳建议中,会选出价值更高的建议给予奖励,基础评分计算规则,可参考如下表格。若同名次出现同分情况,由内部工作人员评选建议价值度更高的用户获奖以上建议数仅做示例,与实际情况无关,仅做计算参考b.同一用户在同一页面(文档)提出的同一类问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数c.若发现代他人提交优化建议,此建议分值只取原分值30%d.如遇商品缺货,将随机换成其他等价值礼品发放
  • [其他] ModelArts使用sklearn例子
    notebook链接:https://developer.huaweicloud.com/develop/aigallery/notebook/detail?id=1589524b-3960-45e8-99e5-ac39b81afac3直接订阅,运行即可
  • [其他] AI产品和服务智能输入一个字便可作一首诗。
    AI产品和服务智能输入一个字便可作一首诗。
  • OK
    OKOKOKOKOK
  • [热门活动] 已完成华为云实践项目。
    已完成华为云实践的项目
  • [其他] 实践
    zhongyunonghaol
  • [获奖公告] 【云声·建议】2月反馈优化建议,限量开发者定制周边等你领
    23年【云声·建议】反馈活动第二场来啦~有炫酷的开发者连帽卫衣,还有活力十足的运动飞盘,只需要提交有效优化建议,就是这么简单!!!云声建议入口PS:华为云产品相关的有效建议分值更高,积分排名更容易靠前哟~【活动时间】2月1日-2月28日【活动对象】所有华为云用户如果您是老用户功能问题?体验不好?快来云声告诉我们吧!!云声建议入口(点击即可提交建议)如果您是新用户您也可以先去体验我们的免费产品服务~再来吐吐槽~可点击免费试用产品领取直达【奖项设置】有效建议积分>10:600元开发者大礼包10 ≥ 有效建议总积分> 6:400元开发者大礼包6 ≥ 有效建议总积分≥ 3 : 200元开发者大礼包满足条件的前20名用户均可获得奖励​开发者定制连帽卫衣、定制飞盘,定制礼盒等等~【活动规则】1.有效建议积分云声关联产品/功能分为云产品建议、解决方案建议、平台建议,三种类型的建议对应的分值不相同,云产品建议(1分)、解决方案建议(0.5分)、平台建议(0.2分),按照当月有效建议类型对应不同分值以及邀请加分项来进行计算总排名,建议类型可在云声提建议页面查看;2.邀请用户加分a.每成功邀请一个用户,邀请者和被邀请者额外加0.2分,邀请加分可叠加,禁止互相推荐,否则双方都取消加分b.被邀请者在云声提交建议后,需要在本条帖子下方评论“被XXX邀请参加云声2月活动”,本此邀请才被认为有效邀请(2月双方都有在云声上提建议)示例:用户A邀请用户B参与云声建议反馈活动,用户B在云声提交优化建议后,在本帖下面评论“被A邀请参加云声2月活动”,则A和B用户各加0.2分c.邀请者和被邀请者双方需要完成华为云官方平台实名认证,否则为无效邀请3.注意事项a.若出现积分相同且排名一致的情况,在每月的已实现和已采纳建议中,会选出价值更高的建议给予奖励,基础评分计算规则,可参考如下表格。若同名次出现同分情况,由内部工作人员评选建议价值度更高的用户获奖以上建议数仅做示例,与实际情况无关,仅做计算参考b.同一用户在同一页面(文档)提出的同一类问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数c.若发现代他人提交优化建议,此建议分值只取原分值30%d.如遇商品缺货,将随机换成其他等价值礼品发放
  • [技术干货] 设施云解决方案,解决园区设施管理痛点
    1. 园区设施管理方案适用的场景园区设施管理方案适用的场景主要有两大类:第一个是大型的楼宇,第二个就是园区。主要监控的对象就是业界的BA系统;BA系统一般指楼宇设备自控系统。比如:冷热源系统、空调通风系统、风机盘系统、电梯系统、排水系统等系统的一个集成统称。系统主要通过运行状态监控与故障监测,对建筑物内各类设备进行高效率的管理与控制,在提供最佳舒适环境、现代化管理模式的同时,大大降低能量消耗,因此广泛应用于办公、宾馆、医院、商场等建筑中。BA系统打开后,里面有一些小的子系统;比如:空气调节系统里面就包含AHU,FCU等;排水系统里面就包括像积水井,生活水箱等。整套方案可以实时监控设备的数据,再结合一些优化的配置数据和训练算法,可以做到自动去调节设备的运行状态。在满足基础业务的同时,可以保证人员的舒适、健康并且节能,比如:暖通空调和照明都可以根据人员的使用情况去调节风量的大小和光的明暗。系统也会针对一些异常的检测数据产生报告。比如:生活水箱的液位检测、出水压力等。整套方案,这是园区的业务自动化运行,甚至在一些简单的业务场景下,可以达到无人值守的效果。那说到这里,目标就很明确了,就是提高管理效率,降低运营成本和节能减排,为用户创造一个舒心的健康的办公环境和园区环境。 2. 园区设施管理的几个痛点和挑战下面介绍一下目前园区设施管理的几个痛点和挑战。2.1 系统割裂、不易部署本身BA系统的种类就非常多,而且还有很多小的子系统和子设备;再加上大型楼宇的设计都非常复杂,所以在整个系统的建设过程中难度非常大。传统的方案它无法实现无线化,也不能做到快速部署,而且设备的故障节点比较多,各子系统的整合部署对技术的难度要求非常高,成本也十分高。2.2 运营模式比较落后传统的运营模式比较落后,大多数还是依靠人工运检,整体的运营质量也都依赖于人员的投入和专业的技能。 2.3 运营低效,能耗浪费传统的BA系统运营低效,能耗浪费;传统的BA系统大部分仅仅只做到了对设备的监控,但缺乏对数据的分析能力,自然也就无法做到降低设备的能耗。2.4 系统比较封闭目前市面上的系统都比较封闭,形成了很多的数据孤岛。都知道西门子这些业界大厂,他们每一家都有自己的技术壁垒,在长期的市场竞争过程当中,他们也都形成了自己的一套体系;所以整个行业都呈现出系统工地数据孤岛的现象。3. 设施管理方案和传统方案的对比设施管理方案和传统方案的对比,主要从四个方面来看:应用层、控制层、接入方式和成本对比。下图里展示了4个方面的对比情况:在应用层上,传统的BA方案采用的是单机的作业模式,他们的数据不互通,更没有数据的分析能力,部署起来也比较困难的,升级也大多是采用本地的升级模式,比较繁琐。同时,他们的工具和技能也都是私有化的,伙伴无法得到二次开发的能力。那么在这一点上,智慧园区针对伙伴开放了自己的平台和工具能力,伙伴可以根据多业务的场景去扩展很多功能。同时作为一种云端的产品。智慧园区的方案,支持云端化的部署和在线升级功能,控制层上硬件性能得到了很大的提升,并且扩展了很多的提升。方案也支持第三方的DDC控制器。从接入方式来看,传统的方式它不仅性能比较差,而且方式比较单一;在这一点上,智慧园区的设施管理方案可以支持多种的接入方式。比如:RS485的通讯,PLC的通讯、WIFI,还有以太网的方式;整体性能上也得到了大幅度提升。从成本角度对比,人力投入系统、维保系统维修能源支出,这些成本大约是节省了百分之十五到百分之四十五。4. 运营模式对比下面图片里展示的是运营模式上的一个对比。 首先看一下传统模式,传统模式呈现的是一种相对独立的运营方式,人员也都是按照项目的数量去配置的,是一种点对点的配置方式。所以要求人员是需要配备足够,而且对他们的专业技能要求也比较高,这样就造成了资源冗余。而且出现问题的时候,需要有专业的人员到现场去处理问题,在这种模式下没法保障SLA(服务级别协议);还有一点就是边缘计算能力比较弱,没有数据分析能力无法做到调优控制。而智慧园区设施管理方案采用的是一种跨区域集中线上的运营模式。云端的管理系统可以对多个区域实现运营,并且采用的是集中配置运营人员的方式提供统一标准的服务。不但保证了服务的质量,而且也实现了人员的成本控制;集中运营可以实现数据的实时在线,并且通过系统的自动分析能力,可以保障问题的及时预判和处理。5. 园区设施管理方案的整体架构5.1 整体架构园区设施管理方案的整体架构,可以把它分为四个层级来看,分别是:端、边、管、云。 5.1.1 端侧端侧是各种机电设备、传感器和控制器,智慧园区主要采用的是推荐伙伴的产品方式,由伙伴提供产品和维保。 目前端侧的集成方案已经有相对于成熟的BA设备技术方案并且正在推进。如:光伏储能充电桩的集成方案。5.1.2 边侧边侧是AR502网关设备,它主要有三个作用。第一个是区域控制:可以控制器下行逻辑控制器的运行和数据采集动作。第二个就是物模型的转换功能:那么这里首先要弄清一个概念。从端侧采集上来的数据一般是电器信号或者是就通信协议里的数据报文。但是系统并不认识这些数据,这个时候就需要用边缘网关的物模型转换功能,把采集上来的数据转换成系统可以识别的数据。比如:int类型或者是string 类型等等。第三个作用就是通过网络与云端连接:完成数据的互通,对上传递采集的数据,对下则可以下发控制命令去控制设备。 5.1.3 网络层网络层一般分为内网和外网。内网可以采用WIFI、PLC、网线的连接方式。 外网则可以走5G等电信公网。 5.1.4 云端服务云端提供了基于saas 服务的应用功能,园区把这些功能统一的定义为四大业务功能特性。它们包括设施运营、设施、运维设施监控和设施节能。在saas 服务之上,园区还面向用户提供了集成服务、运维服务和业务运营伙伴可以根据这些打造自己的品牌。5.2 边侧典型组网5.2.1 设备接入方式介绍设备接入流程,首先是端侧的机电设备接入到控制器,然后由边侧的控制器再通过交换机防火墙进入到云端。这里主要介绍一下端侧的机电设备接入方式;它主要分为两大类,第一个就是通过结点直接接入到DDC逻辑控制器上,然后逻辑控制器接入到AR502再上云。下面展示的是典型的边侧组网图:5.2.2 IO口接入对于IO口的场景,可以通过扩展IOM 的方式把机电设备接上来;原则上一个受控的机电设备只能接在一个DDC上,或者是这个DDC下面扩展到IOM上,然后通过DDC 接入到AR502。DDC接入到AR502也分为三种方式:第一种方式就是通过PLC 接入;第二种是以太网的方式,通过网线直接连上来;最后一种就是wifi 的形式。在wifi 的方式下,需要在手机端安装一个APP工具,并且把这个APP工具设置成AR502的同网段,然后通过蓝牙功能匹配到附近的DDC,最后连接到AR502。5.2.3 通信协议接入下面是机电设备接入的第二大类方式,就是通过RS485串口线的方式走通讯协议接入。目前边缘AR502主要支持两种通讯协议: modelbusTCP、modelbusRTU。如果是针对市场多协议的场景,也可以先通过其他的网关设备进行协议转换,然后再进入AR502。5.2.4 第三方接入方式下面张图就是把上面讲到的接入方式展开来讲,跟上面讲到的一样,有很多种方式可以接进来。比如: 以太网方式、wifi的方式,还有PLC电力线的方式,其中也包括通信协议,以RS485的方式接入。推荐的是以IO口的方式接入到DDC,然后根据实际的场景业务需求去选择到底是以,以太网的方式或者是PLC的方式还是wifi的方式接入。首先是选择以太网的方式,如果不适合布网线,则选择PLC以电力线的方式接入;如果两者都不适合,则选择wifi的方式。备选方案中,可以通过内置的转换协议接进来,也就是说直接连入AR502这种方式的前提就是机电设备的协议是modelbusTCP 或者是modelbusRTU。最后是针对市场上的一些私有协议或者非标协议,会采用第三方网关协议转换的方式接进来。6.设施管理业务的功能特性下面介绍一下设施管理的四大业务功能特性。下面这张图是设施管理业务的功能特性全局图:6.1 设施监控首先看一下设施监控,设施监控实现了对蓝象设备的集成,并且可以通过可视化的工具对设备进行监控,大大提升了运营人员的管理效率。目前监控的主要对象包括业界的BA系统,后续也会集成,如光伏、储能、充电等系统。6.2 设施运维设施运维则是从管者看控四个方面整体的展现的业务的工作情况可以保障设备的稳定、可靠、高效的运行。设备管理中则提供了列表和平面图的方式,可以快速的定位设备,并且发现问题和解决问题。 定时任务这一块则基于日历和场景的管理,可以以日和时的维度灵活的配置定时方案。故障诊断则是一种跨设备的告警方案,其中包括了告警、合并告警抑制等功能。故障诊断面向用户提供了可配置的功能,用户可以根据自身的专业知识和从业经验,扩展多业务的告警场景。6.3 设备节能设施节能是针对楼宇建筑能耗最大的三个场景,冷站、空调和照明进行数据智能分析和控制。6.4 设施运营最后的设施运营,它提供的看板功能,其中包括了告警列表、工单列表。可以详细的查看告警和工单的类型等信息。还可以通过看板查看BA设备的整体运行情况。统计分析则是对设备的运行使用率健康度进行分析,并呈现对应的分析图表。7. 相对于传统方案的优势下面看一下功能特性相对于传统的方案都有哪些优势。7.1 设施监控首先,设施监控从接入角度来看,它提供了一种标准的接入方式,就是基于园区的link 方案构建的控制器和边缘计算器设备,实现了机电设备的统一接入和统一管控;而传统的接入技术标准差异非常大,交付成本也非常高。并且传统的方案在组网部署方面也存在软件的重复建设,建设和维护成本极高。园区采用了统一接入、统一走网、统一应用的方案,降低了集成的难度和成本,也降低了管理和运营的成本,使整体的系统建设成本降低了百分之三十。7.2 设备运维再来看一下设施运维方面。设施管理提供了平面图、组态等可视化的管理工具,大幅的提高了人员的运维效率。先看一下右边的平面图,它展示了建筑的整体空间。可以根据设备的具体位置,把设备绑定到平面图的任意位置。并且还可以根据颜色和实时数据查看设备的最新状态,极大的方便了运维人员快速定位的问题;而传统的方案采用了多页面的方式,出现问题时,定位效率非常低。7.3 设备节能设施节能则借助了BU 和DU 的能力。首先它会去完成数据采集,并且把数据展示在大厅,这些数据的指标包括了空气的温度、湿度和PM2.5以及设备的实时数据,然后再结合AI训练算法。其实这种AI训练算法是根据设备的历史运行状态和一些项目的经验做出的数据分析;基于这种训练算法,最终做出了节能策略,以及自动运行。这里举一个例子:系统会根据当前的温度,并且结合出水和进水的温度以及冷机的负载情况做出加机或者减机的策略。在能耗统计分析方面,系统也会根据年月日的维度统计分析能耗的具体情况,并且通过不同维度进行对比。7.4 设备运营最后看一下设备运营,智慧园区采用的是一种跨区域集中线上的运营模式,集中配置运营人员提供一种统一标准服务。现在在做的包括深圳、北京、青岛的项目,也都是采用了这种运营模式。首先看一下统一应用方面,可以通过分权分域的方案,实现跨地区多园区的接入方案和管控;环境适配方面,可以通过专网公网多网络环境接入设备;至于运营场地方面,则可以集中办公场地,节省物理空间,运营人员也可以集中配置,减少运营人力,提升运营效率。在这种运营方式下,可以节省百分之六十的运营人力和百分之七十的物理空间。8. 管理方案的几个案例8.1 北京丽泽soho项目这个是北京丽泽soho的项目,先看一下它的规模;它是一栋三十八层的现代化办公大楼,拥有四千+的人员,办公区包括了一千七百九十二台空调和四百五十九路照明。设施管理系统已经对这些所有的设备进行了监测和远程控制,并且根据他们的员工工作时间制定了不同模式的时间表,比如:日历加周循环的上班模式,还有例如节假日的模式、月末周六上班的模式。通过这些时间表可以自动化的控制整栋楼的空调和照明设备,节省了人力,降低了能耗。8.2 北京当代项目针对北京当代的项目,打造了舒适、健康、节能的住宅环境。可以看到它整个的建筑面积多达十六万平方米,空调面积则有十四万平方米,其中商用部分就有一万七千零六平方米。这些所有的空间都依赖于云端强大的计算分析能力和AI算法,全部做到了恒温恒湿的效果。在运营效率这一块直接提升了百分之三十,综合能效则降低了百分之十五。8.3 深圳世贸改造项目这是深圳世贸的项目,它是属于旧改项目,主要改造的系统有冷源系统、空调系统、新风系统。在改造之前,这些系统都属于一个割裂的状态,没有一个统一的管理系统,并且设备比较老旧,无法进行监控,每天都需要耗费大量的人力物力、挨个去查看设备的状态。改造之后可以通过设施管理运营中心对设备进行集中的控制,提升了运营效率和运维效率。同时,系统还可以对这些老旧的设备进行实时数据分析。9. 设施云的功能下面以交付人员的视角分享设施云的功能。 主要分为三大功能,机电设备注册、逻辑编排、组态定制。9.1 机电设备注册对于机电设备注册saas 应用的可配置点,可以针对配置点进行业务配置。比如:系统参数配置、空间配置、组织配置、角色权限配置、设备基础配置等。这部分配置完成了基础的设备注册、蓝牙设备接入以及云端、边侧、端测数据互通的能力。9.2 设施控制逻辑可定制基于项目实际的机电设施,通过系统提供的定制工具进行设施控制逻辑的定制,然后将定制的控制逻辑文件导入平台,并下发到逻辑控制器,从而实现实现点位信息的采集和逻辑控制。这里简单介绍一下新型工具和传统的工具的差异。主要有三点:第一点,开发方式上由原来单机版变成在线协同版,可以及时获取最新的工具能力,支持多人协同开发。第二点,开发模式上,新型工具支持子程序方式,方便程序复用,由原来的面向单项目单设备的点位进行控制,变成面向场景的多设备联动控制。第三点,开发体验上传统工具界面简陋,全手工操作,依赖人员熟练度。新型工具提供了现代化操作体验,支持云端开发,边端发布部署,一键完成。9.3 组态定制设置组态可定制基于项目实际,机电设施通过系统提供的定制工具进行组态页面定制。 然后将定制的组态页面与机电设备绑定,最终对设备进行监控。10. 介绍AppCube中设备具体配置过程接下来在具体的页面中介绍机电设备的注册及相关的信息配置。首先需要在AppCube 的设备BU中配置相应的设备规格。这里排风机为例,进入设备BO中。选择相应的设备规格。查看排风机的点位信息是否存在,若不存在或不匹配,则需要在设备规格定义中新建设备。配置完bo 之后,才能在智慧园区运营中心的设施信息管理中查找到相应的设备类型。接下来就是配置空间节点,切换到智慧园区运营中心,进入目录、系统管理、主数据管理、空间主数据。实际项目中存在不同的园区楼栋,而设备也可能归属于不同的地理位置。因此可以在系统中配置多个空间节点,并在不同的节点下注册机电设备。通过空间节点可以做到设备之间的隔离,方便管理。操作人员可以通过右上角的区域选择来切换空间节点,查看相应的设备。配置完空间节点之后,还需要对组织节点进行配置,组织需要拥有空间节点的访问权限,就必须与空间节点绑定;通过新增按钮,可以完成组织与空间的绑定;最后,需要创建操作员,并为操作员添加已创建的组织。当操作员组织空间完成绑定关系之后,操作员就可以在拥有权限的空间下查看到自己配置的设备信息了。完成空间组织操作员的配置后,需要在开局中对设备基础进行配置。首先创建一个项目。在弹出的窗口中,根据实际信息配置、项目名称、图片以及监控类型。控件完成之后,点击进入对需要控制的设备进行相关配置。在配置之前需要到项目实地公开收集设备信息,并根据收集的信息填写设备信息表和配盘表。平台提供了这些表格的模板下载,填写完之后先批量导入设备信息表,并完成设备注册。接下来点击配盘表页签,套件盘号列表;然后批量导入配盘表,为已注册成功的设备配置控制和监听的点位信息。设备信息表和配置表配置成功之后,需要创建场景导入,提前定制控制逻辑文件;控制逻辑文件需要根据机电设备的原理图和具体的业务需求逻辑,在开发平台定制。设备在不同的业务场景下会执行不同的操作命令。因此需要根据业务的流程,对设备的属性点进行相关的逻辑配置。首先,进入MessageFlow,并创建空白页面进行控制逻辑配置。在开发环境中,控制逻辑的配置简单且直观,使用拖拉拽的方式便可以完成。以排风机为例,当一氧化碳浓度大于30PPM时,启动排风机小于20PPM时关闭排风机。首先,需要将一氧化碳作为输入参数拖入画布中。然后将大于比较和小于比较的节点图纸画布,并用输入节点连接做比较。其中,input 1为设备的传入数值,input 2为需要比较的数值,通过比较得出结论。最后投入输出节点,选择排风机的风机启停状态,与其他相关设置属性,并与布尔转枚举节点连接,根据比较结果,控制风机的体型。配置好控制逻辑之后,点击保存;然后选择调试在逻辑图中进行各项设置的调试工作,确认无误后点击发布。最后将控制逻辑导出为阶层文件。回到刚才的场景编排页面,按步骤导入控制逻辑文件,定位场景绑定具体的设备。场景编辑完成之后,点击部署按钮,将控制逻辑下发到逻辑控制器。部署成功后,设备会按照控制逻辑的规则,根据一氧化碳浓度的变化,实时开启或者关闭。完成控制逻辑的编排之后,需要在界面中对设备的实时状态进行查看;那么接下来便需要对组态页面进行配置。首先从运行环境应用导航搜索BSproject的应用程序,点击进入组态配置页面。在页面设置中点击小组图标以获得APP修改权限,然后将组态应用需要依赖的资源文件按顺序导入;导入之后就可以在页面中进行组态的配置了。接着打开需要配置的页面,打开设置勾选缩放和拖移,使页面中的组态工具,支持缩放和拖拽移动。接下来对组态页面进行配置,以排风机为例,首先需要从组件库中找到通风机组件,并将其拖入画布中。这个组件做页面中具体设备的展示效果。在通风机上点击右键,选择高级设置,弹出高级设置窗口后,在三个不同的意见中对该组件进行相关配置。此步骤主要用于配置风机的对应规格以及规则设定基础信息选择规格名称来匹配设备规格,然后选择属性名称用于展示该组态设备的不同状态效果,显示设置可以调整风口方向。也可以通过修改规则,设定风扇的运行和停止状态,接下来将组态表单组件拖入画布中。该组件用于展示排风机的各项属性信息,点击右键选择高级设置,弹出高级设置窗口后,在三个不同页面中对该组件进行配置,基础信息选择规格名称来匹配设备规格,然后勾选不同的属性,用于在表单组件中进行展示。接下来选择通用组件库,将设备指令下发组件设备属性详情框、设备组态服务请求三个组件拖入画布并分别进行配置。设备指令下发组件用于组态图中组件进行指令下发。设备属性详情框用于展示点击属性按钮时弹出的详情信息。设备组态服务请求用于组态图数据处理模块接收传输数据。所有组件都需要在数据一线中将调节器的请求方法一一对应,用于不同类型的接口进行调用。此时,组态页面已配置完成,点击保存,然后发布就可以在页面中看到最终的效果了。在通风器的预览页面中记录下左下图的地址、路径。然后进入智慧园区运营中心,选择系统管理、数据配置、设备组态配置。点击新增设备组态进行配置关联,选择相应的设备类型和实例设备。并将组态预览地址填入到组态图的地址中,完成组态绑定,绑定之后在设备列表中就可以查看到配置好的排风机了,点击详情按钮查看配置好的组态页面。那么到此已经把平台测的整个流程演示了一遍。首先是在AppCube中配置BO,举了一个排风机的例子,检查了它的设备规格和属性。也就是说在后面的操作中也都是按照这种设备规格去操作的。然后在运营平台中做了一些基本配置,包括空间组织人员的配置。接下来又站在了交付人员的角度讲了怎么创建项目,注册机电设备,并且为这些机电设备定制逻辑,最后又定制了组态,并且把这些组态绑定到了已经注册的机电设备上。这个时候就只需要等待端侧的设备接入,把数据传上来,就可以在云端通过组态对设备进行监控了。11. 总结如今随着经济的快速发展以及市场竞争加剧,国内大多数工业园区都面临决策经营不到位,以及管理体系不全面等诸多一系列问题。通常体现在基础设备不完善、软件功能不全面、业务应用不够深入、设备维护不及时等问题。然而通过引入智慧园区管理系统这一概念则能够有效改变上述现象。华为云的智能园区设施管理方案通过平台和应用的边云协同部署,实现建筑和园区的统一运营;通过融合设施管理的专家经验完成故障定界与诊断,实现设备设施的高效运维;通过AI训练和推理完成能效的智能调优,实现建筑和园区的节能减碳;为建筑和园区领域双碳目标的实现提供支撑,助力社会可持续发展,共创行业新价值。这篇文章里,先介绍了园区设施管理方案适用的场景,目前园区设施管理的几个痛点和挑战;再从各个角度对比了设施管理方案和传统方案的区别;接着介绍了园区设施管理方案的整体架构和目前几个管理方案的实施案例;最后以机电设备-排风机为例,演示了整个设备的注册、绑定、组态定制,发布上线的整体流程。
  • [技术干货] 新冠疫情防控背后有哪些鲜为人知的技术?
    1. 前言从2019年末从武汉市发现新冠肺炎病毒确诊病例开始,到现在已经有两年多的时间了。通过这两年多的时间,我们体会到了国家的防控疫情的决心,体会到了现代化科技防控的手段。这两年里,每个人都在努力,配合核酸检测、接受疫苗接种、自动居家隔离、出门戴口罩,这种努力是有成效的,每一次疫情的变异和传染,我们最终都取得了阶段性胜利。现在新冠疫情在全球流行,多款变异毒株来势汹汹,要快速合理的防控,精准有效的管控病毒,关键还是要靠科技力量。这次的新冠肺炎疫情是对国家治理体系、治理能力、国家高新科技技术的一次大考验,从宏观上讲这就是一场生物战争,在这场战争中,需要把大数据、人工智能、云计算、数字化等新技术新手段作为疫情防控主要"作战力量”,降低人力消耗、提高防控排查效率,精准描绘确诊人员的出行轨迹,进行科技化有效防控。2. 疫情防控中的"硬核"科技2.1 AI抗疫之战为助力抗击新冠肺炎,各大科技公司为疫情防控投入了大量的研发力量,打响了"AI"抗疫”之战,针对疫情防控开发了很多针对性的AI技术策略。华为的云服务品牌华为云推出了AI辅助诊断、智能语音疫情回访系统、抗病毒药物筛选AI模型、口罩智能识别方案。AI辅助诊断是基于华为云领先的计算机视觉与医学影像分析等AI技术及强大算力,实现CT量化结果秒级输出; 智能语音疫情回访系统,可解决群众近期动向筛查,做到不疏忽、不遗漏;抗病毒药物筛选AI模型,从数千种上市或临床试验的药物中,筛选出可能有效的抗病毒药物。口罩智能识别方案,摆脱了人工筛查的低效。华为云也第一时间行动起来,与医院、大学院校及科技企业、科研机构合作,将华为30多年技术与能力,释放出来,为疫情防控贡献力量。阻断病毒传播的重要防线是佩戴口罩,能够精准识别行人的戴口罩行为进行提醒可以减少相互感染、提高大家的警惕性。对于口罩佩戴的检测,牵涉到AI技术,需要运用强大的AI算力,对公共区域的人群进行筛查。简单来说,就是通过对公共场所的视频,进行实时分析,判断个人是否佩戴口罩,然后广播进行提醒。为了方便各大开发者、科技公司能够减轻工作量、降低成本快速开发出针对性的AI需求,部署上线使用。华为云推出了ModelArts框架,ModelArts是面向AI开发者的一站式开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流。ModelArts的理念就是让AI开发变得更简单、更方便。面向不同经验的AI开发者,提供便捷易用的使用流程。例如,面向业务开发者,不需关注模型或编码,可使用自动学习流程快速构建AI应用;面向AI初学者,不需关注模型开发,使用预置算法构建AI应用;面向AI工程师,提供多种开发环境,多种操作流程和模式,方便开发者编码扩展,快速构建模型及应用。"一站式"是指AI开发的各个环节,包括数据处理、算法开发、模型训练、模型部署都可以在ModelArts上完成。从技术上看,ModelArts底层支持各种异构计算资源,开发者可以根据需要灵活选择使用,而不需要关心底层的技术。同时,ModelArts支持Tensorflow、PyTorch、MindSpore等主流开源的AI开发框架,也支持开发者使用自研的算法框架,匹配自己的使用习惯。华为云ModelArts的数据模型市场里有很多现成的模型可以下载,直接一键部署训练,大大的降低了开发成本。该平台还具有一键部署上线能力,可以让开发者十分方便地将算法发布成云端服务;ModelArts平台还预置了30多种算法,为开发者提供了诸多便利,无需自己编写模型代码,几个小时就可完成模型训练;ModelArts内置了强大的标注工具,具有强大的智能标注功能,凭此,算法团队可从纷繁中解脱出来,半天时间便可完成10000张以上的数据标注。 在实际运用部署模型的过程中,往往存在各种困难,比如:当口罩识别模型需要开发成应用并部署到端侧摄像头时,端侧设备性能较弱,算力有限,无法支撑AI模型的计算量,更难以支撑多场景所需要的多种AI算法并行;部署后更新灵活性低;开发框架上手困难;搭建嵌入式开发环境复杂。华为云推出的HiLens平台,便是能有效解决以上挑战的端云协同解决方案。HiLens平台提供了技能开发模板给开发者参考,如:口罩识别模板,开发者可以照葫芦画瓢,快速自定义开发AI技能。如果不想投入开发时间,HiLens技能市场也提供丰富的AI算法,适用于多种芯片和商用场景,一键安装。与此同时,HiLens平台开发环境免搭建,开箱即用,而且预置了开发框架,封装了基础组件,接口简易,提供了多模态数据接入、数据处理、模型推理能力,开发者只需少量代码即可开发自己的AI技能。HiLens针对端侧算力弱,提供了多个轻量级算法,适用于小海思芯片,还有一款集成华为昇腾芯片、算力强劲的多模态开发套件HiLens Kit,在HiLens上将口罩识别模型在10分钟内开发成AI技能,一键部署到HiLensKit,还能外接6~8路摄像头和并行处理多种AI算法。通过"ModelArts+HiLens"赋能开发者,华为云为其降低AI开发及部署门槛,使得自身回归"普惠AI"的本质上来,让AI为社会创造价值,也帮助开发者赢下了这场与时间赛跑的战役。在华为自己的园区就运用了"口罩识别"方案,一旦检测到有人未戴口罩,报警,通过闸机、门禁联动就会被触发,禁止相关人员入园,并对风险人员及时追踪。AI技术运用的非常广泛,这次在疫情里体现了AI技术的强大之处,但是AI的技术运用远远不只如此,华为云在纷扰的行业洪流里,致力于帮助企业、组织及社会解决疑难问题。如宫颈癌筛查及智慧血站、热带雨林保护等项目,就备受赞誉。比如宫颈癌筛查,通过AI技术识别判断,筛查效率提升了数十倍,有利于宫颈癌的早筛早治。再以雨林保护为例,华为云通过与雨林保护组织合作,运用AI技术,保护雨林生态,保护珍稀的蜘蛛猴。2.2 居家办公神器新冠肺炎疫情爆发中全国疫情防控形势正积极向好的态势演变。与此同时,当初停产停工的各行业也逐步开启了复产复工潮。在不放松疫情防控的基础上,做好与复工复产兼顾,对政府机构、企事业单位而言,都是一个不小的挑战。现在疫情已经过了2年,大部分地方都恢复了正常工作模式,部分地方进行精准防控,居家办公。为了协助企业、政府云上复工模式,华为推出的WeLink帮助政府推行“互联网+政务”,快速建立信息协同通道发挥起关键作用。在过去十年中国在数字化基础设施建设方面取得的显著成绩,让政府、企业利用新兴技术开展在线工作、在线服务、远程运营等有了基础环境与条件。利用5G、云计算、大数据等新技术进行远程协同办公、建设政务指挥系统成为高效复工复产的新模式。尤其作为支撑社会运行、疫情防控的关键和主管部门——政府服务更是一刻不能掉线。华为云WeLink是华为旗下数字化办公应用产品,也是企业数字化转型的连接器,源自华为19万员工的数字化办公实践,融合即时通讯、企业邮箱、视频会议、音视频通话、直播、云笔记、云空间、企业OA、考勤打卡、待办审批等服务,全场景连接业务、团队、知识、设备,不仅满足日常数字化办公需求,还能与业务高效协同,为企业提供安全、开放、智能的数字化协同体验。作为云上数字化协同办公的核心:1、产品功能是核心,作为一款高效协作工具,它不是一个简单的即时通讯或视频通话软件,而是要深入理解政企业务场景。也就是说,其要在一个平台上实现消息、会议、视频、文档、审批、公告、邮件等各个功能间的无缝对接。而且要满足不同的个性化场景,例如此次疫情时期的健康管理服务等,所以它背后要接入丰富的第三方应用,并支持企事业自有系统的对接开发需求等。2、用户体验是关键,这又包括两大主要方面,一是平台稳定性,二是操作部署简便性。稳定性意味着无论在高清视频会议中还是文档桌面共享中,都要求保持流畅无卡顿;简便性意味着既要系统部署简易不繁琐,又要满足用户随时、随地、通过各类终端设备实现在线协作的极致体验。3、安全是保障,尤其对于政府机构而言,一旦出现安全问题影响重大。所以,全面安全防护必不可少,这包括确保端到端的网络传输安全,对数据进行全生命周期的安全保障等。定位为企业数字化联接器,华为WeLink通过联接团队、联接业务、联接设备、联接知识,从而让办公变得无边界协同起来。例如,WeLink通过一个手机APP即可闭环所有工作,实现一站式办公,从而支撑业务流程高效运转。如果把基于移动终端的协作模式定义为轻办公,那么WeLink还可以支持“重办公”场景,它通过联接一切可以数字化的IoT对象,包括智能协作大屏、一体化会议终端、智能摄像机等,从而满足政府深度远程办公与协作需求。此外,作为一款远程协作办公利器,华为WeLink能够经受起各种压力挑战。据统计,从1月25日开始,WeLink每天支撑会议超过1万场,仅1月31日一天就有5万场会议召开。当前,华为WeLink日均新注册企业数增长50%、会议数增长100%,春节期间新增数十万政府、企事业单位,实现百万级日活用户数,业务流量增长50倍。在开工首日,WeLink更承载了19万华为人召开4万场视频会议、1万场跨国会议,顺利支持了各个企业业务的正常开展。为了持续应对井喷式业务流量增长,华为WeLink依托领先的华为云基础服务已率先从资源、业务、功能三个维度加固强化,确保优质的用户体验。而在理解政府业务场景和需求方面,华为更是有其独到之处。例如,在此次疫情防控期间,华为联合上海艾络格电子技术有限公司一起攻关,通过传感物联技术取代部分人工测量及人员排查工作,实现体温数据的实时准确监测和实时上报,为遏制疫情扩散蔓延势头打造出“人防+技防、服务+管控”四位一体的疫情防控新模式。当然,这背后还体现着华为领先的生态能力,通过聚合足够丰富并深耕政企服务市场的合作伙伴,进而满足纷繁复杂的业务需求。在安全性方面,华为WeLink从设计理念出发保护企业数据与信息安全,用户账号归属于企业,信息100%在企业内部流转。在技术层面,华为云WeLink具备业界独有的安全技术,实现芯、端、管、云全链路防护。华为WeLink平台智能高效、安全可靠,具有丰富的功能,为政府疫情防控和工作的正常开展提供了保障手段,从而倍受好评。这包括为国家信息中心、全国社会保障基金理事会、自然资源部、中国地质调查局、中国环境监测总站、国家气象信息中心等中央部委提供服务,以及为此次抗疫的前线武汉金银潭医院、协和医院、火神山医院等开通WeLink服务等。帮助政府、企业快速实现复工复产,华为实现高效数字化支撑的背后还在于对多技术、产品、方案的打通和协同整合能力。为更好地帮助政府进行疫情防控,华为快速推出“1(WeLink+EC)+1(最高指挥系统)+3(疫情联防联控、复工复产和园区疫情防护、后治理体系大数据)"的整体解决方案。WeLink+EC打通线上线下视频协同,实现融合办公,进而可以打造集中统一的高效领导指挥系统;疫情联防联控、复工复产与疫情后方案则可帮助政府高效控疫情,实现政府精准治理,固化常态治理能力,提升防疫应急响应水平。所以,跨领域、跨技术的融合能力是华为的天然基因,再加上丰富的生态能力补充,从而让华为做到最懂政府、最懂政务业务与场景。当然,华为WeLink获得政府数字化协同办公首选的另一个重要原因还在于,长期以来华为对数字政府的深耕积累。在数字经济的产业中,华为定位为数字经济发展的"黑土地",秉承以“平台+AI+生态”的战略理念,聚焦打造端管云协同的ICT基础平台,基于开放平台,与生态伙伴一道共同使能各行各业及政府的数字化和智能化转型,助力中国数字经济快速发展。最近AppCube与WeLink强强联合,使用AppCube开发的应用可以一键在WeLink上部署,企业可以为自己定制专属应用、AppCube是华为云打造的一款低代码应用开发平台,主要是面向业务开发人员,屏蔽底层技术复杂性,以可视化方式为主,少量代码为辅,用来快速搭建各种应用系统的开发平台。AppCube本身内置了很多模板,可以直接使用,模板里包括了很多常用的应用,比如:绩效管理,请假电子流,健康打卡,工作交接,职场性格测试,扫码领料,快速创建在线投票轻应用,设备维修管理,财务报销等等。 2.3 疫情下的大数据力量这次新冠肺炎疫情防控是一场典型的数字时代的抗疫战。随着云计算、大数据、5G等新一代技术的普及应用,大量的行为轨迹都被数据化,这为此次抗疫大战期间运用信息化手段进行科学精准防控奠定了基础。大数据比人跑得快、跑得远,甚至有时还能跑到事情发展的前头。为了方便管控人们的出现轨迹,中国移动、中国电信、中国联通等运营商通过信号基站,确认经过的地方,每到一个新的城市,还会发送短信提醒,告知本城市的防控防疫的规则,通过短信可以授权通过中国移动、中国电信、中国联通等运营商查询过去15天和30天内途经的省市信息。通过支付宝、微信扫描二维码连接国家公共服务接口,也可以查询自己的健康码、行车轨迹。这一服务既可以让用户自证行程,也可以作为社区管理部门、用工单位进行疫情防控管理的参考。这只是大数据在疫情防控中得到有效应用的一个缩影。在这场没有硝烟的抗疫大考中,面对大规模的人员流动,综合运用大数据分析,促进医疗救治、交通管理等不同数据的交叉协同,已经成为抗击疫情的重要支撑。在这场疫情中,对政府服务部门改革也起到了推动作用,群众少跑腿,一网通办,不见面审批,等推动政府数据公开的改革经验的积累,也为此次利用大数据从容应对疫情防控打下了基础。各级政府依托已有部署经验,促进通信、交通、卫建、公安、社区等多个系统的数据对接,为提升治理能力积累了很多好的经验。作为一项现代化的技术手段,大数据有着海量性、开放性、融合性等众多优势,充分利用大数据技术,会让疫情防控效果更好。比如大数据能实现病历追踪或疑似病历追踪。可以将与已确诊病例有可能同时出现在某公共场所,或接触列入相应的筛查名单。相比于人力排查,大数据更快、更准。这为疫情防控工作减轻了很大压力,解放了人力,可以投入到其他更需要的地方,同时还可以通过数据的共享共通,实现卫健委、公安、民政等部门间的协调合作,为联防联控提供了数据保障,从而有效地提高了疫情防控效果。3. 总结在这场科技抗疫战争中,充分的体现了现代化科技的重要性,有了AI、大数据、云计算、5G这些黑科技的助力,大大提升了抗疫效率,有效的阻隔了病毒传播途径,节省了人力物力。抗疫过程主要是采用四个流程:预防为主、阻断为辅、快速筛选,最后走上重要的流程。这四个流程对应黑科技分别是: 预防疾病传播的健康码、阻断传播途径的远程办公,筛选潜在患者的智能测温、用于远程诊断的在线医疗,这四大抗疫神器的背后依据的就是大数据、云计算、人工智能、5G等底层技术,这些才是抗疫的最大功臣,也是注定影响我们未来数十年的科技。
  • [精彩回顾] 文字生成图片
    文字生成图片:蓝色星空
  • [其他] 抬头仰望
    Look up at the stars at night
  • [热门活动] 【DevRun成长计划——Serverless专场学习笔记】
    实践一: 10分钟开发我的个人主页实践二: OBS自动化文件解压实践三:定时拨测场景学习笔记“Serverless 计算将会成为云时代默认的计算范式,并取代 Serverful(传统云)计算模式。”Serverless作为一种新的开发范式,软件的架构也一定随着这种新范式的出现而做出对应的变化。传统的单体是个完全封闭的架构,业务模块耦合,牵一发而动全身。微服务架构采用标准的接口来解耦各个业务模块,通过容器技术也使得开发更有效率,但是开发者仍需要关注容器的部署位置,需要Devops的紧密联动。Serverless的架构进一步让开发者回归业务本质,免去非业务相关的运维,通过函数的方式来构建应用,使得应用解耦的颗粒度更小。Serverless 带来的业务价值主要体现在三个方面:更轻量化:用户专注于业务创新和代码开发,代码运行环境由云平台提供,无需管理基础设施资源。更快弹性:根据请求的并发数量自动调度资源运行函数,毫秒级弹性伸缩,高效应对业务峰值。更低成本:根据函数调用次数、运行时长和节点转换次数计费,函数不运行时不产生费用,更加节省成本。
总条数:76 到第
上滑加载中