【云驻共创】华为云之手把手教你搭建IoT物联网应用充电桩实时监控大屏

文章目录

  • 前言
    • 1.什么是充电桩
    • 2.什么是IOT
    • 3.什么是端、边、云、应用协同
    • 4.什么是Astro轻应用
  • 一、玩转lOT动态实时大屏(线下实际操作)
    • 1.Astro轻应用说明
      • 1.1 场景说明
      • 1.2 资费说明
      • 1.3 整体流程
    • 2.操作步骤
      • 2.1 开通设备接入服务
      • 2.2 创建产品
      • 2.3 注册设备
      • 2.4 购买云数据库实例
      • 2.5 购买弹性公网IP并绑定数据库实例
      • 2.6 配置数据转发规则
      • 2.7 数据上报及验证数据是否转发成功
      • 2.8 数据上报及验证数据是否转发成功开通AstroZero服务
      • 2.9 搭建Astro轻应用
      • 2.10 模拟数据上报及结果验证
      • 2.11 资源释放
        • 2.11.1 删除设备
        • 2.11.2 删除产品
        • 2.11.3 删除弹性公网IP
        • 2.11.4 删除云数据库实例
        • 2.11.5 删除Astro轻应用
  • 二、玩转lOT动态实时大屏(沙箱实验)
    • 1.设备接入平台
      • 1.1 开通标准版免费单元
      • 1.2 创建产品
      • 1.3 导入产品模型
      • 1.4 注册设备
      • 1.5 设备上报数据
    • 2.数据转储至RDS
      • 2.1 登录数据库实例
      • 2.2 导入数据库表
      • 2.3 绑定弹性公网IP
      • 2.4 配置数据转发规则
      • 2.5 验证数据转发结果
    • 3.搭建Astro大屏应用
      • 3.1 开通AstroZero服务
      • 3.2 导入项目包
      • 3.3 修改数据源
      • 3.4 修改数据集
      • 3.5 配置组件数据
      • 3.6 查看大屏效果
    • 4.联动测试
  • 总结


前言

1.什么是充电桩

充电桩是一种提供电动车辆充电服务的设备。由于电动车辆运行时需要储存大量电能,因此需要进行定期充电。充电桩就是为了满足电动车辆充电需求而生产的设备。

充电桩的来源可以追溯到20世纪80年代初期,当时电动车辆的充电设施十分有限。随着电动车辆的普及,充电桩的需求量也逐渐增加。充电桩的作用是提供电能,使电动车辆能够充电,并提高电动车辆在路上行驶的续航里程。现在,充电桩已经成为电动车辆运营的重要基础设施之一。

除了提供充电服务外,充电桩还具有很多其他的作用。例如,充电桩可以对电动车辆进行监控,以确保充电过程安全可靠;充电桩还可以通过互联网联网,实现智能充电和远程控制;此外,充电桩还可以为电动车辆提供各种定制化的服务,例如限时、限电等。

2.什么是IOT

IOT是指物联网(Internet of Things)。物联网是指各种物理设备、传感器、软件、互联网等技术的结合,通过互联网相互连接和通信,实现设备之间的互联互通,并将数据传输到云端进行处理和分析,从而实现设备之间的自动交互、远程监测和控制等功能。

简单来说,物联网就是把所有的物品和设备都连接到互联网上,让它们之间可以互相通信和交互,从而实现更加智能的功能和服务。通过物联网,我们可以得到更准确、更及时、更全面的数据和信息,更好地满足人们的需求和提高生产效率。例如,智能家居、智能工厂、智能城市等都是物联网的应用场景。

loT是物理世界到数字世界的桥梁,是构建行业解决方案的核心竞争力
在这里插入图片描述

3.什么是端、边、云、应用协同

端、边、云、应用协同是一种新型的计算架构,支持从端到边、边到云的计算协同和数据协同。在这个架构下,不同的设备(如传感器、智能终端等)可以与边缘计算设备、云平台和应用程序协同工作,共同处理、存储和分析数据,实现智能化决策和应用。

具体来说,端指的是智能终端、传感器等设备,边指的是边缘计算设备、网关等,云指的是云计算平台,应用指的是各种应用程序。在这个架构下,端设备可以通过边缘计算设备,将数据上传到云平台进行处理和存储;也可以通过边缘计算设备,从云平台获取数据和计算结果,边缘计算设备可以对数据进行预处理和筛选,减少数据传输的负荷,提高数据传输效率;应用程序可以通过云平台,获取到边缘设备和端设备上传的数据,并进行分析和决策,将结果反馈到边缘设备和端设备,实现智能化控制。

这种架构的优点是,可以将不同设备的计算和处理能力进行有效整合,充分利用各设备的优势,提高数据处理的效率和准确性,从而实现智能化决策和应用。
在这里插入图片描述

4.什么是Astro轻应用

Astro轻应用是一款聚焦于用户任务场景的全球首款智能轻应用平台,旨在通过机器学习等技术,将用户的需求和任务场景快速匹配,并提供轻量化的应用服务,帮助用户更加高效地完成工作和生活中的各种任务。例如,用户可以通过Astro轻应用平台快速查找和使用各种工具、服务和应用程序,如预订酒店、点餐、购买电影票等。同时,Astro轻应用还可以帮助用户简化业务流程,提高工作效率,实现更加智能化的工作方式。

一、玩转lOT动态实时大屏(线下实际操作)

1.Astro轻应用说明

1.1 场景说明

物联网解决方案中,作为数据主体的“物”可能数量会非常大,产生的数据已经无法通过传统的数据处理服务进行处理。如何分析与利用这庞大的物联网设备数据对物联网企业来说又是一个新的挑战。

华为云物联网平台提供规则引擎能力,支持将设备上报的数据转发至华为云其他云服务,可实现将海量数据通过云数据库(RDS)存储,再由Astro轻应用(AstroZero)读取数据并结合可视化组件进行呈现,实现数据的一站式采集、处理和分析。

在这里插入图片描述

在本案例中,我们实现下述场景:设备上报数据到物联网平台,物联网平台将数据转储至云数据库(RDS),Astro轻应用(AstroZero)从云数据库(RDS)读取数据并结合可视化组件进行展示。

在这里插入图片描述

  1. 设备接入平台:使用设备模拟器连接华为云loT平台并上报数据数据;
  2. 转储至RDS:购买云数据库RDS实例,并配置数据转发规则;
  3. 搭建Astro大屏应用:导入项目资源包,修改数据源,配置组件数据;
  4. 联动验证:设备模拟器上报充电桩订单数据,查看Astro大屏应用数据更新;

1.2 资费说明

Astro资费明细如下,具体费用以使用时长进行计算。本案例预计两小时完成。为避免因欠费导致实验阻塞,可提前进行充值,案例结束后请及时释放资源,避免持续产生费用。

