ESP32使用AT MQTT 固件发布主题信息返回ERROR解决

ESP8266-01S连接MQTT服务器 ESP8266-01S的默认固件包并不支持相关的MQTT连接AT指令,因此需要烧录MQTT的相关固件包,才能通过AT指令连接到MQTT服务器。 阅读详情
AI摘要

博客围绕STM32通过MQTT发布json数据包展开。介绍了发布格式,指出错误格式返回error的原因是data部分需对引号和逗号转义,给出正确格式。还提及在代码区注入信息可成功发送,尝试用单引号代替转义符,发现json中字符串须用双引号。

目录

发布格式

原因及其解决方法


发布格式

AT+MQTTPUB=,<“topic”>,<“data”>,0,0

当需要发布对应主题的json数据包时

 错误格式

AT+MQTTPUB=0,"device/date","{"msg1": 22,"msg2": 56,"msg3": 94,"time": 1667009139,"devname":"123456"}",0,0

 

 

返回error 

原因及其解决方法

data部分需要对额外的 引号 "  和  , 进行转义

我们知道在引号区别别的引号时需要加   \ 

这样在串口助手打印时不会出现\  ,我们通过MQTT AT固件也就类似于我们和串口助手通信的层次关系,固件那边要区分则引号和逗号必须带个转义符。

于是在串口助手发送数据时,正确格式

在串口助手发送区

AT+MQTTPUB=0,"device/date","{\"msg1\":22\,\"msg2\":56\,\"msg3\":94\,\"time\":1667009139\,\"devname\":\"123456\"}",0,0

结果成功 

在代码区中 (比如STM32通过串口控制固件,与固件透传。 

#define DATEBUF "{\
\\\"msg1\\\": %d\\\,\
\\\"msg2\\\": %d\\\,\
\\\"msg3\\\": %d\\\,\
\\\"time\\\": %d\\\,\
\\\"devname\\\":\\\"%s\\\"\
}"

 

再通过sprinf注入要发送的信息则发送成功。下图为32中的测试结果

本着在python里单引号也能被区分为字符串的缘故,试了试单引号代替  \  。

发现也可以,于是查了查json数据里单引号是否能区分为字符串。答案是否,json中的字符串必须是对象必须是双引号格式。

 

LuatOS-Air AT应用指南--MQTT指令流程 确认是不是域名解析失败导致,可以通过AT+CDNSGIP=确认一下域名是否能正常解析(注意:该命令只有在执行完at+cstt、at+ciicr、at+cifsr后才能正常工作),不能正常解析,可以通过AT+CDNSCFG=ip1,ip2设置域名解析服务器。AT+CIICR激活网络,在IP START的状态使用AT+CIICR激活网络,激活以后通过AT+CIFSR查询是否获取IP,如果成功就可以开始配置TCP连接了,如果不成功使用AT+CIPSHUT关闭移动网络,从AT+CSTT重新进行。 阅读详情

相关推荐

使用ESP-01S通过AT指令连上MQTT服务器

ESP-01S通过AT指令连上与MQTT服务器通信

weixin_42934918的博客 1万+

ESP8266模块的MQTT AT指令测试

ESP8266模块固件是AT MQTT版本,使用该模块可以直接使用AT 指令进行MQTT通信,下面介绍如何使用 MQTT AT指令。MQTT AT相关的指令如下:AT+MQTTUSERCFG:设置 MQTT 用户属性;AT+MQTTLONGCLIENTID:设置 MQTT 客户端 ID;AT+MQTTLONGUSERNAME:设置 MQTT 登录用户名;AT+MQTTLONGPASSWOR...

weixin_46158019的博客 8509

ESP32 AT固件下MQTT服务器IP配置与透传模式实现

MQTT是一种轻量级发布/订阅消息传输协议,广泛应用于资源受限的嵌入式物联网设备。其连接建立依赖于TCP网络层可达性与服务端地址(IP或域名)的准确配置。在基于AT指令的Wi-Fi模组(如ESP32-AT)开发中,设置MQTT服务器IP并非简单赋值,而是需协同Wi-Fi连接状态判据、AT指令时序控制、响应语义校验及透传模式切换的系统工程。该过程强调环境前置性(STA IP有效)、协议原子性(分步指令+OK确认)与状态可靠性(复位生效)。典型应用场景包括工业传感器上云、智能硬件远程控制及边缘网关数据汇聚。本文

weixin_42577243的博客 331

关于stm32控制esp8266链接阿里云时遇到的一些问题

用at+mqtt命令链接阿里云是很简单,当时我看的是B站一问up主的分享,之后用stm32通过串口就能控制esp8266连上阿里云,就下面这个代码,很简单就行了。当我的esp8266烧录的是1112号的固件,这个固件我不知道是不是有问题,有时候能连上阿里云有时候一直回复error。欢迎大家评论区留言一起学习!然后我就调试,先用串口调试助手控制esp8266连接wifi,成功了,当之后的这个连接阿里云的。要连接阿里云的话,有个不一样的,,换一个固件,用的是下面。,需要换,这个方法也是,

weixin_62999907的博客 6530

ESP32 AT固件实战:OneNet MQTT物模型数据上报全流程解析

本文详细解析了ESP32 AT固件对接OneNet平台的MQTT物模型数据上报全流程,涵盖硬件配置、WiFi连接、MQTT鉴权及JSON数据构造等关键技术。通过实战案例演示如何解决供电不稳、命令超时等常见问题,帮助开发者高效实现物联网设备数据上报。

weixin_29190169的博客 198

ESP32-C2 AT固件实战:BLE SPP透传、安全配对与MQTT全链路通信

AT固件是嵌入式物联网设备实现快速联网的核心中间层技术,其本质是通过标准化串口指令控制Wi-Fi/蓝牙协议栈。本文围绕ESP32-C2平台,深入解析基于ESP-AT固件的BLE SPP透传机制——该非标准但高兼容的串口模拟方案,以及支撑其可靠运行的关键要素:LE安全配对(含JustWorks流程、密钥交换与绑定管理)、BluFi安全配网(规避SoftAP风险)、周期性广播同步(低功耗信标构建)和MQTT全功能接入(TLS加密、长消息发布、会话恢复)。内容覆盖从初始化配置、状态机设计到故障诊断的完整工程闭环,

weixin_29317963的博客 122

安信可ESP32-S AT固件连接MQTT服务器使用文档

文章目录说明MQTT AT 指令使用说明AT+MQTTUSERCFG - 配置 MQTT 用户属性AT+MQTTCLIENTID - 配置 MQTT 客户端 IDAT+MQTTUSERNAME - 配置 MQTT 登录用户名AT+MQTTPASSWORD - 配置 MQTT 登录密码AT+MQTTCONNCFG - 配置 MQTT 连接属性AT+MQTTCONNAT+MQTTPUBAT+MQTTPUBRAWAT+MQTTSUBAT+MQTTUNSUBAT+MQTTCLEANMQTT 状态码说明其他说明测试命

安信可科技 5530

ESP32-C5 AT固件BLE与MQTT核心命令深度解析

BLE(蓝牙低功耗)与MQTT是物联网边缘设备实现无线接入与云协同的两大基础协议。BLE基于GATT服务发现与特征交互构建可靠短距通信,MQTT则通过发布/订阅模型实现轻量、异步、安全的云端数据传输。二者在资源受限的MCU上需兼顾协议语义、内存约束与工程鲁棒性。ESP32-C5的AT固件将复杂协议栈封装为标准化命令集,支持从BLE连接建立、服务枚举、特征读写到MQTT TLS认证、QoS1可靠发布、主题订阅等全链路控制。本文聚焦AT+BLEGATTCPRIMSRV服务发现与AT+MQTTUSERCFG安全配

weixin_32925455的博客 64

ESP32-01S WiFi模块从入门到精通:固件烧录、AT指令与MQTT应用全攻略

本文详细介绍了ESP32-01S WiFi模块的开发应用,主要内容包括:模块硬件特性(3.3V供电、8引脚定义)、固件烧录流程(MQTT专用固件下载与烧录方法)、AT指令集详解(基础指令、WiFi配置、MQTT通信指令)以及实战应用(连接WiFi网络、配置MQTT服务器、订阅发布消息)。重点讲解了JSON数据格式处理和常见问题解决方案,为物联网开发者提供了从入门到应用的完整指导。文章特别强调了烧录时的关键连接(IO0接地)和MQTT功能实现的必备条件,帮助开发者快速掌握该模块的核心使用技巧。

qq_58174959的博客 1249

EspATMQTT:面向资源受限MCU的ESP-AT MQTT轻量封装库

MQTT是一种广泛应用于物联网的轻量级发布/订阅消息协议,其核心价值在于低带宽、低功耗与松耦合通信。在主控MCU(如RP2040、STM32)与ESP模组分离架构中,直接操作AT指令存在状态管理复杂、错误处理繁琐、跨平台复用性差等工程痛点。EspATMQTT作为专为ESP-AT固件设计的C++封装库,通过语义抽象将AT+MQTTCONN、AT+MQTTSUB等底层指令转化为面向对象的高层API,同时严格遵循嵌入式最小可行抽象原则——不内置自动重连、不缓存消息、不依赖RTOS,从而在RAM仅20KB、无动态内

weixin_33506815的博客 535

ESP32-S2 AT固件MQTT/WSS/AWS多协议实战与Web配网OTA全解析

MQTT是一种轻量级发布/订阅消息传输协议,广泛应用于嵌入式物联网设备通信;其核心价值在于低带宽占用、高可靠性及对不稳定网络的适应性。技术实现上依赖TCP/TLS连接、主题过滤、QoS分级和遗嘱消息等机制,支撑远程监控、边缘采集等典型场景。在ESP32-S2平台,AT固件将MQTT能力封装为标准化指令集,同时支持WSS穿透、AWS IoT双向认证等扩展模式,并与Web Server配网、OTA升级深度集成,形成端到端量产级解决方案。本文聚焦AT+MQTTPUBRAW超长负载发布、TLS证书管理、WSS资源路

weixin_35748962的博客 223

esp-07s 模块的WIFI 联网和MQTT AT指令测试,固件下载更新方法

3.根据自己实际需求填入 SPI SPEED、SPI MODE、COM 及 BAUD。测试 mqtt 相关指令,发现响应 失败,提示 ERROR。版本:AT version: 1.2.0.0。4.点击 start ,等待下载完成。1.打开软件,选择esp8266。2.选择固件,指定下载地址。详细可参考安信可文章。

weixin_46158019的博客 2019

ESP32 AT固件实战:A2DP音频与MQTT物联网双协议深度解析

AT命令集是嵌入式设备与无线协议栈交互的基础接口,其本质是将Wi-Fi、蓝牙等复杂协议抽象为可编程的串行控制指令。理解AT命令的语义约束、状态机流转与错误归因机制,是保障物联网终端稳定通信与实时响应的关键技术能力。在ESP32平台中,Classic Bluetooth A2DP支持高质量音频流传输,而MQTT则提供轻量级发布/订阅消息通道,二者常协同用于智能音箱、远程网关等场景。本文围绕A2DP连接管理、音频源配置、MQTT TLS安全连接、QoS消息收发及双协议共存调优等核心实践,系统梳理从初始化、调试到

weixin_36431145的博客 89

别再让ESP32裸奔了!手把手教你烧录MQTT AT固件,让STM32轻松当“甩手掌柜”

本文详细介绍了如何通过烧录MQTT AT固件优化ESP32与STM32的物联网架构,实现资源优化与开发简化。文章涵盖硬件架构设计、固件烧录指南、AT指令优化及STM32端实现技巧,帮助开发者提升系统稳定性和扩展性,特别适合智能家居等物联网应用场景。

weixin_30872337的博客 449

ESP8266-01S MQTT固件烧录实战:AT指令驱动阿里云IoT接入

MQTT是一种轻量级发布/订阅模式的消息传输协议,广泛应用于物联网设备与云平台间的双向通信。其核心原理基于TCP/IP之上的会话管理、主题订阅与QoS分级机制,技术价值在于低带宽占用、弱网适应性强及资源受限设备友好。典型应用场景包括传感器数据上云、远程设备控制与边缘-云协同。在STM32+ESP8266混合架构中,采用AT指令固件可实现主控与网络功能的清晰解耦,既规避了裸机SDK开发复杂度,又避免了NodeMCU脚本内存瓶颈;结合阿里云IoT平台所需的SSL加密连接与标准MQTT v3.1.1指令集,该方案

weixin_35696112的博客 523

ESP32 AT固件烧录、通信与Wi-Fi配置全指南

AT指令集是嵌入式设备实现无线通信的轻量级控制协议,其核心原理是通过串行ASCII命令驱动封装好的TCP/IP协议栈与Wi-Fi/蓝牙底层模块。该技术具备开发门槛低、集成周期短、无需嵌入式编程等显著工程价值,广泛应用于工业传感器透传、智能电表联网、POS终端无线打印等对实时性要求不高的场景。在实际落地中,需重点掌握固件地址映射(bootloader.bin、partition-table.bin等四镜像)、UART1指令通道硬件连接、AT+CWMODE/AT+CWJAP等Wi-Fi状态机配置,以及AT+CI

weixin_35756130的博客 450

ESP32-01S AT固件连接OneNet MQTT全流程避坑:从固件烧录到auth_info生成

本文详细介绍了ESP32-01S AT固件连接OneNet MQTT的全流程避坑指南,包括固件烧录验证、硬件接线原理、auth_info生成技巧和MQTT参数配置。重点解析了AT指令的使用和常见问题排查,帮助开发者快速实现物联网设备与OneNet平台的稳定连接。

weixin_30740581的博客 172

ESP32-C61 AT固件BLE与MQTT核心命令深度解析

蓝牙低功耗(BLE)和MQTT是物联网终端接入边缘与云平台的两大基础协议。BLE基于GATT架构实现设备间可靠、低功耗的数据交互,其服务发现、特征读写及安全配对依赖标准化AT指令驱动;MQTT则通过发布/订阅模型支撑设备上云,需TLS加密、QoS分级与遗嘱机制保障通信鲁棒性。ESP32-C61 AT固件将二者深度融合,提供从BLE GATT客户端发现(AT+BLEGATTCPRIMSRV等)、SPP透传(AT+BLESPP),到MQTT安全连接(AT+MQTTUSERCFG)、消息发布(AT+MQTTPUB

weixin_42577735的博客 49
上一篇: 基于STM32的自动重装载auto-reload preload以及影子寄存器
下一篇: 基于STM32的Free-RT-OS的两种时基的认识以及重写ms,us级延时
昊月光华
博客等级 码龄6年 340粉丝 158原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值