阿里云物联网平台测评:以温度报警器开发为例

简介: 以温度报警器为例,介绍使用阿里云物联网平台开发该产品的全流程

1. 物联网平台概述

我曾在一家智能仪表公司担任软件研发部负责人,对物联网相关业务还是比较熟悉的。在公司的3年期间,主持或参与了多个物联网相关项目的开发工作。

一般来说,物联网项目可以划分为设备--物联网平台--业务平台,如下图:
在这里插入图片描述
具体解释下:

  • 设备即真实硬件设备,可以通过各种网络协议与物联网平台通讯,最容易理解的就是通过2G/3G/4G进行通讯。当然,由于物联网设备往往要求耗电量低(长续航)、通讯流量低(低成本),所以会采用COAP/MQTT等专门设计的协议进行通信。
  • 物联网平台可以与设备进行通信,包括接收设备上报的数据,以及对设备下发命令。
  • 业务平台一般意义上就是我们开发的应用系统了,我们的业务平台无需直接跟设备协议对接,而是通过物联网平台处理。

    上图中,我使用了阿里云物联网平台的示意图。实际上,设备与物联网平台之间的对接协议是多样化的(包括MQTT/COAP等),物联网平台与业务平台的对接也是多样化的(包括消息队列/HTTP消息推送等)。

2. 阿里云物联网平台的优势

物联网平台的搭建,其实可以有2种路线。

第一种是企业自研。由于物联网平台的复杂性,这种方式成本高、周期长,尤其是物联网平台往往面向海量物联网设备,技术难度是相当大的。

在物联网领域,百万、千万级的设备在线,十亿、百亿级的数据流量是比较常见的。

第二种是使用成熟的物联网平台,例如运营商提供的物联网平台,再就是云厂商提供的物联网平台。

此处以阿里云物联网平台为例,介绍下其优势。

2.1 快速接入

如果是自研的话,免不了跟硬件研发人员沟通设备接入细节。由于应用软件开发人员往往不懂底层硬件通讯协议和机制,所以这样的沟通环节会令人头痛。

如果使用物联网平台,硬件研发人员可以使用设备端SDK,快速连接设备上云,效率高。

如下图,阿里云物联网平台已经提供了多种Link SDK并具备详细文档,相关技术也很成熟。硬件研发人员可以直接使用SDK接入,软件开发人员也只需要面向物联网平台编程,双方都可以实现快速开发。
在这里插入图片描述

2.2 超高负载能力

阿里云支持亿级设备规模,自动扩展,保证连接稳定性,设备消息到平台处理时长在50ms以内。

同时具备百万并发能力,架构可水平扩展。核心消息处理系统采用无状态架构,无单点依赖,消息发送失败可自动重试。

原来在开发过程中的高并发、高性能等核心痛点问题,直接就解决了。

2.3 可用性

一些物联网使用场景,例如消防设备报警,是要求极高的可用性的。

阿里云物联网平台采用去中心化,无单点依赖,拥有多数据中心支持。承诺服务可用性达到99.95%以上,未达到可按标准理赔。故障处理1分钟发现、5分钟定位、30分钟解决。

所以采用物联网平台,可用性这块也是相当放心了。

2.4 安全性

看看阿里云物联网提供的安全机制,如果企业自己实现未免有点太复杂了。

  • 等保2.0版(三级等保),提供多重防护,保障设备数据安全。
  • 接入层使用高防IP防止DDoS攻击。
  • 设备认证保障设备安全与唯一性。
  • 设备数据传输链路支持TLS加密,保障数据不被篡改。
  • 核心密钥和数据加密存储防窃取。
  • 云盾护航和权限校验保障云端安全。
  • 平台安全由阿里云安全团队守护。

2.5 性价比

除去研发成本,企业在运营阶段要维护的服务器、数据库、消息队列、缓存,无疑会产生庞大的时间和金钱成本。

使用物联网平台的话,计费方式灵活多变,而且性价比很高。

以阿里云物联网平台为例:购买设备数为1万个、消息上下行TPS为100条/秒,规则引擎TPS为100条/秒、总费用在7416元/年。

3. 温度报警器开发

接下来以温度报警器为例,介绍使用阿里云物联网平台开发该产品的全流程。

3.1 开通物联网平台

阿里云产品较多,按下图选择【物联网平台】
在这里插入图片描述
进入物联网平台后,点击【立即开通】。
在这里插入图片描述
开通后可以看到一个公共实例,这个目前是免费的,我们就用公共实例进行温度报警器开发。
在这里插入图片描述

3.2 创建产品

进入公共实例,依次点击【设备管理】-【产品】-【创建产品】:
在这里插入图片描述
按下图创建温度报警器产品即可,可以看出我们的设备是通过wifi连网的,然后通过设备密钥进行认证。
在这里插入图片描述

