IoT企业物联网平台,数据服务开发实战

简介: IoT企业物联网平台开发实战

一、企业物联网平台开发实战

1、设备通过MQTT协议与您在阿里云上购买的IoT企业实例建立双向连接,上报设备采集的数据。

2、通过数据解析与分析洞察功能将上传数据进行分析并将通过自定义Topic以及AMQP服务端使用户获取分析后的数据。

二、创建企业实例

首先,我们登录物联网平台控制台(https://iot.console.aliyun.com), 点击购买实例来创建一个企业实例。

然后,在购买页面,根据实际业务需求,选择地域、实例类型、设备数量、消息上下行TPS、规则引擎TPS等参数,点击立即购买,付费成功后,即可看到企业实例创建中。

稍等几分钟后,企业实例创建完成。进入企业实例,我们可以看到当前规格参数,设备接入点信息,AMQP订阅接入点信息,云端API调用接入点信息。如下图:

1689842981040-0841088c-c965-4bd5-ad65-2079c180bc20.png

三、创建产品和注册设备

在企业实例的设备管理页面,我们需要先创建一个产品温湿度传感器,数据通信以JSON格式,认证方式为设备秘钥

1689905801297-2e558001-feb2-410f-822c-5222d97368a7.png

产品功能定义页面,我们可以添加电量、状态等属性,具体细节如下图:

1689910346106-bb674f05-52b6-42d6-9402-32f31b3c67ec.png

最后,我们在设备管理页面,基于温湿度传感器产品,注册一个物理设备,并获取设备身份认证的三元组。如下图:

1689910436327-a3a74848-d200-4869-8986-9296d3a048a3.png

四、设备接入和上报数据

获取设备身份三元组后,即可通过MQTT协议接入到我们开通的企业实例,并上报物模型数据。设备端应用程序示例如下:


开发环境:

1、下载Demo代码,并解压。

2、打开IntelliJ IDEA,导入Demo包中的示例工程data-service-demo,在pom.xml文件中,已添加Maven依赖。

3、在src/main/java/com/iot/demo/subsample/MqttSample/MqttTest.java文件中,参照下表,修改参数值。

1690164419422-1dbac317-cf46-46b1-99d4-267a80926483.png1692954067942-877fd211-25b6-481d-9193-78b82b45ea2c.png

参数

示例

说明

deviceName

device1

您添加设备后,保存的设备证书信息,请参见设备证书信息

您可在控制台中设备device1设备详情页面查看。

deviceSecret

b2e6e4f102458d84***

productKey

g18l***

productSecret

a2rt******

已烧录至设备的产品ProductSecret,可登录物联网平台控制台,在产品详情页查看。

4、运行src/main/java/com/iot/demo/DemoApplication.java文件中的demo.mqtt()即可

private void reportProperty(){
    if (StringUtils.isEmptyString(identity) || valueWrapper == null) {
        ALog.e(TAG, "数据格式错误");
        return;
    }
    LinkKit.getInstance().getDeviceThing().thingPropertyPost(reportData, new IPublishResourceListener() {
        public void onSuccess(String s, Object o) {
            // 属性上报成功
            ALog.d(TAG, "上报成功 onSuccess() called with: s = [" + s + "], o = [" + o + "]");
        }
        public void onError(String s, AError aError) {
            // 属性上报失败
            ALog.d(TAG, "上报失败onError() called with: s = [" + s + "], aError = [" + getError(aError) + "]");
        }
    });
}

获取的是缓存在设备本地的属性数据,不是云端实时的属性数据,代码如下:

// 根据 identifier 获取当前物模型中该属性的值
String identifier = "xxx";
LinkKit.getInstance().getDeviceThing().getPropertyValue(identifier);
// 获取默认模块(非用户自定义模块)的属性列表
LinkKit.getInstance().getDeviceThing().getProperties()

完整代码链接:https://code.alibaba-inc.com/IoT-DSD/data-service-demo

程序运行后,我们看到设备状态为在线物模型数据中可以看到最新上报的温度湿度值。

1689911724441-f69df1cb-4f22-49c8-9dbf-cf71dc6f286a.png

监控运维日志服务里,也可以看到设备上报数据的日志。如下图:

1689911961637-c1ea4e89-e575-4424-8a80-cacacbb80283.png

五、创建自定义Topic

在温湿度传感器产品Topic类列表页面,选择自定义Topic,点击定义Topic类来创建自定义Topic。

设备操作权限选择发布并将Topic类填写完整

1689918400591-7304fecf-ecf7-498e-9d59-fc30cea32439.png

1689918586388-c9e23b2e-b270-44be-ada3-bf97f17cd26e.png

六、数据解析

首先,在数据服务数据解析里,新建温湿度解析任务用以对上报数据进行预处理。

1689853132229-5e24dcbd-ad60-49d8-a7f3-7a5808740a57.png

点击温湿度解析,进入数据解析工作台进行节点配置。

在源节点处,所属产品选择温湿度传感器,Topic类型选择物模型通信,可以处理设备通过物模型Topic上报的数据,如下图所示:

1689918788377-11ae67d8-af5d-4d6e-8f54-3be59d61dd51.png

按需配置数据处理节点,如数据计算,相邻消息计算等。

1689918846872-08b91a13-2255-4ca3-ab19-8dbd5772e10c.png

在目标节点处,目标类型选择IoT实例Topic,所属产品选择温湿度传感器,目标Topic选择步骤五新创建的Topic类。

1689918984154-2f3a7ad3-8a7e-40c8-9050-7aee223e4577.png

完成校验启动,便可通过自定义Topic进行实时处理后数据的通信。

七、服务器实时接收数据

我们可以通过服务端订阅AMQP方式,实时接收自定义Topic上报的处理后的数据。

首先,我们要在企业实例的服务端订阅中,创建一个新的消费组,用来接收特定类型的消息。如下图:

1689920756331-a4acf327-9c6c-4efa-ba34-8fc95d16e5e3.png

然后,在服务端订阅中进入订阅列表页签,来创建订阅。

消费组选择上一步新建的温湿度传感器数据接收消费组。

1689920999740-646c2710-6509-4490-8fd5-008c14cc3e31.png

最后,我们在业务服务器编写程序,使用阿里云账号的AccessKey与IoT企业实例建立AMQP连接,代码示例如下:


开发环境:

1、下载Demo代码,并解压。

2、打开IntelliJ IDEA,导入Demo包中的示例工程data-service-demo,在pom.xml文件中,已添加Maven依赖。

3、在src/main/java/com/iot/demo/pubsample/AmqpClient.java文件中,参照下表,修改参数值。

1692955325279-5b1e19a6-cbae-4b32-88b4-5313c047e469.png

参数

示例

说明

accessKey

LTAI4GFGQvKuqHJhFa******

登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。

accessSecret

iMS8ZhCDdfJbCMeA005sieKe******

consumerGroupId

VWhGZ2QnP7kxWpeSSjt******

已创建的温控器数据接收消费组ID。请参见配置AMQP服务端订阅的步骤2。

iotInstanceId

"iot-cn-6ja***"

IoT测试环境的实例ID。

您可在控制台的实例概览页面查看。

clientId

12345

客户端ID,可自定义,长度不可超过64个字符。建议设置为您的AMQP客户端所在服务器UUID、MAC地址、IP等唯一标识,方便您识别区分不同的客户端。

AMQP客户端接入成功后,在控制台的温控器数据接收的消费组详情页面,显示该参数。

connectionCount

4

启动AMQP客户端的连接数,最大不超过64个。用于实时消息推送的扩容。

消费组详情页面会以${clientId}+"-"+数字形式,显示连接的客户端。其中数字最小值为0。

host

iot-***.amqp.iothub.aliyuncs.com

您购买实例成功后,保存的AMQP接入域名,请参见创建企业版实例

您可在控制台中实例IoT测试环境实例详情页面,单击查看开发配置,单击AMQP页签查看。

4、运行运行src/main/java/com/iot/demo/DemoApplication.java文件中的demo.amqp()即可

完整代码链接:https://code.alibaba-inc.com/IoT-DSD/data-service-demo

启动后,我们可以看到处理的数据,如下图:

1692956087469-a4ad4b62-608a-4b8f-83f5-65cd0538edb9.png

返回参数:

参数

参数值

说明

topic

/***********/******/user/devmsg

自定义Topic

messageId

1682274939191261184

消息的ID

content

{"temperature":23,"humidity":21,"time":1604548451951}

消息的内容


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
29天前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
45 1
|
21天前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
9天前
|
存储 传感器 物联网
结合物联网开发探讨C语言的变量
在物联网(IoT)开发中,C语言的变量起着至关重要的作用。由于物联网设备资源有限,C语言的高效性和对硬件的直接控制使其成为开发嵌入式系统的首选。
|
15天前
|
存储 物联网 关系型数据库
PolarDB在物联网(IoT)数据存储中的应用探索
【9月更文挑战第6天】随着物联网技术的发展,海量设备数据对实时存储和处理提出了更高要求。传统数据库在扩展性、性能及实时性方面面临挑战。阿里云推出的PolarDB具备高性能、高可靠及高扩展性特点,能有效应对这些挑战。它采用分布式存储架构,支持多副本写入优化、并行查询等技术,确保数据实时写入与查询;多副本存储架构和数据持久化存储机制保证了数据安全;支持动态调整数据库规模,适应设备和数据增长。通过API或SDK接入IoT设备,实现数据实时写入、分布式存储与高效查询,展现出在IoT数据存储领域的巨大潜力。
29 1
|
18天前
|
传感器 安全 物联网
物联网安全实战:保护你的智能设备免受攻击
【9月更文挑战第3天】物联网安全是一项复杂而艰巨的任务,需要我们共同努力来应对。通过采取上述实战措施,我们可以有效保护智能设备免受攻击,保障用户的数据隐私和网络安全。在未来的物联网发展中,我们将继续面临新的安全挑战和威胁,但只要我们保持警惕和不断创新,就一定能够构建一个更加安全、可靠的物联网生态系统。
|
23天前
|
消息中间件 存储 传感器
RabbitMQ 在物联网 (IoT) 项目中的应用案例
【8月更文第28天】随着物联网技术的发展,越来越多的设备被连接到互联网上以收集和传输数据。这些设备可以是传感器、执行器或其他类型的硬件。为了有效地管理这些设备并处理它们产生的大量数据,需要一个可靠的消息传递系统。RabbitMQ 是一个流行的开源消息中间件,它提供了一种灵活的方式来处理和转发消息,非常适合用于物联网环境。
48 1
|
16天前
|
机器学习/深度学习 人工智能 算法
物联网(IoT)就像是一个大型派对,无数的设备都在欢快地交流着信息
【9月更文挑战第4天】在这个万物互联的时代,物联网(IoT)犹如一场盛大的派对,各类设备欢聚一堂。然而,如何让这些设备互相理解并协同工作呢?这就需要机器学习与人工智能的助力。例如,智能空调通过学习你的使用习惯来调节温度,使你更加舒适;智能安防系统则能识别异常行为并及时报警,保障家庭安全。此外,智能农业、交通等领域也因机器学习和人工智能的应用变得更加高效。下面通过一个简单的温度预测代码示例,展示机器学习在物联网中的实际应用,让我们一起感受其强大潜力。
20 0
|
1月前
|
存储 传感器 监控
理解并利用物联网(IoT)数据的技术探索
【8月更文挑战第11天】物联网数据是数字化转型的重要资源。通过深入理解物联网数据的特性和价值,并采取有效的收集、处理和分析策略,我们可以更好地利用这些数据为企业决策提供支持、优化运营效率、创造新的商业模式并推动数字化转型的深入发展。
|
1月前
|
存储 物联网 关系型数据库
PolarDB在物联网(IoT)数据存储中的应用探索
随着物联网技术的发展,海量设备数据对数据库提出实时高效存储处理的新要求。PolarDB作为阿里云的高性能云数据库,展现了其在IoT数据存储领域的潜力。面对IoT数据的规模、实时性和多样性挑战,PolarDB凭借分布式架构,实现了高性能、高可靠性和高扩展性,支持动态扩展和冷热数据分层存储,满足IoT数据实时写入、查询及管理需求,展现出广阔的应用前景。
54 1
|
22天前
|
消息中间件 传感器 物联网
Producer 在物联网 (IoT) 中的应用
【8月更文第29天】在物联网 (IoT) 领域,设备和传感器不断生成大量的数据。为了有效地收集、处理和分析这些数据,通常会采用消息队列技术。消息队列允许设备将数据发送给后端系统进行进一步处理。在这个过程中,消息生产者(Producer)扮演着关键角色,负责将数据从设备发送到消息队列。本文将详细介绍如何使用消息生产者来收集来自各种传感器和其他 IoT 设备的数据,并提供一个基于 Python 和 Kafka 的示例代码。
27 0

相关产品

  • 物联网平台