华为云用户手册

  • 在开发中心上传Profile,无法点击上传按钮? 检查Profile文件的名称是否符合“deviceType_manufacturerId_model.zip”格式,并检查“deviceType”、“manufacturerId”、“model”三个字段是否和“devicetype-capability.json”中的定义一致。 检查Profile文件是否压缩为zip格式。如非zip格式,请解压后,重新压缩、上传。 父主题: 产品模型/Profile(联通用户专用)
  • 如何获取应用ID和应用密钥?如何重置应用密钥? 设备接入和设备管理商用环境 应用ID和应用密钥在创建应用后生成,请将密钥保存在本地,密钥信息在应用详情中不可见。 如需修改应用密钥,请登录设备接入或设备管理服务管理控制台,点击“进入 设备接入服务 ”或“进入设备管理服务”,在“应用列表”中单击应用,在应用定义中可重置应用密钥。 开发中心调测环境 应用ID和应用密钥在创建项目后生成,请将密钥保存在本地。 如需修改应用密钥,请登录开发中心,进入创建的应用或者项目,在“应用-对接信息”中重置应用密钥查看。 父主题: 应用集成(联通用户专用)
  • 应用集成(联通用户专用) 非联通用户请查看设备接入服务。 如何获取证书? 如何获取应用ID和应用密钥?如何重置应用密钥? 应用服务器如何获取设备上报到 物联网平台 的数据? 应用服务器调用接口失败怎么处理? 应用服务器下发命令失败,收到403的错误,提示回调地址冲突? 应用服务器如何获取设备的IMEI号? 应用服务器如何下发缓存命令? 开发中心应用模拟器下发命令失败? 模拟器下发命令成功,调用API下发命令失败? 历史数据中有数据,但是调用查询设备历史数据接口没有返回值? 通过接口在平台注册设备,为什么一段时间后注册设备会被平台删除? 平台接口只能用Java调用吗?
  • 运行Agent Lite Java Demo报UnsatisfiedLinkError错误怎么处理? 如果Agent Lite Java Demo运行时报如下图的错误(以Eclipse界面为例),是因为demo中提供的库文件是64位的,需要安装64位的JDK。 下载并安装64位的JDK后,可以在命令行中输入“java -version”,如果显示Java版本为64位就表示安装成功。 如果您使用IDEA作为开发工具,还需要在VM options配置下库的路径:“-Djava.library.path={本地路径}\AgentLiteDemo\libs”,其中本地路径修改为您电脑中Agent Lite Demo文件夹所在的路径。如下图: 父主题: 设备集成(联通用户专用)
  • 设备集成(联通用户专用) 非联通用户请查看设备接入服务。 如何获取设备和应用对接地址? 如何下载LiteOS IDE/IoT Studio? 物联网平台允许一个IMEI号注册多个设备吗? 如何设置设备名称? IoT设备如何激活? 物联网平台如何切换设备的在线/离线状态? 通过网关接入的子设备,平台如何识别是哪一个设备? deviceId、nodeId和IMEI有什么对应关系? Agent Lite和Agent Tiny有什么区别? 使用Agent Lite接入的网关设备gwbindinfo.json文件丢失如何处理? 运行Agent Lite Java Demo报UnsatisfiedLinkError错误怎么处理? 设备如何发送文件至物联网平台? 开发中心模拟设备如何上报负数? 开发中心支持哪几种省电模式? 开发中心支持数据转发吗? 开发中心没有设备分组和批量添加设备,怎么办? 如何检测NB网络信号? NB模组附着网络失败如何处理? NB模组绑定设备失败怎么办? NB模组无法正常上报数据怎么办? NB设备上报数据为字符串时如何转换为二进制编码? NB设备接入时,出现513错误? 为什么执行AT+CUFN=1会返回error? 平台向NB-IoT设备缓存下发命令,为什么设备一直收到同一条控制命令? AT+CGDCONT=1, CTNB是什么? NB-IoT设备如何选择PSM、DRX、eDRX模式?
  • 在开发中心上传Profile,弹窗提示“文件输入格式有误”? 检查每个json文件的格式是否正确,可以使用W3Cschool的在线JSON校验格式化工具。 检查servicetype-capability.json中commands/properties的值是否为数组格式(值是否包含在中括号之内)。 检查Profile的压缩包是否存在隐藏文件,如果存在隐藏文件,则删除后重新上传。 父主题: 产品模型/Profile(联通用户专用)
  • 在线开发插件中地址域(messageId)如何使用? 当有相同类型的消息时(例如:两种数据上报的消息),需要添加地址域字段,用于区分不同的消息,且该字段在字段列表的位置必须一致。场景如下: 有两条及以上的数据上报消息或命令下发消息。 命令响应消息可看作一种数据上报消息,因此如果存在命令响应消息,则需要在数据上报消息中添加地址域。 数据上报响应消息可看作一种命令下发消息,因此如果存在数据上报响应消息,则需要在命令下发消息中添加地址域。 在线开发编解码插件时,messageId的使用实例详见多条上下行消息的编解码插件在线开发。 父主题: 编解码插件(联通用户专用)
  • 在线开发的插件部署失败如何处理? 在插件开发界面,下载编解码插件: 如果插件下载失败,则插件部署失败存在如下可能原因: 同类消息的(例如:两种数据上报的消息)messageId的值设置重复或在消息中的位置不一致。 messageId的数据类型设置为非int型。 存在字段的默认值设置为非16进制数。 存在字段名字设置为java关键字,比如type、int等。 如果插件下载成功,但插件部署失败,则可能为网络问题导致,请检查网络状态。 父主题: 编解码插件(联通用户专用)
  • 在线开发Profile时,如何选择数据类型? 数据类型的配置可以参考如下原则: int:当上报的数据为整数或布尔值时,可以匹配为此类型。插件开发中可匹配int型或array类型。 decimal:当上报的数据为小数时,可以匹配为此类型。插件开发中可匹配string或者int或者array类型。 string:当上报的数据为字符串、枚举值或布尔值时,可以配置为此类型。如果为枚举值或布尔值,值之间需要用英文逗号(“,”)分隔。插件开发中可匹配string类型或者array类型。 DateTime:当上报的数据为日期时,可以配置为此类型。插件开发中可匹配string类型或者array类型。 jsonObject:当上报的数据为json结构体时,可以配置为此类型。插件开发者可匹配string或者array类型。 父主题: 产品模型/Profile(联通用户专用)
  • deviceId、nodeId和IMEI有什么对应关系? 在物联网平台中,设备注册时,需要填写设备标识码(即nodeId)。设备标识码唯一标识物理设备,通常使用IMEI和MAC地址。 NB-IoT设备:在设备接入物联网平台时携带设备标识码(nodeId),完成设备的接入鉴权。 集成Agent Lite SDK的设备:当设备上电时,携带设备标识码(nodeId)等进行平台绑定,并返回设备ID(deviceId)和密钥。当绑定后设备重新登录时,携带设备ID(deviceId)和密钥完成接入鉴权。 原生MQTT设备:在设备接入物联网平台时携带设备ID(deviceId)和密钥、或者nodeId和密钥,通过一机一密的方式,完成设备的接入鉴权。 更多请参考设备注册鉴权。 父主题: 设备集成(联通用户专用)
  • 在线开发的插件中如何实现命令下发响应? 设备在接收到命令后,可以上报两类消息:ACK和命令下发响应。ACK用于表示命令已经到达设备,命令下发响应用于表示设备执行命令的结果。如果需要设备在接到命令后,需要返回命令下发响应,则: 需要在数据上报消息和命令响应消息中均定义地址域字段(messageId),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以对数据上报消息和命令响应消息进行区分。 需要在命令下发消息和命令响应消息中定义响应标识字段(mid),并且该字段在两种消息的字段列表中的位置必须相同,使编解码插件可以将命令下发消息和对应的命令响应消息进行关联。 在线开发编解码插件时,命令下发响应的实现实例详见命令执行结果的编解码插件在线开发。 父主题: 编解码插件(联通用户专用)
  • 应用服务器调用接口失败怎么处理? 请检查应用服务器的网络连接情况,确保应用服务器网络正常。 检查请求中物联网平台的应用接入地址和端口是否正确。 使用“ping {物联网平台应用接入地址}”命令,查看应用服务器是否可以正常访问物联网平台的应用接入地址。 使用“telnet {物联网平台应用接入地址} {端口}”命令,查看是否可以打开物联网平台的应用接入端口。 检查应用服务器是否集成了物联网平台的证书,证书可从开发资源获取页面下载。 根据接口文档,查看各个参数的填写是否正确。 调用鉴权接口返回的accessToken有效期是一个小时,过期后,调用其他接口也会失败。请调用鉴权接口获取新的accessToken后,重新调用其他接口。 如果以上问题均已排除,请根据接口返回的错误码进行处理,错误码的含义可参见API参考。如果应用封装了错误码,可以使用postman调用相同的接口,获取物联网平台返回的原始错误码及描述,再按照对应错误码的处理建议进行处理。 例如调用注册设备接口提示设备已经绑定,则需要查看在自己的账号下是否已经存在相同验证码(IMEI或mac)的设备。如果在自己的账号下未找到使用相同验证码(IMEI或mac)的设备,请联系物联网平台服务商,由支撑人员检查该验证码(IMEI或mac)在物联网平台的使用情况。 父主题: 应用集成(联通用户专用)
  • 数据上报失败如何处理? 若设备是使用接口注册的,请确认设备是否因为没在指定的timeout时间内上线而被物联网平台自动删除了。如果设备已被删除,请重新注册设备再尝试上报数据。 请检查使用接口注册设备时,填写的产品信息是否和产品profile一致。 请检查上报的数据名称是否和产品模型定义的服务属性一致。 若设备为NB-IoT设备,请再参考NB模组无法正常上报数据怎么办?进行排查。 确定以上都不存在问题时,请检查设备和物联网平台之间的网络链路是否畅通,设备是否正常运行。 如果确认设备上报数据成功,但在设备管理服务的历史数据中无法查看到设备上报的数据,请请确保创建应用时已打开“存储历史数据”开关。 父主题: 数据上报(联通用户专用)
  • 开发中心、设备接入和设备管理的差异是什么? 开发中心、设备接入和设备管理的主要差异是: 产品 定位 商用/测试 价格 特别关注 设备接入 进行海量设备联接、数据采集/转发、远程控制的云服务。 商用环境 按照消息数收费 开通设备管理服务时,系统会同时开通设备接入服务。开通设备管理服务后,设备接入服务中已注册的设备,可以在设备管理服务中继续使用。 设备管理 在设备接入基础上,增加了产品模型定义、远程诊断、数据存储、软固件升级等更丰富的设备管理能力。使用设备管理时,包含设备接入服务的能力。 商用环境 按照设备数收费 开发中心所在的测试环境,设备管理服务所在商用环境,两个环境的设备数据不能互通。已对接测试环境的设备/应用如果需要迁移至商用环境,需要在商用环境重新创建应用和注册设备,并修改设备/应用中平台的接入信息。 开发中心 基于设备管理提供的一站式开发工具,帮助开发者快速进行产品模型(Profile)和编解码插件的开发,同时提供在线自助测试、产品发布等多种能力。 测试环境 免费 开发中心上开发的产品(Profile文件和编解码插件)只适用于设备管理服务,不能在设备接入服务中导入和使用。 点击查看更多开发中心,设备接入和设备管理功能和使用限制差异。 父主题: 方案咨询(联通用户专用)
  • 热门问题(联通用户专用) 非联通用户请查看设备接入服务。 如何选择设备接入物联网平台的方案? 如何获取对接物联网平台的地址? 在开发中心完成调测后如何转商用? 开发中心、设备接入和设备管理商用平台的差异是什么? 如何理解平台显示的设备的在线、离线、未激活等状态? 平台无法正常显示设备上报的历史数据怎么处理? 如何理解命令下发各个状态的含义? 命令下发失败或设备收不到命令如何处理? 应用服务器调用接口失败怎么处理? 应用服务器如何获取设备上报的数据? 如何制作订阅推送调测证书? 调用订阅接口时,回调地址如何获取? 订阅后消息推送失败如何处理?
  • 建立连接 设备或网关在接入物联网平台时首先需要和平台建立连接,从而将设备或网关与平台进行关联。开发者通过传入设备信息,将设备或网关连接到物联网平台。 MainActivity类主要提供建立MQTT/MQ TTS 连接等方法,MQTT默认使用1883端口,MQTTS默认使用8883端口(需要加载证书)。 if (isSSL) { editText_mqtt_log.append("开始建立MQTTS连接" + "\n"); serverUrl = "ssl://" + IOT_PLATFORM_URL + ":8883";} else { editText_mqtt_log.append("开始建立MQTT连接" + "\n"); serverUrl = "tcp://" + IOT_PLATFORM_URL + ":1883";} ConnectUtils类主要提供了SSL加载证书的getMqttsCerificate方法,如果是MQTTS建链方式,需要调用该方法加载证书。 DigiCertGlobalRootCA.bks:设备校验平台身份的证书,用于设备侧接入物联网平台登录鉴权使用,可以在资源获取中下载证书文件。 SSLContext sslContext = SSLContext.getInstance("SSL");KeyStore keyStore = KeyStore.getInstance("bks");keyStore.load(context.getAssets().open("DigiCertGlobalRootCA.bks"), null);//加载libs目录下的证书TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("X509");trustManagerFactory.init(keyStore);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();sslContext.init(null, trustManagers, new SecureRandom());sslSocketFactory = sslContext.getSocketFactory(); MainActivity类提供了设置初始化MqttConnectOptions的方法。mqtt连接心跳时间的建议值是120秒,有使用限制。 mqttAndroidClient = new MqttAndroidClient(mContext, serverUrl, clientId);private MqttConnectOptions intitMqttConnectOptions(String currentDate) { String password = ConnectUtils.sha256_HMAC(editText_mqtt_device_connect_password.getText().toString(), currentDate); MqttConnectOptions mqttConnectOptions = new MqttConnectOptions(); mqttConnectOptions.setAutomaticReconnect(true); mqttConnectOptions.setCleanSession(true); mqttConnectOptions.setKeepAliveInterval(120); mqttConnectOptions.setConnectionTimeout(30); mqttConnectOptions.setUserName(editText_mqtt_device_connect_deviceId.getText().toString()); mqttConnectOptions.setPassword(password.toCharArray()); return mqttConnectOptions;} MainActivity类提供了Mqtt客户端建立连接的的方法connect,并通过回调函数处理连接后的消息返回结果。 mqttAndroidClient.connect(mqttConnectOptions, null, new IMqttActionListener() mqttAndroidClient.setCallback(new MqttCallBack4IoTHub());
  • 界面展示 MainActivity类主要提供了界面显示,请填写设备ID和设备密钥,在物联网平台或调用接口注册设备后获取。 示例中默认写了设备侧接入的域名地址(SSL加密接入时该域名要与对应的证书文件匹配使用)。 private final static String IOT_PLATFORM_URL = "iot-mqtts.cn-north-4.myhuaweicloud.com"; 用户可以选择设备侧建链时是否SSL加密/不加密,选择Qos方式是0还是1,当前不支持Qos2,可参考使用限制。 checkbox_mqtt_connet_ssl.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { isSSL = true; checkbox_mqtt_connet_ssl.setText("SSL加密"); } else { isSSL = false; checkbox_mqtt_connet_ssl.setText("SSL不加密"); } }})
  • 订阅Topic 订阅某Topic的设备才能接收broker发布的关于该Topic的消息,关于平台预置Topic可参考Topic定义。 在MainActivity类中提供了订阅命令下发Topic、订阅Topic、取消订阅Topic等功能: String mqtt_sub_topic_command_json = String.format("$oc/devices/%s/sys/commands/#", editText_mqtt_device_connect_deviceId.getText().toString()); mqttAndroidClient.subscribe(getSubscriptionTopic(), qos, null, new IMqttActionListener() mqttAndroidClient.unsubscribe(getSubscriptionTopic(), null, new IMqttActionListener() 如果建链成功,可以在回调函数中订阅Topic: mqttAndroidClient.connect(mqttConnectOptions, null, new IMqttActionListener() { @Overridepublic void onSuccess(IMqttToken asyncActionToken) { ...... subscribeToTopic(); } 建链成功后,APP界面日志栏显示如下信息:
  • 接收下发命令 在MainActivity类中提供了接收平台下发命令的功能,在MQTT建链完成后,可以在管理控制台设备详情中命令下发或使用应用侧Demo对该设备ID进行命令下发,例如下发参数名为command,参数值为5的命令,下发成功后,在MQTT的回调函数中接收到。 private final class MqttCallBack4IoTHub implements MqttCallbackExtended { ...... @Overridepublic void messageArrived(String topic, MqttMessage message) throws Exception { Log.i(TAG, "Incoming message: " + new String(message.getPayload(), StandardCharsets.UTF_8)); editText_mqtt_log.append("MQTT接收下发命令成功:" + message + "\n"); } 在设备详情页面可以查看到命令下发状态,这里显示timeout是因为该Demo示例中仅演示接收命令,没有回复响应给平台。 属性上报和命令接收成功,APP界面显示如下:
  • 准备工作 安装android studio 访问android studio官网,选择合适系统的版本下载并安装。(本文以windows 64-bit系统Android Studio 3.5为例)。 安装JDK(也可以使用IDE自带的JDK) 访问Oracle官网,选择合适的JDK版本单击“Download”下载(本文以Windows x64 JDK8为例)。 下载完成后,运行安装文件,根据界面提示安装。
  • 准备工作 编译openssl库 访问openssl官网(https://www.openssl.org/source/)下载最新版本openssl(如openssl-1.1.1d.tar.gz),上传到linux编译机上(以上传到/home/test目录下为例),并使用如下命令解压: tar -zxvf openssl-1.1.1d.tar.gz 配置生成makefile文件。 执行以下命令进入openssl源码目录 cd openssl-1.1.1d 运行如下配置命令: ./config shared --prefix=/home/test/openssl --openssldir=/home/test/openssl/ssl 其中“prefix”是安装目录,“openssldir”是配置文件目录,“shared”作用是生成动态链接库(即.so库) 。 如果编译有问题,配置命令加上no-asm(表示不使用汇编代码) ./config no-asm shared --prefix=/home/test/openssl --openssldir=/home/test/openssl/ssl 编译出库。 在openssl源码目录下,运行make depend命令。 make depend 再运行make命令进行编译。 make 安装openssl。 make install 在配置的openssl安装目录下home/test/openssl找到lib目录,有生成的库文件: “libcrypto.so.1.1”、“libssl.so.1.1”和软链接“libcrypto.so”、“libssl.so”,请将这些文件拷贝到demo的lib文件夹下(同时将/home/test/openssl/include/openssl里的内容拷贝到demo的include/openssl下)。 注:有的编译工具是32位的,如果在64位的linux机器上使用,这时只要将Makefile中的-m64都删除,再进行编译即可。 编译paho库文件 访问github下载地址:https://github.com/eclipse/paho.mqtt.c,下载paho.mqtt.c源码。 解压后上传到linux编译机。 修改makefile 通过如下命令进行编辑Makefile vim Makefile 查找字符串 /DOXYGEN_COMMAND = 在/DOXYGEN_COMMAND =doxygen的下一行添加下面两行(自定义的openssl的头文件和库文件) CFLAGS += -I/home/test/openssl/includeLDFLAGS += -L/home/test/openssl/lib -lrt 把如下图的CCDLAGS_SO、LDFLAGS_ CS 、LDFLAGS_AS、FLAGS_EXES的openssl地址都改成对应的地址 编译 执行清空命令 make clean 执行编译命令 make 编译完成后,可以在build/output目录下看到编译成功的库。 拷贝paho库文件。 当前SDK仅用到了libpaho-mqtt3as,请将“libpaho-mqtt3as.so”和“libpaho-mqtt3as.so.1”文件拷贝到demo的lib文件夹下。(同时回到paho源代码路径,进入src目录,将MQTTAsync.h、MQTTClient.h、MQTTClientPersistence.h、MQTTProperties.h、MQTTReasonCodes.h、MQTTSubscribeOpts.h拷贝到demo的include/base文件夹下)。 有的paho版本会有 MQTTExportDeclarations.h 头文件,建议可以将MQTT相关的头文件都添加进去。
  • 导入代码样例 下载quickStart(C)样例。 将代码拷贝到linux运行环境中。可以看到代码文件层级如下图。 代码目录简述: src:源码目录 mqtt_c_demo:demo核心源码; util/string_util.c:工具资源文件; conf:证书目录 rootcert.pem:设备校验平台身份的证书,用于设备侧接入物联网平台登录鉴权使用; include: 头文件目录 base目录:存放依赖的paho头文件 openssl目录:存放依赖的openssl头文件 util目录:存放依赖的工具资源头文件 lib:依赖库文件 libcrypto.so*/libssl.so*: openssl库文件 libpaho-mqtt3as.so*: paho库文件 Makefile:Makefile文件
  • 安装USB驱动 安装USB驱动: 运行安装文件,根据界面提示进行安装。 不同厂家匹配的USB驱动版本不同,请联系厂家获取符合要求的驱动程序。 驱动安装成功后,连接开发板的USB接口到PC,并打开电源,可在设备管理器中查看到枚举出的串口设备。 使用串口工具进行AT命令调试 运行安装文件,根据界面提示进行安装。 不同厂家匹配的串口工具版本不同,请联系厂家获取符合要求的串口工具。 打开串口工具,选择步骤2枚举的AT串口,波特率设置为115200,单击“Open Port”。 请确保设置正确,否则AT命令不能够被解析或者解析出错。 输入“AT+COPS?”指令,单击“Send Command”,若返回OK,表明网络注册状态成功,否则请检查设置以及硬件接线。 若返回的消息中“+COPS: 0,0,"CHN-CT",7”最后一位数字不是7,表明网络存在问题,请更换SIM卡或确认SIM卡能够上网。
  • 概述 认证模组是指通过预集成IoT Device SDK Tiny,并且通过华为测试认证,遵循华为指定AT命令规范的模组。使用华为认证的模组可以带来以下好处: 设备厂商在MCU上无需关心如何连接到华为云IoT(例如,MQTT建链时密钥的加密算法,clientID的组成方式等),只通过调用该模组提供的AT指令对接华为IoT平台,可以节约设备对接工作量和设备调试周期。 由于MCU无须集成MQTT协议栈或者IoT Device SDK Tiny,因此大大节省MCU资源的消耗。 华为将认证通过的模组型号上架华为云市场,方便设备商以及服务提供商购买通过认证的通信模组快速连接华为云IoT。 使用认证模组开发设备的示意图如下所示:
  • 推荐模组列表 表1 预集成华为SDK的认证模组 模组类型 厂商 具体型号 华为云市场购买链接 4G Cat1模组 广和通 L610 待上架 中移物联 ML302 待上架 4G Cat4模组 移远 EC20CEFASG 购买页面 移远 EC20CEHDLG 购买页面 有方 N720 待上架 NB-IoT模组 中移物联 M5319-A 待上架 LTE Cat4模组适用于业务数据传输速率为50Mbps~150Mbps的场景,LTE Cat1模组适用于业务数据传输速率为5 Mbps~10 Mbps的场景。 若上述列表中没有您所需的模组型号,请提交工单说明您的业务场景和诉求。
  • IoT Device SDK Tiny使用指南(C) IoT Device SDK Tiny是部署在具备广域网能力、对功耗/存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报和命令接收等功能。相关集成指导请参见端云互通组件开发指南。 IoT Device SDK Tiny可以运行于无linux操作系统的设备,也可以被模组集成,但是不提供网关服务。 父主题: 使用IoT Device SDK接入
  • 设备接入指引 华为物联网平台支持多种接入方式,满足各类设备和接入场景要求。请根据设备类型,选择合适的开发模式。 开发模式 特点 适用场景 难度系数 认证MCU开发模式 IoT Device SDK Tiny已经预集成在MCU(Main Control Unit)中,可以直接调用方法连接华为云IoT。 设备商用时间短,研发成本低,无需管理子设备的直连设备。 认证模组开发模式 IoT Device SDK Tiny已经预集成在模组中,通过调用AT指令连接华为云IoT。 需要节省MCU资源,无需管理子设备的直连设备。详细接入方式请参考通过华为认证模组接入。 LiteOS开发模式 设备运行在LiteOS中,通过LiteOS对MCU进行资源管理,同时liteOS内置了IoT Device SDK Tiny,可以通过调用函数连接华为云IoT。LiteOS开发模式的设备开发耗时更短,开发难度也低。 无操作系统,无需管理子设备的直连设备 常规开发模式 集成IoT Device SDK Tiny到MCU中,调用SDK中的函数连接华为云IoT,相比API接入更便捷。 设备商用时间充足,MCU的Flash与 RAM 资源满足IoT Device SDK Tiny集成条件的场景。 Open CPU开发模式 节省一个MCU,使用公用模组中的MCU能力,将设备的应用程序编译运行在OpenCPU上。 安全要求高,体积较小,商用时间短的设备 网关设备开发模式 IoT Device SDK预置到CPU(Central Processing Unit)或者MPU(Main Processing Unit)中,通过调用函数连接到华为云IoT。 管理子设备的网关设备。 父主题: 设备侧开发
  • 使用真实设备调测产品 当设备侧开发已经完成,但应用侧开发还未完成时,您可以创建真实设备,使用应用模拟器对设备、产品模型、插件等进行调测。真实设备调测界面结构如下: 在烟感产品的开发空间,选择“在线调试”,并单击“新增测试设备”。 在弹出的“新增测试设备”窗口,选择“真实设备”,输入测试设备的参数,单击确认。 注:如果使用DTLS传输层安全协议接入时,设备注册方式选择“加密”,请妥善保存密钥。 新添加的设备处于未激活状态,此时不能进行在线调试,可参考连接鉴权,待设备接入平台后,进行调试。 单击“调试”,进入调试界面。 模拟远程下发控制命令场景,在应用模拟器中,选择服务:StreetLight,命令:SWITCH_LIGHT,命令取值为:ON,单击“发送”,我们可以看到路灯被点亮。
  • 使用虚拟设备调测产品 当设备侧开发和应用侧开发均未完成时,开发者可以创建虚拟设备,使用应用模拟器和设备模拟器对产品模型、插件等进行调测。模拟设备调测界面结构如下: 在产品开发空间,选择“在线调测”,并单击“新增测试设备”。 在弹出的“新增测试设备”窗口,选择“虚拟设备”,单击“确定”,创建一个虚拟设备。虚拟设备名称包含 “DeviceSimulator”字样,每款产品下只能创建一个虚拟设备。 在设备列表中,选择新创建的虚拟设备,单击右侧的“调试”,进入调试界面。 在“设备模拟器”区域,输入十六进制码流或者JSON数据(以十六进制码流为例),单击“发送”,在“应用模拟器”区域查看数据上报的结果,在“消息跟踪”区域查看物联网平台处理日志。 在“应用模拟器”区域进行命令下发,在“设备模拟器”区域查看接收到的命令(以十六进制码流为例),在“消息跟踪”区域查看物联网平台处理日志。
  • 图形化开发和离线开发 编解码插件的开发方式有图形化开发、离线开发和脚本化开发三种,由于插件离线开发较为复杂,且耗时比较长,我们推荐使用脚本化开发编解码插件。 图形化开发是指在设备接入控制台,通过可视化的方式快速开发一款产品的编解码插件。 离线开发是指使用编解码插件的Java代码Demo进行二次开发,实现编解码功能、完成插件打包和质检等。 脚本化开发是指使用JavaScript脚本实现编解码的功能。
共100000条