3.3 添加设备

接下来,我们添加一个温度报警器产品类型的设备,此处的设备就是与现实中的硬件设备对应的。
在这里插入图片描述
点击【添加设备】后,按下图示例添加一台设备。
在这里插入图片描述
添加完成后,点击【一键复制设备证书】。
在这里插入图片描述
证书信息建议保存备用,具体内容如下:
在这里插入图片描述

3.4 定义产品模型

虽然我们创建了产品,但是产品能干啥,有什么属性和功能,目前都不明确。我们可以通过定义产品模型来明确。

进入公共实例的【产品】菜单,点击【查看】:
在这里插入图片描述
在【功能定义】中,点击【编辑草稿】。
在这里插入图片描述
然后点击【添加自定义功能】。
在这里插入图片描述
按下图添加温度属性,对应设备上报的温度。
在这里插入图片描述
最后别忘了点击【发布上线】,否则新增的功能不会生效。
在这里插入图片描述

3.5 开发硬件设备

此时可以让硬件研发人员,使用阿里云设备端SDK,开发硬件设备。在此期间如果业务平台软件开发人员需要测试,可以用物联网平台提供的【设备模拟器】先行测试,后面会演示如何使用模拟器。

3.6 订阅设备消息

阿里云物联网平台提供了订阅设备消息的功能,如下图,通过AMQP通道将消息传送到我们自己开发的业务系统。
在这里插入图片描述
进入公共实例,依次点击【规则引擎 】-【 服务端订阅】-【消费组】-【创建消费组】。
在这里插入图片描述
如下图创建温度报警器消费组。
在这里插入图片描述
然后依次点击【规则引擎】-【 服务端订阅】-【订阅列表】-【创建订阅】。如下图所示,完成温度报警器产品的设备上报消息订阅。
在这里插入图片描述

3.7 开发业务平台

接下来可以开发业务平台,接收设备上报的消息了。

首先下载阿里提供的示例代码包

该示例是一个maven工程,将工程导入到开发环境如IDEA或Eclipse。

然后打开AmqpClient.java,修改如下参数:
在这里插入图片描述
具体参数说明如下:

参数 说明
accessKey 登录物联网平台控制台,将鼠标指针移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。
accessSecret 同上
consumerGroupId 消费组ID
iotInstanceId 实例ID,只需传入空值。
clientId 客户端ID,需您自定义,长度不可超过64个字符。可以使用AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识。
connectionCount 启动AMQP客户端的连接数,最大不超过64个。用于实时消息推送的扩容。
host AMQP接入域名。{uid}.iot-amqp.{YourRegionId}.aliyuncs.com,其中{uid}:您的阿里云账号ID。可登录物联网平台控制台,将鼠标指针移动到账号头像,查看账号ID。{YourRegionId}:请替换为您的物联网平台设备所在地域的Region ID。

4. 温度报警器测试

项目参数配置完成后,运行AmqpClient类。此时在消费组详情中可以看到,客户端已经在线了。
在这里插入图片描述
此处的客户端ID,即配置的clientId参数,说明订阅已经生效。
在这里插入图片描述
依次点击【监控运维】-【设备模拟器】-【启动设备模拟器】。
在这里插入图片描述
然后上报一个温度值100,如下图
在这里插入图片描述
点击【发送指令】后,控制台日志输出如下:
在这里插入图片描述
由于内容太长,截图不好展示,我提取关键信息如下:

{"deviceType":"CustomCategory","requestId":"1657767675834","gmtCreate":1657767676363,"deviceName":"alarmDevice1","items":{"temperature":{"value":100,"time":1657767676360}}}

可以看到,设备上报的温度计对应的时间信息,已经发送到我们的客户端程序了。

对于业务平台而言,我们只需要构建一个maven工程,然后引入阿里云Demo项目中的依赖,并将AmqpClient客户端加入到我们的业务平台即可。

5. 小结

第一,说一下真实设备接入问题,上面的测试我使用了设备模拟器,这个比较简单快速。如果企业具有硬件研发人员,则可以使用阿里云物联网平台的Link SDK实现硬件的快速接入。

第二,说一下上行指令和下行指令问题,上行指的是设备将消息发送到物联网平台,然后物联网平台将消息传输给业务平台的过程。前面所描述的温度报警器上报温度值即为上行指令。

而下行指令指的是业务平台主动发送命令给物联网平台(一般通过HTTP/HTTPS),然后物联网平台将命令发送给设备的过程。

第三,说一下业务平台的功能设计。上面我们已经接收到报警器上传的温度值了,我们可以根据具体情况(例如温度大于50度)给用户发送报警信息。可以通过短信、电话、微信消息来通知用户。

