阿里云物联网应用层开发:第二部分,云产品流转

文章目录

  • 1、云产品流转概述
  • 2、我们需要创建多少个云产品流转?
  • 3、阿里云物联网平台产品云流转实现
    • 3-1 创建数据源
    • 3-2 创建数据目的
    • 3-2 创建解析器,并关联数据、编写脚本

1、云产品流转概述

云产品流转可以看成是一个转发的功能,阿里云官方的解释是:

设备基于Topic与物联网平台进行通信时,您可以在数据流转中,编写SQL对Topic中的数据进行处理,并配置转发规则将处理后的数据转发到其他设备的Topic或阿里云其他服务。
——摘自阿里云物联网平台产品文档

简单举个例子就是学校下发了奖学金的申请通知到辅导员手上,然后辅导员对学校的通知转发到自己管辖的班级中;有需要申请奖学金的同学可以提交申请表,向辅导员申请,辅导员将相关材料整理好后上报给学校。这里辅导员的角色便是云产品流转做的事情。
云产品流转可以将设备端(STM32+ESP8266)发送到阿里云的数据(如温度数据)转发到相关应用层上显示(微信小程序、web),微信小程序和web也可以向阿里云物联网平台发送相关控制命令(如开灯、关灯),阿里云物联网平台接收到这些命令后,又转发给了设备。

2、我们需要创建多少个云产品流转?

首先我们回顾一下项目的需求:

  • 微信小程序实时显示设备端(STM32+ESP8266)发送过来的温度数据,并且微信小程序能控制设备端开灯和关灯。
  • web端实时显示设备端发送过来的温度数据,并且web端能控制设备端开灯和关灯。

根据需求,我们可以列出消息的发送和接收的四条逻辑:
① 设备端 --> 微信小程序(显示温度数据)
② 微信小程序 --> 设备端(发送开灯和关灯命令)
③ 设备端 --> web端(显示温度数据)
④ web端 --> 设备端(发送开灯和关灯命令)

但是,我们还需要注意一点,Servlet是Tomcat的一个容器,它只能处理请求和响应数据,即HTTP协议。使用Tomcat能够使用HTTPS协议向阿里云物联网平台发布数据,但无法完成订阅操作。这时,我们需要使用Java写一个MQTT的服务器来完成订阅操作。
MQTT服务器负责将阿里云物联网平台发送过来的实时数据存储到MySQL数据库中,Tomcat可以每个一段时间来查询数据库最新数据,并将最新数据显示在web端上。
经过整理,我们需要完成如下四条云产品流转的操作:
① 设备端 --> 微信小程序(显示温度数据)
② 微信小程序 --> 设备端(发送开灯和关灯命令)
设备端 --> MQTT服务器(显示温度数据)
④ web端 --> 设备端(发送开灯和关灯命令)

3、阿里云物联网平台产品云流转实现

想要实现需求,可以通过以下步骤实现产品云流转
(1)创建数据源;
(2)创建数据目的;
(3)创建解析器;
(4)关联数据源/目的
(5)编写脚本

3-1 创建数据源

数据源,即准备发送的数据。相当于一封写好,但是没有寄出的信件。

创建数据目的之前,需要在阿里云物联网平台上创建以下设备:
(1)STM32+ESP8266 连接阿里云设备;
(2)微信小程序连接阿里云设备;
(3)web端接收温度数据设备(即转发到MQTT服务器设备);
(4)web端发送开灯关灯命令设备。
在这里插入图片描述
创建好相关设备后,便可以创建相关设备的数据源
在这里插入图片描述
相关数据源的topic如下:

数据源名称java_send
消息类型自定义
Topic/[您的ProductKey]/[您的DeviceName]/user/update
数据源描述tomcat需要发送的数据(开灯和关灯命令)
数据源名称javaweb_data
消息类型自定义
Topic/[您的ProductKey]/[您的DeviceName]/user/update
数据源描述Tomcar服务器接收的温度数据
数据源名称WeiXin_data
消息类型自定义
Topic/[您的ProductKey]/[您的DeviceName]/user/update
数据源描述从微信小程序发送过来的测试数据
数据源名称esp8266_data
消息类型自定义
Topic/[您的ProductKey]/[您的DeviceName]/user/update
数据源描述从esp8266发送过来的数据

