前言

基于IOT平台构建智慧路灯应用,用到了一下云产品:弹性服务器ECS,虚拟私有云VPC,弹性公网IP,项目管理Project,部署CloudDeploy,代码托管,编译构建,消息通知服务SMN,设备接入IOTDA.

通过这个智慧路灯应用的构建,最重要的是掌握设备上报数据到物联网平台的原理和方法,这里主要用的MQTT协议通信。不了解MQTT的同学,可以去补一下。

1.资源下载

在华为云实验环境下,双击Xfce,打开Terminal终端。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网

下载“HubSimubator.jar”

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

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_02

下载“SmartSreetLight.zip”

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

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_03

这两个文件后面会用到,其中SmartStreeLight.zip是一个模型文件。

2.构建智慧路灯应用

做项目的时候,我们都会有自己的项目管理工具,这里使用华为云的项目管理ProjectMan。

2.1 构建项目

打开​​项目管理ProjectMan_云端异地协同办公工具_敏捷迭代开发_Scrum_华为云​

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_04

经过一系列免费的买买买,最后进入下面的页面

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_05

新建项目

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_06

点击新建项目后,获取到下面的页面

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_07

点击空白项目中的Scrum,填写项目

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_08

到这里项目就创建完成。

2.2 创建代码仓库

同样的项目创建好之后,我们写代码需要放到代码管理的工具,这是使用代码托管功能,创建代码仓库。

选择代码中的代码托管

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_09

按模板创建

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_10

这里直接选择华北-北京四

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_11

选择出现的模板

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_12

填写仓库基本信息

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_13

到这里就完成了代码仓库的创建。

2.3 构建并归档软件包

选择构建&发布中的编译构建

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_14

新建任务

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_15

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_16

新建编译构建任务

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_17

使用默认参数,然后点击新建并执行

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_18

当出现下图的时候说明构建任务执行成功。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_19

验证执行结果:点击发布

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_20

说明我们的构建任务执行成功。

3.创建主题并订阅SMN

什么是消息通知服务SMN?

消息通知服务(Simple Message Notification)可以依据华为云用户的需求主动推送通知消息,最终用户可以通过HTTP、HTTPS、应用等方式接收通知信息。华为云用户也可以在应用之间通过消息通知服务实现应用的功能集成,降低系统的复杂性。

下面我们进行SMN订阅。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_21

主题管理->主题-创建主题

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_22

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_23

3.2 订阅SMN

点击添加订阅

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_24

采用短信订阅,在终端填上自己的手机号码

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_25

然后博主收到了短信

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_26

4.创建弹性云服务器ECS

什么是ECS?

弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。

想要学习更多关于ECS的可以看这里​​成长地图_弹性云服务器 ECS_华为云​​。

4.1 创建主机

“服务列表”-> “计算”-> “弹性云服务器”,

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_27

购买弹性云服务器

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_28

进入 购买界面

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_29

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_30

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_31

完成上述操作后,点击下一步,网络配置

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_32

点击前往控制台创建

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_33

点击创建虚拟私有云

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_34

参数都可以用默认,点击立即创建

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_35

然后返回网络配置页面

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_36

选择下一步:高级配置

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_37

配置参数

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_38

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_39

点击立即购买

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_40

返回云服务器,查看当前状态,出现运行中,说明已经创建完成。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_41

点击ecs-ed12->安全组->配置规则

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_42

点击入方向规则->添加规则

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_43

填写协议端口

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_44

5.导入产品模型

在物联网模块设备接入IOTA创建产品。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_45

然后上传模型文件

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_46

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_47

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_48

6.配置智慧路灯应用

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_49

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_50

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_51

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_52

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_53

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_54

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_55

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_56

注册成功后,我们就可以用过后面的MQTT来进行设备饿命令收发了。

7.智慧灯的验证

打开模拟器。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_57

在设备接入服务中查询平台接入的地址,这个MQTT中需要用到。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_58

我们编辑一个设备标识号,并且注册它。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_59

连接MQTT:填写IP地址,设备号,设备密匙。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_60

填写好上面信息后,点解建立连接,可以看到右面日志打印了MQTT服务连接成功。然后我们在设备连接查看设备,显示在线。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_61

接下来我们发送一条关灯的MQTT消息,Topic如图。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_62

然后考web页面的灯已经关闭,并且亮度值显示为200Lux.

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_云服务_63

订阅如下图命令的主题。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_64

因为上面我们硬件订阅了Topic,所以在web页面操作开关选择为关(当然状态为开),然后在模拟器可看接收到了一条开灯消息。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_65

然后模拟器给Topic下发送开关消息

Topic:

$oc/devices/61c2ed35078a93029b832a83_123456789f/sys/properties/report

开灯消息

{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}

此时web界面变为开灯,环境亮度为110LUX.

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_66

测试一下断开连接。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_网络_67

查看web页面设备状态,变为离线。

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_68

调光模式信息测试

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_69

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_华为_70

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_71

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_物联网_72

【物联网】基于华为云IOTDA轻松实现智慧路灯应用_消息通知_73

总结

整个智能灯应用的构建,在IOT平台上,项目快速部署。物联网的设备端开发和平台端开发,在华为云IOT平台下,变的非常简单。