返回顶部
首页 > 资讯 > 服务器 >ESP-01S烧录及使用,连接本地MQTT服务器
  • 188
分享到

ESP-01S烧录及使用,连接本地MQTT服务器

服务器运维 2023-08-18 19:08:09 188人浏览 薄情痞子
摘要

网上的教程大多无法正常烧录与使用,因此在这里进行总结。 1 ESP-01S烧录 固件烧录建议使用专用的烧录器,十分省心。 本文讨论的是使用普通的CH340串口模块进行烧写。 必须使用的工具:杜邦线、CH340串口模块、另外一块有3V3电源和

网上的教程大多无法正常烧录与使用,因此在这里进行总结

1 ESP-01S烧录

固件烧录建议使用专用的烧录器,十分省心。
本文讨论的是使用普通的CH340串口模块进行烧写。
必须使用的工具:杜邦线、CH340串口模块、另外一块有3V3电源和GND的开发板。

1.1 烧写前连线

CH340 TTL转USB模块的引脚数量不够,因此需要另外一块开发板的引脚给ESP-01S提供高低电平。
注意:CH340的VCC引脚不要连接,电压比较高,可能会烧坏ESP-01S。
另一块开发板也要用USB线连接到电脑上。
CH340模块的供电不够,因此ESP-01S_VCC不连接到CH340,一般来说开发板供电都比较大,电源连接到开发板上。

# ESP-01S与CH340模块的连线:ESP-01S_TXD——CH340_RXDESP-01S_RXD——CH340_TXDESP-01S_GND——CH340_GND# ESP-01S与另一块开发板的连线ESP-01S_CH-PD/EN——3V3ESP-01S_GPio0——GNDESP-01S_GPIO2——3V3ESP-01S_VCC——3V3ESP-01S_RST——GND

ESP-01S_RST一定要先连接到GND上!烧录时要用到。

1.2 固件清除

点开烧录软件:
在这里插入图片描述
2、点击ESP8266 DownloadTool:
在这里插入图片描述
3、需要连接MQTT服务器的话必须使用相关AT固件:
教程:https://blog.csdn.net/weixin_46323814/article/details/128157350
下载链接:Https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB
在这里插入图片描述
4、连接好所有的导线后,点击ERASE。
看到SYNC后,立刻拔掉ESP-01S_RST(非常重要),等待一秒,就可以清除程序了。
在这里插入图片描述
清除过程为Download。
清除完成后,显示Finish。

1.3 固件烧写

刚刚清除程序拔掉了ESP-01S_RST,现在再次连上GND。
点击START,开始烧写固件。
等到SYNC后,立刻拔掉ESP-01S_RST引脚(非常重要),等待一秒,软件就开始下载了。
在这里插入图片描述
点击STOP退出,这时烧入固件就成功了。

2 ESP-01S串口测试

不能使用CH340模块给ESP-01S供电,依然需要另一块开发板供电。
此时的连线需要进行改变:

# ESP-01S与CH340模块的连线:ESP-01S_TXD——CH340_RXDESP-01S_RXD——CH340_TXDESP-01S_GND——CH340_GND# ESP-01S与另一块开发板的连线ESP-01S_CH-PD/EN——3V3/悬空ESP-01S_GPIO0——3V3/悬空ESP-01S_GPIO2——3V3/悬空ESP-01S_VCC——3V3ESP-01S_RST——3V3/悬空

也就是最少只需要4根导线连线。

2.1 打开串口工具

选择串口,波特率初始值为115200,
发送方法:
(1)输入AT,选择“发送新行”,点击“发送数据”。
在这里插入图片描述
(2)输入AT加上回车,不选择“发送新行”,点击“发送数据”。
在这里插入图片描述
(3)输入AT,不选择“发送新行”,点击“发送数据”。输入回车,不选择“发送新行”,点击“发送数据”。
在这里插入图片描述
以上三种方法都可以测试成功。

2.2 AT指令——ESP-01S连接WIFI

以连接MQtT服务器为目的。
1、恢复初始化:

AT+RESTORE 

修改串口波特率:

AT+UART 9600,1,0,0