云服务规格计费(¥/h)
设备接入 IoTDA标准版实例 -免费单元 -1个¥0.00/h
云数据库 RDS for MySQLMySQL-5.7-单机 -通用型-2核4GB / SSD云盘- 40GB¥0.40/h
弹性公网IP独享-全动态BGP-按带宽计费 -1Mbit/s -1个¥0.08/h
云日志服务 LTS按量付费-免费额度内(500MB/月)¥0.00/h
应用运维管理 AOM免费¥0.00/h
统一身份认证服务 IAM免费¥0.00/h
合计-¥0.48/h

1.3 整体流程

  1. 创建MQTT协议产品、开发产品模型、并注册设备。
  2. 创建数据转发规则,将数据转储至云数据库(RDS)。
  3. 搭建Astro轻应用(AstroZero)从云数据库(RDS)读取数据并结合可视化组件进行展示。
  4. 使用设备模拟器上报数据,验证Astro轻应用组件数据准实时刷新。

在这里插入图片描述

2.操作步骤

2.1 开通设备接入服务

步骤 1:访问设备接入服务产品首页,单击“免费试用”。

在这里插入图片描述

步骤 2:根据界面提示,输入实例名称,并单击“确定”,即可开通标准版实例免费单元。

实例名称:自定义,如“freeStandardInstance”

在这里插入图片描述

在这里插入图片描述

2.2 创建产品

步骤 1:进入设备接入控制台,选择左侧导航栏“产品”,单击页面右上角“创建产品”,填写参数并“确定”。

  • 所属资源控制:选择默认资源空间
  • 产品名称:充电桩
  • 协议类型:MQTT
  • 数据格式:JSON
  • 设备类型选择:自定义类型
  • 设备类型:充电桩

在这里插入图片描述

步骤 2:弹窗提示“创建产品成功”,单击“查看详情”进入产品详情页。

在这里插入图片描述
步骤 3:单击“上传模型文件”,选择添加充电桩物模型文件,然后单击“确定”完成上传。

模型文件文件下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed

在这里插入图片描述

在这里插入图片描述
步骤 4:上传成功,查看充电桩模型定义详情。

查看ChargingInfo服务下定义的订单属性,如下图所示。
在这里插入图片描述
查看BasicInfo服务下定义的设备基础属性,如下图所示。

在这里插入图片描述

2.3 注册设备

步骤 1:进入设备接入控制台,选择左侧导航栏“设备 > 所有设备”,单击页面右上角“注册设备”,填写参数并“确定”。

  • 所属资源空间:选择默认资源空间
  • 所属产品:选择“充电桩”
  • 设备标识码:自定义,如charging_machine_001
  • 设备名称:充电桩001
  • 设备ID:由平台自动生成的字符串前缀+设备标识码组合而成,自动填充,无需修改
  • 设备认证类型:密钥
  • 密钥/确认密钥:自定义,不少于8位,如12345678

在这里插入图片描述
步骤 2:弹窗提示“设备创建成功”,单击“保存并关闭”,返回设备列表。

下载保存的DEVICES-KEY.txt文本文件中记录了设备ID和密钥信息,请妥善保管。

在这里插入图片描述
步骤 3:查看刚注册的充电桩设备,显示为“未激活”状态。

在这里插入图片描述

2.4 购买云数据库实例

步骤 1:访问云数据库 RDS for MySQL产品首页,单击“立即购买”。

在这里插入图片描述
步骤 2:购买数据库实例:填写参数信息,然后单击“立即创建”。

  • 计费模式:选择“按需计费”
  • 区域:选择“华北-北京四”
  • 实例名称:自定义,如“rds-charging-demo”
  • 数据库引擎:选择“MySQL”
  • 数据库版本:选择“5.7”
  • 实例类型:选择“单机”
  • 存储类型:SSD云盘
  • 可用区:默认
  • 时区:默认

在这里插入图片描述

  • 性能规格:选择“通用型”| 2 vCPUs | 4 GB
  • 存储空间(GB):40
  • 磁盘加密:选择“不加密”

在这里插入图片描述

  • 虚拟私有云:选择当前帐号下的默认vpc和subnet,如“vpc-default”| “subnet-default”
  • 数据库端口:填写默认端口,即“3306”
  • 安全组:选择当前帐号下的默认安全组,如“Sys-default”;并查看安全组确认已放通3306端口。
    如果默认安全组的入方向规则未放通3306端口,请单击“添加规则”放通3306端口。

在这里插入图片描述

  • 设置密码:选择“现在设置”
  • 管理员帐户名:root
  • 管理员密码/确认密码:自定义,如“AstroZero@12#$”

在这里插入图片描述

  • 参数模板:默认,如“Default-MySQL-5.7”
  • 表名大小写:选择“区分大小写”
  • 企业项目:如果有此选项,选择默认项目即可,如“default”。
  • 购买数量:1
  • 只读实例:暂不购买

在这里插入图片描述

在这里插入图片描述

步骤 3:登录数据库实例:

① 预计等待5分钟左右,数据库实例初始化完成,并显示运行正常,单击“登录”。

在这里插入图片描述

② 输入登录用户名和密码,测试连接成功后,单击“登录”,进入DAS首页。

  • 登录用户名:步骤2中创建的管理员账户名,如“root”
  • 密码:步骤2中创建的管理员密码,如“AstroZero@12#$”
  • 定时采集:选择“开启”
  • SQL执行记录:选择“开启”

在这里插入图片描述

步骤 4:新建数据库:单击“新建数据库”,在弹窗中输入数据库名称,并“确定”。

  • 数据库名称:自定义,如“iotda_notify_all”

  • 字符集:选择“utf8mb4”

    在这里插入图片描述

步骤 5:新建数据库表:

① 数据库创建完成,单击数据库操作列的“新建表”。
在这里插入图片描述
② 填写基本信息,然后单击“下一步”。

  • 表名:自定义,如“charging_order”
  • 存储引擎:默认,即“InnoDB”
  • 字符集:默认,即“utf8mb4”
  • 校验规则:默认,即“utf8mb4_general_ci”
    在这里插入图片描述

③ 添加字段,然后单击“立即创建”。

序号列名类型长度可空主键扩展信息
1idint11-自动增长:开启 , 数字选项:无符号
2orderIDvarchar32--
3areavarchar32--
4orderTimevarchar32--
5usingPortvarchar32--
6amountdecimal32-默认值:0 , 数字选项:无符号
7receive_timetimestamp---默认值:CURRENT_TIMESTAMP , 根据当前时间更新:开启

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 购买弹性公网IP并绑定数据库实例

步骤 1:访问弹性公网 IP EIP 产品首页,单击“立即使用”。

在这里插入图片描述

