# 利用工业网关（包含RS485、AI、DO口设备）进行环境监测
#### 场景说明
微型气象是不可预测的，基本上不能通过人工手段来分析其变化，因此必须运用新技术，对气象进行实时监测，以便采取相应的措施来避免或解决事故的发生。而常规气象环境数据采集容易造成数据损失、人力成本高、数据安全性差、可追踪性差等问题。为解决上述问题，可以通过网关将设备采集的数据上报到华为云IoT平台，实现对现场设备数据的实时监控，您可通过华为云IoT平台实时查看现场温度、湿度、光照、风速等环境数据，并对数据进行转储、分析等处理，同时也能通过IoT平台对设备进行控制。本文以金鸽的R40设备为例进行演示。
#### 整体流程
整体流程如图所示：
图1整体流程图   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001113699994.png "点击放大")
#### 前提条件
硬件要求：三个输出为12V 1000mA的电源。
#### 设备简介
R40（如[图2]）负责将传感器的数据收集上来，上报到华为云IoT平台，同时负责将华为云IoT平台下发的控制信息下发给传感器。其中演示的传感器设备有如下三种：
1. 风速变速器（如[图3]）将采集到的风速通过电流信号输出给R40；
2. 气象多要素百叶箱（如[图4]）将采集到的噪声、光照、温湿度信息通过RS485口（Modbus协议）输出给R40。
3. 报警器（如[图5]）通过R40的DO口接收从华为云IoT下发给的控制信息。
图2R40介绍   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148247815.png "点击放大")
图3风速变速器   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148010065.jpg "点击放大")
图4气象多要素百叶箱   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001147930097.jpg "点击放大")
图5警报器   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001160420025.jpg "点击放大")
#### 硬件连接
1. 将风速变速器的棕色线和黑色线分别接到外部电源的正极和负极，将蓝色线和绿色线分别接入到R40的AIN1口和AGND口（见下图）。
   图6风速变速器连接R40
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001519542878.png)
   
2. 将气象多要素百叶箱的棕色线和黑色线分别接到电源的正极和负极，将黄色线和蓝色线分别接入到R40的485A口和485B口（见下图）。
   图7气象多要素百叶箱连接R40   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001160540853.png "点击放大") 
3. 将报警器的红色线和黑色线分别接到电源正极和R40的DO2口，将电源的负极接入到R40的DO1口（见下图）。
   图8报警器连接R40   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001167293523.png "点击放大") 
 
#### 控制台操作概览
在真实设备连接之前，需要在设备接入服务控制台创建产品、定义产品模型和注册设备。
- 创建产品：在物联网平台上规定好某一款产品的协议类型、数据格式、厂商名称、设备类型。此处我们需要按照R40的特征，在控制台创建R40的产品。
- 定义产品模型：产品模型是用来描述设备能力的文件，通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型，即在物联网平台构建一款设备的抽象模型，使平台理解该款设备支持的属性信息，例如风速、光照强度、温湿度、噪声等。
- 注册设备：将R40设备注册到物联网平台。
 
#### 创建产品
某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体，产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型（Profile）等资源。下面，我们按照R40的基本特征，在控制台上创建R40产品。
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"立即使用"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 选择左侧导航栏的"产品"，然后单击左侧的"创建产品"，创建一个基于MQTT协议的产品，参考下表填写参数后，单击"确定"，完成产品的创建。 
   
   |                                        **基本信息**                                         ||
   |---|---|
   | 所属资源空间 | 选择您需要归属到的资源空间                   |
   | 产品名称    | 自定义，如"R40"                      |
   | 协议类型     | 选择"MQTT"                       |
   | 数据格式   | 选择"JSON"                       |
   | 设备类型选择  | 选择"自定义类型"                     |
   | 设备类型     | EnvironmentalMonitoringDevice |
      
   
   
3. 产品创建成功后，单击"详情"按钮进入产品界面，进行后面操作。
 
