
# 设备接入边缘节点（MQTT）
IoT边缘应用部署完成后，边缘节点即作为远端物联网平台在设备侧的延伸，云边协同，共同完成设备管理。边缘节点可以为近端连接的设备就近提供计算和管理服务，如低时延业务本地管理、与云端断链时的本地控制和规则执行等。设备通过接入边缘节点，最终通过边缘节点将数据上传到远端物联网平台。
#### 创建产品
对于设备通过边缘节点上报至物联网平台的数据，云端物联网平台要能够解析设备上报的数据。故需要在设备接入服务侧完成设备的产品模型，编解码插件的开发。
1. 访问[IoT边缘](https://console.huaweicloud.com/iotedge/)，进入IoT边缘控制台。
2. 选择左侧导航栏"边缘节点 \> 设备建模 "进入页面。
3. 单击右上角的"创建产品"，按照页面提示填写信息，然后单击"立即创建"。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000002008382288.png "点击放大")
   
   
   | 参数名称   | 说明                                                                                                                                  |
   |:---|:---|
   | 所属资源空间 | 所属资源空间：选择[创建边缘节点](https://support.huaweicloud.com/bestpractice-iotedge/iotedge_bestpractice_0054.html)时，绑定设备接入服务时选择的设备归属资源空间，如edge。 |
   | 产品名称   | 自定义，如iot_edge。                                                                                                                      |
   | 协议类型   | MQTT。                                                                                                                               |
   | 数据格式   | JSON。                                                                                                                               |
   | 厂商名称   | 自定义，如test。                                                                                                                          |
   | 设备类型   | 自定义，如MQTT_Device。                                                                                                                   |
      
   
   
4. 单击"产品名称"下的产品iot_edge进入产品详情页面。
5. 在"模型定义"页签下，单击"自定义模型"。 
   产品模型是用来描述设备能力的文件，通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型，即在物联网平台构建一款设备的抽象模型，使平台理解该款设备支持的属性信息。
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001264550169.png "点击放大")
   
   
6. 填写服务ID、服务类型，单击"确认"。 
   服务ID/服务类型：自定义，如sensor
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263936073.png "点击放大")
   
   
7. 展开服务列表，单击"添加属性"，分别添加温度、湿度两个属性。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001219495878.png "点击放大")
   添加"温度"属性，属性名称为"temp"，如下图所示：
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001264176077.png)
   添加"湿度"属性，属性名称为"humi"，如下图所示：
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263416033.png "点击放大")
   
   
8. 单击"添加命令"，添加一条控制命令。 
   1. 填写命令名称，自定义，如control_light ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001110524766.png "点击放大")
      
   
   2. 单击"新增下发参数"，填写参数信息，并单击"确认"。
      - 参数名称：light
      
      - 数据类型：string(字符串)
      
      - 长度：3
      
      - 枚举值：ON,OFF
      
      
      ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263415013.png)
      
   
   3. 单击"新增响应参数"，填写参数信息，并单击"确认"。
      - 参数名称：light_state
      
      - 数据类型：int(整型)
      
      - 取值范围：0-1
      
      
      ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263695189.png)
      
   
   4. 在"新增命令"窗口，单击"确认"，完成命令添加。
   
   
   
   
9. 模型定义完成，参数信息预览如下图所示。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001264175189.png "点击放大")
   
   
 
 #### 添加边缘设备
1. 访问[IoT边缘](https://www.huaweicloud.com/product/iotedge.html)，单击**"管理控制台"**进入IoT边缘控制台。
2. 选择左侧导航栏的"边缘节点 \> 节点管理"，选择您的边缘节点名称，进入节点详情页。
3. 选择左侧导航栏"边缘设备"页签，单击"添加边缘设备"，填写参数后，单击"确认"。 
   - 所属产品：已创建的产品，如iot_edge
   
   - 设备标识码：自定义，如iot_edge_test_0319
   
   - 设备名称：自定义，如iot_edge_test_0319
   
   - 模块ID：不填[添加边缘设备的什么时候填写模块ID？](https://support.huaweicloud.com/iotedge_faq/iotedge_04_0039.html)
   
   - password：自定义，如12345678
   
   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263935389.png "点击放大")
   
   
4. 添加设备成功，请保存好设备ID和密钥，用于设备接入平台认证。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001263695473.png)
   
   
5. 完成添加设备后，可以在设备列表中查看设备状态，并管理边缘设备。 
   图1边缘设备列表   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001876310461.png "点击放大")
   也可以单击"设备ID（单击进入设备详情）"跳转至"设备接入服务控制台"进行设备管理。
   边缘设备是作为子设备挂在节点设备下的。
   
   
 