步骤 2:根据界面提示,填写参数后,单击“立即购买”。

  • 计费模式:选择“按需计费”
  • 区域:选择“华北-北京四”
  • 线路:选择“全动态BGP”
  • 公网带宽:选择“按带宽计费”
  • 带宽大小 (Mbit/s):1
  • IPv6转换:不开启
  • DDos防护:默认值,即“DDoS原生基础防护”
  • 弹性公网IP名称:自定义,可不填
  • 企业项目:如果有此选项,选择默认项目即可,如“default”。
  • 购买量:1

在这里插入图片描述

步骤 3:购买完成,进入网络控制台,在弹性公网IP列表查看刚购买的弹性公网IP。

弹性公网IP资源如下图所示:

在这里插入图片描述
步骤 4:进入云数据库RDS控制台,单击“实例名称”进入实例详情页面。

在这里插入图片描述
步骤 5:选择左侧导航栏“连接管理”,在右侧连接信息区域,单击公网地址栏的“绑定”,在弹窗中选择刚购买的弹性公网IP,单击“是”完成绑定。

在这里插入图片描述
绑定完成,结果如下图所示:
在这里插入图片描述

2.6 配置数据转发规则

步骤 1:进入设备接入控制台,选择左侧导航栏“规则 > 数据转发”,单击“创建规则”。

在这里插入图片描述

步骤 2:设置转发数据。

① 填写基本信息:

  • 规则名称:充电桩转储MySQL
  • 数据来源:设备属性
  • 触发事件:设备属性上报
  • 资源空间:选择默认资源空间,如“DefaultApp_xxx***”

注:只有这里选择了单个资源空间,“数据过滤语句”区域才会出现“快速配置”选项。
在这里插入图片描述
② 配置数据过滤语句:

单击“快速配置”,勾选“符合以下所选条件的数据”,“所属产品”选择“充电桩”,单击“确定”。

在这里插入图片描述
③ 单击“创建规则”,弹窗提示“规则创建成功”,单击“继续设置”,进入设置转发目标。

在这里插入图片描述
步骤 3:设置转发目标。

① 单击“添加”,填写转发目标信息,然后单击“下一步:转发数据配置”,会连接数据库。

  • 转发目标:选择“MySQL数据库”
  • 数据库实例地址:填写购买弹性公网IP并绑定数据库实例中给数据库实例绑定的弹性公网IP和购买云数据库实例时配置的数据库实例访问端口,如 121...67:3306
  • 数据库名称:填写购买云数据库实例时新建的数据库,如 iotda_notify_all
  • 访问账户:填写购买云数据库实例时配置的数据库实例的登录账户,如 root
  • 访问密码:填写购买云数据库实例时配置的数据库实例的登录密码,如 AstroZero@12#$
  • SSL:本实验中暂不启用,即关闭。选择通过SSL方式连接时,需要先在数据库实例中设置SSL数据加密

在这里插入图片描述

② 选择转存表格,配置流转数据和数据库表的映射关系,然后单击“确定”。

  • 转存至表格:选择数据库中用于存储数据的数据表,如 charging_order
  • 转存配置:
转发字段目标存储字段
说明:流转数据中需要转存的参数路径。说明:数据库表的字段,选择目标存储字段后自动匹配字段类型。
notify_data.body.services[0].properties.orderIDorderID
notify_data.body.services[0].properties.areaarea
notify_data.body.services[0].properties.orderTimeorderTime
notify_data.body.services[0].properties.usingPortusingPort
notify_data.body.services[0].properties.amountamount

在这里插入图片描述
③ 弹窗提示“操作成功”,单击“设置完成”。

在这里插入图片描述
步骤 4:单击“启动规则”,激活配置好的数据转发规则。

在这里插入图片描述
界面显示“规则运行中”,单击左上角返回箭头,返回规则列表。

在这里插入图片描述
单击左上角小箭头,返回数据转发规则列表,查看刚创建的规则,如下图所示:

在这里插入图片描述

2.7 数据上报及验证数据是否转发成功

步骤 1:使用MQTT模拟器连接到平台。

① 下载模拟器,并双击运行,启动设备模拟器。
下载地址:https://obs-pipeline.obs.cn-north-4.myhuaweicloud.com/sdkDeploy/simulator/MQTT_Simulator.zip

在这里插入图片描述
② 配置连接参数,然后单击“Connect”,日志提示“connect to mqtt server success…”则表示连接成功。

  • SSL Connection:不勾选则使用1883端口,勾选则使用8883端口。本案例中勾选。
  • Server Address:从设备接入控制台,实例接入信息页获取,如 ***.st1.iotda-device.cn-north-4.myhuaweicloud.com

在这里插入图片描述

  • Device ID:注册设备成功后,获取到的设备ID。
  • Device Secret:注册设备成功后,获取到的设备密钥。

在这里插入图片描述

步骤 2:使用模拟器进行属性上报。

在模拟器窗口最下方的输入框,填写上报内容,然后单击“Publish”,日志提示“… is published success”则表示上报成功。

在这里插入图片描述
上报内容示例如下:

{ "services": [{ "properties": { "orderID": "0000005", "area": "武汉", "orderTime": "20230117T192335Z", "usingPort": "07", "amount": 32.5 }, "service_id": "ChargingInfo", "event_time": null }] 
}

步骤 3:前往设备接入控制台,选择左侧导航栏“设备 > 所有设备”,单击设备标识码,进入设备详情页。

可以看到设备在线,且在“最新上报数据”区域正常显示设备上报属性值。

在这里插入图片描述
步骤 4:前往云数据库RDS控制台,登录数据库实例,打开数据库>数据表,查看转发目标数据表中是否有记录生成。

① 单击“登录”,跳转到“实例登录”窗口。

在这里插入图片描述

② 输入登录用户名和密码,勾选“记住密码”,单击“测试连接”,提示“连接成功”后,单击“登录”。

  • 定时采集:按需开启,本案例中选择开启。
  • SQL执行记录:按需开启,本案例中选择开启。

在这里插入图片描述

③ 单击数据库名称,进入数据库管理界面。

在这里插入图片描述
④ 单击“打开表”,打开数据库表。

在这里插入图片描述
⑤ 可以看到数据库表中已生成一条记录,且与设备上报属性值一致。

在这里插入图片描述

2.8 数据上报及验证数据是否转发成功开通AstroZero服务

步骤 1:访问Astro轻应用产品首页,单击“立即使用”,进入Astro轻应用控制台。

在这里插入图片描述

步骤 2:单击页面右上角“免费试用”,并在弹窗中确认“免费开通”。

在这里插入图片描述
步骤 3:等待共享实例免费版开通成功,单击“进入首页”,即可进入Astro轻应用应用开发主页。

在这里插入图片描述
Astro轻应用应用开发主页预览如下图所示:

在这里插入图片描述

2.9 搭建Astro轻应用

