订阅主题 | 学习笔记

简介: 快速学习 订阅主题

开发者学堂课程【物联网平台开发全栈教程订阅主题学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/562/detail/7702


订阅主题


一、单片机订阅主题

1.片机订阅主题

1)通过单片机里面 CLI 的方法,将各种各样的数据,尤其是 MQTT 报文数据存储到了单片机里面。

2)报文数据是通过阿里云平台以及 MQTT 中文手册来计算的。

3)重新计算一下报文数据:

先连接一下单片机,读一下单片机现在里面的参数到底是什么

然后再复制 DeviceName

此时计算完了之后就生成了一个头文件。

这个框是最新的串口数据内容,可以作为简单的日志打印。

image.png

4)刚才生成了一个头文件 MQTT_Messaage.h,双击打开,里面计算出来的参数就出来了。打开小工具,点击写入数据到单片机,就会将这些数据一个字节一个字节的发送给单片机,完了之后,单片机会把这些数据存储到内部 flash里面,就是在 CLI 这里实现的。

2.这里面有 Write_keyWrite_key_HEXRead_keyRead_key_HEX

1Write_key Write_key_HEX 是有区别的。

2Write_key:就只是 ASCII 字符。这个子函数是写 SSID 和密码写域名用的。因为它是很纯粹的 ASCII 字符。

3Write_key_HEX:写入某 Key Flash 不过是上位机下发的二进制消息,除去 KEY 后的前两个字节是后续的长度。这个是写连续报文的,在传输的时候,小工具会先读这些报文数据,读一下他们有多长,在前面加两个字节,加两个字节是它的长度,就可以通过 Write 直接把它写进去。写完之后就会发一个数据出去。

4Read_key:单片机有一个唯一的 ID,唯一 ID 也是通过手册得来的,只不过又写了一个子函数,把 ID 变成了ASCII 字符。读出来之后小工具就放到了单片机 SN 的这个位置,这是 ASCII 字符。单片机存的时候是一系列十六进制。这样就能保证读一下计算参数每个单片机都是不一样的,因为他们的 SN 就不一样,

3.订阅主题程序:

1)订阅主题:

Read Flash Message (MQTT_Sub_Addr,DataBuf,&DataLen);

//读取 MQTT 报文,

for (i=0;i<DataLen;i++)
{
WIFI Send Byte (DataBuf [i]) ;
}
//等待服务器返回

Delaylms (2000) ;
Dat=0;
while (Get Byte_ WIFI (&DataBuf [Dat++]));
//获取接收缓冲区数据

if((DataBuf [0]==0X90)&(DataBuf[1]==0X03))
{
Send str1
("\r\n订阅属性成功!\r\n");

}
else
{
Send str1
("\r\n 订阅属性失败!\r\n");

for (i=0;i<DataLen;i++)
WIFI Send Byte (DataBuf[i]) ;

}

Delay1ns (2000) ;

}

}

DataBuf 里面的内容就是订阅主题,订阅的是以下的十六进制,这些十六进制表示的是要订阅的这个主题。把这些数据上报给服务器之后,服务器如果正确,就会返回9003007B01,在程序里面就可以简单检测一下。如果 ok就成功。

2)如果想取消订阅,就要发这些东西过去;

image.png

小工具没有把取消订阅这一堆数据扔出去,如果真想那样做,就用之前生成的头文件,可以直接包含这个头文件,在头文件里发对应的数组就可以了。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
缓存 监控 网络安全
因服务器时间不同步引起的异常
因服务器时间不同步引起的异常
1161 1
|
算法 Ubuntu 物联网
ESP32-C3入门教程 网络 篇(二、 Wi-Fi 配网 — Smart_config方式 和 BlueIF方式)
经过上一篇的WiFI入门篇,我们知道了WiFi初始化方式 和学会了WiFi的几种工作方式, 在实际应用中,环境复杂多变,在固件中输入SSID 的方式太不通用了, 所以肯定是需要学习一下如何在不同的环境中联网,就是所谓的配网。 ESP32-C3的配网方式有多种,本文主要说明测试 Smart方式 和 BlueIF方式。
2291 0
ESP32-C3入门教程 网络 篇(二、 Wi-Fi 配网 — Smart_config方式 和 BlueIF方式)
|
11月前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY3 - 更热门的多模态交互案例带练,实操掌握AI应用开发
本文章旨在帮助读者了解并掌握大模型多模态技术的实际应用,特别是如何构建基于多模态的实用场景。文档通过几个具体的多模态应用场景,如拍立淘、探一下和诗歌相机,展示了这些技术在日常生活中的应用潜力。
2485 20
|
前端开发 JavaScript UED
|
消息中间件 存储 负载均衡
Kafka高可用性指南:提高数据一致性和集群容错能力!
**Kafka高可用性概览** - 创建Topic时设置`--replication-factor 3`确保数据冗余和高可用。 - 分配角色:Leader处理读写,Follower同步数据,简化管理和客户端逻辑。 - ISR(In-Sync Replicas)保持与Leader同步的副本列表,确保数据一致性和可靠性。 - 设置`acks=all`保证消息被所有副本确认,防止数据丢失,增强一致性。 - 通过这些机制,Kafka实现了分布式环境中的数据可靠性、一致性及服务的高可用性。
1485 0
|
移动开发 前端开发
nbcio-boot的flowable流程流程模型查询时间长,el-table开始显示无数据的问题解决
nbcio-boot的flowable流程流程模型查询时间长,el-table开始显示无数据的问题解决
105 1
|
存储 调度 芯片
RT-Thread快速入门-内核移植
RT-Thread快速入门-内核移植
359 0
|
缓存 网络协议 安全
tcp、http、rpc和grpc得一些个人总结
tcp、http、rpc和grpc得一些个人总结
723 0
./node_modules/vue-qr/dist/vue-qr.js报错You may need an appropriate loader to handle this file type问题
./node_modules/vue-qr/dist/vue-qr.js报错You may need an appropriate loader to handle this file type问题