前言
本期内容为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固件下载成功。