步骤 1:进入Astro轻应用控制台,在实例页面,单击“进入首页”,进入新版应用开发环境。

在这里插入图片描述

步骤 2:在“应用开发”页面,单击左侧导航栏的“业务大屏”,即可进入Astro Canvas界面。

在这里插入图片描述
步骤 3:导入项目:单击“导入项目包”,选择“AstroCanvas_智慧充电桩”项目包,并“打开”。

AstroCanvas_智慧充电桩文件下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed
在这里插入图片描述

在这里插入图片描述

项目包导入成功,项目卡片预览如下图所示:

在这里插入图片描述

步骤 4:修改数据源:切换到“数据中心”页签,选择左侧导航栏“数据源管理”,单击“iot-mysql-data”数据源卡片。

在这里插入图片描述
修改好参数后,先单击“连接测试”,确认提示连接成功后,再单击“保存”。

  • 数据源:关系型数据库
  • 数据源名称:自定义,如“iot-mysql-data”
  • 数据库类型:MySQL
  • 域名:填写购买弹性公网IP并绑定数据库实例中给数据库实例绑定的弹性公网IP,如 121...67
  • 端口:填写购买云数据库实例时配置的数据库实例访问端口,如 3306
  • 用户名:填写购买云数据库实例时配置的数据库实例的登录账户,如 root
  • 密码:填写购买云数据库实例时配置的数据库实例的登录密码,如 AstroZero@12#$
  • 数据库名称:填写购买云数据库实例时新建的数据库,如 iotda_notify_all

在这里插入图片描述

步骤 5:修改数据集:选择左侧导航栏“数据集管理”,单击数据集卡片进行修改。

在这里插入图片描述
① 修改“订单总金额”数据集,填写参数,并刷新数据预览OK,然后单击“保存”。

  • 数据来源:关系型数据库

  • 数据源连接:步骤5中刚创建的数据源,如“iot-mysql-data”

  • 数据集名称:自定义,如“订单总金额”

  • 分类:选择“订单金额”

  • 数据配置:选择“SQL模式”

  • 选择数据表:选择“charging_order”

  • SQL查询语句:

    select sum(amount) as totalCoast, count(amount) as totalNum from charging_order
    

在这里插入图片描述
② 修改“每日订单金额”数据集,填写参数,并刷新数据预览OK,然后单击“保存”。

  • 数据来源:关系型数据库

  • 数据源连接:步骤5中刚创建的数据源,如“iot-mysql-data”

  • 数据集名称:自定义,如“每日订单金额”

  • 分类:选择“订单金额”

  • 数据配置:选择“SQL模式”

  • 选择数据表:选择“charging_order”

  • SQL查询语句:

    select substring(orderTime, 1, 8) as orderDate, count(orderTime) as orderNum, sum(amount) as orderCoast from charging_order group by orderDate
    

在这里插入图片描述
③ 修改“区域订单金额”数据集,填写参数,并刷新数据预览OK,然后单击“保存”。

  • 数据来源:关系型数据库

  • 数据源连接:步骤5中刚创建的数据源,如“iot-mysql-data”

  • 数据集名称:自定义,如“区域订单金额”

  • 分类:选择“订单金额”

  • 数据配置:选择“SQL模式”

  • 选择数据表:选择“charging_order”

  • SQL查询语句:

    select area, count(area) as num, sum(amount) as coast from charging_order group by area
    

在这里插入图片描述
步骤 6:配置组件数据:切回到“项目列表”页签,单击项目卡片,并选择“智慧充电桩运行监控大屏”页面,然后单击“编辑页面”进入编辑态。

在这里插入图片描述

参考下图编号标识顺序,依次选择组件,单击 进入组件数据配置页面,完成数据配置。

在这里插入图片描述

① 配置“城市充电次数/金额”组件数据:

  • 数据类型:数据集 | 选择“区域订单金额”
  • 组件预览-配置:X轴数据-area | Y轴数据-coast&num | 刷新周期-10秒

在这里插入图片描述
② 配置“城市充电次数占比率”组件数据:

  • 数据类型:数据集 | 选择“区域订单金额”
  • 组件预览-配置:数据-num | 数据类别-area | 刷新周期-10秒

在这里插入图片描述

③ 配置“城市结算金额占比率”组件数据:

  • 数据类型:数据集 | 选择“区域订单金额”
  • 组件预览-配置:数据-coast | 数据类别-area | 刷新周期-10秒

在这里插入图片描述
④ 配置“每日充电次数/金额”组件数据:

  • 数据类型:数据集 | 选择“每日订单金额”
  • 组件预览-配置:X轴数据-orderDate | Y轴数据-orderNum&orderCoast | 刷新周期-10秒

在这里插入图片描述

⑤ 配置“累计充电次数”组件数据:

  • 数据类型:数据集 | 选择“订单总金额”
  • 组件预览-配置:基准数字-totalNum | 刷新周期-10秒

在这里插入图片描述

⑥ 配置“累计结算金额”组件数据:

  • 数据类型:数据集 | 选择“订单总金额”
  • 组件预览-配置:基准数字-totalCoast | 刷新周期-10秒

在这里插入图片描述

步骤 7:编辑完成,单击“保存”,然后单击“预览”,查看大屏展示效果。

顶部菜单栏“保存(Ctrl+S)”、“预览(Ctrl+P)”按钮,如下图箭头标识所示。

查看大屏展示效果,如下图所示:

在这里插入图片描述

2.10 模拟数据上报及结果验证

步骤 1:参考数据上报及验证数据是否转发成功,上报更多充电桩订单数据。

在这里插入图片描述

  • 请自定义修改样例值后进行上报。如orderID改为0000002,area改为长沙,orderTime改为20230515T171215Z,usingPort改为11,amount改为28.5。
  • 为了Astro大屏应用呈现数据的多样性,请务必自定义修改并上报不少于5条样例数据。

上报内容样例:

{ "services": [{ "properties": { "orderID": "0000002", "area": "长沙", "orderTime": "20230515T171215Z", "usingPort": "11", "amount": 28.5 }, "service_id": "ChargingInfo", "event_time": null }] 
}

步骤 2:等待10秒左右,查看Astro轻应用大屏,数据刷新显示正常。

在这里插入图片描述

2.11 资源释放

实验完成,请及时释放计费资源,避免产生不必要的费用。

2.11.1 删除设备

进入设备接入控制台,选择左侧导航栏“设备 > 所有设备”,选择已注册的设备,单击“删除”,并在弹窗中单击“是”完成删除。

2.11.2 删除产品

进入设备接入控制台,选择左侧导航栏“产品”,选择已创建的产品,单击“删除”,并在弹窗中单击“确认”完成删除。

2.11.3 删除弹性公网IP

步骤 1:进入云数据库RDS控制台,单击“实例名称”进入实例详情页面。

