1.ESP8266WiFi模块介绍

1.1ESP8266wifi 模块

低功耗串口WiFi模块ESP8266内置一个Tensilica(泰思立达) Xtensa架构的32位处理器L106,具有5级流水线(ARM CortexM3是3级流水线),最大时钟速度为160MHz,可以使用高达16MB的外部SPI Flash。 该模块采用串口与MCU(或其他串口设备)通信,内置 TCP/IP协议栈,能够实现串口与 WIFI 之间的转换。通过该模块,传统的串口设备只需要简单的串口配置,即可通过WiFi传输自己的数据。

wifi模块具有两种模式:AP模式 、Station模式
AP模式:就是我们平常用的热点,如无线路由器,手机热点。
Station模式:就是我们连接这些热点的设备,如手机,iPad,笔记本电脑。

1.2AT命令介绍

我们想要与esp8266wifi模块进行通信,那么就需要AT命令进行。就好比我们要和英国国人进行交流时,我们就要用英语交流。在这里,就需要用到esp8266的AT指令进行和pc之间的通信。
AT 即Attention,它由拨号调制解调器(Modem)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议。协议本身采用文本,每个命令均以AT打头,因此得名。90年代初,AT指令仅被用于Modem操作。
几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM 研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM 07.05标准以及现在的GSM07.07标准,其中拨打电话、收发短信、收发传真等全部由AT命令实现。而在随后的GPRS控制,3G模块,以及工业上常用的PDU,均采用AT命令集来控制,这样AT指令也就成为了完全标准化和比较健全的标准。

1.3AT命令格式

AT指令是以AT作为开头,\r\n字符结束的字符串,每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。

类型 指令格式 描述
执⾏指令 AT+ 该命令⽤于执⾏受模块内部程序控制的变参数不可变的功能
测试指令 AT+=? 该命令⽤于该命令⽤于查询设置指令的参数以及取值范围
查询命令 AT+? 该命令⽤于返回参数的当前值
设置指令 AT+=<…> 该命令⽤于设置⽤户⾃定义的参数值

注意:不同模块的AT命令可能不一样的,这要对着模块的AT指令手册来查看。可以通过esp8266应答的信息来判断你们之间是否建立通信了。(每当发送一个AT指令之后,相应地就会在结尾给PC发 OK或者ERROR)

原理分析

下图是STM32开发板上预留的ESP8266模块接口,由此可知WiFi模块连到了CPU的USART2这个串口上。

配置使能串口USART1和USART2及中断。

按下CTRL+S生成代码。之后下篇博客会将代码实现写出来。

连接

如果我们用AT命令去操作ESP8266模块的话,我们就需要通过USART1,和USART2两个串口 桥接连接来实现通信.

我们通过两个串口来实现PC和ESP8266模块来发送AT指令。进而配置相应的内容。
1.AT+RST 重启、复位ESP8266命令
AT AT确认模块是否正常工作


2.AT+CWMODE_CUR=1 设置WiFi为Station模式和使能DHCP服务

这样我们就完成了通过AT指令来配置esp8266WiFi模块的station模式和使能DHCP服务;
然后我们就可以用AT指令去连接我们的路由器,刚才也说过station模式就是我们来连接热点的设备。连接之后我们就可以和局域网内的PC通过TCP连接进行通信。
3.AT+CWJAP_CUR=“输入WiFiID”,“输入路由器连接密码” 连接无线路由器

然后我们就可以TCP连接服务器进行数据通信。

4.AT+CIPSEND=5 发送5个字节数据等收到模块返回 > 后再输入5个字节数据将会通过WiFi模块发送出去。

我们通过”AT+CIPSEND=5“这条命令给ESP8266发送hello,然后可以收到TCP服务器发送回来的信息。所以说,AT命令对操作ESP8266来进行通信非常重要。至此我们完成了通过串口来发送AT命令来完成配置相关内容及TCP连接服务器。如有错误请留言指正,谢谢。

物联沃分享整理
物联沃-IOTWORD物联网 » STM32-ESP8266wifi模块实现

发表评论