3-2 创建数据目的

数据目的相当于需要发送邮箱的地址,我们云产品流转的目的地。

根据需求,我们只需要创建MQTT服务器数据目的、微信小程序数据目的、ESP8266接收命令数据目的三个数据目的即可。
相关数据参数设计如下:
在这里插入图片描述
在这里插入图片描述

3-2 创建解析器,并关联数据、编写脚本

在创建数据源的时候,相当于是一封写好的信,而数据目的相当于是信件寄送的目的地。那么解析器扮演的角色便是邮差的身份。
我们可以根据需求创建以下四个解析器。
在这里插入图片描述
如websend_to_esp8266解析器为例,我们关联相关数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
列举websend_to_esp8266和esp8266_to_javaweb解析器脚本源码如下:

/*
websend_to_esp8266解析器脚本
*/
// 草稿页为空时,进入草稿页会生成默认脚本
// 如果默认脚本自动保存过,继续绑定数据目的,默认脚本不会自动更新
// 此时清空脚本并保存之后,重新进入草稿页即可重新生成包含最新数据目的的默认脚本

// 设备上报数据内容,json格式
var data = payload('json');

// 流转到另一个Topic
writeIotTopic(1002, "/sys/您的ProductKey/您的DeviceName/thing/service/property/set", data);


/*
esp8266_to_javaweb解析脚本
*/
// 草稿页为空时,进入草稿页会生成默认脚本
// 如果默认脚本自动保存过,继续绑定数据目的,默认脚本不会自动更新
// 此时清空脚本并保存之后,重新进入草稿页即可重新生成包含最新数据目的的默认脚本

// 设备上报数据内容,json格式
var data = payload('json');

// 流转到另一个Topic
writeIotTopic(1003, "/sys/k0efkfcSwlt/JavaWeb_Demo/thing/service/property/set", data);

