参考文章:ESP8266-01S 模块详解及 MQTT 固件烧写实战 - 知乎

零基础国产GD32单片机编程入门(十一)WIFI模块实战含源码_gd32 wifi-CSDN博客

        开始是发现8266的固件版本太老了不支持mqtt,然后找官网准备升级固件。开始是出现了下载失败,然后发现是因为要让8266进入升级模式的话就需要让P0口接地。然后飞了根线。

通过网盘分享的文件:
链接: https://pan.baidu.com/s/1R4FuqbnHV_qmgn2cl3QLzQ 提取码: 3zr7 复制这段内容后打开百度网盘手机App,操作更方便哦 
--来自百度网盘超级会员v2的分享

        解决了下载失败的问题但是发现目前手里这种1MB的8266的固件已经不维护了。只能从网上找之前的版本。这里实际是找了很多个版本都不能用,还有的是多段式的固件。。。。最终也是找到了一个能用的版本。而且配备了老的升级工具。也算是升级成功了。

下载模式接线

        下载时需要注意8266的接线

8266 电平值
3V3  3V3 
RST 显示等待电平变化时接地1~2秒然后浮空
EN 3V3 
TX RX
RX TX
IO0 GND
IO2
GND GND

        一般下载可以通过TTL模块或者专用的通信模块。这里提一下这种专用的模块,这个只是支持通信的没有考虑进入下载模式,所以没法直接用它下载程序

        可以用万用表根据上面的表格量一下电平,主要就是IO0没有接地,下载过程中RST没法接地1~2S.然后我自己的是焊接了两个自锁开关就能在下载模式和运行模式来回切换了。

烧写固件

点击第一行...,选择MQTT固件,烧写到ESP8266的0x00000地址,勾选前面的勾子。

先ERASE成功后,再点击Start进行固件烧写即可。

然后就是查询升级成功的版本,并连接WiFi。然后通过公共服务器测试一下mqtt功能。

AT+RST

OK

s$l軣<刲??l?c|弬?況?lc匊go焏og溾?c8鋰lsd;lx鹢??$#g銃剣|?#岓ng?l審l ?_x0012_no$`'{彃沷_x0012_沴 p騨?{屲溾?co??嘽尿'o?d`?_x0012_'o$`g{彃沷_x0012_溘`p??{屲溾??co?靌l審c匊gn?l`?gn?dgs庅搉脫沗;摏g儧?

################################################

arch:ESP8266, 1

compile_time:Ai-Thinker|B&T

wifi_mac:cc50E31dEE6A

sdk_version:v3.4-22-g967752e2

firmware_version:2.2.0

compile_time:Jun 30 2021 11:28:20

ready

################################################AT+GMR

AT version:2.3.0.0-dev(s-bcd64d2 - ESP8266 - Jun 23 2021 11:42:05)

SDK version:v3.4-22-g967752e2

compile time(b498b58):Jun 30 2021 11:28:20

Bin version:2.2.0(ESP8266_1MB)

OK

AT+CWMODE=1

OK

AT+CWLAP

+CWLAP:(4,"SVN_HA",-47,"f4:83:cd:60:14:eb",11,-1,-1,4,4,7,0)

+CWLAP:(4,"TP-LINK_DBBE",-58,"f4:84:8d:5c:db:be",6,-1,-1,4,4,7,0)

+CWLAP:(4,"",-64,"f6:84:8d:5d:db:be",6,-1,-1,4,4,7,0)

+CWLAP:(4,"TP-LINK_6EB0",-70,"4c:10:d5:b5:6e:b1",6,-1,-1,4,4,7,0)

+CWLAP:(3,"123",-73,"02:1f:19:27:65:1c",7,-1,-1,4,4,7,1)

+CWLAP:(4,"搴锋槑鏄?,-75,"5a:7d:2e:98:04:9b",1,-1,-1,4,4,7,0)

+CWLAP:(4,"搴锋槑鏄?,-77,"48:7d:2e:98:04:9b",1,-1,-1,4,4,7,0)

+CWLAP:(4,"TP-LINK_20F7",-85,"74:39:89:e2:45:5b",11,-1,-1,4,4,7,0)

+CWLAP:(4,"TP-LINK_20F7",-85,"4c:10:d5:91:20:f7",11,-1,-1,4,4,7,0)

+CWLAP:(3,"D3460044230000060602035J",-86,"00:6c:fd:9f:45:e7",1,-1,-1,4,4,7,0)

+CWLAP:(4,"TP-LINK_KM",-86,"4c:10:d5:50:3a:67",1,-1,-1,4,4,7,0)

+CWLAP:(4,"",-86,"4e:10:d5:91:20:f7",11,-1,-1,4,4,7,0)

+CWLAP:(4,"",-87,"76:39:89:e1:45:5b",11,-1,-1,4,4,7,0)

OK

AT+CWLAP="TP-LINK_DBBE","62102118"

ERROR

AT+CWJAP="TP-LINK_DBBE","62102118"

WIFI CONNECTED

WIFI GOT IP

OK

AT+CIFSR

+CIFSR:STAIP,"192.168.0.124"

+CIFSR:STAMAC,"cc:50:e3:1d:ee:6a"

OK

AT+MQTTUSERCFG=0,1,"MyClientID","","",0,0,""

OK

AT+MQTTCONN=0,"broker.hivemq.com",1883,1

+MQTTCONNECTED:0,1,"broker.hivemq.com","1883","",1

OK

AT+MQTTSUB=0,"test/topic",0

OK

+MQTTSUBRECV:0,"test/topic",497,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

验证MQTT

后续测试了一下用电脑的MQTT.FX和8266进行通信。

MQTT.FX配置如下:

  1. Profile Name: HiveMQ Test
  2. Broker Address: broker.hivemq.com
  3. Broker Port: 1883
  4. 其他保持默认

8266的指令配置

// 1. 设置MQTT客户端参数

AT+MQTTUSERCFG=0,1,"ESP8266_Client","","",0,0,""

// 2. 连接MQTT服务器

AT+MQTTCONN=0,"broker.hivemq.com",1883,1

// 3. 订阅主题(建议使用独特主题名)

AT+MQTTSUB=0,"mytest/username/frompc",1

在MQTT.fx中:

Publish 标签页

Topic: mytest/username/frompc

Message: Hello from MQTT.fx!

点击"Publish"

在MQTT.fx中先订阅主题:

Subscribe 标签页

Topic to subscribe: mytest/username/fromesp

点击"Subscribe"

8266上发送

AT+MQTTPUB=0,"mytest/username/fromesp","Hello from ESP8266!",1,0

然后测试json格式

发送的话

{

  "command": "set_led",

  "value": 1,

  "timestamp": 1728391200

}

但是使用8266发送json格式开始一直失败,最后排查是发送的内容的问题,因为是通过AT指令的格式发送的mqtt信息,所以要符合AT指令和mqtt两种格式,设计到一些符号两种都用到了,需要转义特殊字符。就是在它们前面加上一个反斜杠\。经过测试后使用下面的指令可以用8266发送成功。

AT+MQTTPUB=0,"mytest/username/sensor","{\"t\":25.6\,\"h\":60}",1,0

至此8266配置完成。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