在这里插入图片描述

步骤 2:选择左侧导航栏“连接管理”,在右侧连接信息区域,单击公网地址栏的“解绑”,并在弹窗中单击“是”完成解绑。

在这里插入图片描述
弹性公网IP解绑成功后,如下图所示:

在这里插入图片描述
步骤 3:进入网络控制台,在弹性公网IP列表勾选本实验购买的弹性公网IP,单击“解绑 > 释放”,并在弹窗中单击“是”完成释放。

在这里插入图片描述

2.11.4 删除云数据库实例

进入云数据库RDS控制台,选择左侧导航栏“实例管理”,单击“更多 > 删除实例”,并在弹窗中单击“是”完成删除。
在这里插入图片描述

2.11.5 删除Astro轻应用

进入Astro Canvas界面,选择“智慧充电桩”项目卡片,单击“删除”按钮,并在弹窗中单击“确认”完成删除。

在这里插入图片描述

二、玩转lOT动态实时大屏(沙箱实验)

云实验平台地址:https://lab.huaweicloud.com/testdetail_2312?ticket=ST-8521673-Y1iBbVulXQ16TdWUYY3ZirlY-sso

在这里插入图片描述

首先得预置实验环境

在这里插入图片描述
进入【实验操作桌面】,打开浏览器进入华为云登录页面。选择【IAM用户登录】模式,于登录对话框中输入系统为您分配的华为云实验账号和密码登录华为云,如下图所示:注意:账号信息详见实验手册上方,切勿使用您自己的华为云账号登录。

在这里插入图片描述

1.设备接入平台

1.1 开通标准版免费单元

① 在控制台总览页,输入“iotda”关键词进行搜索,选择结果列表中的“设备接入 IoTDA”,进入设备接入控制台。

在这里插入图片描述
② 在左侧导航栏,单击“切换”,选择标准版,单击“开通免费单元”。

注:如果已开通IoTDA标准版免费单元,请进入实例详情页进行退订,然后重新开通。

在这里插入图片描述
③ 弹窗提示“标准版实例免费使用”,单击“确定”完成开通。

√ 实例名称:使用默认值即可,即freeStandardInstance

在这里插入图片描述
④ 单击标准版实例选项卡右侧的“切换实例”,切换并使用标准版实例。

在这里插入图片描述

1.2 创建产品

① 选择左侧导航栏“产品”,单击页面右上角“创建产品”,填写参数并“确定”。

√ 所属资源控制:选择默认资源空间

√ 产品名称:充电桩

√ 协议类型:MQTT

√ 数据格式:JSON

√ 设备类型选择:自定义类型

√ 设备类型:充电桩

在这里插入图片描述
② 弹窗提示“创建产品成功”,单击“查看详情”进入产品详情页。
在这里插入图片描述

1.3 导入产品模型

① 回到实验桌面双击“Xfce终端”打开Terminal,输入以下命令下载保存产品模型文件至本地桌面。

在这里插入图片描述

cd Desktop/
wget https://iot-tools.obs.cn-north-4.myhuaweicloud.com/charging-station/Charging_Profile.zip

下载保存的产品模型文件如下:
在这里插入图片描述
② 回到产品详情页,在“模型定义”页签,单击“上传模型文件”,选择添加充电桩物模型文件,然后单击“确定”完成上传。
在这里插入图片描述
③ 上传成功,查看充电桩模型定义详情。

查看ChargingInfo服务下定义的订单属性,如下图所示。
在这里插入图片描述

查看BasicInfo服务下定义的设备基础属性,如下图所示。
在这里插入图片描述

1.4 注册设备

① 选择左侧导航栏“设备 > 所有设备”,单击页面右上角“注册设备”,填写参数并“确定”。

√ 所属资源空间:选择默认资源空间

√ 所属产品:选择上一步中创建的产品,即充电桩

√ 设备标识码:自定义,如charging_machine_001

√ 设备名称:充电桩001

√ 设备ID:由平台自动生成的字符串前缀+设备标识码组合而成,自动填充,无需修改

√ 设备认证类型:密钥

√ 密钥/确认密钥:自定义,不少于8位,如12345678

在这里插入图片描述

② 弹窗提示“设备创建成功”,单击“保存并关闭”,返回设备列表。

下载保存的DEVICES-KEY.txt文本文件中记录了设备ID和密钥信息,请妥善保管。

在这里插入图片描述
③ 查看刚注册的充电桩设备,显示为“未激活”状态。
在这里插入图片描述

1.5 设备上报数据

① 回到实验桌面双击“Xfce终端”打开Terminal,输入以下命令下载保存“HubSimulator.jar”至本地桌面。

cd Desktop/
wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/20221019/HubSimulator.jar

② 继续执行以下命令打开设备接入模拟器(HubSimulator.jar),然后切换到MQTT设备模拟器页签。

/usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar

在这里插入图片描述

③ 在MQTT设备模拟器页签下,配置好以下参数后,点击“建立连接”按钮。

在这里插入图片描述
√ 服务IP:进入设备接入控制台,在左侧栏选择“总览”,点击“接入信息”,复制使用MQTT/MQTTS接入信息的域名。

在这里插入图片描述
√ 设备ID/设备密钥:注册设备成功后返回的设备Id和密钥。回到实验桌面双击“Xfce终端”打开Terminal,输入以下命令获取:

cat /home/user/Downloads/DEVICES-KEY.txt

在这里插入图片描述
建立连接成功后,右侧日志显示MQTT服务连接成功。回到物联网所有设备列表,设备状态变更为“在线”,如下图所示:

在这里插入图片描述
④ 在模拟器窗口中的发送消息页签下,填写Topic及上报消息样例,然后单击“发送消息”。
在这里插入图片描述
在发送消息页签下的Topic栏中输入以下代码:

$oc/devices/{device_id}/sys/properties/report

其中的{device_id}需要替换成实际设备ID。

在消息编辑栏中输入以下代码,即上报内容示例如下:

{"services": [{"properties": {"orderID": "0000005","area": "武汉","orderTime": "20230117T192335Z","usingPort": "07","amount": 32.5},"service_id": "ChargingInfo","event_time": null}]
}

单击“发送消息”。发送消息成功后,右侧日志显示信息推送成功(图片仅为示意,请以实际上报数据为准)。

⑤ 回到设备列表页,单击设备标识码,进入设备详情页。可以看到设备在线,且在“最新上报数据”区域正常显示设备上报属性值。

在这里插入图片描述

2.数据转储至RDS

2.1 登录数据库实例

① 在控制台总览页,输入“rds”关键词进行搜索,选择结果列表中的“云数据库 RDS”,进入云数据库RDS控制台。
在这里插入图片描述
② 数据库实例初始化完成,并显示运行正常,单击“登录”。
在这里插入图片描述
③ 输入登录用户名和密码,测试连接成功后,单击“登录”,进入数据管理服务DAS首页。

