VCC连接正极,GND连接负极
RXD:数据的接收端
TXD:数据的发送端
RST: 复位,低电平有效
IO_0:用于进入固件烧写模式,低电平->烧写,高电平->运行模式(默认)
1、STA模式:该模块通过路由器连接网络,手机或者电脑实现该设备的远程控制。
2、AP模式:该模块作为热点,手机或者电脑连接wifi与该模块通信,实现局域网的无线控制。
3、STA+AP模式:两种模式共存,既可以通过路由器连接到互联网,也可以作为WiFi热点,使其他设备连接到这个模块,实现广域网与局域网的无缝切换。
1、将线连接好,VCC、GND、TXD、RXD要连接好,其他线可以悬空。
2、准备好串口助手,用来接受发送数据。波特率一般是115200,设置软件的波特率为115200。
3、准备网络调试助手,同样用来发送接收数据。
注:在进行前先将防火墙关闭。
1、配置网络调试助手
协议类型:TCP Server
本地主机地址:通过cmd,ipconfig指令查看
本地主机端口:自己选择
打开开关
2.配置串口助手
串口:可以去设备管理器查看相应串口号
波特率:一般为115200
其它保持默认
打开串口
3.用AT指令配置WiFi模块
1,AT+CWMODE_DEF=1 !!工作在单station模组,设置参数保存到flash
2,AT+CWJAP_DEF=“newifi_F8A0”,“anxinke123” !!连接路由器,保存到flash
注:“” 里面填写的是要连接的WiFi名称和密码
3,AT+CIPSTART=“TCP”,“192.168.99.217”,6001 !!连接TCP服务器,本实验用网络调试助手进行测试
注:填写格式为:“TCP”,“通过ipconfig查看到的地址”,端口号
4,AT+CIPSEND=5 !!方式一:发送指定数据长度的数据(Data:test1),
5,AT+CIPMODE=1 !!方式二:使用透传模式发送数据
6,AT+CIPSEND !!发送数据(Data:Test2)
注:串口助手上出现“>”符号,表示可以互相发送接收消息
7,发送:+++ !!退出透传发送三个连续的+++,不要勾选新行(\r\n)
1、为单片机选择波特率为115200的模式
void init_115200()
{
SCON = 0x50;
T2CON |= 0X30;
TH1 = 0xFF;
TL1 = 0xFD;
RCAP2H = 0XFF;
RCAP2L = 0XFD;
TR2 = 1;
ES = 1;
EA = 1;
ET0=1;
}
2、通过单片机发送AT指令给WiFi模块,完成配置
预设AT指令
void wifi()
{
upt("AT+CWMODE_DEF=1\r\n");
delay(1000);
upt("AT+CWJAP_DEF=\"nxa\",\"24162812\"\r\n");
delay(2000);
upt("AT+CIPSTART=\"TCP\",\"172.20.10.8\",8080\r\n");
delay(500);
upt("AT+CIPMODE=1\r\n");
delay(500);
upt("AT+CIPSEND\r\n");
delay(500);
}
延时函数,为WiFi模块的连接提供足够时间
void delay(unsigned long time )
{
int i;
int j;
for( i = 0;i<100;i++)
for( j = 0;j
输出函数,将AT指令一句句输出给WiFi模块
void shuchu(char c)
{
SBUF = c;
while(TI==0);
TI = 0;
}
void upt(char *p)
{
while(*p != '\0'){
shuchu(*p);
p++;
}
}
3、完善代码
主函数:判断接收值,反馈预定值
int main()
{
upt("hello");
str = chus;
init_115200();
wifi();
while(1){
if(str == commane){
upt("hello\r\n");
str = chus;
}else if(str == com){
upt("world\r\n");
str = chus;
}
}
return 0;
}
中断函数
void zhongduan(void) interrupt 4
{
if(RI == 1){
RI = 0;
str = SBUF;
}
if(TI == 1);
}
全局变量
#define chus -1
#define commane 1
#define com 0
char str;