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

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

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