-
直接下载的Python Demo 文件,打开就报错,求指导。
-
【功能模块】小熊派开发板无法通过mqtts协议8883端口连接上平台【操作步骤&问题现象】1、配置华为云平台连接信息2、配置WiFi信息【截图信息】wifi连接成功:开始连接平台,mqtts协议,8883端口:平台连接失败:
-
【功能模块】微信公众号小熊派开发社区中的更多-小程序设备接入问题【操作步骤&问题现象】1、第一次设备接入成功却因开发板没有通电连接导致手机小程序显示没有激活2、第二次进行时却显示设备接入错误【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
-
【摘要】 设备接入服务能够帮助物联网行业用户快速完成设备联网及行业应用集成。本文分享自华为云社区《华为云IoT设备接入服务都有哪些功能?看完给你整的明明白白》,作者:Super.雯。设备接入服务(IoTDeviceAccess)是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。基于华为云物联网平台的物联网系统如图9-6所示,其主要分为几个部分:终端设备、设备连接、消息通信、设备管理、数据流转、物联网应用,以及与华为云的其他服务进行的数据互通和协同。基于华为云物联网平台的物联网系统物联网常用协议HTTPHTTP(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。同时HTTP是一个无状态的协议。同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。为了解决这个问题,Web程序引入了Cookie机制来维护状态。并且HTTP是一种同步协议。客户端需要等待服务器响应。Web浏览器具有这样的要求,但它的代价是牺牲了可伸缩性。在IoT领域,大量设备以及很可能不可靠或高延迟的网络使得同步通信成为问题。异步消息协议更适合IoT应用程序。传感器发送读数,让网络确定将其传送到目标设备和服务的最佳路线和时间。HTTP是一种有许多标头和规则的重量级协议。它不适合受限的网络。建立过程中三次握手:HTTP三次握手流程注解:SYN:同步,Seq:序号,ACK:确认,ack:确认序号。第一次握手:当客户端想与服务器建立连接的时候,会发送一个请求连接的报文,此报文首部中的SYN=1(TCP规定,SYN=1的报文段不能携带数据,并且需要消耗一个序号),同时随机生成初始序列号Seq=X,客户端进入了SYN-SENT(同步以发送状态)。第二次握手:服务器接收到客户端发送的连接请求报文后,如果同意连接,则发出确认报文,其中确认报文段中SYN=1,ACK=1,同时随机初始化一个序列号Seq=Y,确认号ack=X+1,而且服务器也进入SYN_RCVD(同步接收状态)。第三次握手:客户端接收到确认报文后,还需要向服务器发出确认报文。确认报文的ACK=1,ack=Y+1,此时,TCP连接建立成功,客户端进入ESTABLISHED(已建立连接)状态。三次握手的重要性:当客户端发送第一个请求连接的报文的时候,由于网络阻塞原因,导致服务端不能及时收到,直到某个时刻才收到请求连接的报文,此时此刻服务器收到的已经是一个失效的报文了,服务器给客户端发送确认报文,等待客户端的连接,假设采用的是两次握手,客户端不理睬服务器发送的确认报文,而服务器一直等待接收客户端的请求,这样导致服务器很多资源浪费,而如果采用三次握手,服务器接收不到客户端的确认报文,就会断开与客户端的连接,因此采用三次握手更为合适。MQTTMQTT(MessageQueuingTelemetryTransport,消息队列遥测传输),是IBM开发的一个即时通讯协议。MQTT协议采用订阅/发布的工作模式,客户端向服务器订阅感兴趣的信息,服务器把信息推送给订阅了这类信息的客户端。MQTT交互流程MQTT的特点:协议简单,轻量级(消息可以短至两个字节,对终端的硬件配置要求低,适用于CPU等硬件资源有限的场合,有助于降低终端成本,推动产业发展)。基于TCP/IP,消息传递可靠。使用长连接,有心跳保活机制,减少重新建链开销。支持消息实时通知、有丰富的推送内容。心跳机制不利于设备进入休眠模式,设备比较耗电。MQTT的特点非常符合无线传感网、物联网等领域的要求,目前智慧家庭解决方案主要就是用的MQTT协议。客户端(Client):包括发布者或订阅者,两者都是MQTT客户端,分别负责发布或订阅。可以是从微控制器到一个完全成熟的服务器,在设备上运行着MQTT库并且可以通过任何网络连接到MQTT代理服务器。代理服务器(Broker):是任何发布/订阅协议的核心,可以处理多达成千上万的MQTT客户端的并发连接。代理服务器主要负责接收所有消息,将消息发送给所有订阅的客户端。一个职责是保持所有持续连接的客户端的会话,包括订阅和丢失的消息。另一个职责是对客户端的认证和授权。CoAPCoAP(ConstrainedApplicationProtocol,受限制的应用协议),专门为资源受限设备(如传感器节点)和网络(如NB-IoT,LoRa)而设计。CoAP从HTTP协议发展而来,CoAP协议也是采用请求/响应工作模式,客户端发起请求,服务器做出响应。为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。CoAP交互流程CoAP特点:报头压缩,报文格式简单,消息可以很短,最小的CoAP消息只有4个字节。传输层使用UDP协议,减少网络开销和支持组播功能。为了弥补UDP传输的不可靠性,CoAP有消息重传机制。不支持长连接,没有心跳,没有业务时设备不用跟外部发消息。做业务时,设备可能需要先唤醒,消息实时性不太好。跟MQTT相比,CoAP不需要保持长连接,不用不停发送心跳消息,更加适合物联网场景中需要休眠/唤醒机制的设备,设备可以长时间处于休眠模式,节省电量,一块电池使可以用10年甚至更久,目前智能水表、智能电表、智慧农业、智能停车场等解决方案主要就是用的CoAP协议。设备管理设备注册&接入鉴权为了保证接入物联网平台的设备是安全可信的,需要进行设备注册和设备接入鉴权操作。设备注册,指用户通过控制台或调用注册设备API在IoT平台中注册设备信息,平台中存在设备信息后,再接入真实的实体设备,这样平台与终端实体设备可以实现连接和通信。设备接入鉴权,是指IoT平台对接入平台的设备进行鉴权认证,用于保障设备接入信息的完整性和安全性、设备与平台消息传输完整性和安全性。 设备注册&设备接入鉴权命令下发设备的产品模型中定义了IoT平台可向设备下发的命令,平台向设备下发命令,修改设备的服务属性,实现对设备的控制。平台向设备下发命令包括立即下发和缓存下发两种情况,如下表所示。 命令下发机制 定义 适用场景 NB-IoT设备集成Agent LiteSDK设备/原生MQTT设备 立即下发不管设备是否在线,平台收到命令后立即下发给设备。如果设备不在线或者设备没收到命令则下发失败。支持给本应用的设备和被授予权限的其他应用的设备下发命令。立即下发适合对命令实时性有要求的场景,如路灯开关灯,燃气表开关阀。使用立即下发时,命令下发的时机需要由应用服务器来确定。适用,需将省电模式设置为DRX或eDRX模式,且需要在物联网平台与EPC网络之间建立IPSEC隧道。 适用缓存下发物联网平台在收到命令后先缓存,等设备上线或者设备上报数据时再下发给设备,如果单个设备存在多条缓存命令,则进行排队串行下发。支持给本应用的设备和被授予权限的其他应用的设备下发命令。缓存下发适合对命令实时性要求不高的场景,如配置水表参数,适用,需将省电模式设置为PSM模式。 不适用对于立即下发模式,下发的命令直接全部下发给设备;对于缓存下发模式,需等待设备上线或设备上报数据到平台后,按照串行的方式下发命令给设备,即缓存的命令需要按照缓存的时间逐一向设备进行下发。设备命令整个生命周期的状态转换如下图所示。设备命令的状态转换设备命令状态的详细说明如下表所示。状态说明 等待(PENDING)NB-IoT设备采用缓存下发命令时,如果设备未上报数据,物联网平台会将命令进行缓存,此时任务状态为“等待”状态;NB-IoT设备采用立即下发模式下发命令时,无此状态;MQTT设备下发命令时,无此状态。超期(EXPIRED)NB-IoT设备采用缓存下发模式下发命令时,如果在设置的超期时间内,物联网平台未将命令下发给设备,则状态变更为“超期”。超期时间会以北向接口中携带的expireTime为准,如果未携带,默认为48h;NB-IoT设备采用立即下发模式下发命令时,无此状态;MQTT设备下发命令时,无此状态。取消(CANCELED)如果在命令下发状态为“等待”时,用户人工取消了命令下发任务,则任务状态变更为“取消”。 已发送(SENT)NB-IoT设备采用缓存下发模式下发命令时,设备上报数据,物联网平台会将缓存的命令发送给设备,此时状态会由“等待”变更为“已发送”;NB-IoT设备采用立即下发模式下发命令时,如果设备在线,状态变更为“已发送”;MQTT设备下发命令时,如果设备在线,状态变更为“已发送”。 超时(TIMEOUT)NB-IoT设备受到命令时,物联网平台在180s内未收到设备反馈的收到命令响应,此时状态会变更为“超时”;MQTT无此状态。已送达(DELIVERED)物联网平台收到设备反馈的已收到下发命令响应后,状态变更为“已送达”。执行成功(SUCCESSFUL)设备在执行完命令后,向物联网平台反馈命令执行成功的结果,将状态变更为“执行成功”。执行失败(FAIL)设备在执行完命令后,向物联网平台反馈命令执行失败的结果,将任务状态变更为“执行失败”;NB-IoT设备采用立即下发模式下发命令时,如果设备离线,状态变更为“执行失败”;MQTT设备下发命令时,如果设备离线,状态变更为“执行失败”。通过命令下发特性,平台能够为终端用户提供远程控制设备的服务,实现设备连接,也可以实现对设备的批量命令下发等,操作简单快捷。当用户需要对设备进行某一操作,而设备并不在可操作范围内,或者需要操作大批量设备时,可以使用命令下发。设备联动规则规则引擎的使用对象是终端用户,系统已经预置支持的规则场景,终端用户通过方便、易理解的友好界面在自有设备下制定自动化规则。规则可以和设备、应用、告警绑定,当绑定的信息满足条件时,规则可以自动化执行响应动作。规则引擎定位处理各种事件,利用规则引擎可以完成异常事件的及时通知和快速处理,帮助终端用户维护设备、监控设备,保证系统业务的及时恢复。阈值超限、范围超限、位置跟踪等事件,也可定义为规则引擎输入条件,并关联对应的处理动作。设备联动的触发条件及响应动作如下图所示。设备联动规则设备升级管理物联网平台支持通过OTA(OverTheAir)的方式对终端设备的固件和软件进行升级。设备固件升级:固件升级又称为FOTA(FirmwareOverTheAir),是指用户可以通过OTA的方式对支持LwM2M协议和CoAP的设备进行固件升级,升级包下载LwM2M协议。设备软件升级:软件升级又称为SOTA(SoftwareOverTheAir),是指用户可以通过OTA的方式对支持LwM2M协议和CoAP的设备进行软件升级,升级包下载协议为PCP。 设备固件&软件升级设备批操作华为云物联网平台支持对设备的批量操作,包括批量注册设备、批量命令下发、批量位置上传、批量设备配置和批量软固件升级。批量注册设备:因注册设备数量过多而导致注册时间太长,可采用批量注册的方式注册设备。批量命令下发:当物联网平台需要对批量设备下发命令时,可通过北向接口创建批量命令下发任务,在物联网平台上,可查看任务的执行状态、操作者和成功率等信息。批量位置上传:当物联网平台需要对设备的位置进行批量上传时,可采用批量位置上传操作。这里的设备主要指安装位置相对固定的终端设备,如水表。批量设备配置:当物联网平台需要对设备进行批量配置时,可采用批量设备配置操作。批量软固件升级:当物联网平台需要对设备的固件或者软件进行批量升级时,可采用批量软固件升级操作。设备批操作向物联网平台提供对终端设备统一管理的通道,能提升对终端设备的管理效率,很好地满足用户批量管理设备的需求。当用户接入的设备数量过多,或者需要对全部或某一个群组的设备进行相同的操作时,可以采用设备批操作。批量注册设备和批量位置上传时设备数量的上限是30000个,批量命令下发、批量设备配置和批量软固件升级的设备上限是10000个。更多学习内容,请关注IoT物联网社区
-
教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino IDE开发)一、简介 esp8266系列作为低功耗高性价比的嵌入式无线网络控制模块,深受对嵌入式感兴趣的小伙伴的喜爱,是很多人理想的一款wifi模块的选择,不仅可以完成通信,还可以当单片机使用完成程序控制,可满足智能家居、远程控制、智慧医疗等物联网应用的需求,总结:功能强大,价格便宜;某宝最便宜的ESP01s或12f系列五六块就可以搞定(建议大家还是支持正版),对质量有要求的,在某创平台也仅仅是十多块钱,玩法多样,本篇幅主要带大家讲解如何利用Arduino和esp8266系列完成设备接入华为云物联网平台(IOTDA)并完成设备属性上报。二、整体流程概述创建产品、注册设备、添加属性使用MQTT.fx进行测试[可跳过]Arduino IDE+esp8266编程三、具体详细步骤创建产品、注册设备、添加属性创建产品(https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-dev/all-product) b. 注册设备 此时可获取设备ID和密钥: device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01" secret: "自己设定的密钥" c. 添加属性 d. 获取MQTT三元组(ClientId、Username、Password) 我们可以通过华为云提供的官方产品帮助文档中,根据参数描述自己计算出三元组;或者我们可以使用下面的网页来帮助我们生成三元组 https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/) 补充:平台接入地址为:iot-mqtts.cn-north-4.myhuaweicloud.com,端口号:1883 此时我们已经获取了下面这些信息,就可以使用MQTT.fx客户端软件进行登陆测试 device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01" secret: "自己设定的密钥" ClientId: 61fb2d7fde9933029be5ff9e_esp8266_test01_0_0_2022020310 Username:61fb2d7fde9933029be5ff9e_esp8266_test01 Password:xxxxxxxxxx计算出来的秘钥xxxxxxxxxxxxxxxxxxxx MQTT_Address:iot-mqtts.cn-north-4.myhuaweicloud.com MQTT_Port:1883 2. 使用MQTT.fx进行测试[可跳过]登陆MQTT测试(创建完后点击Connect,右上角会有绿色提示灯即代表登陆成功) b. 查看在线状态 c. 添加服务、属性、命令 d.常用的Topic:(参考官方文档https://support.huaweicloud.com/api-iothub/iot_06_v5_3004.html) 设备上报属性:$oc/devices/{device_id}/sys/properties/report(需将“{device_id}”替换为所需的设备id) 平台下发命令:$oc/devices/{device_id}/sys/commands/#(需将“{device_id}”替换为所需的设备id) 数据格式:{"services":[{"service_id":"你的服务id","properties":{"你的属性名称": 设置的值}}]} e. 上报测试(监控运维的在线调试中可查看具体信息) f. 下发测试 、 3. Arduino IDE+esp8266编程程序源代码不到70行,非常简单的一个小Demo源码获取方式:关注公众号“IOT趣制作”,回复关键字“华为云物联网”即可
-
华为云IoT设备接入服务
-
场景说明近年来,火灾频发,造成很大的人员及财产损失,国家高度重视,陆续出台相关文件,明确相关要求,落实消防安全责任。同时,人民消防意识逐渐提高,独立烟感得到一定程度的普及,在防火减灾方面起到一定的作用。但由于独立烟感产品存在一定的局限,例如人不在场收不到报警信息,工作状态不能实时掌握,独立烟感没有完全解决这些问题。NB-IoT智慧烟感解决了传统烟感器布线难、电池使用周期短、维护成本高、无法与业主及消防机构交互等缺点。智慧烟感采用无线通信,具备即插即用、无需布线、易于安装等特点。在该文档中,我们基于华为一站式开发工具平台(VS code工具IoTlink插件),从设备(小熊派开发套件)、平台(IoTDA华为物联网平台)、端到端构建一款智慧烟感解决方案样例,带您体验十分钟快速上云。实现智慧烟感检测并上报烟雾浓度值,显示在IoTDA控制台,并在IoTDA控制台远程控制蜂鸣器开关的功能。开发环境开发板:小熊派BearPi-IoT开发套件(包含NB卡、NB模组、智慧烟感功能模块、USB数据线等),您可以前往华为云市场购买。软件:VScode,IoT Link插件、华为云(已开通设备接入服务)、win7及以上版本的64位操作系统(本文以windows 10 64-bit系统调试)。整体流程硬件连接将NB卡插入到NB-IoT扩展板的SIM卡卡槽,确保插卡的时候卡的缺口朝外插入,如图1所示。将烟雾浓度采集控制板和NB-IoT扩展板插入到开发板上,注意安装方向,然后用USB数据线将小熊派开发板与电脑连接起来。显示屏有显示,电源灯被点亮,说明开发板通电成功。安装IoT Link Studio插件IoT Link Studio是针对IoT物联网端侧开发的IDE环境,提供了编译、烧录、调试等一站式开发体验,支持 C、 C++、汇编等多种开发语言,让您快速、高效地进行物联网开发。以win10为例,获取电脑的系统配置:在运行窗口中输入pc,然后单击“属性”,查看系统配置,因为后续安装软件要选择操作系统。访问 这里 ,根据您电脑系统配置,下载匹配的Visual Studio Code并安装。(本文以windows 10 64-bit系统Visual Studio Code为例。请下载1.49版本,其他版本不支持IoT Link)。注:Visual Studio Code不支持苹果Mac系统。安装成功后,打开VSCode 插件应用商店,搜索 IoT Link 找到IoT Link,然后单击安装。首次启动配置。IoT Link Studio 首次启动时会自动从网络下载最新的SDK包以及gcc依赖环境,请确保您的网络可用。安装过程中请不要关闭窗口,耐心等待。安装完成后重启VSCode使插件生效。说明:若您的网络需要配置代理,请在VSCode主页,选择左下角-设置-应用程序-代理服务器,在Proxy Support下拉框中选择“on”,对扩展使用代理支持。如果仍然无法访问网络导致自动下载SDK失败,可从手动下载SDK,下载完成后解压至默认安装路径 C:\Users\用户名\.iotlink\sdk,(如果安装路径有更改,请找到VS Code的安装路径,把手动下载的“IoT_LINK”解压后拷贝到\.iotlink\sdk下)。配置IoT link Studio工程单击VSCode底部工具栏的“Home”。Home用来管理IoT Link工程;Serial用来输入AT指令检查开发板状态;Build用来编译示例代码(创建工程后显示);Download用来把编译后的代码烧录到MCU(创建工程后显示)。在弹出界面中单击“创建 IoT 工程”,输入工程名称,工程目录,并选择开发板的硬件平台和示例工程模板。工程名称:自定义,如Smoke。工程目录:可以使用工具安装的默认路径,也可以选择系统盘以外的其他盘,如D:\。硬件平台:当前提供的demo只适配STM32L431_BearPI硬件平台,请选择STM32L431_BearPI。示例工程:本示例中,我们以智慧烟感为例,请选择oc_smoke_template demo,否则烧录的demo样例和在控制台定义的产品模型不匹配,无法上报数据。单击“确定”,导入完成。编译并烧录代码由于提供的demo样例中已配置好和华为云物联网平台的对接信息,您可以直接编译(代码不用做任何修改),并烧录到小熊派开发板MCU,节省开发时间。单击VSCode底部工具栏的“Build”,等待系统编译完成。编译成功后,界面显示“编译成功”。使用USB数据线,将小熊派开发与电脑连接,开发板右上角的拨测开关拨到右侧“AT-MCU模式”。单击VSCode底部工具栏的“Download”,等待系统烧录完成。烧录成功后,界面显示“烧录成功”。说明:如果显示烧录失败,可能是开发板没有驱动导致与电脑无法串口通信,请参考步骤2检查ST-Link驱动是否安装成功,如果驱动未安装,则参考这里下载并安装ST-Link驱动。(可选)安装ST-Link驱动。访问ST官网,下载ST-Link驱动,或者直接使用提供的驱动.zip包。双击stlink_winusb_install.bat文件进行自动安装。(本文以Windows10-64bit ST-Link 2.0.1为例)。注:您也可以使用适配您系统版本的exe文件进行安装。打开PC设备管理器可查看对应的驱动是否安装成功。若下图所示,表明驱动安装成功。创建产品某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件等资源。访问设备接入服务,单击“立即使用”进入设备接入控制台。选择左侧导航栏的“产品”,单击右上角下拉框,选择新建产品所属的资源空间。单击右上角的“创建产品”,创建一个基于LwM2M/CoAP协议的产品,填写参数后,单击“立即创建”。基本信息所属资源空间选择您需要归属到的资源空间产品名称自定义,如“BearPi_Smoke”协议类型选择“LwM2M/CoAP”数据格式选择“二进制码流”厂商名称自定义,如“BearPi”所属行业无设备类型Smoke产品创建成功后,单击产品进入产品界面,进行后面操作。定义产品模型在产品详情,“模型定义”页面,单击“自定义模型”,配置产品的服务。产品模型设计思路:表1 设备服务列表服务类型(ServiceID)服务描述Smoke实时检测烟雾状况服务能力如表2、表3所示。表2 Smoke能力描述属性名称数据类型数据范围属性列表Smoke valueint0 ~ 65535表3 Smoke命令列表能力描述命令名称命令字段字段名称类型数据长度枚举命令列表Smoke control beep下发命令beepstring3ON、OFF响应命令beep_stateint//新增服务类型Smoke进入“新增服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确认”。“服务ID”:Smoke“服务类型”:建议和服务ID保持一致“服务描述”:实时检测烟雾状况在“Smoke”的下拉菜单下单击“添加属性”,填写相关信息,单击“确认”。属性名称:Smoke_Value“数据类型”:int(整型)“访问权限”:可读、可写“取值范围”:0~65535“步长”:0“单位”:不填写在“Smoke”的下拉菜单下单击“添加命令”,填写命令名称“Smoke_Control_Beep”。图1 新增命令在“新增命令”弹框,分别单击“新增输入参数”和“新增响应参数”,填写相关信息后,单击“确认”。图2 新增参数图3 新增参数编解码插件开发在产品详情插件开发页面,选择“图形化开发”,单击“图形化开发”。在“在线开发插件”区域,单击“新增消息”。说明:请按照本文档提供的操作开发编解码插件,确保添加字段的顺序和本文档提供的顺序保持一致。新增Smoke消息,配置示例如下:消息名:Smoke消息类型:数据上报在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。单击“添加字段”,添加Smoke_Value字段,填写相关信息后,单击“确认”。名字:Smoke_Value数据类型:int16s在“新增消息”页面,单击“确认”,完成Smoke_Value的配置。新增Smoke_Control_Beep消息,配置示例如下:消息名:Smoke_Control_Beep消息类型:命令下发添加响应字段:是在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,默认值填0x9,然后单击“确认”。单击“添加字段”,勾选“标记为响应字段标识”,添加响应标识字段mid,然后单击“确认”。单击“添加字段”,添加“Beep”字段,然后单击“确认”。名字:Beep数据类型:string长度:3在“新增消息”页面,单击“添加响应字段”,勾选“标记为地址域”,添加地址域字段 messageId,默认值填0xa,然后单击“确认”。单击“添加响应字段”,勾选“标记为响应标识字段”,添加响应标识字段mid,然后单击“确认”。单击“添加响应字段”,勾选“标记为命令执行状态字段”,添加命令执行状态字段 errcode,然后单击“确认”。单击“添加响应字段”,添加Beep_State响应字段,填写相关信息,单击“确认”。名字:Beep_State数据类型:int8u长度:1完成消息 Smoke_Control_Beep的配置后,单击“确认”。拖动右侧“设备模型”区域的属性字段、命令字段和响应字段,与数据上报消息、命令下发消息和命令响应消息的相应字段建立映射关系。单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。注册设备本文介绍集成NB模组设备的注册方法。在产品详情页面,选择“在线调试”,单击“新增测试设备”,此处新增的是非安全的NB-IoT设备。在新增测试设备页面,选择“真实设备”,并填写设备名称,设备标识码。设备名称:Test(自定义即可);设备标识码:设备的IMEI号,用于设备在接入物联网平台时携带该标识信息完成接入鉴权,可在NB模组上查看。您也可以将拨测开关拨到AT-PC模式,选择STM的端口,波特率设置为9600,输入指令“AT+CGSN=1”获取IMEI号。可参考下图将IMEI号复制至控制台。注:获取IMEI注册完设备后,需要将开发板的拨测开关拨到“AT-MCU”模式,因为开发板在MCU模式下才会通过NB卡连接网络。设备注册方式:选择不加密。数据上报平台和开发板建立连接后,上报烟雾浓度值。登录设备接入服务控制台,选择“ 设备 > 所有设备”。选择这里注册的设备,单击“查看”进入设备详情,查看上报到平台的数据。命令下发登录设备接入服务控制台,选择此处创建的产品,单击产品进入产品详情页。选择“在线调试”,单击注册的设备进入调试页面。设置命令参数后,单击“立即发送”,烟雾报警器鸣叫,下发OFF命令后,关闭蜂鸣器。(可选)配置设备联动规则选择左侧导航栏的“规则 > 设备联动”,单击页面右上角的“创建规则”。参考下表参数说明,创建设备联动规则。参数名称说明规则名称创建的规则名称,例如“Smoke_Beep”。立即触发勾选“立即触发”生效时间选择“一直生效”。描述对该规则的描述,如“烟雾浓度高于600时蜂鸣器鸣叫”。触发条件单击“添加条件”;在下拉框中选择“指定设备触发”,选择2中添加的设备;“服务类型”选择“smoke”,“属性”选择“Smoke_Value”,“操作”选择“>”,“值”填写“600”,单击“触发机制”,“无效触发抑制选择”选择“需要”,数据时效”填写“300”,然后单击“确认”。执行动作单击“添加动作;“动作类型”选择“下发命令”,下发设备选择2创建的设备;“服务类型”选择“smoke”,“命令”选择“Smoke_Control_Beep”,单击“参数配置”,“Beap”的值选择“ON”,然后单击“确认”。(可选)验证操作将降温剂喷在烟雾传感器周围,模拟烟雾浓度。当烟雾浓度大于600时,蜂鸣器鸣叫。使用AT指令定位模组通信问题IoT Link在与物联网平台连接使用时,可使用AT指令快速定位模组与云端连通性问题,提高开发效率。本节将以“小熊派开发板”为例,介绍如何使用AT指令检测通信模组常见问题,如设备无法上线,数据上报不成功等。小熊派开发板和电脑已正常连接(确保驱动已安装),并将开发板右上角的拨测开关切换到AT-PC模式。单击VSCode底部工具栏的“Serial”。选择2中查看的端口号,波特率设置为9600,然后单击“打开”。输入“AT+CGATT?”,然后单击“发送”,若返回“+CGATT:1”,表示网络附着成功(附着成功代表NB-IoT联网正常),返回“+CGATT:0”表示网络附着失败(附着失败代表NB-IoT联网异常),请查看SIM卡是否插入正确,或联系运营商检查网络状态。
-
场景简介:通过恒温控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节。该场景主要描述的是应用侧或控制台可以给离线设备下发缓存命令,待设备上线后执行,控制台通过设备影子配置属性,待设备上线后上报的属性不匹配的话,会自动下发属性修改的指令,直至修改成功。核心知识点:产品模型、编辑码插件、设备影子、属性上报、属性修改。最佳实践参考:恒温空调。
-
场景简介:煤气检测器发现煤气浓度超标时,自动关联无线推窗器把窗户打开,起到通风的作用。该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备。核心知识点:产品模型、编辑码插件、属性上报、命令下发、MQTT协议、设备联动规则。最佳实践参考:煤气浓度过高自动打开推窗器。
-
场景简介:已对接存量设备的网关,不用迁移就可以实现对既有设备和新设备的兼容控制。该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,用户可以在控制台产品详情中自定义Topic,通过应用侧接口或控制台创建数据转发规则,把设备上报的消息转发给其他华为云服务,供应用侧用户主动去消费。核心知识点:产品模型、消息上报、消息下发、MQTT协议、数据转发规则、自定义Topic。最佳实践参考:使用自定义Topic进行通信。
-
场景简介:通过收集自动售货机系统的销售数据,EI数据分析售货销量状况。该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,应用侧可以到物联网平台订阅设备侧变化的通知,用户可以在控制台或通过应用侧接口创建数据转发规则,把设备上报的属性转发给其他华为云服务。核心知识点:产品模型、编辑码插件、订阅推送、属性上报、MQTT协议、数据转发规则。最佳实践参考:数据转发至大数据平台分析并呈现。
-
场景简介:路灯管理系统通过接入物联网平台,监控路灯状态,控制路灯开关(集成了NB模组的智慧路灯)。该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,应用侧可以到物联网平台订阅设备侧变化的通知,也可以给设备侧下发命令。核心知识点:产品模型、编解码插件、订阅推送、属性上报、命令下发。最佳实践参考:基于小熊派开发智慧路灯。
-
当接入园区的设备不在基线预置的范围内时,需要先在“统一设备服务”中定义该设备的标准模型,然后在ROMA中开发设备IO。图1 开发设备IO流程在“统一设备服务”中定义设备的标准模型,具体请参见《统一设备服务》文档。获取ROMA平台中“设备标准消息”的格式,以及“设备标准IoT接口”的定义,具体请参见《集成资产说明》。获取实际物理设备通过IoT网关上报的“原始消息”的格式,以及IoT网关对实际物理设备下发指令的接口定义,联系厂家或者IoT平台获取。在ROMA上开发设备IO,用于将设备发送的原始消息转换为标准消息,以及将业务侧下发的指令转换为设备实际执行的指令格式。例如基线预置的“人行闸机设备IO”,转换设备上报消息的前后格式如下表所示。表1 IO转换前后的消息对比原始消息设备IO转换后的2条标准消息{ "flag": "0", "body": { "deviceType": "Turnstile_BP", "notifyType": "deviceDataChanged", "requestId": "0e420edec77449b69fbd46937adad5f0", "service": { "serviceType": "AlarmService", "data": { "PassAlarm ": "1", "DeviceAlarm ": "0" }, "eventTime": "20191023160045", "serviceId": "InfoService" }, "manufacturerId": "ZYD", "model": "ZYDAG-S01", "deviceId": "6c1420fe-3722-4ff8-b4a4-eaf4980b1d6f", "gatewayId": "26fc5bdf-eab1-4748-afc9-d98c5b882d51", "gatewayType":"basepoint" } }消息一:{ 'deviceType': 'Turnstile_BP', 'notifyType': 'deviceDataChanged', 'data': { 'deviceAlarm': '0' }, 'requestId': '0e420edec77449b69fbd46937adad5f0', 'manufacturerId': 'ZYD', 'eventTime': '20191023160045', 'messageCode': 'deviceAlarm', 'model': 'ZYDAG-S01', 'platformId': 'basepoint.connectionmax.iot', 'deviceId': '6c1420fe-3722-4ff8-b4a4-eaf4980b1d6f', 'gatewayId': '26fc5bdf-eab1-4748-afc9-d98c5b882d51', 'gatewayType':'basepoint' }消息二:{ 'deviceType': 'Turnstile_BP', 'notifyType': 'deviceDataChanged', 'data': { 'passAlarm': '1' }, 'requestId': '0e420edec77449b69fbd46937adad5f0', 'manufacturerId': 'ZYD', 'eventTime': '20191023160045', 'messageCode': 'passAlarm', 'model': 'ZYDAG-S01', 'platformId': 'basepoint.connectionmax.iot', 'deviceId': '6c1420fe-3722-4ff8-b4a4-eaf4980b1d6f', 'gatewayId': '26fc5bdf-eab1-4748-afc9-d98c5b882d51', 'gatewayType':'basepoint' }
-
集成架构设备通过IoT网关和平台接入园区时,集成架构如图1所示。南向设备接入的整个业务流程可以分为2部分:数据上报和指令下发,各模块的处理流程如下。数据上报IoT平台能力:南向设备通过IoT网关和IoT平台,将原始数据上报到ROMA MQS的原始topic中。基线预置能力:IoT Adapter IO依据消息类型将消息拆分,并根据设备类型和消息类型转发给对应设备IO的中间层topic。例如人行闸机上报的消息,会转发给“人行闸机设备IO”;门禁上报的消息会转发给“门禁设备IO”。设备IO能力:设备IO将消息转换成标准格式,并发送到“设备标准消息MQS Topic”。基线预置能力:统一设备服务消费标准topic中的消息,转换成事件供业务应用做逻辑判断。指令下发基线预置能力:统一设备服务提供标准化的设备模型和控制命令,无论是对哪种设备下发指令,业务应用都只需调用标准化的指令接口即可。基线预置能力:统一设备服务根据业务侧下发的指令,在设备的标准模型中查询到该设备的指令服务后回调ROMA侧的“设备标准IoT接口”。基线预置能力:ROMA侧的“设备标准IoT接口”依据指令中的“channel”和“deviceType”参数,将指令路由到设备IO。“channel”参数用于多IoT平台的场景,确定指令要下发给哪个IoT平台,例如新基点IoT平台的channel值为“basepoint.connectionmax.iot”。“deviceType”参数确定指令路由到哪个设备IO,deviceType的值来自统一设备服务中定义的标准模型。例如人行闸机的指令会路由到“人行闸机设备IO”,门禁的指令会路由到“门禁设备IO”。设备IO能力:设备IO将业务侧下发的指令转换为实际物理设备可以执行的指令,并回调南向IoT平台的指令下发接口。IoT平台能力:南向IoT平台向实际物理设备下发指令,控制设备的运行。在整个业务流程中,每种类型的设备,都需要有一个对应的设备IO,用于标准化实际设备上报的消息,以及转换业务下发给设备的指令,消息上报和指令下发通过IoT平台来实现。针对园区常见的一部分设备,基线已经预集成了对应的设备IO,无需开发任何代码,可直接接入使用,详细清单参见基线已集成设备。对于不在基线预置内的设备,只需开发对应的设备IO即可,其它部分不需要开发,整个上行/下行流程和业务侧都无需变动,开发流程详见基线未集成设备接入指导。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签