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

news2024/11/18 3:36:58

文章目录

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

哔哩哔哩视频教程

【阿里云物联网综合开发,STM32+ESP8266+微信小程序+web客户端一篇教程详细讲解】 https://www.bilibili.com/video/BV1jj8oesEiS/?share_source=copy_web&vd_source=7a7fe2f7182275906c92294b4f15eecc

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);

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年道路运输安全员(企业管理人员)备考题库资料。

46.危险货物道路运输随车携带的单据,下列选项不属于的是()。 A.道路运输危险货物安全卡 B.运单或者电子运单 C.道路危险货物运输从业资格证 D.车辆检测报告 答案:D 47.危险货物运输驾驶人员在24小时内实际驾驶车辆时间累计不…

opengl箱子的显示

VS环境配置: /JMC /ifcOutput "Debug\" /GS /analyze- /W3 /Zc:wchar_t /I"D:\Template\glfwtemplate\glfwtemplate\assimp" /I"D:\Template\glfwtemplate\glfwtemplate\glm" /I"D:\Template\glfwtemplate\glfwtemplate\LearnOp…

接口测试流程及测试点!

一、什么时候开展接口测试 1.项目处于开发阶段,前后端联调接口是否请求的通?(对应数据库增删改查)--开发自测 2.有接口需求文档,开发已完成联调(可以转测),功能测试展开之前 3.专…

ctfshow-web入门-命令执行(web75-web77)

目录 1、web75 2、web76 3、web77 1、web75 使用 glob 协议绕过 open_basedir&#xff0c;读取根目录下的文件&#xff0c;payload&#xff1a; c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). ); } ex…

如何用大模型RAG做医疗问答系统

代码参考 https://github.com/honeyandme/RAGQnASystemhttps://github.com/LongxingTan/open-retrievals TLDR if 疾病症状 in entities and 疾病 not in entities:sql_q "match (a:疾病)-[r:疾病的症状]->(b:疾病症状 {名称:%s}) return a.名称" % (entitie…

Cosine 余弦相似度并行计算的数学原理与Python实现

背景 Cosine 我在LLM与RAG系列课程已经讲了很多次了&#xff0c;这里不在熬述&#xff0c;它在LLM分析中&#xff0c;尤其是在语义相似度的计算中至关重要&#xff0c;在dot attention机制中&#xff0c;也会看到他的身影。这里讲的是纯数学上的运算与python是如何运用相关库进…

鸿蒙开发Ability Kit(程序访问控制):【向用户申请单次授权】

申请使用受限权限 受限开放的权限通常是不允许三方应用申请的。当应用在申请权限来访问必要的资源时&#xff0c;发现部分权限的等级比应用APL等级高&#xff0c;开发者可以选择通过ACL方式来解决等级不匹配的问题&#xff0c;从而使用受限权限。 举例说明&#xff0c;如果应…

代码随想录算法训练营第55天(py)| 单调栈 | 42. 接雨水*、84.柱状图中最大的矩形

42. 接雨水* 力扣链接 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 思路1 暴力 按列来计算。每一列雨水的高度&#xff0c;取决于&#xff0c;该列 左侧最高的柱子和右侧最高的柱子中&#xff0c;…

【记录】IDEA2023的激活与安装

前言&#xff1a; 记录IDEA2023的激活与安装 第一步&#xff1a;官网下载安装包&#xff1a; 下载地址&#xff1a;https://www.jetbrains.com/idea/download/other.html 这个最好选择2023版本&#xff0c;用着很nice。 安装步骤就不详解了&#xff0c;无脑下一步就可以了…

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数

09 - matlab m_map地学绘图工具基础函数 - 绘制区域填充、伪彩色、加载图像和绘制浮雕效果的有关函数 0. 引言1. 关于m_pcolor2. 关于m_image3. 关于m_shadedrelief4. 关于m_hatch5. 结语 0. 引言 本篇介绍下m_map中区域填充函数&#xff08;m_hatch&#xff09;、绘制伪彩色图…