√ 登录用户名:预置实验环境中云数据库RDS实例的用户名,如“root”

√ 密码:预置实验环境中云数据库RDS实例的密码

在这里插入图片描述
√ 定时采集:选择“开启”

√ SQL执行记录:选择“开启”

在这里插入图片描述

2.2 导入数据库表

① 回到实验桌面双击“Xfce终端”打开Terminal,输入以下命令下载保存数据库资源包至本地桌面。

注意:请务必双击“Xfce终端”打开新的Terminal窗口,禁止在运行设备模拟器的Terminal窗口操作。

cd Desktop/
wget https://iot-tools.obs.cn-north-4.myhuaweicloud.com/charging-station/DAS_Imexport_Export_all_sql.tar.gz

继续执行如下命令解压获取SQL导入脚本。

tar -zxvf DAS_Imexport_Export_all_sql.tar.gz

解压获取的SQL脚本文件,如下图所示:
在这里插入图片描述
② 回到数据管理服务DAS首页,单击“新建数据库”,在弹窗中输入数据库名称,并“确定”。

√ 数据库名称:自定义,如“iotda_notify_all”

√ 字符集:选择“utf8mb4”

在这里插入图片描述
③ 在顶部导航栏选择“导入·导出 > 导入”,单击“新建任务”,填写参数并创建导入任务。

√ 导入类型:sql

√ 文件来源:上传文件

√ 附件存放位置:点击右侧“创建OBS桶”并在弹窗中填写桶名称,如obs-xxx,完成创建;然后选择新创建的OBS桶

√ 选择附件:上传刚下载解压得到的SQL执行脚本文件

√ 数据库:选择刚创建的数据库,如iotda_notify_all

√ 字符集:选择“自动检测”

√ 选项:两项都可以勾选上

在这里插入图片描述
④ 弹窗提示如下,单击“确定”。
在这里插入图片描述
⑤ 导入任务执行完成,回到首页,单击库名进入库管理列表,展开表预览如下图所示:

在这里插入图片描述

2.3 绑定弹性公网IP

① 切换到云数据库RDS控制台,单击“实例名称”进入实例详情页面。
在这里插入图片描述
② 选择左侧导航栏“连接管理”,在右侧连接信息区域,单击公网地址栏的“绑定”,在弹窗中选择预置的弹性公网IP,单击“是”完成绑定。

在这里插入图片描述
绑定完成,结果如下图所示:
在这里插入图片描述
③ 向下滚动页面到安全组规则,选择“sg-hce”页签,查看入方向规则,单击“添加入方向规则”,在弹窗中选择“MySQL (3306)”,然后单击“确定”进行放通。

在这里插入图片描述

2.4 配置数据转发规则

① 切换到设备接入控制台,选择左侧导航栏“规则 > 数据转发”,单击“创建规则”。
在这里插入图片描述
② 设置转发数据:填写基本信息,并配置数据过滤语句后,单击“创建规则”。

√ 规则名称:充电桩转储MySQL

√ 数据来源:设备属性

√ 触发事件:设备属性上报

√ 资源空间:选择默认资源空间,如“DefaultApp_xxx***”

注:只有这里选择了单个资源空间,“数据过滤语句”区域才会出现“快速配置”选项。

在这里插入图片描述
√ 数据过滤语句:单击“快速配置”,勾选“符合以下所选条件的数据”,“所属产品”选择“充电桩”,单击“确定”。

在这里插入图片描述
③ 弹窗提示“规则创建成功”,单击“继续设置”,进入设置转发目标。
在这里插入图片描述
④ 设置转发目标:单击“添加”,填写转发目标信息。
在这里插入图片描述
√ 转发目标:选择“MySQL数据库”

√ 数据库实例地址:填写给数据库实例绑定的弹性公网IP和数据库实例访问端口(即3306),如 121...67:3306

√ 数据库名称:从数据管理服务DAS控制台获取数据库名称,如iotda_notify_all

√ 访问账户/访问密码:填写数据库实例的登录账户和登录密码,从预置环境信息中获取

在这里插入图片描述
√ SSL:本实验中暂不启用,即关闭。

配置完成,单击“下一步:转发数据配置”,会连接数据库。选择转存表格,配置流转数据和数据库表的映射关系,然后单击“确定”。

在这里插入图片描述
√ 转存至表格:选择数据库中用于存储数据的数据表,如charging_order

√ 转存配置:先选择目标存储字段,再填写转发字段,对应关系如下:

目标存储字段为orderID,对应的转发字段如下:

notify_data.body.services[0].properties.orderID

目标存储字段为area,对应的转发字段如下:

notify_data.body.services[0].properties.area

目标存储字段为orderTime,对应的转发字段如下:

notify_data.body.services[0].properties.orderTime

目标存储字段为usingPort,对应的转发字段如下:

notify_data.body.services[0].properties.usingPort

目标存储字段为amount,对应的转发字段如下:

notify_data.body.services[0].properties.amount

⑤ 弹窗提示“操作成功”,单击“设置完成”。

在这里插入图片描述
⑥ 单击“启动规则”,激活配置好的数据转发规则。
在这里插入图片描述
界面显示“规则运行中”,单击左上角返回箭头,返回规则列表。
在这里插入图片描述

2.5 验证数据转发结果

① 回到MQTT设备模拟器窗口,重新上报一次数据。
在这里插入图片描述
在发送消息页签下的Topic栏中输入以下代码:

$oc/devices/{device_id}/sys/properties/report

其中的{device_id}需要替换成实际设备ID。

在消息编辑栏中输入以下代码,即上报内容示例如下:

{"services": [{"properties": {"orderID": "0000005","area": "武汉","orderTime": "20230117T192335Z","usingPort": "07","amount": 32.5},"service_id": "ChargingInfo","event_time": null}]
}

单击“发送消息”。

② 回到数据管理服务DAS首页,单击数据库名称,进入库管理页面。

在这里插入图片描述
③ 单击“打开表”,打开数据库表。

在这里插入图片描述

可以看到数据库表中已生成一条记录,且与设备上报属性值一致。
在这里插入图片描述

3.搭建Astro大屏应用

3.1 开通AstroZero服务

① 在控制台总览页,输入“Astro”关键词进行搜索,选择结果列表中的“Astro轻应用”,进入Astro轻应用控制台。

在这里插入图片描述
② 单击页面右上角“免费试用”,并在弹窗中确认“免费开通”。

注:如果已开通Astro轻应用免费试用,直接下一步“进入首页”即可。

在这里插入图片描述
③ 等待共享实例免费版开通成功,单击“进入首页”,即可进入Astro轻应用应用开发主页。

在这里插入图片描述
Astro轻应用应用开发主页预览如下图所示:

在这里插入图片描述

