UART控制WIFI模块

我们使用的WIFI模块是ESP-01S,属于ESP8266系列,由乐鑫生产

该模块采用串口与单片机进行通讯,采用AT命令进行控制,查看原理图

ESP-01S通常需要单独烧录固件,由官方的AT固件,也可以使用MicroPython固件,MicroPython是Python3的一个精简版本,常用于嵌入式开发,感兴趣可以自行查看与学习,我们的模块默认烧录了AT固件

固件烧录部分不再阐述,感兴趣可以自行查找资料,不需要烧录的话,我们只需要用到VCC和GND两个供电引脚以及01STX和01SRX串口通讯引脚,WIFI模块已连接到串口2(PA2-RX,PA3-TX),直接使能串口2即可与WIFI模块通讯

部分AT命令

我们先测试一下WIFI模块的单独通讯,使用ESP-01S专用串口连接器,接入PC,打开串口,发送AT(发送时记得勾选发送新行),查看串口返回信息

返回OK即WIFI模块工作正常,返回ERROR或无返回则是工作不正常,或串口配置有误,检查配置

接下来将WIFI模块放回开发板,我们来使用单片机与WIFI模块进行串口通讯

编写代码,先打开可视化配置文件,使能串口1和串口2,串口1用于方便我们调试,串口2用于与WIFI模块的通讯,记得使能串口中断

保存,生成代码

我们使用串口2跟WIFI模块通讯,为了方便查看和调试,使用中断接收处理接收到的串口数据,先将串口1与PC机连接,使我们能在PC上使用串口助手和STM32单片机进行通讯,然后我们这里做一个步骤,在中断接收处理函数中,我们将串口1接收到的数据,转发给串口2,串口2接收到的数据转发给串口1

这样子,我们在PC的串口助手发送信息,串口1就会收到,收到就会转发给串口2,串口2连接这WIFI模块,这样WIFI模块就能收到我们在PC串口助手发送的信息,同理,WIFI模块做出反馈后,会发送给串口2,而串口2收到后,又会转发给串口1,这样我们在PC机就能收到来自串口1的信息,也就是WIFI模块做出反馈后的信息。

我们总结一下

单片机与WIFI模块通讯的基本步骤1:

单片机发送信息到串口2 ->

信息经过串口2传送给ESP01SSTM32的串口2发送信息(TX ->

 ESP01S的串口接收到信息,做出回复(比如OK ->

回复信息经过串口传送给STM32STM32的串口2接收到信息(RX->

STM32执行相应操作

我们调试WIFI模块的基本步骤:

PC机发送信息到单片机串口1 ->

单片机串口1接收到PC的信息,转发信息到串口2 ->

信息经过串口2传送给ESP01SSTM32的串口2发送信息(TX ->

ESP01S的串口接收到信息,做出回复(比如OK ->

回复信息经过串口传送给STM32STM32的串口2接收到信息(RX->

单片机的串口2接收到ESP01S反馈的信息,转发信息给串口1 ->

PC机接收到单片机串口1的信息

接下来,我们继续写代码,修改main.c

串口接收处理转发

main函数,开启串口中断接收

烧录,串口助手调试

成功实现PC机通过STM32与ESP-01S通讯后,我们就可以看见STM32和ESP-01S通讯的过程,这样避免我们在编写代码时,有一些误操作但我们又无从得知

接下来,我们尝试用STM32给ESP01S发送连接WIFI的指令

修改main.c,编写函数

代码这里不做解释,命令在上面有给出,可以对照一下,主要就是三个命令,一个是软重启WIFI模块,第二个是设置WIFI模块为客户端模式,第三个是连接对应的WIFI,实在看不懂可发给AI解释一下

接下来使用手机打开热点,查看热点名称和密码,然后在main.c调用函数

为了看见完整的效果,可以在烧录代码之前,将串口模块连接好,然后再烧录代码

烧录代码,在串口助手等待查看连接效果

WIFI CONNECTED 连接成功

WIFI GOT IP获取IP地址成功

OK连接WIFI成功

我们可以发送AT+CIFSR,查看我们获取到的IP地址

Logo

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

更多推荐