摘要:在不到3分钟的操作里,不仅完成了一款智慧烟感设备在云端的模型定义,还通过在线调试了解到了设备和远端通信的过程。
本文分享自华为云社区《物联网设备上云难?华为云IoT帮你一键完成模型定义,快速在线调试设备》,作者:华为IoT云服务 。
物联网,即字面意思,让“物”连上网络,比如,手机需要联网,家里的水表、电表、烟雾感应器等也都可以联网。完整的物联网架构一般分为感知层 - 平台层 - 应用层。在”物”联网的过程中,感知层,也就是“物”负责信息收集和信号处理,通过感知识别技术,让物品“开口说话、发布信息”。应用层是物联网系统面向用户的客户端,通过对感知层收集到的信息进行分析、处理,挖掘有价值的数据,为用户提供丰富的特定服务。而华为云IoT作为中间的平台层,在整个物联网体系架构中起着承上启下的关键作用,它实现了感知层设备的“管、控、营”一体化,为应用层提供统一的数据接口,构建了设备和业务的端到端通道。
通常“物”要联网上云,需要先在物联网平台构建一款设备的抽象模型,使平台能够理解该款设备支持的服务、属性、命令等信息。比如,一个智慧烟雾感应器的模型里,包含以下信息:
部分服务以及相关属性定义如下图,大家可以感受一下:
是不是觉得很复杂?别怕,现在以上信息已经可以一键搞定了!
在华为云IoT平台上,提供了标准模型和厂商模型。标准模型遵循行业标准的产品模型,适用行业内绝大部分厂商设备,而厂商模型针对设备类型发布的产品模型,适用于用行业内少量厂家设备。我们可以根据需求选择相应的产品模型,一键导入到我们自己的产品中,然后根据实际情况进行增删调整属性即可。
注册华为云账号、实名认证
若您还没有通过实名认证的账号,可前往账号中心,完成实名认证。
如果您已拥有华为账号且已通过实名认证,可直接 点击体验。
1、进入体验页面,点击右上角“创建产品”
Tips:产品模型 用于描述设备具备的能力和特性。开发者通过定义产品模型,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息,如颜色、开关等。
2、在弹窗中自定义一个产品名称,比如本次以烟感设备为例,我们定义了“烟感8号”产品,设备类型为“烟雾感应器”,点击确定后,即可成功创建产品,再点击“查看详情”进入下一步。
3、在以下页面,华为云IoT平台提供了多种定义产品模型的方法,您可以根据自己需求,选择对应的方法定义产品模型。为了快速体验,我们建议您可以选择“导入库模型”,使用平台预置的产品模型,快速完成产品开发。
Tips:当前平台提供了标准模型和厂商模型。标准模型遵循行业标准的产品模型,适用行业内绝大部分厂商设备,而厂商模型针对设备类型发布的产品模型,适用于用行业内少量厂家设备。您可以根据实际需求选择相应的产品模型。
4、选择“SmokeDetector”,即烟雾感应器的模型,点击“确定”进入下一步。
5、在产品详情页里,可以通过切换“服务列表”中的不同服务,查看每个服务中包含的属性参数,平台还支持根据实际需求修改相应参数。至此,您已完成产品的定义!点击“在线调试”进入下一步。
Tips:“服务”是描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。
6、在调试页面,点击“新增测试设备”,在弹窗中选择“虚拟设备”,点击确定后即可创建一个用于模拟与云端进行通信的虚拟设备。
7、点击右边“调试”,进入调试页面。
8、尝试在应用模拟器中,模拟应用端向烟感设备下发命令,在valua中输入“1”,点击发送,可以在调试输出页面看到应用与设备之间通信的过程。
9、也可以在右上角切换到设备模拟器,模拟设备向云端平台上报数据,在电量batteryLevel中输入数值,点击发送,可以在调试输出页面看到应用与设备之间通信的过程。
10、左下角勾选“自动发送”,并设置自动发送的周期,比如“5秒”,模拟器将模拟设备,每5秒向平台上报一次数据,用于实时监控设备的状态。
恭喜您,到这里我们已经完成了物联网设备注册以及在线调试设备的体验!
在不到3分钟的操作里,我们不仅完成了一款智慧烟感设备在云端的模型定义,还通过在线调试了解到了设备和远端通信的过程。相信通过短短几步的操作,能让大家对物联网设备连接到云平台的步骤及相关概念已经有了很全面的了解,欢迎大家前往华为云IoT平台上尝试更多的物联网开发体验!
PS:华为云开发者社区体验活动火热进行中,欢迎来体验各种云上开发,还可领取丰厚奖品哟!点击参与活动
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
Devise是一个Ruby库,它为我提供了这个User类:classUser当写入:confirmable时,注册时会发送一封确认邮件。上周我不得不批量创建300个用户,所以我在恢复之前注释掉了:confirmable几分钟。现在我正在为用户批量创建创建一个UI,因此我需要即时添加/删除:confirmable。(我也可以直接修改Devise的源码,但我宁愿不去调和它)问题:如何即时添加/删除:confirmable? 最佳答案 WayneConrad的解决方案:user=User.newuser.skip_confirmation
一边学习thisRailscast我从Rack中看到了以下源代码:defself.middleware@middleware||=beginm=Hash.new{|h,k|h[k]=[]}m["deployment"].concat[[Rack::ContentLength],[Rack::Chunked],logging_middleware]m["development"].concatm["deployment"]+[[Rack::ShowExceptions],[Rack::Lint]]mendend我的问题是关于第三行。什么是传递block{|h,k|h[k]=[]}到Has
所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。
西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,
一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su
我不确定如何为我的搜索功能添加自动完成表单。"get"do%>nil%>我有一个具有自定义操作的Controllerdefquery@users=Search.user(params[:query])@article=Search.article(params[:query])end模型如下:defself.user(search)ifsearchUser.find(:all,:conditions=>['first_nameLIKE?',"%#{search}%"])elseUser.find(:all)endenddefself.article(search)ifsearchArt