3.2 导入项目包

① 在“应用开发”页面,单击左侧导航栏的“业务大屏”,即可进入Astro Canvas界面。
在这里插入图片描述
② 回到实验桌面双击“Xfce终端”打开Terminal,输入以下命令下载保存项目包至本地桌面。

注意:请务必双击“Xfce终端”打开新的Terminal窗口,禁止在运行设备模拟器的Terminal窗口操作。

cd Desktop/
wget https://iot-tools.obs.cn-north-4.myhuaweicloud.com/charging-station/AstroCanvas_ChargingSmartScreen.zip

③ 回到Astro Canvas界面,单击“导入项目包”,选择刚下载的项目包,并“打开”。
在这里插入图片描述
项目包导入成功,项目卡片预览如下图所示:
在这里插入图片描述

3.3 修改数据源

① 继续在Astro Canvas界面,切换到“数据中心”页签,选择左侧导航栏“数据源管理”,单击“iot_mysql_data”数据源卡片。

在这里插入图片描述
② 修改好参数后,先单击“连接测试”,确认提示连接成功后,再单击“保存”。
在这里插入图片描述
√ 域名:填写数据库实例绑定的弹性公网IP,如 121...67

√ 端口:固定为3306

√ 用户名/密码:填写数据库实例的登录账户和登录密码,从预置环境信息中获取

在这里插入图片描述
√ 数据库名称:从数据管理服务DAS控制台获取数据库名称,如iotda_notify_all

3.4 修改数据集

① 继续在“数据中心”页签下,选择左侧导航栏“数据集管理”,单击数据集卡片进行修改。

在这里插入图片描述
② 修改“订单总金额”数据集,直接单击“刷新数据”,右侧数据预览OK,然后单击“保存”。

√ SQL查询语句:

select sum(amount) as totalCoast, count(amount) as totalNum from charging_order

注:图例中数据预览结果仅为样例,请以实际数据为准。

在这里插入图片描述
③ 修改“每日订单金额”数据集,直接单击“刷新数据”,右侧数据预览OK,然后单击“保存”。

√ SQL查询语句:

select substring(orderTime, 1, 8) as orderDate, count(orderTime) as orderNum, sum(amount) as orderCoast from charging_order group by orderDate

注:图例中数据预览结果仅为样例,请以实际数据为准。

在这里插入图片描述
④ 修改“区域订单金额”数据集,直接单击“刷新数据”,右侧数据预览OK,然后单击“保存”。

√ SQL查询语句:

select area, count(area) as num, sum(amount) as coast from charging_order group by area

注:图例中数据预览结果仅为样例,请以实际数据为准。

在这里插入图片描述

3.5 配置组件数据

① 继续在Astro Canvas界面,切回到“项目列表”页签,单击“智慧充电桩”项目卡片,并选择“智慧充电桩运行监控大屏”页面,然后单击“编辑页面”进入编辑态。

在这里插入图片描述
在这里插入图片描述
② 参考下图编号标识,依次查看各组件,已加载显示订单数据。

注:如果下图中标注的组件,未加载显示订单数据,请进入组件数据配置页,参考“问答”修正关联使用的数据集。

在这里插入图片描述

以配置“城市充电次数/金额”组件数据为例,预览如下图所示:

√ 数据类型:数据集 | 选择“区域订单金额”

√ 组件预览-配置:X轴数据-area | Y轴数据-coast&num | 刷新周期-10秒

在这里插入图片描述

3.6 查看大屏效果

① 编辑完成,单击“保存”,然后单击“预览”,查看大屏展示效果。

顶部菜单栏“保存(Ctrl+S)”、“预览(Ctrl+P)”按钮,如下图箭头标识所示。
在这里插入图片描述
② 查看大屏展示效果,如下图所示:

注:如下大屏数据仅为样例,请以实际上报数据呈现结果为准。

在这里插入图片描述

4.联动测试

① 回到MQTT设备模拟器窗口,上报更多充电桩订单数据。
在这里插入图片描述
为了Astro大屏应用呈现数据的多样性,请务必自定义修改并上报不少于5条样例数据。

在发送消息页签下的Topic栏中输入以下代码:

$oc/devices/{device_id}/sys/properties/report

其中的{device_id}需要替换成实际设备ID。

在消息编辑栏中输入以下代码,即上报内容示例如下:

√ 修改 orderID 为 0000002

√ 修改 area 为 长沙

√ 修改 orderTime 为 20230515T171215Z

√ 修改 usingPort 为 11

√ 修改 amount 为 28.5

提示:请自定义修改,并多次上报不同内容。

{"services": [{"properties": {"orderID": "0000002","area": "长沙","orderTime": "20230515T171215Z","usingPort": "11","amount": 28.5},"service_id": "ChargingInfo","event_time": null}]
}

② 单击“发送消息”后,等待10秒左右,查看Astro轻应用大屏,数据刷新显示正常。

注:如下大屏数据仅为样例,请以实际上报数据呈现结果为准。

在这里插入图片描述

至此,已完成快速搭建物联网充电桩Astro大屏应用的全部操作体验。

总结

本文主要用到华为云相关服务有:

  • 设备接入服务:华为云设备接入服务是华为云提供的一项设备接入云平台的服务,通过该服务,用户可以将自己的设备连接到华为云,实现设备数据的云端存储、管理和分析。华为云设备接入服务提供了丰富的接口和协议支持,可以满足不同类型的设备接入需求,同时提供了安全、可靠的数据通信和存储保证。用户还可以通过华为云的其他服务,如物联网平台、人工智能平台等,实现设备智能化、应用化的开发和部署。
  • RDS云数据库:华为云RDS(Relational Database Service)云数据库是一种基于云计算技术,提供高可用性、高可扩展性、安全稳定的关系型数据库服务。用户可以通过控制台、API或命令行方式轻松管理、配置和使用云数据库,实现快速部署、高效备份和恢复、实时监控和自动扩容等功能。支持多种数据库引擎,包括MySQL、SQL Server、PostgreSQL和PPAS。同时,华为云RDS可提供可靠的容灾备份、数据加密和安全审计等功能,为企业提供了一个稳定、安全、高效的云数据库服务。
  • 弹性公网IP:华为云弹性公网IP是指一种可以动态绑定到云主机、负载均衡等云资源的公网IP地址。它采用了BGP协议实现动态路由,可以实现灵活的流量管理和负载均衡,支持带宽按需扩展,能够满足用户对公网访问的高可用性、高带宽需求。此外,华为云弹性公网IP还支持IPv6和IPv4双栈方式,能够满足不同用户的网络需求。
  • Astro轻应用:华为云Astro轻应用是一款基于华为云PaaS平台的应用开发框架,旨在帮助开发者快速构建轻量级、高效、灵活、安全的企业级应用。通过Astro轻应用,开发者可以轻松构建基于Web技术的应用,并且可以快速部署到华为云上,实现快速上线、高可用和弹性扩展。Astro轻应用还提供了丰富的开发工具和开发流程支持,助力开发者高效开发应用,降低开发成本。