真实设备出厂时,贴上包含设备信息的二维码,用户扫码后填入自己的手机号、住址等信息,这样用户信息就跟设备信息绑定起来了。

最后总结:使用阿里云物联网平台,软硬件研发人员都只需要跟物联网平台对接,阿里云物联网平台具备完善的SDK和文档,十分方便。另外,基于阿里云的技术基石,企业可以轻易的享受高性能、高并发、高可用、高度安全、高性价比,非常有意义。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
1月前
|
存储 弹性计算 数据挖掘
阿里云4核8G云服务器价格多少钱?2024年阿里云4核8G云服务器价格及性能测评参考
2024年,阿里云针对4核8G配置的云服务器提供了多种实例规格,包括经济型e实例、通用算力型u1、计算型c7等。这些不同实例规格的服务器在性能参数和费用上都有所不同,以满足不同用户的需求。其中,通用算力型u1实例的4核8G云服务器在价格上表现出色。新用户专享活动价仅需955.58元一年,折合每月仅需80元。这一价格相较于同类产品来说,性价比极高。同时,该服务器配备了高性能的ESSD云盘,能够确保用户在存储操作系统、应用程序和数据时获得最佳体验。
247 0
|
1月前
|
弹性计算
阿里云3M带宽云服务器并发多大?阿里云3M带宽云服务器测评参考
在探讨云服务器3M带宽能支持多大并发这一问题时,我们首先要明白一个关键点:并发量并非仅由带宽决定,还与网站本身的大小密切相关。一般来说,一个优化良好的普通网站页面大小可能只有几K,为便于计算,我们可以暂且假定每个页面大小为50K。
962 1
|
10天前
|
人工智能 搜索推荐 测试技术
|
29天前
|
Cloud Native 安全 Serverless
【阿里云云原生专栏】低代码开发在云原生平台的应用:阿里云低代码服务探索
【5月更文挑战第27天】在云原生时代,低代码开发凭借其图形化界面和预构建模块,简化了应用开发,提升了效率。阿里云积极探索低代码领域,推出函数计算FC和应用配置中心ACM等服务。FC让开发者无需关注基础设施,仅需少量代码即可实现应用部署,而ACM则提供动态配置管理,增强应用灵活性。阿里云的这些服务为企业数字化转型提供了高效、安全的解决方案,预示着低代码开发在云原生平台上的重要地位。
208 1
|
1月前
|
Cloud Native 安全 物联网
【阿里云云原生专栏】云边端一体化:阿里云如何利用云原生技术赋能物联网
【5月更文挑战第22天】阿里云借助云原生技术赋能物联网,实现云边端一体化,提升系统弹性与敏捷性。通过容器化部署,保证高可用性与可靠性。在智能交通等领域,阿里云提供高效解决方案,实现实时数据分析与决策。代码示例展示如何使用阿里云服务处理物联网数据。同时,阿里云重视数据安全,采用加密和访问控制保障数据隐私。丰富的工具和服务支持开发者构建物联网应用,推动技术广泛应用与发展。
192 1
|
1月前
|
安全 持续交付 云计算
利用阿里云开发中遇到的挑战与解决方案
阿里云面临开发者在网络延迟、安全性、成本管理和自动化部署方面的挑战。解决方案包括使用全球负载均衡和CDN提升网络性能,依赖安全组和SSL证书保障数据安全,通过费用预估和资源优化控制成本,以及借助容器服务和DevOps工具实现自动化部署。阿里云将持续提供支持,助力开发者克服挑战。
156 1
|
1月前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
1月前
|
安全 小程序 网络安全
阿里云腾讯云免费SSL证书托管系统的开发初衷
由于Google等公司推动,互联网安全趋势将SSL证书期限统一缩短至3个月,阿里云和腾讯云相继跟进。对于管理多个站点的小公司而言,手动维护变得繁琐。为自动化此过程,作者探索使用API解决方案。通过研究腾讯云API,成功实现证书的自动创建、审核和下载。为应对无免费到期提醒服务,作者创建计划任务,在证书到期前7天发送提醒,初期采用短信提醒,并增设公众号模板消息作为备选方案,完成到期提醒系统的构建。接下来的文章将讨论SSL证书的申请和下载流程。
57 2
|
1月前
|
监控 物联网
LabVIEW开发基于物联网的多功能功率分析仪
LabVIEW开发基于物联网的多功能功率分析仪
25 2
|
1月前
|
传感器 机器学习/深度学习 算法
LabVIEW开发工业物联网状态监测
LabVIEW开发工业物联网状态监测
29 2

热门文章

最新文章

相关产品

  • 物联网平台