STM32学习笔记:ESP8266模块(1)

由于项目要求要涉及到物联网,公司要采用wifi 于是就采购了一块串口wifi模块,ESP8266

开始拿到后首先应该掌握的就是测试,熟悉AT指令,因为串口wifi通信是采用AT指令进行通信的,

在这里需要注意一点的就是:在编写程序的时候,一个串口(usart2)连接ESP8266,另一个串口(USart1)通过USB-TTL连接PC机查看输出信息,

bool ESP8266_Cmd ( char * cmd, char * reply1, char * reply2, u32 waittime )
{    
    strEsp8266_Fram_Record .InfBit .FramLength = 0;               //从新开始接收新的数据包

    macESP8266_Usart ( "%s\r\n", cmd );

    if ( ( reply1 == 0 ) && ( reply2 == 0 ) )                      //不需要接收数据
        return true;

    Delay_ms ( waittime );                 //延时

    strEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ]  = '\0';//增加一个结束符。

    printf ( "%s", strEsp8266_Fram_Record .Data_RX_BUF );//将USART2接收到的东西全部打印出来,接收到的保存在这个数组里,通过串口1发送出来,这样就能看到,我们发送的指令的响应,是否出错,例如:发送AT,响应是OK, USART2接收到的数据是AT OK.在交给USART1发送,在PC机的串口调试助手可以看到这些信息,


    if ( ( reply1 != 0 ) && ( reply2 != 0 ) )
        return ( ( bool ) strstr ( strEsp8266_Fram_Record .Data_RX_BUF, reply1 ) || 
                         ( bool ) strstr ( strEsp8266_Fram_Record .Data_RX_BUF, reply2 ) ); 

    else if ( reply1 != 0 )
        return ( ( bool ) strstr ( strEsp8266_Fram_Record .Data_RX_BUF, reply1 ) );

    else
        return ( ( bool ) strstr ( strEsp8266_Fram_Record .Data_RX_BUF, reply2 ) );

}

用的是这款,
这里写图片描述
这里写图片描述
这个是连接图,
GPIO0 默认是工作模式(不接线)。如果接了低电平就是下载模式(给模块刷固件!!),所以可以不接线,当然也可以接高电平。

反正一开始连接的时候CH_PD必须为高电平。其余的可以不接。

如果电脑的wifi上显示了你的wifi信号说明模块已经工作。

注意默认的波特率是115200!!!!!!设置好串口调试助手的波特率,再贴张图片吧防止亲们忘。
这里写图片描述
记得输入各种AT指令前,勾选上“发送新行”,然后输出READY!代表系统正

系统启动后,系统会输出一堆乱码,就是系统开机启动电平的变化状态,不影响。开机后,蓝灯会闪,红灯长亮,

来谈谈EPS8266的AT指令

先说一下EPS8266模快的两(三)种工作模式:Station 模式,AP 模式和AP 兼 Station 模式;有玩过路由器的应该知道路由器除了正常使用(AP模式)外,还可以接收其他路由器的信号(Station 模式),然后再发出来(AP 兼 Station 模式)。这两(三)种工作模式各怎样用呢!

先说一下AP模式下的通信:就设置他的模式为AP模式(就相当于普通路由器)

AT+CWMODE=? 响应返回当前可支持哪些模式

AT+CWMODE? 响应当前处于哪种模式

AT+CWMODE=2 1-Station 模式,2-AP 模式,3-AP 兼 Station 模式

步骤1 发送AT+CWMODE=2设置为AP 模式
这里写图片描述
这种模式下模块发出无线wifi信号。用电脑连接它。
步骤2 发送AT+RST 重启模块使AT+CWMODE=2模式生效
这里写图片描述
步骤3 发送AT+CIPMUX=1 启动多连接
这里写图片描述
这里写图片描述
为什么要启动多路连接模式,意思是允许多个客户端连接,当然模块最多允许5个客户端连接(每个客户端对应一个id号,0–4)。也是必须设定的,不然配置为服务器会出错

接着就是怎样与它通信。当然是网络通信,也就是TCP/UDP通信两种。{UDP–分为发送端和接收端,面向无连接的通信(速度快),只向指定的ip(每一台电脑都有自己的ip地址,向指定的ip地址发数据,数据就发送到了指定的电脑)端口(我把数据发送到电脑了,电脑中的哪个程序接收呢。不知道亲们知不知道,其实每一个网络软件都有自己的通信端口,像qq,酷狗音乐的下载端口等等。现在知道了吧,向指定的ip地址和指定的端口发数据,才能发送到指定的电脑的指定的程序上)不管你接没接收到,只管发}