修改之后需要改串口软件的波特率。
3、设置STA模式:

AT+CWMODE?# 查询指令AT+CWMODE=# 设置指令,改为1:STA模式;2:AP模式;3:混合模式

连接AP(或者路由器WIFI):

AT+CWJAP?# 查询指令AT+CWJAP:,[,]# 目标AP的SSID,密码,# [,]目标AP的Mac地址,一般用于多个SSID相同的AP情况

输入命令:AT+CWJAP="MERCURY_XXXX","XXXXXXXX",如果连接成功,则会显示:

WIFI CONNECTEDWIFI GoT IPOK

开启单连接:

AT+CIPMUX=0

查询本地IP地址:

AT+CIFSR

收到回复:

+CIFSR:STAIP,"192.168.xxx.xxx"+CIFSR:STAMAC,"8c:xx:xx:xx:xx:xx"OK

3 ESP-01S连接本地MQTT服务器

3.1 本地MQTT服务器安装

参考链接:https://blog.csdn.net/felix_tao/article/details/125882339

下载windows端的EMQX服务器:https://www.emqx.com/zh/downloads/broker/5.0.3/emqx-5.0.3-windows-amd64.tar.gz

解压到英文路径下。
在这里插入图片描述
3、打开命令提示符,输入以下命令,进入bin文件夹:

d:cd EMQXcd emqx-5.0.3-windows-amd64cd bin

在这里插入图片描述

开启MQTT服务器:

.\emqx start

在这里插入图片描述
5、查看EMQX服务器状态:

.\emqx_ctl status

在这里插入图片描述
6、如果要关闭服务器,输入:

.\emqx stop

浏览器登录EMQX服务器控制面板,验证是否可用。
(1)输入地址:http://127.0.0.1:18083/#/login
(2)用户名:admin
(3)密码:public
(4)修改中文和界面:
在这里插入图片描述
8、进入websocket
点击连接,订阅ESP8266和MQTTFX两个话题。
在这里插入图片描述
9、MQTT.fx软件设置连接配置:
Broker Address需要电脑cmd ipconfig一下,查看电脑IP。其他设置默认。
在这里插入图片描述
MQTT.fx发送消息。
在这里插入图片描述
在EMQX服务器面板里可以看到接收到的消息。
在这里插入图片描述
接下来匹配ESP-01S,目的是让ESP-01S连接上MQTT服务器。
这里特别奇怪,我的电脑上安装了虚拟机,虚拟机里跑EMQX服务器,电脑能连接,ESP-01S无法连接。初步怀疑是不在一个网段。

3.2 ESP-01S的AT配置

ESP8266共有三种工作模式,分别是无线接入点模式(AP)、无线终端模式以及混合模式(以上两种模式的混合)。
本文ESP-01S作为客户端,连接WIFI接收手机或者电脑的控制,这种模式为STA模式。
依然是AT指令:
1、配置MQTT用户属性AT+MQTTUSERCFG
指定MQTT ID和用户名,密码

AT+MQTTUSERCFG=,,<"Client_ID">,<"username">,<“password”>,,,<"path">
:当前仅支持 link ID 0。:1: MQTT over tcp;2: MQTT over TLS(不校验证书);3: MQTT over TLS(校验 server 证书);4: MQTT over TLS(提供 client 证书);5: MQTT over TLS(校验 server 证书并且提供 client 证书);6: MQTT over WEBSocket(基于 TCP);7: MQTT over WebSocket Secure(基于 TLS,不校验证书);8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。:MQTT 客户端 ID,最大长度:256 字节。:用户名,用于登陆 MQTT broker,最大长度:64 字节。:密码,用于登陆 MQTT broker,最大长度:64 字节。:证书 ID,目前 ESP-AT 仅支持一套 cert 证书,参数为 0。:CA ID,目前 ESP-AT 仅支持一套 CA 证书,参数为 0。:资源路径,最大长度:32 字节。

AT+MQTTUSERCFG=0,1,"esp01s_id","esp01s","esp01s",0,0,"/mqtt"
2、设置 MQTT 客户端 IDAT+MQTTLONGCLIENTID
设置相对较长的客户端 ID

