【物联网】手把手完整实现STM32+ESP8266+MQTT+阿里云+APP应用——第3节-云产品流转配置
🌟博主领域:嵌入式领域&人工智能&软件开发
本节目标:本节目标是进行云产品流转配置为后面实际的手机APP的接入做铺垫。云产品流转配置的目的是为了后面能够让后面实际做出来的手机APP可以控制STM32/MCU,STM32/MCU可以将数据发给实际的手机APP。
配置步骤主要分为三步:1.创建数据源;2.创建数据目的;3.创建解析器
需要注意:手机APP数据传至STM32的数据源是手机APP,数据目的是STM32,反过来就是STM32数据传至手机APP的数据源是STM32,数据目的是手机APP。即需要来回配置两次。
其余章节见本专栏:https://blog.csdn.net/m0_61712829/category_12545281.html
1.手机APP发送指令至STM32云流转配置
实现为后续做铺垫:实际的手机APP将数据发给阿里云设备APP-v0,阿里云设备APP-v0就流转给阿里云设备mqtt_stm32,然后阿里云设备mqtt_stm32将数据给ESP8266,ESP8266再将数据发给STM32设备。
首先新建设备APP-v0,选择当前的产品,填入名称及备注。需要注意:新建的设备APP-v0为阿里云平台流转时用到的设备,并不是实际上的手机APP。
1.创建数据源
首先点击消息转发一栏,点击云产品流转,点击创建解析器,输入解析器名称及描述,点击确定。需要注意:当前是手机APP发送指令至STM32的解析器配置,所以解析器名称是APP-TO-MCU
创建解析器成功后,点击关联数据源,再点击创建数据源。
点击创建数据源后,输入数据源名称及描述fromAPP。需要注意:当前创建的数据源是来自于手机APP
创建完数据源后,选择刚刚创建的数据源fromAPP,点击确定。
然后在APP-TO-MCU处点击查看,接下来进行Topic的配置
点击添加Topic,选产品,选APP-v0,选user/update,然后点击确定。有关于Topic的解释见本文末尾。需要注意:此时的设备为APP-v0(即你在阿里云平台创建的手机APP设备对应的名称)
创建成功Topic后,结果如下
2.创建数据目的
首先点云产品流转一栏,点击数据目的,点击关联数据目的。
然后点击创建数据目的。需要注意:当前创建的数据目的是STM32/MCU
创建数据目的,写上数据目的名称及描述toMCU,选择自己创建的产品,然后点击确定。
然后关联数据目的选择刚创建的数据目的fromMCU,点击确定
创建成功如下所示。注意:此处的数据目的ID与后面填写解析器脚本时的ID保持一致。2024年阿里云已自动帮我们填写了数据目的ID,此处可不需注意(多讲了一下ID出处)
3.创建解析器
首先点击解析器脚本,查看是否是自己的数据目的ID(可省略)、在括号内填写设备mqtt_stm32的productKey、deviceName(设备mqtt_stm32即为你在阿里云创建的STM32设备名称)
需要注意,这里的productKey、deviceName为设备mqtt_stm32的。点击设备一栏,然后点击DeviceSecret处查看设备mqtt_stm32的 productKey、deviceName
最终修改为如下。填入设备mqtt_stm32的 productKey、deviceName
最后,返回云产品流转处一栏,点击启动,确认启动,最后显示为运行中。即创建手机APP发送指令至STM32云流转成功。
以上就实现了实际的手机APP发送数据到我们创建的阿里云设备APP-v0,然后阿里云设备APP-v0会将数据发送到我们创建的阿里云设备mqtt_stm32,然后阿里云设备mqtt_stm32会将数据发送到我们实际的板子上
接下来就是反过来,stm32将数据发送给esp8266,然后esp8266再将数据发给阿里云的设备mqtt_stm32,然后阿里云的设备mqtt_stm32再将数据发送给阿里云的设备APP-v0,然后阿里云的设备APP-v0再将数据发给我们实际的手机APP上
2.STM32发送数据至手机APP云流转配置
同理,接下来反过来再建一条路径
1.创建数据源
首先创建解析器,输入名称及描述,点击确定。需要注意:当前是STM32发送数据至手机APP云流转配置,所以解析器名称是MCU-TO-APP
然后点击关联数据源,进行创建数据源
创建数据源,输入数据源名称以及描述fromMCU,点击确定
选择数据源为我们刚创建的数据源fromMCU,点击确定
然后在数据源中点击查看,进行添加Topic。
然后点击添加Topic,选择自己的产品、设备,选择user/update,点击确定。需要注意:此时的设备为mqtt_stm32(即你在阿里云平台创建的STM32对应的设备名称)
2.创建数据目的
选择数据目的,点击关联数据目的
点击创建数据目的,输入数据目的名称及描述toAPP,选择自己创建的产品,点击确定
然后选择刚刚创建的数据目的toAPP,点击确定,创建成功数据目的
3.创建解析器
需要注意:在括号内填写设备APP-v0的productKey、deviceName。查看方式为:点击设备一栏,在DeviceSecret处点击查看设备APP-v0的productKey、deviceName,一键复制
然后再返回云产品流转的解析器脚本处,将设备APP-v0的productKey、deviceName填入相应的括号内,查看ID与解析器ID是否保持一致(可省略)。然后点击发布。
然后点击启动,确定启动该解析器。
以上就配置好了。为后续让实际的手机APP可以控制STM32/MCU,STM32/MCU可以将数据发给实际的手机APP做好了铺垫。
有关Topic解释如下:
- MQTT(Message Queuing Telemetry Transport)协议是一种轻量级的消息传输协议,常用于物联网设备间的通信。在MQTT中,Topic用于定义消息传输的通道和路径。
- 设备通过将消息发布到一个特定的Topic,将消息发送给物联网平台。物联网平台会根据订阅规则,将消息发送给订阅了该Topic的设备。这种发布/订阅模式使得设备可以方便地进行异步通信,消除了直接点对点通信的限制。
- 为了方便海量设备基于Topic进行通信,并简化授权操作,物联网平台定义了产品Topic类和设备Topic。
- 产品Topic类:每个产品都有一个唯一的产品Topic类,用于定义该产品的消息发布和订阅的前缀。产品Topic类通常包含产品的唯一标识符和产品所属的组织信息。
- 设备Topic:每个设备都有一个唯一的设备Topic,用于定义该设备的消息发布和订阅的完整路径。设备Topic由产品Topic类和设备的唯一标识符组成,形式为"{产品Topic类}/{设备唯一标识符}"。
- 通过使用产品Topic类和设备Topic,设备可以方便地根据自己的标识和所属产品进行消息传输,同时也确保了消息的安全性和权限控制。
- 总结起来,MQTT协议使用Topic来定义消息传输的通道和路径,设备通过Topic将消息发布到物联网平台,物联网平台根据订阅规则将消息发送给订阅Topic的设备。为了方便海量设备基于Topic进行通信,简化授权操作,物联网平台定义了产品Topic类和设备Topic。
🌟个人主页:阿齐Archie
🌟个人vx公众呺:阿齐Archie
相关文章:

