文章目录

  • 前言
    • 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 MySQL MySQL-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”

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

序号 列名 类型 长度 可空 主键 扩展信息
1 id int 11 - 自动增长:开启 , 数字选项:无符号
2 orderID varchar 32 - -
3 area varchar 32 - -
4 orderTime varchar 32 - -
5 usingPort varchar 32 - -
6 amount decimal 32 - 默认值:0 , 数字选项:无符号
7 receive_time timestamp - - - 默认值: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.orderID orderID
notify_data.body.services[0].properties.area area
notify_data.body.services[0].properties.orderTime orderTime
notify_data.body.services[0].properties.usingPort usingPort
notify_data.body.services[0].properties.amount amount


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


步骤 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. 显示城市充电站的全面情况,对于城市规划、公交站设计等有重要启示作用。

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

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

  1. 六、手把手教你搭建SpringCloudAlibaba之Sentinel实现流量实时监控

    SpringCloud Alibaba全集文章目录: 零.手把手教你搭建SpringCloudAlibaba项目 一.手把手教你搭建SpringCloud Alibaba之生产者与消费者 二.手把手教 ...

  2. 【云驻共创】云原生应用架构之企业核心业务未来架构演进路线及华为云方案

    文章目录 前言 一.企业核心业务架构演进 1.企业核心业务应用架构和集成架构发展历程 1.1 企业核心业务应用架构发展历程 1.1.1 单体架构 1.1.1.1 特点 1.1.1.2 优点 1.1.1 ...

  3. 【云驻共创】华为云AI之用Python定制我的《本草纲目女孩》

    文章目录 前言 一.华为云ModelArts-Notebook介绍 1.华为云ModelArts-Notebook 1.1 Jupyter Notebook是什么 1.2 JupyterLab是什么 ...

  4. 【云驻共创】华为云HCIA-IoT V2.5培训系列内容之物联网概览

    文章目录 前言 一.物联网发展简史与概述 1.物联网的发展简史 1.1 物联网的起源 1.2 物联网的发展 1.3 物联网大事件 1.3.1 NB-IOT标准的引进 1.3.2 工信部宣布5G商用 1 ...

  5. 【云驻共创】华为云IoTDA服务下的设备管理流程实操

    文章目录 一.当今社会发展趋势 1.社会背景 2.什么是物联网(IoT) 3.什么是华为云(IoTDA) 二.为什么需要设备发放 1.传统模式-存在问题 2.设备发放模式-问题改进 三.设备接入服务的 ...

  6. 【云驻共创】华为云之锁与权限为您的数仓保驾护航

    文章目录 前言 1.锁的介绍 2.权限的介绍 一.DWS锁机制介绍&排查处理方法 1.华为云数仓DWS的概念 2.事务隔离性问题分析 3.数据库并发场景 4.锁机制 4.1 MVCC介绍 4. ...

  7. 【云驻共创】华为云云原生之Kubernetes网络架构原理深度剖析(上)

    文章目录 前言 一.Kubernetes诞生背景 1.云原生的概念 2.云原生架构 3.Kubernetes(k8s) 二.Kubernetes基本网络模型剖析 1.概念厘清 1.1 二层桥接 VS ...

  8. 【云驻共创】华为云AI之《情感专家》在线分析影评情感基调

    文章目录 前言 一.Word Embedding 二.BERT原理 1.Pre-training预训练 2.Deep Bidirectional Transformers 3.BERT中的双向表示 4 ...

  9. 【云驻共创】华为云云原生之Istio控制面架构深度剖析

    文章目录 前言 一.Istio的基本概念 1.Istio诞生背景 2.Istio的定义 3.Istio优势 二.Istio整体架构及工作原理 1.Istio整体架构 1.1 控制面Istiod 1.1 ...

最新文章

  1. 关于MySQLdb连接数据的使用(插入数据,删除数据,更新数据,搜索数据——前端页面完成这些对数据库的操作)
  2. 我的Android进阶之旅------Android项目目录结构分析
  3. 成为Python大牛必须要掌握的高端语法(附链接代码)
  4. selenium WebDriverException: Message: unknown error: DevToolsActivePort file doesnt exist
  5. mapreduce程序输出评分8.6分以上的书名和评分_如何选编程入门资料?光评分高怎么够|文末赠书...
  6. mysql rowdatapacket_arrays – 将此RowDataPacket对象数组缩小为单个对象
  7. Linux中的动态链接库与静态链接库
  8. 前端和后端哪个工资高_新媒体运营和网络运维哪个好,哪个工资待遇高,门槛低?...
  9. NLP大神推荐的机器学习入门书单(附大量百度网盘电子书)
  10. 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息...
  11. 一文读懂架构师都不知道的isinstance检查机制
  12. 支持全文搜索的桌面搜索工具
  13. foremost 原理和使用
  14. 数学建模系列-优化模型---(一)规划模型
  15. python交通流预测代码,使用python进行交通流量预测
  16. 如何爬取中国近十年的GDP,对数据进行处理,并写入csv文件?
  17. 进入Tokio的异步世界
  18. Adobe Flash Player / 功能
  19. 如果你是CEO,你打算给自己开多少工资?
  20. 获取MP3音频时长 | Java工具类

热门文章

  1. 黑马程序员——快速进入iOS开发
  2. Transmit 5 for Mac(FTP/SFTP客户端)
  3. Jetson TX2核心板系统烧录、烧写
  4. 南通数字孪生智能工厂,数字工厂智能车间建设,3d可视化工业建模,三维数据交互大屏系统开发
  5. 网课题库接口如何快速搭建到公众号
  6. MPP DB 是 大数据实时分析系统 未来的选择吗?
  7. hadoop mpp oracle,请教一下MPP 与 Hadoop是什么关系?
  8. 知识付费平台之梦想贩卖机搭建,可运营版
  9. 全局替换字体的 4 种方式
  10. 浅谈医疗信息化安全的防御体系