ESP8266无法连接热点的问题

举报
DS小龙哥 发表于 2025/03/30 19:26:45 2025/03/30
【摘要】 ESP8266无法连接热点的问题

一、前言

分享的很多项目里使用了ESP8266-WIFI模块,通过WIFI模块连接了物联网平台,利用MQTT协议完成数据通信。

ESP8266-WIFI模块 要能够正常上网,需要上电之后,连接热点(也就是可以上网的WIFI),然后它才可以连接互联网,才可以去连接MQTT服务器。

那么这篇文章就是解决关于ESP8266-WIFI无法连接热点或者硬件检测错误的问题进行处理。


二、ESP8266问题解决

2.1 ESP8266-WIFI模块 购买

常见的ESP8266-WIFI就是下面的这款模块。

image-20240703151855558



2.2 与STM32单片机连线

一般项目里,ESP8266-WIFI模块与单片机的连线如下说明。

PA2----->ESP8266RXD
PA3----->ESP8266TXD
GND----->GNDVCC----->5.0V

要认真检查接线是否正确。


如果接线不正确,或者 模块坏了。


那么显示屏上会显示ESP8266 ERROR。 或者 卡在WIFI Init 这样的字样。


再检查一下电源模块的接线,确认电源是否正常:

https://blog.csdn.net/xiaolong1126626497/article/details/146071578


如果最终测试还是不行?

就按下面的视频去测试下。

【ESP8266-WIFI模块串口调试过程讲解】 https://www.bilibili.com/video/BV1ku4y1E74M/?share_source=copy_web&vd_source=347136f3e32fe297fc17177194ce0a8b



按下面的命令顺序配置,测试WIFI的链接。 (串口调试助手记得勾选新行)

AT
ATE0
AT+CWMODE=1
AT+RST
ATE0
AT+CWLAP
AT+CWJAP="abc","12345678"
AT+CIPMUX=0
AT+CIPMODE=1
AT+CIPSTART="TCP","117.78.5.125",1883
AT+CIPSEND  

以下是每个指令的解释:

(1)"AT\r\n":这是用于测试ESP8266模块是否正常工作的基本指令。发送此指令后,模块应该回复 "OK\r\n"。

(2)"ATE0\r\n":这个指令用于关闭回显功能。当回显功能关闭时,模块不会将接收到的指令发送回串口。回复 "OK\r\n" 表示指令执行成功。

(3)"AT+CWMODE=1\r\n":这个指令设置ESP8266模块为STA(站点)模式,即将其配置为连接到现有无线网络的客户端。回复 "OK\r\n" 表示指令执行成功。

(4)"AT+RST\r\n":这个指令用于重启ESP8266模块。模块将重新启动并返回 "ready\r\n" 表示准备就绪。

(5)"ATE0\r\n":同第二条指令一样,这个指令再次关闭回显功能。

(6)"AT+CWLAP\r\n":这个指令用于查询附近可连接的无线网络。模块将返回一个列表,包含可用网络的信息。

(7)"AT+CWJAP="abc","12345678"\r\n":这个指令用于连接到指定的无线网络。在此示例中,通过SSID为 "abc" 的无线网络,并使用密码 "12345678" 进行连接。回复 "OK\r\n" 表示指令执行成功。

(8)"AT+CIPMUX=0\r\n":这个指令用于禁用多连接模式。回复 "OK\r\n" 表示指令执行成功。

(9)"AT+CIPMODE=1\r\n":这个指令用于设置传输模式为透明传输模式。在透明传输模式下,ESP8266模块将直接将串口数据发送到网络连接中。回复 "OK\r\n" 表示指令执行成功。

(10)"AT+CIPSTART="TCP","117.78.5.125",1883\r\n":这个指令用于建立与指定TCP服务器的连接。在此示例中,将与IP地址为 "117.78.5.125"、端口号为1883的服务器建立连接。回复 "OK\r\n" 表示指令执行成功。

(11)"AT+CIPSEND\r\n":这个指令用于发送数据到已建立的TCP连接。发送此指令后,模块将进入发送模式,并等待用户输入要发送的数据。可以通过向模块发送数据来进行通信。