C++多态~~的两个特殊情况

目录 1.多态的概念 2.简单认识 &#xff08;1&#xff09;一个案例 &#xff08;2&#xff09;多态的两个满足条件 &#xff08;3&#xff09;虚函数的重写 &#xff08;4&#xff09;两个特殊情况 1.多态的概念 &#xff08;1&#xff09;多态就是多种形态&#xff1b; …

某腾X滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9jbG91ZC50ZW5jZW50LmNvbS9wcm9kdWN0L2NhcHRjaGE= 1. 先整体分析一下 1_1. 验证码信息下发接口 cap_union_prehandle ua:…

AI绘画工具Midjourney:和Discord互相成就

前言 提到文生图&#xff0c;很多人都会想到植根于根植于Discord社区的Midjourney&#xff0c;本篇文章就基于作者的使用体验思考&#xff0c;并结合了Discord来对Midjourney进行探讨&#xff0c;感兴趣的朋友一起来看看吧。 如果要说现在最火的文生图&#xff0c;不得不说到Mi…

openmetadata1.3.1 自定义连接器 开发教程

openmetadata自定义连接器开发教程 一、开发通用自定义连接器教程 官网教程链接&#xff1a; 1.https://docs.open-metadata.org/v1.3.x/connectors/custom-connectors 2.https://github.com/open-metadata/openmetadata-demo/tree/main/custom-connector &#xff08;一&…

本周波动预警!7月将一路上涨,牛市“复苏“?低于6万美元的比特币,是熊市陷阱吗?

比特币在第三季度伊始发出了一些积极信号。随着上周末的涨势&#xff0c;BTC/USD最高一度达到63818美元&#xff0c;这让人对比特币能否重拾牛市信心满怀希望。不过&#xff0c;在冲破关键阻力位64000美元之前&#xff0c;市场参与者仍保持谨慎态度。比特币要想维系开头的牛市态…

掌握React与TypeScript:从零开始绘制中国地图

最近我需要使用reactts绘制一个界面&#xff0c;里面需要以中国地图的形式展示区块链从2019-2024年这五年的备案以及注销情况&#xff0c;所以研究了一下这方面的工作&#xff0c;初步有了一些成果&#xff0c;所以现在做一些分享&#xff0c;希望对大家有帮助&#xff01; 在这…

使用Qt制作一个简单的界面

1、创建工程 步骤一&#xff1a; 步骤二&#xff1a; 步骤三&#xff1a; 选择 build system&#xff0c;有qmake、CMake 和 Qbs 三个选项。 CMake 很常用&#xff0c;功能也很强大&#xff0c;许多知名的项目都是用它&#xff0c;比如 OpenCV 和 VTK&#xff0c;但它的语法繁…

heic格式转化jpg如何操作?heic转jpg,分享6款图片转化器!

随着苹果iOS 11系统的推出&#xff0c;HEIC格式作为一种新的图片格式逐渐走进大众视野&#xff0c;heic格式在保证照片质量的同时&#xff0c;能显著减少系统存储空间的占用。然而&#xff0c;这也给非苹果用户带来了一些困扰&#xff0c;因为HEIC格式的图片在Windows系统上并不…

深入理解C# log4Net日志框架:功能、使用方法与性能优势

文章目录 1、log4Net的主要特性2、log4Net框架详解配置日志级别 3、log4Net的使用示例4、性能优化与对比5、总结与展望 在软件开发过程中&#xff0c;日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能&#xff0c;以及进行调试。在C#生态系统中&…

探秘 Django 专业之道

一、Django项目开发 1.web框架底层 1.1 网络通信 注意&#xff1a;局域网 个人一般写程序&#xff0c;想要让别人访问&#xff1a;阿里云、腾讯云。 去云平台租服务器&#xff08;含公网IP&#xff09;程序放在云服务器 先以局域网为例 我的电脑【服务端】 import sock…