【物联网】手把手完整实现STM32+ESP8266+MQTT+阿里云+APP应用——第3节-云产品流转配置
🌟博主领域:嵌入式领域&人工智能&软件开发 本节目标:本节目标是进行云产品流转配置为后面实际的手机APP的接入做铺垫。云产品流转配置的目的是为了后面能够让后面实际做出来的手机APP可以控制STM32/MCU,STM32/MCU可以将数…...
Spring Cloud Config相关问题及答案(2024)
1、什么是 Spring Cloud Config,它解决了哪些问题? Spring Cloud Config 是一个为微服务架构提供集中化外部配置支持的项目。它是构建在 Spring Cloud 生态系统之上,利用 Spring Boot 的开发便利性,简化了分布式系统中的配置管理…...

【Azure 架构师学习笔记】- Azure Databricks (4) - 使用Azure Key Vault 管理ADB Secret
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (3) - 再次认识DataBricks 前言 Azure Databricks有access token,是具有ADB内部最高权限的token。在云环境中这些高级别权限的sec…...

[每周一更]-(第50期):Go的垃圾回收GC
参考文章: https://juejin.cn/post/7111515970669117447https://draveness.me/golang/docs/part3-runtime/ch07-memory/golang-garbage-collector/https://colobu.com/2022/07/16/A-Guide-to-the-Go-Garbage-Collector/https://liangyaopei.github.io/2021/01/02/g…...

【嵌入式学习笔记-01】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误
【嵌入式学习笔记】什么是UC,操作系统历史介绍,计算机系统分层,环境变量(PATH),错误 文章目录 什么是UC?计算机系统分层什么是操作系统? 环境变量什么是环境变量?环境变量的添加&am…...

【动态规划】LeetCode-10. 正则表达式匹配
10. 正则表达式匹配。 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 …...