如果测试也还是不行,就只能重新买新的模块了。



2.3 热点如何设置?

ESP8266-WIFI模块只能连接2.4GHZ的WIFI热点。

如果你是用手机开启热点,那么设置一定要正确。

image-20250317162226791



如果正常设置了还是连接不上。 就按下面的截图这样设置。再去测试。

也就是关闭安全性,不要设置密码(单片机的代码不用改)。

image-20250317162019026



2.4 正常的WIFI上电过程如下





三、ESP8266-WIFI介绍

ESP8266是一款低成本、高性能的Wi-Fi模块,由乐鑫科技(Espressif Systems)开发。其核心是一颗集成了32位Tensilica L106微处理器的芯片,主频可达80MHz或160MHz(超频模式),同时内置了Wi-Fi通信功能和TCP/IP协议栈。该模块支持IEEE 802.11 b/g/n无线标准,工作频段为2.4GHz,能够实现STA(客户端)、AP(热点)或STA+AP混合模式,适合构建物联网设备的无线连接。

模块通过串口(UART)与主控设备通信,支持AT指令集,可快速实现网络配置与数据传输。开发者也可直接在其上编程,利用丰富的SDK开发包或第三方平台(如Arduino、Lua、MicroPython)进行深度开发,无需外接主控芯片。其GPIO、PWM、I2C、SPI等接口扩展了传感器、显示屏等外设的连接能力,适用于智能家居、远程监控等场景。

ESP8266的供电电压为3.3V,典型功耗在持续工作时约80mA,支持深度睡眠模式(电流低至20μA),适合电池供电设备。模块尺寸小巧,常见封装包括ESP-01、ESP-12E等,不同型号对应不同引脚数量和板载天线设计(如PCB天线或外接天线接口)。

其开源生态系统和活跃的社区支持(如ESP-Open-SDK、PlatformIO)降低了开发门槛。通过OTA(空中升级)功能可远程更新固件,而内置的Flash存储器(通常4MB)支持程序存储与文件系统。尽管存在内存限制和并发处理能力较弱的问题,但其性价比仍使其成为物联网入门级项目的首选方案之一。


四、MQTT协议

MQTT(Message Queuing Telemetry Transport)是一种轻量级的即时通信协议,专为低带宽、高延迟或不稳定的网络环境设计,尤其适用于物联网(IoT)场景。其核心采用发布/订阅(Pub/Sub)模式,通过主题(Topic)实现消息的过滤与路由,发布者(Publisher)将消息发送到指定主题,订阅者(Subscriber)通过订阅主题接收相关消息,代理服务器(Broker)负责中转和管理通信过程。这种机制有效解耦了设备间的直接依赖,提升了系统的灵活性和扩展性。

MQTT协议定义了三种服务质量等级(QoS):QoS 0(最多一次,不保证送达)、QoS 1(至少一次,需确认)和QoS 2(恰好一次,严格确保可靠性),开发者可根据场景需求平衡效率与可靠性。协议头部极简,最小仅需2字节,显著降低了网络开销。同时,MQTT支持心跳机制(Keep Alive),用于维持长连接并检测设备状态异常,还提供遗嘱消息(Last Will)功能,可在设备意外离线时自动通知其他客户端。

安全性方面,MQTT支持基于SSL/TLS的加密通信,以及用户名/密码认证,但需开发者主动配置以规避未授权访问风险。协议本身无状态,但可通过Clean Session标志控制是否保留会话信息(如未完成的消息队列)。其轻量化特性使其广泛应用于智能家居、工业传感器、车联网等场景,例如远程设备监控、实时数据采集与推送。

MQTT协议的常见实现包括开源代理服务器Mosquitto、EMQ X,以及客户端库如Eclipse Paho。2019年发布的MQTT 5.0版本新增了会话过期、原因码、共享订阅等功能,进一步优化了大规模部署能力。尽管协议简单,其设计哲学“以最少资源实现可靠通信”使其成为物联网领域事实上的标准协议之一。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。