阿里云物联网平台案例教程

2024-06-13 03:20

本文主要是介绍阿里云物联网平台案例教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、定义:

​ 物联网(简称IOT)把任何物体与物联网相连接,进行消息的交换和通信,实现对物品的智能化识别。简单说是:物联网就是把所有的物体连接起来相互作用,形成一个互联互通的网络,这就是物联网。如果说互联网是我们身体的虚拟大脑,那么物联网就是我们身体的感知系统,就像眼睛和耳朵一样,让我们能够感知外部事物。物联网包括感知、网络和应用三个方面。感知是数据的获取,包括听觉(语音识别)、视觉(摄像头、人脸识别)、感觉(气体、烟雾、红外传感器)、运动(振动、加速度传感器)等识别感知系统和芯片;网络是平台 / 运营商等存储和分析数据;应用即落地实现,如:智能家居、共享单车等。

2、区别:

物联网和互联网区别:

​ 物联网(IoT)和互联网(Internet)之间的主要区别在于它们所连接的对象和目的。互联网是指全球范围内通过网络相互连接的计算机系统。它主要用于人们之间的通信、信息共享和在线服务。

​ 而物联网是指各种物理设备和物体通过互联网进行连接,使它们能够相互通信和交换数据。这些物理设备可以是家用电器、工业机器、汽车、传感器等,它们可以通过物联网实现远程监控、智能控制、数据采集和分析等功能。

​ 简单来说,互联网是连接人与人之间的网络,而物联网则是连接物与物之间的网络。两者的连接对象和应用场景不同,但都是通过网络实现信息传输和交流。

3、阿里云优势

1、设备接入:

由于应用软件开发人员往往不懂底层硬件通讯协议和机制,所以这样的沟通环节会令人头痛。如果使用物联网平台,硬件研发人员可以使用设备端SDK,快速连接设备上云,效率高,此时阿里云物联网平台就开始接入了。提供了很多种Link SDK并具备详细文档,相关技术也很成熟。硬件研发人员可以直接使用SDK接入,软件开发人员也只需要面向物联网平台编程,双方都可以实现快速开发。
文档链接:
https://help.aliyun.com/zh/iot/use-cases/i-am-a-developer?spm=a2c4g.11186623.0.0.34f6f495tdPkMj
如下图:
在这里插入图片描述

2、可用性:

一些物联网使用场景,例如消防设备报警,是要求极高的可用性的。
阿里云物联网平台采用去中心化,无单点依赖,拥有多数据中心支持。承诺服务可用性达到99.95%以上,未达到可按标准理赔。故障处理1分钟发现、5分钟定位、30分钟解决。所以采用物联网平台,可用性这块也是相当放心了。

3、安全性:

设备认证:每个设备都有唯一的身份认证,确保只有合法的设备才能接入平台,防止假冒设备的侵入。
TLS加密传输:设备与平台之间的数据传输使用TLS协议加密,这就像为数据传输戴上了“防盗锁”,确保数据在传输过程中不会被篡改或窃取。
核心密钥和数据加密存储:重要的数据和密钥在存储时也会被加密,类似于将贵重物品存放在保险箱中,防止数据被盗取。
云盾护航和权限校验:阿里云提供的云盾服务会不断监控云端的安全,并且进行权限校验,确保只有授权用户才能访问数据和功能,保障云端的安全性。
阿里云安全团队守护:阿里云有专业的安全团队全天候守护平台的安全,及时发现并应对各种潜在威胁,保证系统的稳定运行。
通过这些多重防护措施,阿里云物联网平台能够有效保障设备和数据的安全,让企业不用花费大量精力和资源去自己实现复杂的安全机制。

4、案例开发:

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

1、开通物联网平台

进入物联网平台进行开通
在这里插入图片描述
开通后可以看到一个公共实例,这个目前是免费的,我们就用公共实例进行温度报警器开发。(大约等好几分钟)使的试用资源。免费
在这里插入图片描述

2、创建产品

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

3、添加设备

在这里插入图片描述
在这里插入图片描述
增加设备名称
在这里插入图片描述
添加完成后,点击【一键复制设备证书】。
在这里插入图片描述
证书需要保存:具体内容:
ProductKey:产品标识符
DeviceName:设备名称
DeviceSecret:设备密钥

4、定义产品模型

