基于IoT平台构建智慧路灯应用


基于华为云IoT平台,快速开发属于自己的智慧路灯应用。
本文基于华为云iot实验制作而成


1.资源下载

(本文默认已经注册并登录华为云平台)

在linux桌面下打开终端面板下载资源,下载保存“HubSimulator.jar”至本地桌面。

cd Desktop/wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务

输入以下命令保存“SmartStreetLight.zip”压缩包

wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/SmartStreetLight.zip

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_02

2.编译构建智慧路灯应用

2.1 新建项目

进入控制台,选择“服务列表”->“开发与运维”->“项目管理”,进入软件开发云,如下图:

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_03

点击“立即使用”按钮,跳转到DevCloud操作界面

(华为云提供了免费的软件开发平台基础班试用功能)

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_04

DevCloud操作界面如下图

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_05

点击上图红圈标注“新建项目”按钮,开始创建项目,如下图所示:

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_06

点击标注的“Scrum”区域,创建“Scrum”类型项目,参数如下:项目设置模板:Scrum项目名称:QuickStart

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_07

参数填写完毕,点击确定按钮即可完成项目创建。

####2.2创建代码仓库

选择导航栏“代码 > 代码托管”,进入管理页面,展开右上角“普通新建”下拉菜单,点击“按模板新建”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_08

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_09

在搜索框中输入“IoT_Streetlight_New_Demo”,如下图所示选择“华北-北京四”,选中该模板,单击“下一步”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_10

填写仓库基本信息基本信息参数如下:

①代码仓库名称:自定义,如:IoT_Streetlight_New_Demo

②选择gitignore:Java其他选项保持默认。

单击“确定”,完成仓库创建。

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_11

2.3构建并归档软件包

新建编译构建任务点击导航栏

“构建&发布 > 编译构建”,进入管理页面,点击“新建任务”,参数如下:

①源码源:CodeHub;

②源码仓库:默认选择1.2步创建的代码仓库;

③分支:master;点击“下一步”进入“选择构建模板”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_12

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_13

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_14

本项目是一个Java Maven项目,所以搜索选择“Maven”模板, 单击“确定”,进入“构建步骤”页面。

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_15

使用系统模板中提供的两个默认步骤、以及每个步骤中的默认配置,即可完成本例的构建。点击“新建并执行”即可完成步骤的配置并启动构建任务

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_16


构建需要2-3分钟,请耐心等待


华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_17

2.4 验证构建任务执行结果

点击导航栏“发布”,进入“软件发布库”页面,点击进入“IoT_Streetlight…”下的“202…”日期命名的文件夹,即可看到生成的软件包“huawei-0.0.1-SNAPSHOT.jar”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_18

3. 创建主题并订阅 SMN

3.1 创建主题

在华为云控制台,展开左侧目录,选择【服务列表】->【管理与监管】 -> 【消息通知服务SMN】,或在服务列表搜索框中搜索“SMN”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_19

在左侧导航栏,选择“主题管理 > 主题”,单击“创建主题”,输入“主题名称”(自定义,例如:StreetLight)后单击“确定”完成主题创建

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_20

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_21

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_22

3.2订阅 SMN

主题创建成功后,系统会自动生成主题URN,主题URN是主题的唯一资源标识,不可修改,后续步骤将会用到该URN。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_23

点击主题“StreetLight”右侧操作“添加订阅”,可采用短信或者邮件任意一种协议完成订阅。

“短信协议”参数如下:

①协议:短信

②订阅终端:用户手机号码(需填写您的手机号完成此步)

单击“确定”后,请查看手机接收短信,点击短信中的链接进行订阅确认。

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_24

4. 创建弹性云服务器 ECS

4.1创建主机

在华为云控制台,展开左侧导航,选择“服务列表”-> “计算”-> “弹性云服务器”进入,然后点击右上角“购买弹性云服务器”,

参数如下:

①计费模式:按需计费

②区域:华北-北京四

③可用区:随机分配

④CPU架构:x86计算

⑤规格:选择“通用入门型 | t6.small.1”

⑥镜像:公共镜像 | Ubuntu | Ubuntu 16.04 server 64bit

⑦主机安全:不勾选“开通主机安全”

⑧系统盘:高IO | 40GB

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_25

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_26

基础配置完成后点击 “下一步:网络配置”,

参数如下:

①网络:点击“前往控制台创建”,跳转到虚拟私有云控制台页面:

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_27

在虚拟私有云控制台,点击“创建虚拟私有云”,区域选择“华北-北京四”,名称自定义(如:vpc-iot),默认子网名称自定义(如:subnet-iot),其他参数均可默认,点击“立即创建”完成后,即可返回网络配置页面。

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_28

返回网络配置页面,刷新后,选择刚创建的虚拟私有云VPC(如:vpc-iot)和子网(如:subnet-iot),自动分配IP地址,如下图所示:

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_29

②扩展网卡:默认配置

③安全组:默认配置

④弹性公网IP:现在购买

⑤线路:默认配置

⑥公网带宽:按带宽计费

⑦带宽大小:1Mbit/s

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKZF5bz6-1641836845301)(C:/Users/19867/AppData/Roaming/Typora/typora-user-images/image-20220111010004196.png)]

完成网络配置后单击“下一步:高级配置”,参数如下:

①云服务器名称:自定义,如:ecs-iot

②登录凭证:密码

③密码/确认密码:自定义,如:SM1$b9Zs1#

⑥其他参数:默认配置

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_30

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_31

4.2 主机授信配置

创建的弹性云服务器ECS的“弹性公网IP”信息将在后续步骤4.1添加授信主机的配置中用到。

4.2.1添加安全组入方向规则

点击新创建的弹性云服务器ECS的名称进入详情页,选择“安全组”页签,点击Sys-WebServer安全组右侧的【配置规则】进入规则配置页面。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_32

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_33


说明:SSH协议端口(22)的入方向TCP协议默认开放,无需修改。将智慧路灯应用端口(8080)的入方向放开限制,用于后续访问智慧路灯应用。出方向规则默认不做限制,无需修改。


4.2.2配置系统防火墙规则。

返回实验桌面双击“终端”打开Terminal,输入以下命令,并按照操作说明执行,登录云服务器:操作说明:

①使用弹性云服务器ECS的弹性公网IP替换命令中的[EIP]说明:云服务器的弹性公网IP地址可以通过点击“控制台”->“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制

②接受秘钥输入“yes”,回车;

③输入密码:SM1$b9Zs1#(输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。

②接受秘钥输入“yes”,回车;

③输入密码:输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。成功登录云服务器之后如下图所示:

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_34

④执行sudo ufw enable开启ufw服务,输入“y”确认。

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_35

④执行sudo ufw enable开启ufw服务,输入“y”确认。

⑤执行sudo ufw allow 22/tcp启用22端口。

⑥执行sudo ufw allow 8080/tcp启用8080端口

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_36

###5. 部署智慧路灯应用

####5.1添加授信主机

“智慧路灯”是一个Web项目,需要部署到服务器上才可以运行,本例采用部署服务器是华为云弹性云服务器。DevCloud在使用弹性云服务器之前需要先对其授信。回到软件开发平台DevCloud(打开路径见步骤1.1),点击已创建的项目,如QuickStart,如下图所示:

单击导航栏“更多 > 设置 > 通用设置”,选择左侧栏“主机组管理”,然后点击“新建主机组”,参数如下:

①主机组名:自定义,如:iot

②操作系统:Linux点击“保存”完成主机组的创建,并进入该主机组。

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_37

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_38

在创建的主机组内,点击“添加主机”,参数如下:

①主机名:自定义,可与创建的ECS名称保持一致,如:ecs-iot

②IP:创建弹性云服务器ECS的弹性公网IP(见步骤4.2)

③认证方式:密码

④用户名:root

⑤密码:填创建弹性云服务器ECS的用户密码;如:SM1$b9Zs1#

⑥ssh端口:22勾选阅读并同意声明,点击“添加”完成主机的添加。当主机连通性验证显示“验证成功”时,说明主机成功添加。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_39

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_40

5.2新建部署任务

点击导航栏“构建&发布 > 部署”进入,然后点击“新建任务”,输入任务名称(可使用默认值),单击“下一步”进入“选择部署模板”。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_41