AT+MQTTLONGCLIENTID=,# 收到OK后,输入长度为length的客户端ID,发送。# 再次收到OK
:当前仅支持 link ID 0。:MQTT 客户端 ID 长度。范围:[1,1024]。

应在设置AT+MQTTUSERCFG后再使用 AT+MQTTLONGCLIENTID

设置 MQTT 登陆用户名AT+MQTTLONGUSERNAME
设置相对较长的用户名

AT+MQTTLONGUSERNAME=,# 收到OK后,输入长度为length的用户名,发送。# 再次收到OK
:当前仅支持 link ID 0。:MQTT 用户名长度。范围:[1,1024]

设置 MQTT 登陆密码AT+MQTTLONGPASSWARD

AT+MQTTLONGPASSWord=,# 收到OK后,输入长度为length的密码,发送。# 再次收到OK
:当前仅支持 link ID 0。:MQTT 密码长度。范围:[1,1024]。

设置 MQTT 连接属性AT+MQTTCONNCFG

AT+MQTTCONNCFG=,,,<"lwt_topic">,<"lwt_msg">,,
:当前仅支持 link ID 0。:MQTT ping 超时时间,单位:秒。范围:[0,7200]。默认值:0,会被强制改为 120 秒。:设置 MQTT 清理会话标志,有关该参数的更多信息请参考 MQTT 3.1.1 协议中的 Clean Session 章节。0: 使能清理会话1: 禁用清理会话:遗嘱 topic,最大长度:128 字节。:遗嘱 message,最大长度:64 字节。:遗嘱 QoS,参数可选 0、1、2,默认值:0。:遗嘱 retain,参数可选 0 或 1,默认值:0。

连接MQTT Broker(TCP服务器)AT+MQTTCONN

AT+MQTTCONN?# 查询ESP32设备已连接的 MQTT broker# 响应:+MQTTCONN:,,<"host">,,<"path">,# 响应:OKAT+MQTTCONN=,<"host">,,# 连接MQTT Broker# 为MQTT服务器的地址,端口:1883
:当前仅支持 link ID 0。:MQTT broker 域名,最大长度:128 字节。:MQTT broker 端口,最大端口:65535。:资源路径,最大长度:32 字节。:0: MQTT 不自动重连。如果 MQTT 建立连接后又断开,则无法再次使用本命令重新建立连接,您需要先发送 AT+MQTTCLEAN=0 命令清理信息,重新配置参数,再建立新的连接。1: MQTT 自动重连,会消耗较多的内存资源。:MQTT 状态:0: MQTT 未初始化;1: 已设置 AT+MQTTUSERCFG;2: 已设置 AT+MQTTCONNCFG;3: 连接已断开;4: 已建立连接;5: 已连接,但未订阅 topic;6: 已连接,已订阅过 topic。:1: MQTT over TCP;2: MQTT over TLS(不校验证书);3: MQTT over TLS(校验 server 证书);4: MQTT over TLS(提供 client 证书);5: MQTT over TLS(校验 server 证书并且提供 client 证书);6: MQTT over WebSocket(基于 TCP);7: MQTT over WebSocket Secure(基于 TLS,不校验证书);8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。

订阅指定MQTT主题AT+MQTTSUB
可订阅多个主题。

AT+MQTTSUB?# 查询订阅的topiC# 响应:+MQTTSUB=,,<"topic1">,# 响应:OKAT+MQTTSUB=,<"topic">,# 订阅<"topic">主题# 当 AT 接收到已订阅的 topic 的 MQTT 消息# 响应:+MQTTSUBRECV:,<"topic">,,data# 若已订阅过该 topic# 响应:ALREADY SUBSCRIBE
:当前仅支持 link ID 0。:MQTT 状态:0: MQTT 未初始化;1: 已设置 AT+MQTTUSERCFG;2: 已设置 AT+MQTTCONNCFG;3: 连接已断开;4: 已建立连接;5: 已连接,但未订阅 topic;6: 已连接,已订阅过 MQTT topic。<"topic">:订阅的 topic。:订阅的 QoS,一般设置为0(1,2)。