#### 设备接入调测
本章节以MQTT.fx为例，介绍以MQTT原生协议接入IoT边缘节点，通过边缘节点上报设备属性至物联网平台。MQTT.fx是目前主流的MQTT客户端，可以快速验证是否可以与物联网平台服务交互发布或订阅消息。
1. 访问[这里](https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/)，填写[添加边缘设备]后生成的设备ID和设备密钥，生成连接信息（ClientId、Username、Password）。
   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001113832218.png "点击放大")
   
   
2. 打开MQTT.fx软件，单击设置图标。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001110524770.png "点击放大")
   
   
3. 参考截图中配置鉴权参数，然后单击截图中"Apply"。 
   - Broker Address：填写边缘节点服务器公网IP地址
   
   - Broker Port：填写边缘节点提供给南向MQTT(S)设备接入的端口，即7883
   
   - Client ID：设备ClientId，参考[1]获取
   
   - User Name：即设备ID，参考[1]获取
   
   - Password：加密后的设备密钥，参考[1]获取
   
   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001156844655.png "点击放大")
   在设备对接边缘节点场景中，需要在设备侧集成相应证书（[证书文件](https://ioe-installer.obs.cn-north-4.myhuaweicloud.com/plt-device-ca.pem)），用于设备校验边缘节点的身份。
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001110684664.png "点击放大")
   
   
4. 单击"Connect"，设备鉴权成功后，在IoT边缘控制台和物联网平台可以看到设备处于在线状态。如果模拟器右侧的红灯变成绿灯，说明与物联网平台的连接成功。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001113832220.png "点击放大")
   IoTEdge云服务上边缘节点显示子设备在线：
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001160352121.png "点击放大")
   物联网平台显示边缘节点、子设备在线：
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001160392123.png "点击放大")
   
   
5. 通过MQTT.fx模拟设备上报属性，并在物联网平台查看设备上报数据。 
   在Publish页签，填写设备属性上报Topic，及JSON消息体，单击"Publish"完成上报。
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001113672322.png "点击放大")
   - Topic：$oc/devices/iot_edge_test_0219/sys/properties/report 其中，iot_edge_test_0219为设备ID，请替换为实际值。
     
   
   - 消息体：
     ```
     {
         "services" : [{
                 "service_id" : "sensor",
                 "properties" : {
                     "temp" : 25,
                     "humi" : 11
                 },
                 "event_time" : "20210212T121212Z"
             }
         ]
     }
     ```
     
   
   
   在物联网平台查看设备上报数据。
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001113672324.png "点击放大")
   
   
6. 通过MQTT.fx订阅命令下发Topic，并在物联网平台下发控制命令，查看设备是否收到平台下发的命令。 
   1. 在Subscribe页签，填写命令下发Topic，并单击"Subscribe"完成订阅。 Topic：$oc/devices/iot_edge_test_0219/sys/commands/#
      其中，iot_edge_test_0219为设备ID，请替换为实际值。
      ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001160352123.png "点击放大")
      
   
   2. 在物联网平台执行命令下发。 进入设备详情页，选择"命令"页签，单击同步命令下发区域的"命令下发"，设置参数并单击"确定"完成命令下发。
      - 选择命令：sensor: control_light
      
      - light：ON
      
      
      ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001160392125.png "点击放大")
      在MQTT.fx客户端查看，平台下发命令接收成功。
      ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001113832222.png "点击放大")
      
   
   
   
   
 