{TCP–分为服务器和客户端,与udp不同的是双方建立正常的连接后,才能通信,每次通信都会检测连接正不正常,(通信可靠,速度比udp慢)}

模块作为服务器
步骤4 发送AT+CIPSERVER=1,8080开启服务器模式,端口号8080
这里写图片描述
这里写图片描述
打开电脑的网络调试助手(别忘了连接它的无线网)
这里写图片描述
对了远程主机地址为什么是192.168.4.1

你可以发送AT+CIFSR指令查看一下模块的自身ip地址
这里写图片描述
这里写图片描述

点击连接

这里写图片描述
这里写图片描述

接着就是发信息(客户端发给服务器)

这里写图片描述

接着就是发信息(服务器发给客户端)

这里写图片描述

去掉发送新行点击发送
这里写图片描述

客户端接收
这里写图片描述

模块作为客户端,PC作为服务器,最有意思的来了

模块作为客户端咱从头再来,

1,还是设置模块的工作模式为ap模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=0 启动单连接,先弄单连接后弄多连接,多连接比较有意思,想知道就慢慢的往下看

4,AT+CIPSTART=”TCP”,”192.168.4.2”,8080

TCP说明是tcp连接,如果写udp就是udp连接

192.168.4.2连接的ip地址,电脑的ip,端口号8080

这里写图片描述
这里写图片描述
这里写图片描述
接着就可以通信了

单路连接时发送指令为AT+CIPSEND=x , x为发送的字节数
这里写图片描述
看多路连接(首先提醒:一个模块可以做到四路连接)

1,还是设置模块的工作模式为ap模式AT+CWMODE=2

2,复位一下AT+RST

3,发送AT+CIPMUX=1 启动多连接

4,AT+CIPSTART=0,”TCP”,”192.168.4.2”,8080

5, AT+CIPSEND=0,20

6,去掉回车随便打些东西

7,发送

接着再发送

AT+CIPSTART=1,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=2,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=3,”TCP”,”192.168.4.2”,8080

AT+CIPSTART=4,”TCP”,”192.168.4.2”,8080

都连接上了!!!!!!
这里写图片描述
5, AT+CIPSEND=1,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=2,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=3,20

6,去掉回车随便打些东西

7,发送

5, AT+CIPSEND=4,20

6,去掉回车随便打些东西

7,发送

这里写图片描述
再用网络调试助手给模块发信息试一试
这里写图片描述

好了AP模式就讲这么多,该Station 模式了

Station模式与AP模式不同在于,Station模式需要让模块连接上家里的路由器的wifi。其余的都一样吧!

就让模块在Station模式下做服务器,然后与电脑通信(要在一个wifi下,电脑和模块连接同一个wifi信号)

1,发送AT+CWMODE=1设置为Station模式

2,AT+RST 重启生效

3,连接家里的路由AT+CWJAP=”TP-LINK_A52”,”1234567890”
这里写图片描述
这里写图片描述
发送AT+CWLAP可以查询周围的wifi信号

发送AT+CWJAP可以看一看wifi是否真的连接上

4,AT+CIPMUX=1 启动多连接

5,AT+CIPSERVER=1,8080 打开服务器端口为8080

6,AT+CIFSR 看一下你模块现在分得的ip是多少,因为只要模块连网就会重新分配ip地址。这也是网络助手里面远程主机栏要填写的ip地址
这里写图片描述
这里写图片描述
这里写图片描述
通信啥的就不多说了。

用模块做客户端

1 连接路由器AT+CWJAP=”TP-LINK_A52”,”1234567890”

2 AT+CIPMUX=0 单连接

3 AT+CIPSTART=”TCP”,”192.168.1.101”,8080

后面就是发送数据,如果出现一直连接不上关闭电脑防火墙
这里写图片描述
这里写图片描述
多连接就不演示了,

AT+CIPSTART=0,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=1,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=2,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=3,”TCP”,”192.168.1.101”,8080或

AT+CIPSTART=4,”TCP”,”192.168.1.101”,8080或

发送数据

AT+CIPSEND=0,20或

AT+CIPSEND=1,20或

AT+CIPSEND=2,20或

AT+CIPSEND=3,20或

AT+CIPSEND=4,20

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值