ESP8266模块测试
ESP8266-01s封装图:
ESP8266和 单片机连线:
ESP: 单片机
UTXD RXD
GND GND
CH_PD(EN) (给高电平模块才工作)
GPIO2 必须接高电平(内部已经拉高,不用管)
RST 低电平复位,高电平工作)
GPIO0 一般情况下不用管,烧录固件时接低电平
VCC 3.3V
URXD TXD
说明:拿到模块后,测试模块,只需连接5根线,VCC,GND,UTXD,URXD,CH_PD(EN)
接好后,可进行AT指令测试。
注意:(PC测试模块)如果是直接接USB转TTL,那么就RX和TX交叉接,如果是接单片机就TX接TX,RX接RX,(单片机测试)下载好程序后,TX和RX交叉接,可正常通信。
PC测试:
模块和电脑连接好后可按以下顺序执行AT指令(1-6):
AT指令:
1.AT+CWMODE=X
功能:设置工作模式指令:
-------Station模式(让模块去连接路由器或热点,模块作为客户端)
-------AP模式(模块本身是一个热点,手机和电脑可以连接,模块作为服务器)
-------Station+AP模式
示例:AT+CWMODE=2
2.AT+RST
功能:重启指令(设置新的工作模式后需要重启才能生效)
示例:AT+RST
3.AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>
功能:配置AP参数(指令只有在AP模式开启后有效)
ssid:接入点名称
pwd:密码 字符串型,最长64字节。
chl:通道号 0,1,2,3,4
ecn:加密方式:(0-OPEN, 1-WEP, 2-WPA_PSK, 3-WPA2_PSK, 4-WPA_WPA2_PSK)
示例:AT+CWSAP="luatao","1234567890",1,3
4.AT+CIFSR
功能:查看本模块的IP地址
示例:AT+CIFSR
5.AT+CIPMUX=1
功能:设置多连接模式
示例:AT+CIPMUX=1
6.AT+CIPSERVER=<mode>,<port>
功能:创建服务器
mode:
0-----关闭SERVER模式
1-----开启SERVER模式
Port:端口号(缺省为333)
示例:AT+CIPSERVER=1,6666
说明:AT+CIPMUX=1时才能开启服务器,关闭SERVER模式需要重启AT+RST
开启SERVER后自动建立监听,当有Client接入时会自动按顺序建立一个连接。
7.AT+CIPMUX?
功能:查看本模块是否建立多连接
0-------单路连接
1-------多路连接
示例:AT+CIPMUX?
执行完以上程序后,模块设置完成,可用手机客户端发消息测试通信。
第一步:打开手机,连接模块的WIFI
第二步:打开网络调试APP
按图上配置好后,点击打开,如果连接成功
PC串口上打印0,CONNECT
单片机测试:
第一步:下载程序。
要想让单片机发送数据到手机,需要发送一条指令
数据双向传输
多连接模式:
AT+CIPSEND=0,10
单连接模式:
AT+CIPSEND=10
发送的代码:
Send_String("AT+CIPSEND=0,10\r\n");//发送10个数据
Delay1000ms();
Send_String("hello world");//向手机发送数据
Delay1000ms();
剩下的操作就是连接模块,打开网络调试,然后发送数据测试。
代码:
ESP8266.h
- #ifndef ESP8266
- #define ESP8266
- sbit LED=P6^0;
- extern uchar Receive;//接收值
- extern void Delay1000ms() ; //@24.000MHz
- extern void Uart1_Init(void); //9600bps@24.000MHz
- extern void ESP8266_Init();//ESP8266串口发送两条指令
- extern void Send_String(uchar *p);//发送字符串
- #endif
复制代码ESP8266.c
All.h
- #include<STC8.h>
- #include<intrins.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- #include<ESP8266.h> //ESP8266wifi模块
复制代码 main.c
- #include<All.h>
- void main()
- {
- Uart1_Init();
- ESP8266_Init();
- while(1)
- {
- if(Receive=='A')
- LED=0; //灯亮
- else if (Receive=='B')
- LED=1; //灯灭
- else if(Receive=='a')
- {
- Send_String("AT+CIPSEND=0,10\r\n");//发送10个数据
- Delay1000ms();
- Send_String("hello world");
- Delay1000ms();
- }
复制代码
esp8266测试.pdf
(243.98 KB, 下载次数: 41)