华为云用户手册

  • 连接鉴权 参考连接鉴权接口文档,使用MQTT.fx工具激活在 物联网平台 上注册的设备。 下载MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载MQTT.fx),安装MQTT.fx工具。 安装最新版MQTT.fx工具,可单击此处下载。 MQTT.fx 1.7.0及旧版本对带有$的主题(Topic)处理存在问题,请使用最新版本进行测试。 访问这里,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成连接信息(ClientId、Username、Password)。 DeviceSecret在此场景下可随意填写,如12345678。 图15 获取ClientId 参数 必选/可选 类型 参数描述 ClientId 必选 String(256) 一机一密的设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳,通过下划线“_”分隔。 设备ID:指设备在平台成功注册后生成的唯一设备标识,通常由设备的产品ID和设备的NodeId通过分隔符“_”拼装而来。 设备身份标识类型:固定值为0,表示设备ID。 密码签名类型:长度1字节,当前支持2种类型: “0”代表HMA CS HA256不校验时间戳。 “1”代表HMACSHA256校验时间戳。 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。 Username 必选 String(256) 设备ID。 设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。 使用生成工具生成的clientId格式,默认不校验时间戳:设备ID_0_0_时间戳。 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。 connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。 打开MQTT.fx软件,单击“设置”图标。 图16 设置 填写“ Connection Profile” 相关信息。 图17 “General ”可以使用工具默认信息 参数名称 说明 Broker Address 填写从 设备接入服务 控制台获取的设备对接地址,此地址为 域名 信息。不能通过域名接入的设备,填写IP地址,详细请参考2中获取的。 Broker Port 为8883。 Cliend ID 设备cliendID,请参考2中获取。 单击“User Credentials”填写“User Name”。 图18 填写设备ID 参数名称 说明 User Name 即设备ID,请参考2中获取。 Password 使用X.509证书认证时不需要填写。 单击“SSL/TLS”配置鉴权参数,然后单击“Apply”。选择开启 “SSL/TLS”,勾选“ Self signed certificates”,配置相关证书内容。 图19 填写“SSL/TLS”相关参数 CA File为对应的CA证书。下载并获取证书(加载pem格式的证书),获取证书请根据需要在资源获取里下载。 Client Certificate File为设备的设备证书(deviceCert.pem)。 Client Key File为设备的私钥(deviceCert.key)。 单击“Connect”,设备鉴权成功后,在物联网平台可以看到设备处于在线状态。 图20 设备列表-设备在线
  • 制作设备CA调测证书 本文以Windows环境为例,介绍通过Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书。 在浏览器中访问这里,下载并进行安装OpenSSL工具。 以管理员身份运行cmd命令行窗口。 执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。 执行以下命令生成密钥对。 openssl genrsa -out rootCA.key 2048 执行以下命令,使用密钥对中的私有密钥生成 CA 证书。 openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem 系统提示您输入如下信息,所有参数可以自定义。 Country Name (2 letter code) [AU]:国家,如CN。 State or Province Name (full name) []: 省份,如GD。 Locality Name (for example, city) []:城市,如SZ。 Organization Name (for example, company) []:组织,如Huawei。 Organizational Unit Name (for example, section) []:组织单位,如IoT。 Common Name (e.g. server FQDN or YOUR name) []: 名称,如zhangsan。 Email Address []:邮箱地址,如1234567@163.com。 在openssl安装目录的bin文件夹下,获取生成的CA证书(rootCA.pem)。
  • 创建产品 登录管理控制台,选择您的实例,单击实例卡片进入。单击左侧导航栏“产品”,单击页面左侧的“创建产品”。 图2 产品-创建产品 根据页面提示填写参数,然后单击“确定”。 基本信息 所属资源空间 平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。 产品名称 自定义。支持字母、数字、下划线(_)、连字符(-)的字符组合。 协议类型 选择MQTT。 数据格式 选择JSON。 所属行业 请根据实际情况选择。 设备类型 请根据实际情况选择。 高级配置 产品ID 定制ProductID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。 图3 创建产品-MQTT
  • 开发产品模型 找到新增的产品,单击“产品”进入产品界面。 在产品详情“基本信息”页面,单击“自定义模型”,配置产品的服务。 新增服务类型“Connectivity”。 在“添加服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:Connectivity “服务类型”:建议和服务ID保持一致 “服务描述”:Connectivity 图4 添加服务-Connectivity 在“Connectivity”的下拉菜单下单击“添加属性”,填写相关信息后,单击“确定”。 “属性名称”:dailyActivityTime “数据类型”:int(整型) “访问权限”:可读 “取值范围”:0~65535 “步长”:1 “单位”:s 图5 新增属性-dailyActivityTime 新增服务类型“Battery”。 在“基本信息”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 “服务ID”:Battery “服务类型”:建议和服务ID保持一致 “服务描述”:Battery 图6 添加服务-Battery 在“Battery”的下拉菜单下单击“添加属性”,填写相关信息后,单击“确定”。 “属性名称”:batteryLevel “数据类型”:int(整型) “访问权限”:可读 “取值范围”:0-100 “步长”:1 “单位”:% 图7 新增属性-batteryLevel(Battery)
  • 获取设备接入信息 在设备接入服务控制台获取设备接入平台所需的信息。 访问设备接入服务,单击管理控制台进入控制台。 单击管理控制台进入控制台,单击左侧导航栏的“总览”,单击“实例基本信息 - 接入信息”查看设备接入信息,记录域名和端口。 图1 总览-获取接入信息 针对不支持用域名接入的设备,通过在cmd命令框中执行“ping 域名”获取IP地址,用IP地址接入平台。由于IP地址不固定,您需要将IP地址做成可配置项。
  • 控制台操作概览 在完成实体设备硬件连接和代码编译烧录之后,我们需要在设备接入服务控制台创建产品、定义产品模型、开发编解码插件和注册设备。 创建产品:在物联网平台上规定好某一款产品的协议类型、数据格式、厂商名称、设备类型。此处我们需要按照智慧路灯的特征,在控制台创建智慧路灯的产品。 定义产品模型:产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息。此处,我们需要在控制台上,定义开关灯控制、光照强度、信号质量等。 编解插件开发:编解码插件是供物联网平台调用,完成二进制格式和JSON格式相互转换的。它将设备上报的二进制数据解码为JSON格式供应用服务器“阅读”,将应用服务器下行的JSON格式命令编码为二进制格式数据供终端设备(UE)“理解执行”。智慧路灯的数据格式是二进制,因此我们需要开发编解码插件,让物联网能够理解智慧路灯上报的数据,智慧路灯也能理解物联网平台下发的命令。 注册设备:将小熊派智慧路灯注册到物联网平台。
  • 注册设备 本文介绍集成NB模组设备的注册方法,将小熊派智慧路灯在物联网平台注册。 在产品详情页面,选择“在线调试”,单击“新增测试设备”,此处新增的是非安全的NB-IoT设备。 在新增测试设备页面,选择“真实设备”,完成设备参数的填写后,单击“确定”。 图14 在线调试-新增测试设备 设备名称:自定义。 设备标识码:设备的IMEI号,用于设备在接入物联网平台时携带该标识信息完成接入鉴权,可在NB模组上查看。您也可以将拨测开关拨到AT-PC模式,选择STM的端口,波特率设置为9600,输入指令“AT+CGSN=1”获取IMEI号。 注:获取IMEI注册完设备后,需要将开发板的拨测开关拨到“AT-MCU”模式,因为开发板在MCU模式下才会通过NB卡连接网络。 设备注册方式:不加密。 设备创建成功,可在页面看到创建的设备。
  • 创建产品 某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Product Model)、编解码插件等资源。下面,我们按照小熊派智慧路灯的基本特征,在控制台上创建智慧路灯产品。 登录管理控制台,选择您的实例,单击实例卡片进入。单击左侧导航栏“产品”,单击页面左侧的“创建产品”。 图10 产品-创建产品 创建一个协议类型为LwM2M/CoAP协议、设备类型为StreetLamp的产品,参考页面提示填写参数后,单击“确定”。 图11 创建产品-CoAP
  • 更多参考 开发产品模型 在产品详情“基本信息”页面,单击“自定义模型”,配置产品的服务。 产品模型设计思路: 表1 设备服务列表 服务类型(ServiceID) 服务描述 Button 实时按键检测 LED LED灯控制 Sensor 实时检测光照强度 Connectivity 实时检测信号质量 服务能力如下表所示。 表2 Button 能力描述 属性名称 数据类型 数据范围 属性列表 toggle int 0 ~ 65535 表3 LED命令列表 能力描述 命令名称 命令字段 字段名称 类型 数据长度 枚举 命令列表 Set_LED 下发命令 LED string 3 ON、OFF 响应命令 Light_state string 3 ON、OFF 表4 Sensor 能力描述 属性名称 数据类型 数据范围 属性列表 luminance int 0 ~ 65535 表5 Connectivity 能力描述 属性名称 数据类型 数据范围 属性列表 SignalPower int -140 ~ -44 ECL int 0 ~ 2 SNR int -20 ~ 30 CellID int 0 ~ 65535
  • 编译并烧录代码 由于提供的demo样例中已配置好和华为云物联网平台的对接信息,您可以直接编译(代码不用做任何修改),并烧录到小熊派开发板MCU,节省开发时间。 单击VSCode底部工具栏的“Build”,等待系统编译完成。编译成功后,界面显示“编译成功”。 使用USB数据线,将小熊派开发与电脑连接,开发板右上角的拨测开关拨到右侧“AT-MCU模式”。 单击VSCode底部工具栏的“Download”,等待系统烧录完成。烧录成功后,界面显示“烧录成功”。 如果显示烧录失败,可能是开发板没有驱动导致与电脑无法串口通信,请参考2检查ST-Link驱动是否安装成功,如果驱动未安装,则参考这里下载并安装ST-Link驱动。 (可选)安装ST-Link驱动。 访问ST官网,下载ST-Link驱动,双击stlink_winusb_install.bat文件进行自动安装。(本文以Windows10-64bit ST-Link 2.0.1为例)。 注:您也可以使用适配您系统版本的exe文件进行安装。 打开PC设备管理器可查看对应的驱动是否安装成功。若下图所示,表明驱动安装成功。
  • 上传产品模型 产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备的功能。我们已提供开发好的产品模型,帮助您快速体验上云流程,如果您想体验产品模型的开发流程,可参考开发产品模型。 操作步骤: 找到新增的产品,单击产品进入产品界面。 在产品详情“基本信息”页面,单击“上传模型文件”。 图12 上传产品模型-CoAP 在弹出的页面中,上传提供的产品模型(本示例的产品模型),然后单击“确定”。 图13 上传模型文件-CoAP
  • 小熊派开发板简介 开发板在物联网系统架构中属于感知设备,该类设备通常由传感器、通信模组、芯片以及操作系统组成。为增加开发板的可扩展性,小熊派开发板没有采用传统的板载设计,而是使用了可更换传感器扩展板以及可更换通信模组扩展板设计,通信模组是数据传输的出入口,常用的通信模组包括NB-IoT,Wifi以及4G等,芯片是设备的主控设备,该开发板内置了一个低功耗的STM32L431单片机作为主控芯片,即MCU。操作系统使用的是华为的LiteOS操作系统,其提供了丰富的端云互通组件。 为了便于开发调试,如图1所示,该开发板板载了2.1版本的ST-Link,它具有在线调试烧录,拖拽下载以及虚拟串口等功能。开发板中间板载一块分辨率为240 * 240的LCD屏幕,其主要用于显示传感器数据以及调试日志。LCD屏幕下方是主控芯片。 开发板右上角具有一个拨码开关,将其拨至左侧AT-PC模式,通过电脑端的串口助手,发送AT指令调试通信模组。右侧AT-MCU模式,通过MCU发送AT指令与通信模组进行交互,将采集到的传感器数据通过通信模组发送到云端。 图1 小熊派开发板
  • 场景说明 智慧路灯是城市智能化道路上重要一环,智慧路灯的实施具有节约公共照明能耗、减少因照明引起的交通事故等多种社会意义。路灯也是大家在日常生活中可以强烈感知到的公共设施,更易理解其智能化的场景。 在该文档中,我们基于华为一站式开发工具平台(VS code工具IoTlink插件),从设备(小熊派开发套件)、平台(IoTDA华为物联网平台)、端到端构建一款智慧路灯解决方案样例,带您体验十分钟快速上云。实现智慧路灯检测并上报光照强度,显示在IoTDA控制台,并在IoTDA控制台远程控制LED灯开关的功能。
  • 安装IoT Link Studio插件 IoT Link Studio是针对IoT物联网端侧开发的IDE环境,提供了编译、烧录、调试等一站式开发体验,支持 C、 C++、汇编等多种开发语言,让您快速、高效地进行物联网开发。 以win10为例,获取电脑的系统配置:在运行窗口中输入pc,然后单击“属性”,查看系统配置,因为后续安装软件要选择操作系统。 图3 获取系统配置 访问 这里 ,根据您电脑系统配置,下载匹配的Visual Studio Code并安装。(本文以windows 10 64-bit系统Visual Studio Code为例。请下载1.49版本,其他版本不支持IoT Link)。 图4 下载Visual Studio Code 注:Visual Studio Code不支持苹果Mac系统。 安装成功后,打开VSCode 插件应用商店,搜索 IoT Link 找到IoT Link,然后单击安装。 图5 安装 首次启动配置。 IoT Link Studio 首次启动时会自动从网络下载最新的SDK包以及gcc依赖环境,请确保您的网络可用。安装过程中请不要关闭窗口,耐心等待。安装完成后重启VSCode使插件生效。 若您的网络需要配置代理,请在VSCode主页,选择左下角-设置-应用程序-代理服务器,在Proxy Support下拉框中选择“on”。 假如下载SDK包及gcc依赖环境失败,请手动下载SDK包,放到C:\Users\${用户名}\.iotlink\sdk目录下,文件名修改为IoT_LINK。放置完后,重新打开VSCode即可。目录格式如下图: 图6 SDK下载失败 图7 SDK存放目录
  • 配置IoT link Studio工程 单击VSCode底部工具栏的“Home”。 Home:管理IoT Link工程; Serial:输入AT指令检查开发板状态; Build:编译示例代码(步骤3后可见); Download:把编译后的代码烧录到MCU(步骤3后可见)。 配置交叉编译工具链。在弹出界面中单击“IoT Link设置”,选择工具链,若GCC工具目录或文件不存在,单击下载安装。 图8 IoT Link设置 图9 交叉编译工具链 小熊派STM32431下载的编译工具链版本为win32.zip。 在弹出界面中单击“创建 IoT 工程”,输入工程名称,工程目录,并选择开发板的硬件平台和示例工程模板。 工程名称:自定义,如QuickStart。 工程目录:可以使用工具安装的默认路径,也可以选择系统盘以外的其他盘,如D:\。 硬件平台:当前提供的demo只适配STM32L431_BearPI硬件平台,请选择STM32L431_BearPI。 示例工程:本示例中,我们以智慧路灯为例,请选择oc_streetlight_template,否则烧录的demo样例和在控制台定义的产品模型不匹配,无法上报数据。如果您需要适配智慧烟感等其他场景,请选择对应的oc_smoke_template demo样例。 单击“确定”,导入完成。
  • 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报一次数据。
  • 场景说明 微型气象是不可预测的,基本上不能通过人工手段来分析其变化,因此必须运用新技术,对气象进行实时监测,以便采取相应的措施来避免或解决事故的发生。而常规气象环境数据采集容易造成数据损失、人力成本高、数据安全性差、可追踪性差等问题。为解决上述问题,可以通过网关将设备采集的数据上报到华为云IoT平台,实现对现场设备数据的实时监控,您可通过华为云IoT平台实时查看现场温度、湿度、光照、风速等环境数据,并对数据进行转储、分析等处理,同时也能通过IoT平台对设备进行控制。本文以金鸽的R40设备为例进行演示。
  • 控制台操作概览 在真实设备连接之前,需要在设备接入服务控制台创建产品、定义产品模型和注册设备。 创建产品:在物联网平台上规定好某一款产品的协议类型、数据格式、厂商名称、设备类型。此处我们需要按照R40的特征,在控制台创建R40的产品。 定义产品模型:产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的属性信息,例如风速、光照强度、温湿度、噪声等。 注册设备:将R40设备注册到物联网平台。
  • 设备简介 R40(如图2)负责将传感器的数据收集上来,上报到华为云IoT平台,同时负责将华为云IoT平台下发的控制信息下发给传感器。其中演示的传感器设备有如下三种: 1. 风速变速器(如图3)将采集到的风速通过电流信号输出给R40; 2. 气象多要素百叶箱(如图4)将采集到的噪声、光照、温湿度信息通过RS485口(Modbus协议)输出给R40。 3. 报警器(如图5)通过R40的DO口接收从华为云IoT下发给的控制信息。
  • 创建产品 某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)等资源。下面,我们按照R40的基本特征,在控制台上创建R40产品。 访问设备接入服务,单击“立即使用”进入设备接入控制台。选择您的实例,单击实例卡片进入。 选择左侧导航栏的“产品”,然后单击左侧的“创建产品”,创建一个基于MQTT协议的产品,参考下表填写参数后,单击“确定”,完成产品的创建。 基本信息 所属资源空间 选择您需要归属到的资源空间 产品名称 自定义,如“R40” 协议类型 选择“MQTT” 数据格式 选择“JSON” 设备类型选择 选择“自定义类型” 设备类型 EnvironmentalMonitoringDevice 产品创建成功后,单击“详情”按钮进入产品界面,进行后面操作。
  • 硬件连接 将风速变速器的棕色线和黑色线分别接到外部电源的正极和负极,将蓝色线和绿色线分别接入到R40的AIN1口和AGND口(见下图)。 图6 风速变速器连接R40 将气象多要素百叶箱的棕色线和黑色线分别接到电源的正极和负极,将黄色线和蓝色线分别接入到R40的485A口和485B口(见下图)。 图7 气象多要素百叶箱连接R40 将报警器的红色线和黑色线分别接到电源正极和R40的DO2口,将电源的负极接入到R40的DO1口(见下图)。 图8 报警器连接R40
  • 上传产品模型 产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备的功能。我们已提供开发好的产品模型,帮助您快速体验上云流程,如果您想体验产品模型的开发流程,可参考开发产品模型。 操作步骤: 在产品详情“基本信息”页面,单击“上传模型文件”。 在弹出的页面中,上传提供的产品模型(本示例的产品模型),然后单击“确定”。 图9 产品-上传模型文件
  • 创建产品 登录管理控制台,单击左侧导航栏“产品”,单击页面左侧的“创建产品”。 根据页面提示填写参数,然后单击“确认”,完成产品的创建。 基本信息 所属资源空间 平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。 产品名称 为产品命名。产品名称在相同资源空间有唯一性。长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 协议类型 选择MQTT。 数据格式 选择JSON。 所属行业 请根据实际情况选择。 设备类型 请根据实际情况选择。 高级配置 产品ID 定制ProductID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。 图3 创建产品-MQTT
  • 开发产品模型 找到新增的产品,单击“查看”进入产品界面。 在产品详情“基本信息”页面,直接上传模型文件BearPi_Agriculture.zip。 图4 上传产品模型-MQTT 在产品列表中,单击对应的产品,进入产品详情页。您可以查看产品ID、产品名称、设备类型、数据格式、厂商名称、所属资源空间、协议类型等产品基本信息。 产品创建成功后,您可以单击“删除”删除不再使用的产品。删除产品后,该产品下的产品模型、编解码插件等资源将被清空,请谨慎操作。
  • 获取AMQP接入凭证 若应用使用AMQP协议接入物联网平台进行数据流转,请先预置接入凭证。您可以通过调用生成接入凭证接口预置,也可以前往控制台页面进行预置,详细方法请参考如下操作: 选择“IoTDA实例 ”,进入您所选择的实例版本,单击“详情”进入实例详情页面。 单击“预置接入凭证”预置接入凭证密钥(accessCode)和接入凭证键值(accessKey)。 图2 实例管理-预置接入凭证 如果您之前预置过接入凭证,重新预置之后,之前的接入凭证密钥将不能再使用。
  • 连接配置说明 AMQP客户端接入物联网平台的连接地址和连接认证参数说明如下: AMQP接入地址:amqps://${server.address}:5671。 连接字符串:amqps://${server.address}:5671?amqp.vhost=default&amqp.idleTimeout=8000&amqp.saslMechanisms=PLAIN 参数 说明 server.address AMQP服务端接入地址,请前往管理控制台-实例-总览页面-实例基本信息-接入信息-AMQPS接入地址处获取。 图1 总览-获取接入信息 amqp.vhost 当前amqp使用是默认的host,只支持default。 amqp.saslMechanisms 连接认证方式当前支持PLAIN-SASL。 amqp.idleTimeout 心跳时间单位为毫秒。如果超过心跳时间,Connection上没有任何帧通信,物联网平台将关闭连接。 端口:5671 客户端身份认证参数 username =“accessKey=${accessKey}|timestamp=${timestamp}|instanceId=${instanceId}” password =“${accessCode}” 参数 是否必须 说明 accessKey 是 接入凭证键值,当前单个键值最多能和32个客户端同时进行建链。 首次建链时候,请参考这里进行预置。 timestamp 是 表示当前时间,13位毫秒值时间戳。 服务端校验客户端的时间戳,且时间戳相差5分钟。 instanceId 否 实例Id,同一Region购买多个标准版实例时需要填设置该参数,实例Id参考这里这里获取。 accessCode 是 接入凭证密钥,长度不超过256个。 首次建链时候,请参考这里进行预置。若密钥丢失,可通过调用接入凭证接口进行重置,也可以参考这里进行重置。
  • 建链认证过程 AMQP客户端与物联网平台建立TCP连接,然后进行TLS握手校验。 为了保障安全,接收方必须使用TLS加密,且使用TLS1.2版本,不支持非加密的TCP传输。客户端的时间不能与标准时间差5分钟及以上,否则接入不进来。 客户端请求建立连接。 客户端向物联网平台发起请求,建立Receiver Link(即平台向客户端推送数据的单向通道)。客户端建立Connection成功后,需在15秒内完成Receiver Link的建立,否则物联网平台会关闭连接。建立Receiver Link后,客户端成功接入物联网平台。 一个Connection上最多能够创建十个Receiver Link,不支持创建Sender Link,即只能由平台向客户端推送消息,客户端不能向平台发送消息。
  • 使用说明 配置自定义域名。 选择左侧导航栏“总览”页签,在选择的实例基本信息中,单击“接入信息”。 图1 总览-获取接入信息 单击“接入信息”页面中的“自定义域名”列中的“详情”,进入配置自定义域名的界面。 图2 接入信息-自定义域名详情 在自定义域名界面,单击“添加域名”,根据参数说明配置自定义域名后单击“确定”。 图3 自定义域名-配置自定义域名 创建DNS记录;配置自定义域名后需要联系购买域名的厂商添加域名解析,以便自定义域名指向华为云IoTDA的接入点。您可以参考平台对接信息获取设备的接入点。
  • 使用限制 当且仅当存在一个正常数据转发目标时,支持添加一个异常数据转发目标。 每个IoTDA实例最多支持创建5个异常数据转发目标。 支持异常数据转发目标的规则数据来源:设备、设备属性、设备消息、设备消息状态、设备状态、批量任务、产品和设备异步命令状态。 支持配置异常数据转发的正常转发目标类型: 数据接入服务 (DIS)、分布式消息服务(Kafka)、 对象存储服务 (OBS)、应用与 数据集成平台 (ROMA Connect)、第三方应用服务(HTTP推送)、分布式消息服务(RocketMQ)、 函数工作流 服务 (FunctionGraph)、云数据库(GeminiDB Influx)、云数据库 MySQL(RDS)、云数据库 PostgreSQL(RDS)、 MapReduce服务 MRS Kafka)、 区块链 服务( BCS )和文档数据库服务(DDS)。 支持作为异常转发目标的通道类型:AMQP推送消息队列。
  • 异常转发数据格式 异常转发数据格式示例如下: { "request_id": "2131d048-234f-4564-9190-6030234678ad", "rule_id": "6519d048-3b7f-442b-9190-6030773879cc", "action_id": "f376ab9f-d060-4fbf-a383-3e52af98ae9d", "channel": "MYSQL_FORWARDING", "base64_original_payload": "ewogICAgInJlc291cmNlIjogImRldmljZS5tZXNzYWdlIiwKICAgICJldmVudCI6ICJyZXBvcnQiLAogICAgImV2ZW50X3RpbWUiOiAiMjAyNDA2MDFUMDAwMDAwWiIsCiAgICAiZXZlbnRfdGltZV9tcyI6ICIyMDI0LTA2LTAxVDAwOjAwOjAwLjAwMFoiLAogICAgInJlcXVlc3RfaWQiOiAiMjEzMWQwNDgtMjM0Zi00NTY0LTkxOTAtNjAzMDIzNDY3OGFkIiwKICAgICJub3RpZnlfZGF0YSI6IHsKICAgICAgICAiaGVhZGVyIjogewogICAgICAgICAgICAiYXBwX2lkIjogIjU4N2MyMzc3ZGRmYzQzMmI4OTMxZGNhYmNhODkyOTUyIiwKICAgICAgICAgICAgImRldmljZV9pZCI6ICIwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgICAgICJub2RlX2lkIjogIjIwMjAwNzExMTk5OTkxMDAwIiwKICAgICAgICAgICAgInByb2R1Y3RfaWQiOiAiMTIzNDU2Nzg5MDAiLAogICAgICAgICAgICAiZ2F0ZXdheV9pZCI6ICIyMDIwMDcxMTE5OTk5MTAwMCIKICAgICAgICB9LAogICAgICAgICJib2R5IjogewogICAgICAgICAgICAidG9waWMiOiAidGVzdFRvcGljIiwKICAgICAgICAgICAgImNvbnRlbnQiOiAiV2VsY29tZSB0byBIdWF3ZWkgQ2xvdWQgSW9UIERldmljZSBBY2Nlc3MoSW9UREEpIgogICAgICAgIH0KICAgIH0KfQo=", "error_message": "Push failed. Cause: Table 'xxx' doesn't exist. The iot platform will resume the push within 3 minutes after the channel is restored." } 表1 异常转发数据说明 参数 参数类型 描述 request_id String 推送异常的消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 rule_id String 推送异常的规则触发条件ID,用于唯一标识一条规则触发条件,在创建规则时由物联网平台分配获得。 action_id String 推送异常的数据转发目标ID,用于唯一标识一个数据转发目标,在创建数据转发目标时由物联网平台分配获得。 channel String 推送异常的数据转发目标类型。 base64_original_payload String 经过Base64编码的原始流转数据。 error_message String 错误的描述和说明。 异常转发数据格式可能存在增加字段的情况,在使用的时候务必做好序列化兼容性。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全