【STM32】esp8266通过MQTT连接服务器|订阅发布

devtools/2024/9/22 13:50:48/

1. MQTT协议

该协议为应用层协议,传输层使用的是tcp,MQTT的订阅和发布,就相当于在抖音中你关注了某个领域的博主(订阅),如果有其他人发了作品就会推给你(发布),默认已经安装好了

简单演示
订阅

mosquitto_sub -h "47.121.24.16" -p 1883  -t "A" 

mosquitto_sub 订阅指令
-h 主机ip
-p 端口号1883
-t 主题

发布

mosquitto_pub -h "47.121.24.16" -p 1883 -t "A" -m "nihaoma"

mosquitto_pub 发布指令
-h 主机ip
-p 端口号1883
-t 主题
-m 内容

在这里插入图片描述
订阅主题“A”的就可以收到

2.esp8266通过MQTT连接服务器

1.需要在单片机里面建立配置用户信息

void esp8266_connect_MQTT(const char*ip,int port,const char* user,const char* password)

//需要云服务器ip地址和端口号,以及MQTT服务器的用户名以及密码,如果是匿名用户的话,用户名和密码随便给
在这里插入图片描述
在这里插入图片描述

根据手册构建指令配置信息保存在单片机rom
在这里插入图片描述

2.eps8266连接MQTT
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
连接成功在服务器这边验证

isof -i |grep mosquitto   //查看链接情况

在这里插入图片描述

3.发布

单片机发布,MQTT服务器这边订阅就可以收到
在这里插入图片描述

void esp8266_Publish(const char* topic,const char*content);//发布的主题以及内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.订阅

在MQTT服务器这边发布,esp8266这边订阅,然后通过串口2返回给单片机,单片机将其给串口1,然后在串口助手上显示出来

void esp8266_subscribe(const char* topic)//订阅主题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现发送的helloworld收到成了helloword了,所以我们需要

	   uint8_t data,flag=0;uint32_t old_tick=0;while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if(HAL_GetTick()-old_tick>50&&flag) //假如说收到最后一个字符后等50ms后,说明接收完了{clearbuffer();  //打印到串口1,清除缓冲区flag=0;  //防止频繁冲刷缓冲区}if(HAL_UART_Receive(&huart2,(uint8_t*)&data,1,10)==HAL_TIMEOUT)  //一个字符和另一个字符很快就能接收,如果超过10ms,就直接continue{continue;}else{	buffer[num++]=data;  //放到缓冲区里面old_tick=HAL_GetTick();//获取当前字符时间,用于和下一个字符作对比flag=1;}}

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/devtools/115488.html

相关文章

java实现LRU 缓存

如果碰到这种题⽬先不要慌张,现在脑海⾥回忆⼀遍 LRU 的基本概念:LRU(Least Recently Used,最近最少使⽤)是⼀种缓存算法,其核⼼思想是将最近最少使⽤的缓存项移除,以便为更常 ⽤的缓存项腾出空…

鸿蒙4.0(HarmonyOS 4.0)与鸿蒙Next(HarmonyOS Next)区别

鸿蒙4.0(HarmonyOS 4.0)与鸿蒙Next(HarmonyOS Next)是华为推出的两个不同版本的操作系统,它们之间存在一些显著的区别: 兼容性: 鸿蒙4.0:依然保持了对Android应用的兼容性&#xff0…

【30天玩转python】使用第三方库(如 NumPy、Pandas)

使用第三方库(如 NumPy、Pandas) Python 的强大之处在于其广泛的第三方库生态,特别是在科学计算、数据分析等领域。NumPy 和 Pandas 是 Python 最常用的两个库,分别用于数值计算和数据处理。学习和掌握这些库将极大地提升你的编程…

医学数据分析实训 项目九 糖尿病风险预测

文章目录 综合实践二 糖尿病遗传风险预测一、分析目标二、实现步骤三、数据准备四、特征工程五、模型构建六、性能度量七、提交要求 综合实践任务二 糖尿病遗传风险预测代码(一)数据准备(二)特征工程(三)模…

网络安全。

文章目录 目录 文章目录 一. 网络安全概述 二. 密码学原理 三. 报文完整性和数字签名 密码散列函数 报文鉴别码 数字签名 公钥认证 四. HTTPS通信 总结 一. 网络安全概述 网络安全是保护计算机网络及其数据免受各种威胁和攻击的实践和技术。随着互联网的普及和数字化…

saas收银系统源码

1. 线下门店多样化收银 ①门店有社区小店、也会有大店,甚至还会有夫妻店,同时还要有Windows版和安卓版,需满足不同门店的收银需求。 ②支持Windows收银、安卓收银、无人自助收银、聚合码收银等,支持ai智能称重、收银称重一体机等…

前端实用工具(二):编程规范化解决方案

目录 本地代码规范化工具 代码检测工具ESLint 代码格式化工具Prettier 远程代码规范化工具 远程提交规范化工具commitizen 提交规范检验工具commitlint husky 什么是git hooks commitlint安装 husky安装 检测代码提交规范 ESLint husky 自动修复格式错误lint-staged…

STM32快速复习(十二)FLASH闪存的读写

文章目录 一、FLASH是什么?FLASH的结构?二、使用步骤1.标准库函数2.示例函数 总结 一、FLASH是什么?FLASH的结构? 1、FLASH简介 (1)STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&…