#### 上传产品模型
产品模型是用来描述设备能力的文件，通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型，即在物联网平台构建一款设备的抽象模型，使平台理解该款设备的功能。我们已提供开发好的产品模型，帮助您快速体验上云流程，如果您想体验产品模型的开发流程，可参考[开发产品模型](https://support.huaweicloud.com/bestpractice-iothub/iot_bp_0007.html#ZH-CN_TOPIC_0184855964__li162991326191410)。
**操作步骤**：
1. 在产品详情"基本信息"页面，单击"上传模型文件"。
2. 在弹出的页面中，上传提供的产品模型（[本示例的产品模型](https://obs-pipeline.obs.cn-north-4.myhuaweicloud.com/sdkDeploy/ziliao/607934cdf4b59002c0cd987d.zip)），然后单击"确定"。
   图9产品-上传模型文件   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001950352382.png "点击放大") 
 
#### 注册设备
1. 在管理控制台页面，选择左侧导航栏"设备 \> 所有设备"，单击"注册设备"。
2. 根据页面提示信息填写参数，然后单击"确定"。
   
   | 参数名称                    | 说明                                |
   |:---|:---|
   | 所属资源空间               | 确保和之前创建的产品归属在同一个资源空间。           |
   | 所属产品                  | 选择之前创建的产品。                        |
   | 设备标识码                | 即nodeID，设备唯一物理标识。可自定义，由英文字母和数字组成。 |
   | 设备名称                 | 即device_name，可自定义。                |
   | 设备认证类型                  | 选择"密钥"。                         |
   | 密钥 | 设备密钥，可自定义，不填写物联网平台会自动生成。        |
      
   图10所有设备-注册设备   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001981487325.png "点击放大")
   成功注册设备后，平台会自动生成设备ID和密钥，请妥善保管好设备ID（deviceId）和密钥（deviceSecret），用于设备接入。
   图11设备-注册设备成功   
   ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001981487333.png "点击放大") 
 
#### R40配置
在R40上需要对传感器的参数进行配置：
**风速变速器相关配置：**
- R40上电后，在自己的电脑上连接King开头的wifi，连上后在浏览器中输入地址192.168.3.1进入R40的配置界面。
- 输入用户名和密码后，单击"登录"按钮。

- 单击上方菜单栏"RTU I/O"，选中"模拟量接入"，进入模拟输入配置界面。
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148065439.png "点击放大")
- 在AIN1输入一行（因为风速变速器选择的是该口）中，选择"电流4\~20mA"（风速变速器的输出为该值）。并且按照传感器推荐的将最小值设置为0，最大值设置为30，单位设置为m/s。
- 设置完毕后，单击"保存并应用"。
- 通过旋转风速变速器的扇叶，然后刷新当前的配置页，可以看到"当前值"那一栏中有数据，说明已经能采集到传感器的数据。
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001101385466.png "点击放大")
**气象多要素百叶箱相关配置：**
- R40上电后，在自己的电脑上连接King开头的wifi，连上后在浏览器中输入地址192.168.3.1进入R40的配置界面。
- 输入用户名和密码后，单击"登录"按钮。
- 单击上方菜单栏"应用"，选择"Modbus"主站，进入Modbus主站配置页面。
- 在下方的框中填写"noise"，单击"添加"按钮。添加完成后，单击"编辑"，进入传感器的配置界面。
- 在配置界面，将别名设置为"噪声监测"，从机地址设置为"2"，寄存器类型设置为"16位数据"，功能码设置为"03"，寄存器起始地址设置为"0"，数据个数设置为"1"，映射地址分配设置为"手动"，映射起始地址设置为"20004"，从机接口设置为"RS485"。 ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148345295.png "点击放大")
  
- 设置完毕后，单击"保存"。然后单击左下角的"返回至概况"。然后单击"保存并应用"。
- 单击"noise"这一行的"查询"按钮，可以看到"数据值"，如果周围噪声发生改变，可以通过刷新按钮来查看值的变化。
![](https://support.huaweicloud.com/bestpractice-iothub/public_sys-resources/note_3.0-zh-cn.png)
- 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。
- 映射地址为R40的寄存器地址，建议改为手动，同时设置映射地址。因为该地址跟物模型中的属性是对应的，属性名称需要设置成"REG"+ 映射起始地址。这里设置20004是因为物模型中已经设置了REG20004的属性名。
 
- 从噪声查看页单击"返回至概况"，在Modbus设置界面下方的空白框处填写"lightIntensity"，单击"添加"按钮。添加完成后，单击"编辑"按钮（"删除"按钮旁的那一个），进入传感器的配置界面。
- 在配置界面，将别名设置为"光照强度"，从机地址设置为"5"，寄存器类型设置为"32位数据"，功能码设置为"03"，寄存器起始地址设置为"0"，数据个数设置为"1"，映射地址分配设置为"手动"，映射起始地址设置为"20130"，从机接口设置为"RS485"。 ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001101705472.png "点击放大")
  
