云服务器内容精选

  • SDK概述 物联网平台 提供应用侧SDK和设备侧SDK,方便设备通过集成SDK接入到平台,应用通过调用物联网平台的API,实现安全接入、设备管理、数据采集、命令下发等业务场景。 资源包名 描述 下载路径 应用侧开发 Java SDK Java SDK提供Java方法调用应用侧API与平台通信。使用指南可以参考Java SDK使用指南。 Java SDK 应用侧开发 .NET SDK .NET SDK提供.NET方法调用应用侧API与平台通信。使用指南可以参考.NET SDK使用指南。 .NET SDK 应用侧开发 Python SDK Python SDK提供Python方法调用应用侧API与平台通信。使用指南可以参考Python SDK使用指南。 Python SDK 应用侧开发 Go SDK Go SDK提供Go方法调用应用侧API与平台通信。使用指南可以参考Go SDK使用指南。 Go SDK 应用侧开发 Node.js SDK Node.js SDK提供Node.js方法调用应用侧API与平台通信。使用指南可以参考Node.js SDK使用指南。 Node.js SDK 应用侧开发 PHP SDK PHP SDK提供PHP方法调用应用侧API与平台通信。使用指南可以参考PHP SDK使用指南。 PHP SDK 设备侧IoT Device SDK(Java) 设备可以通过集成IoT Device SDK(Java)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK使用指南(Java)。 IoT Device SDK(Java) 设备侧IoT Device SDK(C) 设备可以通过集成IoT Device SDK(C)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(C)使用指南。 IoT Device SDK(C) 设备侧IoT Device SDK(C#) 设备可以通过集成IoT Device SDK(C#)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(C#)使用指南。 IoT Device SDK(C#) 设备侧IoT Device SDK(Android) 设备可以通过集成IoT Device SDK(Android)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(Android)使用指南。 IoT Device SDK(Android) 设备侧IoT Device SDK(Go社区版) 设备可以通过集成IoT Device SDK(Go社区版)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(Go社区版)使用指南。 IoT Device SDK(Go社区版) 设备侧IoT Device SDK Tiny(C) 设备可以通过集成IoT Device SDK Tiny (C)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device Tiny SDK(C)使用指南。 IoT Device SDK Tiny (C) 设备侧IoT Device SDK (ArkTS) 设备可以通过集成IoT Device SDK (ArkTS)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(ArkTS)使用指南 IoT Device SDK(ArkTS)
  • 创建产品 为了方便体验,我们提供了一个烟感的产品模型,烟感会上报烟雾值、温度、湿度、烟雾报警、还支持响铃报警命令。以烟感例,体验消息上报、属性上报等功能。 访问 设备接入服务 ,单击“管理控制台”进入设备接入控制台,选择您的实例,单击实例卡片进入。查看MQ TTS 设备接入 域名 ,保存该地址。 单击左侧导航栏“产品”,单击页面左侧的“创建产品”。 根据页面提示填写参数,然后单击“确定”完成产品的创建。 基本信息 所属资源空间 平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。 产品名称 自定义。支持字母、数字、下划线(_)、连字符(-)的字符组合。 协议类型 选择“MQTT”。 数据格式 选择“JSON”。 设备类型选择 选择”自定义类型” 设备类型 填写“smokeDetector” 高级配置 产品ID 不填写 产品描述 请根据实际情况填写。
  • 概述 在物联网解决方案中,针对庞大的数据进行自动学习时,需要对海量数据进行标注、训练,按照传统的方式进行标注、训练不仅耗时耗力,而且对资源消耗也非常巨大。华为云物联网平台可以通过规则引擎,将获取的海量数据流转到华为云其他云服务,从而实现将海量数据通过 函数工作流 (FunctionGraph)进行预处理,再将清洗后的数据流入 AI开发平台 (ModelArts)进行AI分析,并将分析结果统一转发至HTTP服务器中。
  • 模拟数据上报及结果验证 在设备接入控制台“设备-所有设备-设备列表”中,单击创建的设备标识码进入设备详情,在“消息跟踪”页签中,单击“启动消息跟踪”,开启消息跟踪。 图24 消息跟踪-启动消息跟踪 使用MQTT模拟器连接到平台(模拟器使用请参考:使用MQTT.fx进行消息收发)。 使用模拟器进行消息上报,详情请参考:设备消息上报。 Topic: $oc/devices/{device_id}/sys/messages/up 数据格式: { "age": "34", "profession": "blue-collar", "maritalStatus": "single", "educationalStatus": "tertiary", "realEstateSituation": "no", "loanStatus": "tertiary" } 在设备详情中,查看消息跟踪,是否收到消息上报,并转发至FunctionGraph。 图25 消息跟踪-消息上报流转至FunctionGraph 查看HTTP服务器是否收到预测结果。 图26 查看消息
  • 前提条件 已注册华为官方账号。未注册可参考注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通设备接入服务。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通FunctionGraph服务。未开通则访问FunctionGraph服务,单击“立即使用”后开通该服务。 已开通ModelArts服务。未开通则访问AI开发平台,单击“控制台”后进入该服务。 自建一个HTTP服务器,并提供POST接口用来接收推送的数据(本示例默认用户已经搭建好相应的服务器与接口,不再展示如何搭建HTTP服务器指导)。
  • 示例场景 在本示例中,我们实现以下场景: 设备上报银行客户特征信息,物联网平台将数据转发至FunctionGraph,由FunctionGraph转发至ModelArts进行AI分析,最终将分析的结果转发至HTTP服务器中。 操作步骤如下: 创建并发布ModelArts模型。 配置FunctionGraph函数。 创建MQTT协议产品,并创建设备。 数据转发规则配置,将数据流转至FunctionGraph。 模拟数据上报及结果验证,查看HTTP服务器是否收到AI分析后的消息。 图1 场景说明
  • 设备免注册接入 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 使用IDEA/Eclipse打开SDK代码工程,修改iot-device-demo目录下的DEMO示例“BootstrapSelfRegSample”中的参数。 ScopeId从设备发放的注册组页面中获取; deviceId由客户自主规划且未在平台注册(需注意平台要求deviceId全局唯一); 设备证书指定为“控制台开发”中生成的设备证书; bootstrapUri为上述终端节点。 图11 修改demo示例 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行正常,在对应的设备接入实例可以看到该设备,且该设备已在线。 图12 日志信息 收到设备发放下发的设备接入地址后,需要关闭设备侧的设备发放的连接,用的新的URL地址与设备接入通信,进行相关业务。 图13 关闭连接示例代码 说明: DeviceId即设备ID,用于唯一标识一个设备。设备需使用未注册的DeviceId进行免注册接入,不同设备的DeviceId不同。 在客户实际业务场景中,推荐一个设备使用一个设备证书,不建议多个设备共用一个设备证书。
  • 添加证书策略 添加证书策略,发放CA证书到指定的IoTDA,并且由此CA签发的设备证书都会发放到指定的IoTDA。 图8 添加证书策略 进入“策略”界面,单击展开“证书策略”,单击“添加实例”。 图9 添加证书策略详情 按照下方参数说明填写关键参数信息后,单击“确定”。 表4 参数信息 参数名称 说明 示例 证书名称 即所要根据证书属性将设备发放到指定的目标区域,选择对应的证书。 将需要通过证书“certificates”发放的设备发放至华北-北京四的物联网平台。 需通过证书“certificates”发放的设备:WaterMeter-Beijing0001、WaterMeter-Beijing0002 证书名称:certificates 发放区域:华北-北京四 发放应用:beijing-app1 发放区域 发放到指定区域后,设备将接入对应区域的设备接入服务。 所选区域未开通设备接入服务时,如果确定添加实例,系统将自动为您开通设备接入服务。不同区域设备接入服务价格不同,收费详情请参考价格说明。 发放应用 选择对应设备接入服务区域已创建的应用。在物联网平台中,设备由应用统一管理。 如果对应设备接入服务区域未创建应用,需要前往对应服务创建应用。
  • 验证CA证书 对于已上传的CA证书,平台要求用户完成“验证CA证书”过程,以验证用户具备该CA证书的签发能力。 操作步骤 登录设备发放控制台。 在设备发放控制台,左侧导航窗格中,选择“证书”,单击“证书列表”条目的操作栏中的“验证证书”。 图5 上传CA证书完成页 在上传验证证书页面,单击“生成验证码”,单击“复制图标”复制此CA证书的随机验证码。 图6 复制验证码 CA证书验证码有效期为一天,请及时使用验证码生成验证证书并完成验证。 验证码的生成为替换机制,即对于一个CA证书,即使此前的验证码未过期,也将被新生成的验证码替换。 使用OpenSSL工具为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 利用此验证码生成证书签名请求文件 CS R。 openssl req -new -key verificationCert.key -out verificationCert.csr CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写此验证码。 使用CA证书、CA证书私钥和上一步骤中生成的CSR文件创建验证证书(verificationCert.crt)。 openssl x509 -req -in verificationCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 36500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。 图7 上传验证证书
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表6所示。 表6 参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / 使用CA证书、CA证书私钥和CSR文件创建设备证书(deviceCert.crt)。 openssl x509 -req -in deviceCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out deviceCert.crt -days 36500 -sha256 生成设备证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件,且需要完成“上传并验证CA证书”。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。
  • 创建注册组 MQTT证书接入的设备,可以在设备发放创建一个注册组,绑定对应的CA证书和自定义策略,可以实现批量设备的自注册,实现设备一键上电即可上云的动作,可在注册组详情中查看该注册组下所有的设备。 进入“设备-注册组”界面,单击右上角“新增注册组”。 图10 新增注册组 按照下方参数说明填写关键参数信息后,完成创建。 表5 参数信息 参数名称 说明 注册组名称 注册组的唯一标识。 选择证书 用于和注册组绑定,同一个证书只能同时绑定一个注册组,不能同时绑定多个注册组。 发放策略 当前只支持“自定义策略”,同时需要选择所要运行的函数。
  • 制作CA证书 本文以Windows环境为例,介绍通过Openssl工具制作CA证书和验证证书的方法。 以下“生成密钥对(rootCA.key)”和“生成CA证书(rootCA.crt)”为操作过程中需要使用到的两个文件。 具体步骤: 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表2 参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / openssl req -new -key rootCA.key -out rootCA.csr 生成CA证书(rootCA.crt): openssl x509 -req -days 50000 -in rootCA.csr -signkey rootCA.key -out rootCA.crt “-days”后的参数值指定了该证书的有效天数,此处示例为50000天,您可根据实际业务场景和需要进行调整。
  • 上传CA证书 具体操作步骤 登录设备发放控制台。 在设备发放控制台,左侧导航窗格中,选择“证书”,单击右上方的“上传CA证书”。 图3 上传CA证书 在“上传CA证书”页面,填写“证书名称”,单击“添加文件”,上传此前“制作CA证书”步骤中生成的“CA证书(rootCA.crt文件)”,单击“确定”。 图4 上传CA证书详情页 上传的CA证书初始状态为“未验证”,需要完成“验证CA证书”过程,方可正常使用该CA证书。 表3 证书状态表 CA证书状态 说明 已验证 可正常使用。 未验证 不可正常使用,待验证通过后,方可正常使用。 已过期 CA证书已过期,需更新,但不影响平台使用该CA证书验证对应的设备证书。 即将过期 CA证书30天内即将过期,需及时更新。
  • 场景说明 平台基于客户业务安全考虑,只有将设备的基本信息(例如设备ID、鉴权信息)注册到平台后,设备才能使用成功注册后的设备ID和鉴权信息接入物联网平台。当用户注册的设备不断增多时,如何安全且高效地注册设备变得尤为关键。 一种方案是,使用批量注册模板或者循环调用平台应用侧注册设备的API,实现高效地批量注册设备。此方案能够满足客户对批量注册设备的大部分场景需求,但要求客户业务应用侧和客户产线侧相互配合,客户应用侧对设备ID提前进行规划,应用侧完成批量注册后,客户业务产线侧需将应用侧获取到的设备ID逐一烧录到各个设备比较麻烦。 另一种更加高效的方案是,使用设备发放的注册组功能实现设备免注册安全极简地接入物联网平台。 本文基于设备发放注册组功能,使用证书策略,带您快速体验设备免注册安全极简接入物联网平台。 表1 方案对比 设备注册方案 基于单个注册 批量注册 免注册安全极简接入 适用场景 设备数量不多; 对设备身份标识和认证信息可提前规划; 产线侧与应用侧可紧密配合。 设备数量多; 对设备身份标识和认证信息可提前规划。 设备数量较多; 设备能力强; 对设备注册的灵活性要求高。 过程 应用侧通过多次调用单个注册API将设备信息(包括但不限于身份标识和认证信息)逐一注册到平台; 产线侧与应用侧密切配合,将设备身份标识和与之对应的认证信息逐个写入设备。 下载并填写批量注册模板文件,定义设备信息(包括但不限于身份标识和认证信息); 将填写完成的批量注册模板文件上传至平台,完成批量注册过程; 产线侧将设备身份标识和与之对应的认证信息逐个写入设备。 基于设备发放的注册组和发放策略能力; 具体过程在本文后续章节展开。 特点 多次调用API; 整体流程简单。 将单个注册过程模板化。 无需对设备身份标识和认证信息提前规划; 应用侧无需逐一注册设备信息; 降低产线管理和维护成本。
  • R40配置 在R40上需要对传感器的参数进行配置: 风速变速器相关配置: R40上电后,在自己的电脑上连接King开头的wifi,连上后在浏览器中输入地址192.168.3.1进入R40的配置界面。 输入用户名(默认为admin)和密码(默认无密码)后,单击“登录”按钮。 单击上方菜单栏“RTU I/O”,选中“模拟量接入”,进入模拟输入配置界面。 在AIN1输入一行(因为风速变速器选择的是该口)中,选择“电流4~20mA”(风速变速器的输出为该值)。并且按照传感器推荐的将最小值设置为0,最大值设置为30,单位设置为m/s。 设置完毕后,单击“保存并应用”。 通过旋转风速变速器的扇叶,然后刷新当前的配置页,可以看到“当前值”那一栏中有数据,说明已经能采集到传感器的数据。 气象多要素百叶箱相关配置: R40上电后,在自己的电脑上连接King开头的wifi,连上后在浏览器中输入地址192.168.3.1进入R40的配置界面。 输入用户名(默认为admin)和密码(默认无密码)后,单击“登录”按钮。 单击上方菜单栏“应用”,选择“Modbus”主站,进入Modbus主站配置页面。 在下方的框中填写“noise”,单击“添加”按钮。添加完成后,单击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。 在配置界面,将别名设置为“噪声监测”,从机地址设置为“2”,寄存器类型设置为“16位数据”,功能码设置为“03”,寄存器起始地址设置为“0”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20004”,从机接口设置为“RS485”。 设置完毕后,单击“保存”。然后单击左下角的“返回至概况”。然后单击“保存并应用”。 单击“noise”这一行的“查询”按钮,可以看到“数据值”,如果周围噪声发生改变,可以通过刷新按钮来查看值的变化。 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。 映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20004是因为物模型中已经设置了REG20004的属性名。 从噪声查看页单击“返回至概况”,在Modbus设置界面下方的空白框处填写“lightIntensity”,单击“添加”按钮。添加完成后,单击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。 在配置界面,将别名设置为“光照强度”,从机地址设置为“5”,寄存器类型设置为“32位数据”,功能码设置为“03”,寄存器起始地址设置为“0”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20130”,从机接口设置为“RS485”。 设置完毕后,单击“保存”。然后单击左下角的“返回至概况”。然后单击“保存并应用”。 单击“lightIntensity”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。 映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20130是因为物模型中已经设置了REG20130的属性名。 从光照强度查看页单击“返回至概况”,在Modbus设置界面下方的空白框处填写“shidu”,单击“添加”按钮。添加完成后,单击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。 在配置界面,将别名设置为“湿度”,从机地址设置为“1”,寄存器类型设置为“16位数据”,功能码设置为“03”,寄存器起始地址设置为“500”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20015”,从机接口设置为“RS485”。 设置完毕后,单击“保存”。然后单击左下角的“返回至概况”。然后单击“保存并应用”。 单击“shidu”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。 映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20115是因为物模型中已经设置了REG20115的属性名。 从湿度强度查看页单击“返回至概况”,在Modbus设置界面下方的空白框处填写“wendu”,单击“添加”按钮。添加完成后,单击“编辑”按钮(“删除”按钮旁的那一个),进入传感器的配置界面。 在配置界面,将别名设置为“温度”,从机地址设置为“1”,寄存器类型设置为“16位数据”,功能码设置为“03”,寄存器起始地址设置为“501”,数据个数设置为“1”,映射地址分配设置为“手动”,映射起始地址设置为“20003”,从机接口设置为“RS485”。 设置完毕后,单击“保存”。然后单击左下角的“返回至概况”。然后单击“保存并应用”。 单击“shidu”这一行的“查询”按钮,可以看到“数据值”,如果周围光照强度发生改变,可以通过刷新按钮来查看值的变化。 从机地址、寄存器类型、功能码以及寄存器起始地址可以从气象多要素百叶箱的配置文件中获取到。 映射地址为R40的寄存器地址,建议改为手动,同时设置映射地址。因为该地址跟物模型中的属性是对应的,属性名称需要设置成“REG”+ 映射起始地址。这里设置20003是因为物模型中已经设置了REG20003的属性名。 R40上报到平台的配置: 在上方的菜单栏中选择“云平台”,选择“华为云”。“认证方式”选择“设备密钥”,设备ID和密钥在iot平台注册所得,服务ID填写“basicData”,发布周期填写60。 配置完后,单击“保存并应用”。设置完毕后,R40会自动连上华为云iot平台,并且每隔60s报一次数据。