板“SpringBoot应用部署”,单击“下一步”,进入“部署步骤”页面。

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_42

5.3配置部署步骤并执行

SpringBoot应用部署模板默认包含以下步骤:安装JDK、停止SpringBoot服务、选择部署来源、启动SpringBoot服务、URL健康测试。

#####5.3.1删除“停止SpringBoot服务”和“URL健康测试”;

#####5.3.2选中“安装JDK”

主机组:选择添加授信主机是创建的主机组(如:iot),弹框提示点击“确定”,jdk版本:openjdk-1.8.0;

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_43

5.3.3选中“选择部署来源”

参数如下:

①选择源类型:软件包;

②选择软件包:点击右侧“…”,选择构建包,路径如下图所示;

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_44

③下载到主机的部署目录:按需填写,如/usr/local

5.3.4选中“启动SpringBoot服务”

参数如下:

①服务操作类型:保持默认值

②服务对应的绝对路径:由“下载到主机的部署目录”和软件包包名组成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar

③组件监控:去掉勾选

华为云IoT体验:基于IoT平台构建智慧路灯应用_华为_45

5.3.5 切换到“参数设置”页签,逐一删除全部参数

5.3.6点击“保存并执行”

完成部署任务的配置,并执行部署任务。

页面显示“部署成功”,表示任务执行完毕。若任务执行失败,可通过页面中的原因提示及链接来排查解决。

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_46

6. 导入产品模型

6.1创建产品

在华为云控制台,展开左侧导航,选择“服务列表”-> “物联网”->“设备接入IoTDA”,如下图所示:

华为云IoT体验:基于IoT平台构建智慧路灯应用_云服务_47

5.1创建产品在华为云控制台,展开左侧导航,选择“服务列表”-> “物联网”->“设备接入IoTDA”,如下图所示:

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_48

华为云IoT体验:基于IoT平台构建智慧路灯应用_物联网_49

6.2上传模型文件

点击创建的产品进入详情,然后点击“上传模型文件”,选择SmartStreetLight.zip文件,点击“确认”完成上传。

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_50

###7. 配置智慧路灯应用(订阅推送方案)

6.1访问智慧路灯Web界面新建浏览器标签页,输入http://EIP:8080/index.html(使用步骤3.2中弹性云服务器的弹性公网IP替换地址中的“EIP”),访问智慧路灯Web页面。6.2参数设置在弹出的“参数设置”窗口,参数填写如下:

①数据来源:参数设置页面下拉框选择“订阅推送”。

②本机IP:“控制台”->“服务列表”->“计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制弹性公网IP。

华为云IoT体验:基于IoT平台构建智慧路灯应用_服务列表_51

③主题URN:“控制台”->“服务列表”->“管理与监管”->“消息通知服务SMN”进入主题列表,进行查看并复制主题URN。

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_52

④APPID:“控制台”->“服务列表”-> “物联网”->“设备接入IoTDA”,在左侧导航栏选择“资源空间”,复制获取产品所需的“APPID”

华为云IoT体验:基于IoT平台构建智慧路灯应用_iot_53

⑤账号名:华为云账号名。

⑥IAM用户名:华为云用户名。

⑦IAM用户密码:华为云密码。

⑧项目ID:控制台在右上角用户名下拉框中选择“我的凭证->API凭证”页面复制获取所属区域为“华北-北京四”的项目ID。

⑨产品ID:“控制台”->“服务列表”-> “物联网”->“设备接入IoTDA”,在左侧导航栏选择“产品”,复制获取产品所需的“产品ID”。

填写完成后点击“确定”,弹窗提示如下,表示参数设置成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FO7TyAEn-1641836845314)(https://typora-1302845125.cos.ap-beijing.myqcloud.com/typora����ͼ��/C5G[_M]HMTAIQQYV2ZR6%AM.png)]

7.3注册设备

输入设备标识(自定义,如123456789f),点击“注册设备”。


设备注册成功后是“未激活”状态,请选择“服务列表”-> “物联网”->“设备接入服务”,在左侧栏选择“设备 > 所有设备”,点击设备标识码进入,查看设备Id,或修改密钥。