- 设置完毕后，单击"保存"。然后单击左下角的"返回至概况"。然后单击"保存并应用"。
- 单击"lightIntensity"这一行的"查询"按钮，可以看到"数据值"，如果周围光照强度发生改变，可以通过刷新按钮来查看值的变化。
![](https://support.huaweicloud.com/bestpractice-iothub/public_sys-resources/note_3.0-zh-cn.png)
- 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。
- 映射地址为R40的寄存器地址，建议改为手动，同时设置映射地址。因为该地址跟物模型中的属性是对应的，属性名称需要设置成"REG"+ 映射起始地址。这里设置20130是因为物模型中已经设置了REG20130的属性名。
 
- 从光照强度查看页单击"返回至概况"，在Modbus设置界面下方的空白框处填写"shidu"，单击"添加"按钮。添加完成后，单击"编辑"，进入传感器的配置界面。
- 在配置界面，将别名设置为"湿度"，从机地址设置为"1"，寄存器类型设置为"16位数据"，功能码设置为"03"，寄存器起始地址设置为"500"，数据个数设置为"1"，映射地址分配设置为"手动"，映射起始地址设置为"20015"，从机接口设置为"RS485"。 ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148185427.png "点击放大")
  
- 设置完毕后，单击"保存"。然后单击左下角的"返回至概况"。然后单击"保存并应用"。
- 单击"shidu"这一行的"查询"按钮，可以看到"数据值"，如果周围湿度发生改变，可以通过刷新按钮来查看值的变化。
![](https://support.huaweicloud.com/bestpractice-iothub/public_sys-resources/note_3.0-zh-cn.png)
- 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。
- 映射地址为R40的寄存器地址，建议改为手动，同时设置映射地址。因为该地址跟物模型中的属性是对应的，属性名称需要设置成"REG"+ 映射起始地址。这里设置20115是因为物模型中已经设置了REG20115的属性名。
 
- 从湿度强度查看页单击"返回至概况"，在Modbus设置界面下方的空白框处填写"wendu"，单击"添加"按钮。添加完成后，单击"编辑"，进入传感器的配置界面。
- 在配置界面，将别名设置为"温度"，从机地址设置为"1"，寄存器类型设置为"16位数据"，功能码设置为"03"，寄存器起始地址设置为"501"，数据个数设置为"1"，映射地址分配设置为"手动"，映射起始地址设置为"20003"，从机接口设置为"RS485"。 ![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148185429.png "点击放大")
  
- 设置完毕后，单击"保存"。然后单击左下角的"返回至概况"。然后单击"保存并应用"。
- 单击"shidu"这一行的"查询"按钮，可以看到"数据值"，如果周围温度发生改变，可以通过刷新按钮来查看值的变化。
![](https://support.huaweicloud.com/bestpractice-iothub/public_sys-resources/note_3.0-zh-cn.png)
- 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。
- 映射地址为R40的寄存器地址，建议改为手动，同时设置映射地址。因为该地址跟物模型中的属性是对应的，属性名称需要设置成"REG"+ 映射起始地址。这里设置20003是因为物模型中已经设置了REG20003的属性名。
 
**R40上报到平台的配置：**
- 在上方的菜单栏中选择"云平台"，选择"华为云"。"认证方式"选择"设备密钥"，设备ID和密钥在iot平台注册所得，服务ID填写"basicData"，发布周期填写60。

- 配置完后，单击"保存并应用"。设置完毕后，R40会自动连上华为云iot平台，并且每隔60s报一次数据。
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001148305377.png "点击放大")
#### 设备上线及数据上报
在华为云IoT平台的"设备"\>"所有设备"一栏里，可以看到注册的设备已经上线了。
图12设备列表-设备在线   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001950367902.png "点击放大")
在上述页面单击该设备右侧的"详情"按钮，可以看到上报的数据。
图13查看上报数据-工业网关   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001950370342.png "点击放大")
#### 属性配置下发
单击上图的"设备影子"\>"属性配置"，设置DO1为1后，单击"确定"，即可听到报警器发出报警声，代表属性设置成功。
图14查看上报数据-工业网关   
![](https://support.huaweicloud.com/bestpractice-iothub/figure/zh-cn_image_0000001950370342.png "点击放大")
![](https://support.huaweicloud.com/bestpractice-iothub/public_sys-resources/note_3.0-zh-cn.png)
其中的服务名称basicData是在产品模型中自定义的，可以修改为自定义的内容，同时上报数据时也需要同步修改。
