ESP8266-01S 模块详解及 MQTT 固件烧写实战

发布于:2025-07-05 ⋅ 阅读:(20) ⋅ 点赞:(0)
前言
本期内容为STM32FreeRTOS 智能家居项目中的重要章节,通过本期内容的学习,你将掌握STM32基于ESP8266 WIFI模块的物联网应用,本期用到的云平台是阿里云。
这为后续,通过Android Studio设计的app进行硬件控制,打下基础。

1.ESP8266硬件介绍

ESP8266-01S 是一款基于 ESP8266 芯片的 Wi-Fi 模块,以下将从其特点、功能、应用等方面进行详细介绍:

1.1.特点

  • 尺寸小巧:具有紧凑的设计,适用于空间有限的应用场景,方便集成到各种小型设备中1
  • 成本低廉:价格相对较低,能够有效降低物联网设备和嵌入式系统的开发成本,使其在众多低成本项目中得到广泛应用。
  • 高度集成:集成了 Wi-Fi 功能和处理器,减少了外部组件的需求,降低了硬件设计的复杂性和成本,同时也提高了系统的稳定性1
  • 低功耗:具有低功耗特性,支持多种低功耗模式,如深度睡眠模式等,适用于电池供电的设备,可延长设备的续航时间14
  • 易于使用:有许多开发资源和示例代码可用,通过串口通信并使用 AT 指令即可进行配置和控制,方便开发者快速上手和进行应用开发1

1.2.功能

  • Wi-Fi 功能:支持 802.11b/g/n 标准,工作在 2.4GHz 频段,可实现设备与无线网络的连接,提供稳定的无线数据传输13
  • 多种工作模式:支持 Station(客户端)、AP(接入点)以及 Station+AP 共存模式,用户可以根据实际需求灵活配置,实现设备之间的互联互通以及与外部网络的连接4
  • TCP/IP 协议栈:内置完整的 TCP/IP 协议栈,支持多种网络协议,如 HTTP、TCP、UDP、DNS 等,方便设备与服务器或其他网络设备进行数据交互24
  • 串口通信:提供简单的 UART 串口接口,默认波特率为 115200bps,可方便地与其他微控制器或设备进行通信,实现数据的传输和指令的交互12
  • GPIO 接口:具有通用输入输出引脚,可用于连接外部传感器、执行器等设备,实现对外部设备的控制和数据采集,扩展设备的功能。

1.3.硬件资源

  • 处理器:核心处理器 ESP8266 集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80MHz 和 160MHz,支持 RTOS,能够满足大多数物联网应用的处理需求24
  • 存储:配备 1MB 的 Flash 内存,可用于存储程序代码、配置信息和数据等,为应用程序的开发和运行提供了足够的空间3
  • 电源管理:拥有较为完善的电源管理系统,支持多种电源模式,能够根据设备的运行状态自动切换电源模式,降低功耗3

1.4.应用领域

  • 智能家居:可用于连接各类智能家电、传感器和控制器等设备,实现家电的远程控制、自动化场景联动以及环境监测等功能,如智能灯光控制、智能窗帘控制、智能门锁等5
  • 智能办公:应用于办公设备的联网控制,如智能打印机、智能投影仪等,实现设备的远程管理和操作,提高办公效率。
  • 环境监测:连接温湿度传感器、空气质量传感器、水质传感器等,将采集到的环境数据通过 Wi-Fi 上传到云端或服务器,实现对环境参数的实时监测和预警5
  • 工业自动化:在工业控制领域,可用于连接工业设备、传感器和执行器等,实现设备的远程监控、数据采集和分析,提高工业生产的自动化程度和智能化水平5
  • 智能农业:用于农业生产中的环境监测、灌溉控制、病虫害监测等方面,帮助农民实现精准农业,提高农业生产效率和质量。
  • 教育科研:作为教学和科研工具,帮助学生和研究人员学习和实践物联网技术、无线通信技术等,开发各种物联网应用项目5

1.5.单片机或者TTL的接线方式

本项目所使用到的WIFI模块为ESP8266-01S,接线方式如下:注意TXD和RXD的接线方式,很多时候接了模块却没有反应,就是因为硬件连线没有接对。特别注意单片机的TXD、RXD与ESP8266的TXD、RXD需要反接。
STM32/USBTTL
esp8266
GND         
GND
3.3V
3.3V
TXD
RXD
RXD
TXD

2.软件设计 

2.1.烧录MQTT固件 

ESP8266-01S的MQTT固件和烧写固件的软件在下方链接中,请自行下载:
提取码:76kn 
--来自百度网盘超级会员V5的分享

2.1.1.普通串口TTL模块

需要有一个串口TTL模块,硬件连接如下,因为我在烧录固件的时候,esp8266总是显示等待上电同步,无法正常烧写固件,通过查阅资料和尝试之后,通过将ESP8266的3V3和EN与串口TTL模块的3V3连接,GND和IO0引脚共同连接到GND上,不懂怎么做的小伙伴,可以看看我下面的图片去将杜邦线进行修改即可。
TTL模块 
ESP8266
3V3        
3V3 和 EN
GND
GND 和 IO0
TXD
RXD
RXD
TXD

2.1.2.烧录专用TTL模块

2.1.3.下载流程

打开ESPFlashDownloadTool之后,选择第一个框框ESP8266 DownloadTool
点击第一行...,选择MQTT固件,烧写到ESP8266的0x00000地址,勾选前面的勾子。
先ERASE成功后,再点击Start进行固件烧写即可。
如果遇到程序下载不进去的情况,可能需要将RST在下载的过程中接地1~2秒然后浮空。
等待显示FINISH完成,MQTT固件下载成功。