lenovo联想拯救者8.8英寸掌上游戏机Legion Go 8APU1(83E1)原装出厂Windows11预装系统
链接:https://pan.baidu.com/s/1d586XWXcAWVxlLyV2Oku7Q?pwdd74t 提取码:d74t 系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小:…...
经典目标检测YOLO系列(一)复现YOLOV1(4)VOC2007数据集的读取及预处理
经典目标检测YOLO系列(一)复现YOLOV1(4)VOC2007数据集的读取及预处理 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,并解决前向推理过程中的两个问题,继续按照此书进行YOLOV1的复现。 经典目标检…...

Android Studio xml布局代码补全功能失效问题
这里写目录标题 前言:问题描述原因分析:解决方案:1.更新 Android Studio 版本2.原版本解决XML补全失效 小结 前言: 在开发过程中,你可能遇到很多奇奇怪怪的问题。Android Studio 编译器出现问题也是常有的事情&#x…...

算法每日一题:队列中可以看到的人数 | 单调栈
大家好,我是星恒 今天是一道困难题,他的题解比较好理解,但是不好想出来,接下来就让我带大家来捋一捋这道题的思路,以及他有什么特征 题目:leetcode 1944有 n 个人排成一个队列,从左到右 编号为 …...

报表控件Stimulsoft 2023回顾:都做了哪些产品的改变?
在2023年过去一年中,报表控件Stimulsoft 针各类控件都做了重大改变,其中新增了某些产品、同时加强了很多产品的性能和UI设计,更加符合开发者需求,下面就跟随小编一起来回顾,具体都有哪些↓↓↓ Stimulsoft Ultimate &…...

Mybatis缓存实现方式
文章目录 装饰器模式Cache 接口及核心实现Cache 接口装饰器1. BlockingCache2. FifoCache3. LruCache4. SoftCache5. WeakCache 小结 缓存是优化数据库性能的常用手段之一,我们在实践中经常使用的是 Memcached、Redis 等外部缓存组件,很多持久化框架提供…...

C#用StringBuilder高效处理字符串
目录 一、背景 二、使用StringBuilder便捷、高效地操作字符串 三、实例 1.源码 2.生成效果 四、实例中知识点 1.StringBuilder 构造函数 (1)定义 (2)重载 (3)StringBuilder() (4&…...
python开发案例教程-清华大学出版社(张基温)答案(4.2)
目录 练习 4.2 1. 代码分析题 2. 程序设计题 练习 4.2 1. 代码分析题 阅读下面的代码,给出输出结果。 (1) class A:def __init__(self,a,b,c):self.xabca A(3,5,7);b getattr(a,x);setattr(a,x,b3);print(a.x)18 (2&…...

【MATLAB】【数字信号处理】线性卷积和抽样定理
已知有限长序列:xk1,2,1,1,0,-3, hk[1,-1,1] , 计算离散卷积和ykxk*h(k) 。 程序如下: function [t,x] My_conv(x1,x2,t1,t2,dt) %文件名与函数名对应 %自写的卷积函数 x conv(x1,x2)*dt; t0 t1(1) t2(1); L length(x1) length(x2)-2; t t0:dt…...
什么是 MVVM ?
课堂笔记 什么是 MVVM ? MVVM 是一种架构模式,它最初是由微软的两位工程师在 2005 年的时候所提出的。 Model:Model代表的是你的数据View:视图,直接和用户打交道的ViewModel:ViewModel 是 View 和 Model…...

Redis(一)
1、redis Redis是一个完全开源免费的高性能(NOSQL)的key-value数据库。它遵守BSD协议,使用ANSI C语言编写,并支持网络和持久化。Redis拥有极高的性能,每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数…...

自动驾驶预测-决策-规划-控制学习(1):自动驾驶框架、硬件、软件概述
文章目录 前言:无人驾驶分级一、不同level的无人驾驶实例分析1.L2级别2.L3级别3.L4级别①如何在减少成本的情况下,实现类似全方位高精度的感知呢?②路侧终归是辅助,主车的智能才是重中之重:融合深度学习 二、无人驾驶的…...

SSM建材商城网站----计算机毕业设计
项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,管理员管理,注册用户管理,新闻公告管理,建材类型管理,配货点管理,建材商品管理,建材订单管理,建材评价管理等功能。 用…...

js逆向第9例:猿人学第2题-js混淆-动态cookie1
题目2:提取全部5页发布日热度的值,计算所有值的加和,并提交答案 (感谢蔡老板为本题提供混淆方案) 既然题目已经给出了cookie问题,那就从cookie入手,控制台找到数据请求地址 可以看到如下加密字符串m类似md5,后面跟着时间戳 m=45cc41dcdb15159ebb50564635f8e362|1704301…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...