/*
其他解析脚本可以此类推,此处省略...
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/761258.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【操作与配置】Xshell安装使用

Xshell是一款功能强大的远程管理工具,主要用于通过SSH(Secure Shell)、TELNET等协议连接和管理远程服务器。它支持多种会话管理、脚本编写、端口转发等功能,适合系统管理员和开发者使用。 安装 官网下载:家庭/学校免费…

linux企业级CDN/100万并发架构设计/企业故障案例、网站优化架构原则

高薪思想:财富来源于信息差 什么是cdn? cdn全称是contenct delivery network内容分发网络 cdn是一套分布式,缓存,集群,范围可以是全球或全国,运行的实质是通过智能DNS获取用户的来源地域以及上网线路 为…

13_网络安全

目录 网络安全协议 网络安全协议 PGP协议 网络安全技术 防火墙技术 入侵检测系统 入侵防御系统 杀毒软件 蜜罐系统 计算机病毒与木马 网络安全协议 网络安全协议 物理层主要使用物理手段隔离、屏蔽物理设备等,其他层都是靠协议来保证传输的安全&#xff…

【C++】内存分区

目录 内存分区代码运行前后区别各分区详细解释C内存申请和释放 内存分区 不同的操作系统对程序内存的管理和划分会有所不同。 此处是C内存区域划分主要是针对通用的情况,并不限定在某个特定操作系统上 一般分为4个区(有时把全局区拆分成数据区未初始化…

Go线程调度器

基本结构 字段gcwaiting、stopwait和stopnoted都是串行运行时任务执行前后的辅助协调手段 gcwaiting字段的值用于表示是否需要停止调度 在停止调度前,该值会被设置为1在恢复调度之前,该值会被设置为0这样做的作用是,一些调度任务在执行时只…

阿里云智能编程助手的安装使用

https://help.aliyun.com/document_detail/2590613.html 通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&a…

企业互联网建站源码系统 附带完整的安装代码包以及搭建部署教程

系统概述 企业互联网建站源码吸系统是一款集众多先进功能于一身的建站工具。它提供了丰富的模板和组件,允许企业根据自身需求和品牌形象进行个性化定制,快速搭建出具有独特风格的网站。 代码示例 系统特色功能一览 1.用户友好界面:系统采用…

24 年程序员各岗位薪资待遇汇总(最新)

大家好,我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢?其实很简单,BOSS 直聘上有一个免费的薪酬查询工具,只要认证成为招聘者就能直接看,便于招聘者了解市场,…

网络安全 文件上传漏洞-20 第二十关 Pass-20

点击进入第二十关,并选择显示代码: $is_upload false; $msg null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg "禁止上传该…

Langchain-实战篇-搭建本地问答机器人-01

项目背景 在这个快节奏的职场世界里,我们每个人都可能在某个时刻,化身为一头辛勤的牛或一匹奔腾的马,面对入职签合同时的迷茫,或是离职时的纠纷,心中难免会涌现出各种疑问。比如: "这份合同里的条款…

Mongodb集群中的分布式读写

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第81篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

百元蓝牙耳机推荐2024,百元蓝牙耳机排行榜盘点

在2024年面对琳琅满目的蓝牙耳机选项,消费者往往难以抉择,特别是在预算有限的情况下,如何在众多产品中挑选出既满足质量又符合预算的耳机成为了一个不小的挑战。 为了帮助大家在繁多的选择中找到真正物有所值的百元蓝牙耳机,我们…

vue响应式原理细节分享

在讲解之前,我们先了解一下数据响应式是什么?所谓数据响应式就是建立响应式数据与依赖(调用了响应式数据的操作)之间的关系,当响应式数据发生变化时,可以通知那些使用了这些响应式数据的依赖操作进行相关更…

【JavaEE】JVM

文章目录 一、JVM 简介二、JVM 运行流程三、JVM 运行时数据区1、堆(线程共享)2、Java虚拟机栈(线程私有)3、本地方法栈(线程私有)4、程序计数器(线程私有)5、方法区(线程…

# 音频处理4_傅里叶变换

1.离散傅里叶变换 对于离散时域信号 x[n]使用离散傅里叶变换(Discrete Fourier Transform, DFT)进行频域分析。 DFT 将离散信号 x[n] 变换为其频谱表示 X[k],定义如下: X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N X[k]…

.NET 漏洞情报 | 某整合管理平台SQL注入

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

揭秘Wish自养号秘诀:新手卖家如何快速出单?

对于卖家来说,如果想要提升店铺的转化率和销量,有几个关键策略是必不可少的: 一、精心挑选热销产品 成功的第一步在于选品。选择热销产品如同掌握了成功的钥匙。卖家需要深入分析平台用户群体,了解他们的需求和偏好。例如&#…

Tampermonkey 油猴脚本使用教程

Tampermonkey 油猴脚本使用教程 一、Tampermonkey 油猴脚本简介 Tampermonkey 是一款流行的浏览器扩展,它允许用户通过用户脚本增强网页功能或改变网页的外观。它支持包括 Chrome、Microsoft Edge、Safari、Opera Next 和 Firefox 在内的多种浏览器。Tampermonkey…

【C++ 初阶路】--- C++内存管理

目录 一、C/C内存分布二、C内存管理方式2.1 new/delete操作内置类型2.2 new和delete操作自定义类型 三、operator new与operator delete函数四、new和delete的实现原理4.1 内置类型4.2 自定义类型 一、C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Tes…

大模型+多模态合规分析平台,筑牢金融服务安全屏障

随着金融市场的快速发展,金融产品和服务日趋多样化,消费者面临的风险也逐渐增加。 为保护消费者权益,促进金融市场长期健康稳定发展,国家监管机构不断加强金融监管,出台了一系列法律法规和政策文件。对于金融从业机构…