AT+MQTTSUB=0,“ESP8266”,1
8、取消订阅 MQTT TopicAT+MQTTUNSUB
客户端取消订阅指定 topic

AT+MQTTUNSUB=,<"topic"># 若未订阅过该 topic# 响应:NO UNSUBSCRIBE
:当前仅支持 link ID 0。:MQTT topic,最大长度:128 字节。

发布字符串数据AT+MQTTPUB
通过 topic 发布 MQTT 字符串 消息。如果您发布消息的数据量相对较多,已经超过了单条 AT 指令的长度阈值 256 字节,请使用 AT+MQTTPUBRAW 命令。

AT+MQTTPUB=,<"topic">,<"data">,,
:当前仅支持 link ID 0。<"topic">:MQTT topic,最大长度:128 字节。<"data">:MQTT 字符串消息。:发布消息的 QoS,参数可选 0、1、或 2,默认值:0。:发布 retain,设置为0。

本命令不能发送数据 \0,若需要发送该数据,请使用 AT+MQTTPUBRAW 命令。
官方示例:

AT+CWMODE=1AT+CWJAP="ssid","password"AT+MQTTUSERCFG=0,1,"ESP32","espressif","1234567890",0,0,""AT+MQTTCONN=0,"192.168.10.234",1883,0AT+MQTTPUB=0,"ESP8266","msg:temp",0,0// 发送此命令时,请注意特殊字符是否需要转义。

发布长 MQTT 消息AT+MQTTPUBRAW
通过 topic 发布长 MQTT 消息。

AT+MQTTPUBRAW=,<"topic">,,,# 响应:OK# 响应:># 符号 > 表示 AT 准备好接收串口数据,此时您可以输入数据,当数据长度达到参数  的值时,数据传输开始。# 若传输成功# 响应:+MQTTPUB:OK# 若传输失败# 响应:+MQTTPUB:FAIL
:当前仅支持 link ID 0。:MQTT topic,最大长度:128 字节。:MQTT 消息长度,不同 ESP32 设备的最大长度受到可利用内存的限制。:发布消息的 QoS,参数可选 0、1、或 2,默认值:0。:发布 retain。

断开 MQTT 连接AT+MQTTCLEAN
断开 MQTT 连接,释放资源。

AT+MQTTCLEAN=
:当前仅支持 link ID 0。

3.3 ESP-01S连接EMQX服务器

ESP-01S的AT指令:

ATAT+UART=115200,8,1,0,0# 串口波特率设置AT+CWMODE=1# station模式,当做设备来连接wifiAT+CWJAP="MERCURY_****","********"# 连接WIFIAT+CIFSR# 查询IPAT+MQTTUSERCFG=0,1,"ESP8266-01s","esp8266","",0,0,""# 设置自身mqtt信息AT+MQTTCONN=0,"192.168.***.***",1883,0# 连接虚拟机EMQX,验证失败,未找到原因AT+MQTTCONN=0,"192.168.***.***",1883,0# 连接主机EMQX,验证成功AT+MQTTCONN?# 查看连接情况AT+MQTTPUB=0,"ESP8266","msg:temp",0,0# 发布消息AT+MQTTSUB=0,"MQTTFX",0# 订阅消息AT+MQTTSUB=0,"WebSocket",0AT+MQTTCLEAN=0# 断开MQTT连接

ESP-01S发布主题为ESP8266的消息:
在这里插入图片描述
服务器和MQTT.fx客户端订阅ESP8266后:
在这里插入图片描述
在这里插入图片描述
2、ESP-01S订阅MQTTFXWebSocket

AT+MQTTSUB=0,"MQTTFX",0AT+MQTTSUB=0,"WebSocket",0

在这里插入图片描述
(1)MQTT.fx发布主题为MQTTFX的数据:
在这里插入图片描述
ESP-01S接收到主题为MQTTFX的数据:
在这里插入图片描述
(2)WebSocket发送主题为WebSocket的消息:
在这里插入图片描述
ESP-01S接收到主题为WebSocket的数据:
在这里插入图片描述