虽然我们创建了产品,但是产品能干啥,有什么属性和功能,目前都不明确。我们可以通过定义产品模型来明确。
进入公共实例的【产品】菜单,点击【查看】:
在这里插入图片描述
进入功能定义,在【功能定义】中,点击【编辑草稿】
在这里插入图片描述
然后点击【添加自定义功能】。选择温度
在这里插入图片描述
最后别忘了点击【发布上线】,否则新增的功能不会生效
在这里插入图片描述

5、开发硬件设备:

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

6、订阅设备消息

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

7、开发业务平台

接下来就是我们平台端进行开发,接收设备上报的消息了。
下载阿里云的实例代码包:
链接如下:
https://iot-demos.oss-cn-shanghai.aliyuncs.com/amqp/amqp-demo.zip?spm=a2c4g.11186623.0.0.7981574dLGysdZ&file=amqp-demo.zip
该示例是一个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。

5、测试:

项目参数配置完成后,运行AmqpClient类。此时在消费组详情中可以看到,客户端已经在线了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/621816455e984b1a8450f3f6c1bfa182.png
此处的客户端ID,即配置的clientId参数,说明订阅已经生效。Client等于:1234567890
在这里插入图片描述
进入【设备管理】-【设备模拟器】-【启动设备模拟器】
在这里插入图片描述
启动项目。看一下结果返回
在这里插入图片描述
可以看到,设备上报的温度计对应的时间信息,已经发送到我们的客户端程序了。
对于业务平台而言,我们只需要构建一个maven工程,然后引入阿里云Demo项目中的依赖,并将AmqpClient客户端加入到我们的业务平台即可。
重要的JSON如下:
在这里插入图片描述
deviceType: 设备类型,值为 CustomCategory,表示自定义类别的设备。

1iotId: 设备 ID,值为 1frNGTZoAEGdtL4zliMnk1fos0,用于唯一标识这个设备。

requestId: 请求 ID,用于唯一标识该请求。值为 1718161337237。

checkFailedData: 检查失败的数据,这里为空对象 {},表示没有检查失败的数据。

productKey: 产品 Key,值为 k1foskKQXqo,用于区分不同的产品。

gmtCreate: 设备创建时间,使用 Unix 时间戳格式。值为 1718161339839,表示设备记录创建的时间。

deviceName: 设备名称,值为 alarmDevice,表示设备的名称是 alarmDevice。

items: 设备的具体数据项,这是一个对象,包含了多个键值对,每个键值对代表一个数据项及其属性。

temperature: 表示温度数据项。
value: 温度的值,值为 100。
time: 记录温度的时间戳,值为 1718161339797。
具体解释如下:
temperature: 这是一个数据项,表示温度。
value: 100,这个值代表当前温度为 100(单位应该根据具体应用场景确定,可能是摄氏度)。
time: 1718161339797,这是一个 Unix 时间戳,表示记录这个温度值的时间。

8、总结

上行指令:

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

下行指令:

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

简单的说

上行指令:就像你在给朋友发信息。你的设备(比如一个温度报警器)就像你,物联网平台就像是一个社交媒体平台。你(设备)测量到温度数据,然后把这个数据发到社交媒体平台(物联网平台),然后平台会把这个消息转发给需要这些信息的人(业务平台)。所以,上行指令就是设备把信息发送到互联网平台,再由互联网平台转发给其他需要这些信息的地方。
下行指令:就像你的朋友通过社交媒体平台给你发信息。朋友(业务平台)想让你做某件事,于是先通过社交媒体平台(物联网平台)给你发信息,然后你(设备)收到信息后就去执行。这就是下行指令,业务平台通过互联网平台给设备发命令,设备收到命令后执行。

业务平台功能设计:

以温度报警器来说:上面我们已经接收到报警器上传的温度值了,我们可以根据具体情况(例如温度大于50度)给用户发送报警信息。可以通过短信、电话、微信消息来通知用户。
真实设备出厂时,贴上包含设备信息的二维码,用户扫码后填入自己的手机号、住址等信息,这样用户信息就跟设备信息绑定起来了。

概述图:

在网上找到了一个概要图觉得非常不错:
一般来说,物联网项目可以划分为设备–物联网平台–业务平台,如图:
在这里插入图片描述
1、设备通过MQTT协议与您在阿里云上购买的IoT企业实例建立双向连接,设备上报采集的数据,监听云端下达的指令;
2、通过规则引擎配置把上报的数据实时存储到指定数据库,无需编写代码
3、通过规则引擎配置把上报的数据实时流转到业务服务器,需要使用AMQP协议SDK
4、业务服务器调用IoT平台的API,下达控制指令到设备端

这篇关于阿里云物联网平台案例教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056139

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI