草庐IT

猿创征文|不会代码也能玩开发?基于华为云 IoT 快速实现 0 代码体验物联网设备上云

白鹿第一帅 2023-04-18 原文

文章目录


前言

零代码,也就是不涉及代码开发,即使没有代码开发能力,也能根据对业务的理解,快速构建物联网业务应用。随着数字化转型不断深入,物联网企业应用开发的需求大增,不仅让软件开发人才炙手可热,更是让零代码、低代码开发成为了近年的潮流。各大平台纷纷推出零代码开发工具、低代码开发平台,降低用户的使用门槛,甚至让没有软件开发能力的企业也能完成应用搭建,极大地帮助企业提升应用集成开发效率的。本文以一款虚拟的智慧烟感器为例,带您快速了解物联网设备连接到云平台的步骤及相关概念。


一、物联网设备上云背景介绍

物联网,即字面意思,让“物”连上网络,比如,手机需要联网,家里的水表、电表、烟雾感应器等也都可以联网。完整的物联网架构一般分为感知层、平台层、应用层

  • 在”物”联网的过程中,感知层,也就是“物”负责信息收集和信号处理,通过感知识别技术,让物品“开口说话、发布信息”。
  • 应用层是物联网系统面向用户的客户端,通过对感知层收集到的信息进行分析、处理,挖掘有价值的数据,为用户提供丰富的特定服务。
  • 华为云 IoT 作为中间的平台层,在整个物联网体系架构中起着承上启下的关键作用,它实现了感知层设备的“管、控、营”一体化,为应用层提供统一的数据接口,构建了设备和业务的端到端通道。

二、实验环境准备

本次实验环境我们采用华为云提供的 IoT 开发平台,所以需要注册华为云账号,并完成实名认证

  • 如果你还没有通过实名认证的账号,可前往华为云账号中心,完成实名认证。
  • 如果你已拥有华为账号且已通过实名认证,可直接点击体验

三、智慧烟感器上云体验

3.1、选择向导式极速体验

进入体验页面,为了快速上手,我们选择“向导式极速体验”,具体如下图所示:

3.2、对智慧烟感器进行产品定义

我们本次实验以一款虚拟的智慧烟感器为例,烟感器的产品模型是指由烟雾浓度湿度温度等属性以及命令等组成的一组数据,用来描述烟感设备的物理性质。进入“产品定义”页面,我们可以看到在“向导式极速体验”中产品模型已经定义完成。

我们只需要自定义一个“产品名称”即可,点击“创建产品”进入下一步,具体如下图所示:


该智慧烟感器的产品属性具体如下表所示:

属性名称数据类型是否必选访问方式描述
alarmint(整型)可读,可写是否有烟雾报警,0 没有报警,1 有报警
smokeConcentrationdecimal(小数)可读烟雾浓度值
temperaturedecimal(小数)可读温度值
humidityint(整型)可读湿度值

3.3、定义目标设备标识码、注册设备

设备是某类产品的具体实现,在物理设备与云端通信之前,需要先在平台注册一个对应的设备,才能将物理设备的数据对应地接入到云端。这里我们基于上一步定义的产品,注册一个烟感设备。自定义一个“设备标识码”,即可点击完成“注册设备”,我的示例是这么填的,具体如下图所示:

3.4、根据需要选择设备演示包

本次体验将为你提供定制的设备演示包,用来模拟烟感器设备,向云平台上报数据。我们可以根据需要选择设备平台以及开发语言,并进行下一步,我选择的设备平台为 Windows,设备连接协议为 MQTT,开发语言为 Java,具体如下图所示:

3.5、下载、解压设备演示包

按照页面提示,我们下载设备演示包,具体如下图所示:


根据页面提示,我们需要执行解压操作,如果直接执行 bat 文件执行将会出错,设备演示包压缩包目录结构具体如下图所示:

3.6、执行 bat 文件,运行设备演示包

我们执行 bat 文件,将自动模拟烟感设备,具体如下图所示:


我们可以看到设备演示包在实时模拟向云端发送信息,具体如下图所示:


在控制台我们也可以查看设备演示包在实时模拟向云端发送的上报时间、上报值等实时数据,设备状态也由“未激活”变为“在线”,即已实现设备联网,具体如下图所示:

3.7、通过控制台向设备下发命令

我们也可以尝试输入数字,向设备下发命令。上报频率默认为 5 秒/次,我们将其调整为 1 秒/次查看上报频率变化,通过控制台我们可以看到上报时间频率明显加快,具体如下图所示:


在命令窗口我们也可以看到实时模拟向云端发送信息的信息频率也加快了,具体如下图所示:

3.8、体验完成

体验完成,退出点击“返回快速体验”即可,具体如下图所示:


感兴趣的同学也可以尝试一下使用虚拟设备体验基于示例代码开发


总结

华为云作为华为数字化转型的底座,同时也是互联网公司、各行业企业数字化转型的重要平台,越来越多的企业携手华为云开启数字化进程。为了降低企业应用开发门槛,华为云 IoT、AI 等服务都为开发者提供了不同程度的低代码开发工具,甚至有不少的零代码开发体验案例。开发者可以便捷地在华为云上免费体验各种零代码开发实践,加深初学者对业务流程的理解,为后续的深入学习建立基础。未来,万物相互感知、相互联接;AI 如同空气、阳光无处不在、无私普惠。让我们一起,把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

有关猿创征文|不会代码也能玩开发?基于华为云 IoT 快速实现 0 代码体验物联网设备上云的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  3. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  4. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  5. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  6. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  7. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  8. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  9. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

  10. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

随机推荐