参考链接:
https://blog.csdn.net/weixin_42934918/article/details/123956161
https://blog.csdn.net/weixin_61908666/article/details/129846039
https://blog.csdn.net/felix_tao/article/details/125882339

来源地址:https://blog.csdn.net/qq_45362336/article/details/130612379

--结束END--

本文标题: ESP-01S烧录及使用,连接本地MQTT服务器

本文链接: https://lsjlt.com/news/374588.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ESP-01S烧录及使用,连接本地MQTT服务器
    网上的教程大多无法正常烧录与使用,因此在这里进行总结。 1 ESP-01S烧录 固件烧录建议使用专用的烧录器,十分省心。 本文讨论的是使用普通的CH340串口模块进行烧写。 必须使用的工具:杜邦线、CH340串口模块、另外一块有3V3电源和...
    99+
    2023-08-18
    服务器 运维
  • STM32F103C8T6+ESP-01S+MQTT服务器实现数据上传和接收(一)
    STM32F103C8T6+ESP-01S+MQTT服务器实现数据的上传和接收(一) 前言ESP-01S固件烧录主要AT指令 手写简单的库函数常量定义全局变量声明串口初始化关闭AT指令回显...
    99+
    2023-09-17
    stm32 服务器 单片机 物联网 mcu
  • 图文手把手教程--ESP32 MQTT对接EMQX本地服务器(VSCODE+ESP-IDF)
    本文内容 1)使用MQTT_TCP例程,ESP32通过MQTT协议与MQTT本地服务器(EMQX)进行通信。 2)如何搭建EMQX MQTT本地服务器。 3)如何使用MQTT.fx客户端调试工具或MQTTX客户端调试工具。 开发环境 1)系...
    99+
    2023-09-29
    vscode ESP32-IDF MQTT TCP MQTT.fx EMQX
  • 钉钉连接本地服务器
    1、首先尝试重启钉钉应用,确保应用能够正常启动。 2、确认本地服务器的IP地址和端口号是否正确。 3、确认本地服务器的DNS服务器是否正常连接。 4、确认本地服务器的系统时间是否正确。 5、尝试使用其他设备连接本地服务器,比如手机,电脑等...
    99+
    2023-10-27
    服务器
  • 云服务器连接本地musql
    使用云服务器提供的SSL证书安装MySQL服务: a) 选择“控制台”>“服务器”>“证书服务”>“证书安装” b) 安装并配置CA证书,例如:“pam_ca”。 c) 输入证书密码,安装证书成功后会在控制台输出证书的PKCS1签名信息。...
    99+
    2023-10-27
    服务器 musql
  • 云服务器连接本地mysql
    如果您想连接到本地mysql服务器,以下是一个简单的步骤: 下载连接所需的mysql软件或服务的最新版本:可以从本地mysql官网或社区网站上下载最新版本的mysql软件或服务。 运行安装程序,例如 MySQL 或 PostgreSQL...
    99+
    2023-10-26
    服务器 mysql
  • 云服务器怎么连接本地数据库使用
    云服务器是一种虚拟服务器,通常用于在互联网上提供云存储服务,例如GoogleAppEngine。在使用云服务器时,您需要通过以下步骤使用本地数据库。 连接到云服务器:在任何时候,您都可以通过网络连接将您的本地数据库连接到云服务器。通常,...
    99+
    2023-10-26
    服务器 数据库
  • 如何使用本地连接来连接阿里云服务器的网络
    本文将介绍如何使用本地连接来连接阿里云服务器的网络。通过本地连接,您可以轻松地与远程服务器建立连接,并在本地环境中进行操作和管理。 详细说明:步骤一:创建本地连接首先,您需要创建一个本地连接来连接阿里云服务器的网络。以下是一些常用的本地连接...
    99+
    2024-01-19
    阿里 如何使用 本地连接
  • autojs怎么连接本地服务器
    要连接本地服务器,可以使用Auto.js提供的网络请求功能。首先,确保你的本地服务器已经启动并且可以正常访问。然后,在Auto.js...
    99+
    2023-09-09
    autojs 服务器
  • 云服务器连接本地硬盘
    高可用性:云服务器可以提供更高的可靠性和可用性,可以在各种情况下提供持久的服务。云服务器的故障转移功能可以将服务的核心资源(如CPU、内存、磁盘等)从一个节点切换到另一个节点,从而减少故障对应用程序的影响。 弹性伸缩:云服务器可以根据用户...
    99+
    2023-10-28
    本地硬盘 服务器
  • 云服务器连接本地电脑
    1. 什么是云服务器? 云服务器是一种基于云计算技术的虚拟服务器,它可以通过互联网连接到本地电脑或其他设备。与传统的物理服务器相比,云服务器具有更高的灵活性和可扩展性。它们可以根据需求进行快速部署和配置,并且可以根据业务需求进行弹性调整。...
    99+
    2023-10-28
    服务器 电脑
  • sqlserver怎么连接本地服务器
    要连接本地SQL Server服务器,您可以使用SQL Server Management Studio (SSMS)或者SQL S...
    99+
    2024-03-05
    sqlserver 服务器
  • 云服务器怎么连接本地数据库使用的
    云服务器通常支持本地数据库与远程数据库的连接。以下是一些连接本地数据库和云计算服务的常用方法: 使用连接组件:许多云服务器都提供了专门的连接组件,例如Postgresql或Greenplum等。这些组件可以使得连接云计算服务变得更加简单...
    99+
    2023-10-26
    服务器 数据库
  • 云服务器连接本地打印机怎么连接
    如果您要连接云服务器本地打印机,需要在云服务器上安装相应的打印软件,并将打印机连接到该打印机。以下是一些方法: 将打印机连接到本地计算机:可以通过以下几种方式连接打印机: 在控制面板中找到并打开“连接到本地打印机”选项卡。 右键单击打...
    99+
    2023-10-26
    打印机 服务器
  • sql server无法连接本地服务器
    当连接sql server本地服务器 报一下错误: 标题: 连接到服务器 ------------------------------ 无法连接到 localhost。 ---。。。。。   打开windows服务管理界面(win+R键,)...
    99+
    2020-01-07
    sql server无法连接本地服务器
  • MYSQL连接不上本地服务器localhost
    1 打开DOS窗口,输入mysql连接命令时报错Can't connect to MySQL server on 'localhost' (10061) 2 上面出现的问题原因是我们的本地服务没打开,我们要打开MYSQL的本地服务,按Wi...
    99+
    2023-09-25
    服务器 mysql 数据库
  • 云服务器连接本地数据库
    如果您想使用云服务器连接本地数据库,通常可以按照以下步骤进行操作: 下载和安装云服务器。云服务器通常会为您提供一个云客户端或者云连接程序。下载并安装云服务器可以帮助您连接到云服务器并获取相关的服务和工具。 配置云服务器。您需要在云服务器...
    99+
    2023-10-26
    服务器 数据库
  • 云服务器连接本地打印机
    如果您需要连接本地打印机并进行打印,可以使用以下步骤: 从打印机驱动程序中找到对应的选项,并点击进入。 打开打印机电源开关,并设置打印机的工作模式。 选择打印文件所在的驱动器(通常是D:Winntsystem32)。这将在指定的打印机上...
    99+
    2023-10-26
    打印机 服务器
  • 云服务器连接本地摄像头
    以下是一些可能需要考虑的步骤: 检查云服务器的连接:确保云服务器已连接到您的本地网络中,并且摄像头已成功连接到该服务器。如果没有,请联系云服务器的客户支持团队以获取帮助。 配置摄像头:在开始使用摄像头之前,请确保您已正确配置了摄像头。您...
    99+
    2023-10-27
    摄像头 服务器
  • 本地Pycharm连接远程服务器详细配置过程(直接在本地使用服务器显卡,很棒)
    Pycharm远程工作 前言一、建立远程服务器连接1.创建远程连接2.进行本地项目与远程项目之间的文夹路径映射3.设置自动上传项目4.验证是否连接成功 二、本地配置Python解释器三、测试案例四、本地启动服务器终端五、注意 ...
    99+
    2023-08-18
    服务器 pycharm 运维 人工智能 深度学习
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作