其中设备接入服务主要是负责接收物联网设备MQTT协议上传的数据,在转发到RDS云数据库(需要弹性公网IP才能进行接收),最终由Astro轻应用读取RDS云数据库中的数据进行大屏展示。

充电桩实时监控大屏可以对充电设施的运营情况进行实时监控和管理,包括:

  1. 实时监测充电桩的使用情况,对充电桩进行统计和分析,为运营商提供运营数据,以便做出决策来优化充电桩布局。

  2. 显示充电桩的位置信息,方便用户查找和选择最近的充电站,提高用户体验和便利性。

  3. 通过实时监控大屏幕,管理人员可以及时发现充电桩故障和异常情况,及时对充电桩进行维修和处理,提高充电桩的工作效率和使用率。

  4. 充电桩实时监控大屏能够统计充电桩的充电量、充电速度等关键指标,为充电桩的运营提供优化和改进方案。

  5. 显示城市充电站的全面情况,对于城市规划、公交站设计等有重要启示作用。

充电桩的管理和运营能提供有效的数据支持、为用户提供更好的服务体验、为企业优化服务和管理提供依据,促进新能源汽车的普及和发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/48277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之std::list<string>::iterator迭代器应用实例(一百七十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

OPTEE3.17+ubuntu20.04+qemu_v8搭建OPTEE开发环境

参考文章: https://blog.csdn.net/capodexi/article/details/123548850 https://blog.csdn.net/qq_42557044/article/details/130973200 https://blog.csdn.net/zhuwade/article/details/125513873 https://zhuanlan.zhihu.com/p/521196386 https://blog.csdn.net/…

解决方案中-excel表格的常用功能

解决方案中-excel表格的常用功能: 1.冻结表格的列,行 1.1冻结表格的列,行 需求:表格很多列的内容,我需要关注后面的内容的同时也需要关注前面的内容 操作步骤: 选定指定的列【那一列内容】,…

java八股文面试[JVM]——垃圾回收

参考:JVM学习笔记(一)_卷心菜不卷Iris的博客-CSDN博客 GC垃圾回收面试题: JVM内存模型以及分区,需要详细到每个区放什么 堆里面的分区:Eden,survival from to,老年代,各…

Golang GORM 单表删除

删除只有一个操作,delete。也是先找到再去删除。 可以删除单条记录,也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…

2023-08-21 LeetCode每日一题(移动片段得到字符串)

2023-08-21每日一题 一、题目编号 2337. 移动片段得到字符串二、题目链接 点击跳转到题目位置 三、题目描述 给你两个字符串 start 和 target ,长度均为 n 。每个字符串 仅 由字符 ‘L’、‘R’ 和 ‘_’ 组成,其中: 字符 ‘L’ 和 ‘R…

基于swing的零件销售系统java jsp客户信息维护mysql源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于swing的零件销售系统 系统有1权限:管…

论文阅读 - Understanding Diffusion Models: A Unified Perspective

文章目录 1 概述2 背景知识2.1 直观的例子2.2 Evidence Lower Bound(ELBO)2.3 Variational Autoencoders(VAE)2.4 Hierachical Variational Autoencoders(HVAE) 3 Variational Diffusion Models(VDM)4 三个等价的解释4.1 预测图片4.2 预测噪声4.3 预测分数 5 Guidance5.1 Class…

【Java从入门到精通|1】从特点到第一个Hello World程序

写在前面 在计算机编程领域,Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境,以及如何编写您的第一个Java程序。 一、Java…

回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图&a…

Redis中的淘汰策略

前言 本文主要说明在Redis面临key过期和内存不足的情况时,可以采用什么策略进行解决问题。 Redis中是如何应对过期数据的 正如我们知道的Redis是基于内存的、单线程的一个中间件,在面对过期数据的时候,Redis并不会去直接把它从内存中进行剔…

Redis 缓存满了怎么办?

引言 Redis 缓存使用内存来保存数据,随着需要缓存的数据量越来越大,有限的缓存空间不可避免地会被写满。此时,应该怎么办?本篇文章接下来就来聊聊缓存满了之后的数据淘汰机制。 值得注意的是,在 Redis 中 过期策略 和…

C. Another Array Problem

思路:这个题没想到吧数先往0上搞,然后一直想不出来,为什么要先往0上搞呢,对于每个数来说,它最大只会变成这一堆数的最大值,所以我们考虑能不能变成最大值,那么只要是两个相等的数通过一次操作就…

xcode14.3更新一系列问题

1. Missing file libarclite_iphoneos.a (Xcode 14.3) 解决方法 Xcode升级到14.3后编译失败,完整错误日志: File not found: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneo…

C语言好题解析(四)

目录 选择题一选择题二选择题三选择题四选择题五编程题一 选择题一 已知函数的原型是: int fun(char b[10], int *a); 设定义: char c[10];int d; ,正确的调用语句是( ) A: fun(c,&d); B: fun(c,d); C: fun(&…

Java进阶(4)——结合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化

目录 引出类什么时候被加载JVM中创建对象几种方式1.new 看到new : new Book()2.反射 Class.forName(“包名.类名”)如何获取Class对象【反射的基础】案例:连接数据库方法 3.克隆(拷贝)clone浅拷贝深拷贝案例 序列化和反序列化对象流-把对象存…

【面试题】前端面试复习6---性能优化

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 性能优化 一、性能指标 要在 Chrome 中查看性能指标,可以按照以下步骤操作: 打开 Chrome 浏览器,并访问你想要测试…

lvs-DR

lvs-DR数据包流向分析 client向目标VIP发出请求。 DIR根据负载均衡算法一台active的RS(RIR1),将RIP1所在的网卡的mac地址作为目标的mac地址,发送到局域网里。 RIRI在局域网中的收到这个帧,拆开后发现目标&#xff08…

IPEmotion交流电功率分析计算

一 应用背景 随着国内电动汽车行业的快速发展,在相同的道路环境和行驶状态下,增加电动车的整体续航里程和提升乘员对于行驶途中用电需求的满意度尤为重要。对此,需要采集试验过程中交直流电压电流信号,以计算出车辆各种部件输出和…

Docker容器与虚拟化技术:Docker镜像创建、Dockerfile实例

目录 一、理论 1.Docker镜像的创建方法 2.Docker镜像结构的分层 3.Dockerfile 案例 4.构建Systemctl镜像(基于SSH镜像) 5.构建Tomcat 镜像 6.构建Mysql镜像 二、实验 1.Docker镜像的创建 2. Dockerfile 案例 3.构建Systemctl镜像(…