串口通讯(第2篇)WIFI模块

本文详细介绍了ESP-01sWiFi模块的初始配置、入网设置和连接到TCP服务器的过程,包括AT指令的使用和单片机如何通过串口进行AT设置以连接服务器。同时,文章讨论了ESP作为服务器时的配置步骤,并针对可能出现的通信问题提出了优化方案。
摘要由CSDN通过智能技术生成

目录

1.WIFI模块ESP-01s

2.AT指令

2.1初始配置和验证

2.2入网设置

2.3连接到 TCP server

3.使用单片机进行AT设置-连接服务器

4.ESP作为服务器


注意:需要在同一个局域网下(连接到相同的WiFi),才能连接到服务器

1.WIFI模块ESP-01s

蓝牙,ESP-01s,Zigbee, NB-Iot等通信模块都是基于AT指令的设计

2.AT指令

对终端设备进行配置。

2.1初始配置和验证

ESP-01s出厂波特率正常是115200, 注意:AT指令,控制类都要加回车,数据传输时不加回车。

上电后,串口输出系统开机信息,购买的部分模块可能电压不稳乱码,以 ready 为准。

################################################
arch:ESP8266, 1
compile_time:Ai-Thinker|B&T
wifi_mac:4c75250dAE2F
sdk_version:v3.4-22-g967752e2
firmware_version:2.2.0
compile_time:Jun 30 2021 11:28:20
ready
################################################

上电后发送AT指令测试通信及模块功能是否正常

AT
OK

通过一下命令配置成9600波特率

AT+UART=9600,8,1,0,0

2.2入网设置

设置工作模式

AT+CWMODE=3 //1. 是station(设备)模式 2.是AP(路由)模式 3.是双模
OK

以设备模式接入家中路由器配置

AT+CWJAP="TP-LINK_3E30","18650711783" //指令
WIFI CONNECTED //结果
WIFI GOT IP   //结果

查询IP地址

AT+CIFSR  //指令
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"4e:75:25:0d:ae:2f"
+CIFSR:STAIP,"192.168.0.148"
+CIFSR:STAMAC,"4c:75:25:0d:ae:2f"
OK

2.3连接到 TCP server

1. 开关网络助手,设立TCP服务器

 2. 连接服务器

AT+CIPSTART="TCP","192.168.0.113",8888 //指令,注意双引号逗号都要半角(英文)输入
CONNECT  //结果:成功
OK    //结果:成功

3. 发送数据1-限制字节

AT+CIPSEND=4 // 设置即将发送数据的长度 (这里是4个字节)
>CLCA // 看到大于号后,输入消息,CLCA,不要带回车
Response :SEND OK  //结果:成功
//注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!

4.发送数据2-透传模式

AT+CIPMODE=1  //开启透传模式
Response :OK
AT+CIPSEND //带回车
  Response: >  //这个时候随意发送接收数据咯

退出透传模式

//在透传发送数据过程中,若识别到单独的⼀包数据 “+++”,则退出透传发送

3.使用单片机进行AT设置-连接服务器

服务器和ESP 联网时需要在一个局域网LAN下。

白盒测试方式,用串口助手查看AT设置情况。单片机接线图:

 单片机代码:

需要注意烧录的串口com3和查看的串口com4是不一样的

 #include "reg52.h"	//超声波控制LED
 #include "string.h"
sfr AUXR=0x8e;
sbit led1=P3^6;
sbit led2=P3^7;


void Delay5000ms();
void init_usb(void);
void data_uart_transport(char *p);

void main(void)
{

	code char LAN_connect[]         ="AT+CWJAP=\"yangkai\",\"12345678\"\r\n";
	code char TCP_server_connect[]  ="AT+CIPSTART=\"TCP\",\"172.20.10.5\",80\r\n";
	char touchuan_start[]      ="AT+CIPMODE=1\r\n";
	char datatransport_start[] ="AT+CIPSEND\r\n";

	init_usb();	   //串口初始化
			
	while(1){	
		data_uart_transport(&LAN_connect);
		Delay5000ms();
		data_uart_transport(&TCP_server_connect);
		Delay5000ms();
		data_uart_transport(&touchuan_start);
		Delay5000ms();
		data_uart_transport(&datatransport_start);
		Delay5000ms();		
		//data2=SBUF;   //接受外部数据后产生中断	 进入interrupt 4		
	}	
}
void data_uart_transport(char *p)
{
	while(*p != '\0'){
		SBUF= *(p++);	 //发送完成后产生中断   进入interrupt 4
		while(!TI);
		TI=0;			
		}			
}


void UART_Pountine(void) interrupt 4
{
	static int i=0;
	static char cmd[12];

	if(TI){
		//Delay500ms();
		led2=~led2;	  //每次发送完一个字符h e l就进入一次,因为太快,所以感觉一直亮着
	}

	if(RI){				   //接受外部数据后产生中断	 进入interrupt 4
		RI=0;
		cmd[i]=SBUF;
		i++;
		if(strstr(cmd,"en")){
			led1=0;
			i=0;
			memset(cmd,'\0',12);
		}
		if(strstr(cmd,"cl")){
			led1=1;
			i=0;
			memset(cmd,'\0',12);
		}
		if(i==12){
			i=0;
		}
	}
}

void init_usb(void)
{
	SCON=0x50;//采用工作方式1进行通讯
	PCON &= 0x7F;  //要清0就 &上0
	ET1=0;//串口用的定时器1,关闭中断。配置相同的波特率
	//TCON 定时器控制寄存器
	TR1=1;  //打开定时器1
	//TMOD? 定时器模式寄存器
	TMOD &=0x0F; //&0就清0
	TMOD |=0x20; // |1就变1
	TH1=0xFD; //高位? ? ? 自动重装时TH1将自动装入TL1
	TL1=0xFD; //低位
	//TI 中断请求标志位   RI中断请求标志位
	EA=1;ES=1;   //总中断允许位  串口中断允许位 
}


void Delay5000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

//	_nop_();
	i = 36;
	j = 5;
	k = 211;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

优化代码——(不是延迟5s执行下一步)——换一种链接方式(用返回值确定是否执行下一步)

ERROR
WIFI CONNECTED
WIFI GOT IP
AT+CIPSTART="TCP","172.20.10.5",80
CONNECT

OK
AT+CIPMODE=1

OK
AT+CIPSEND

OK

需要注意问题:串口通讯是接收和发送是同时进行的;
//所以上一个发送后的接收,不能影响这一个,
解决方法// 给予接收时间(延迟)   再执行下一步的发送指令

方法论:在软件中——快速是需要付出错误的代价的。 

 

 #include "reg52.h"	
 #include "string.h"

sfr AUXR=0x8e;
sbit led1=P3^6;
sbit led2=P3^7;
int LAN_mark=0;
int other_land_mark=0;
int suceed_mark=0;
int error=1; 



void Delay5000ms();
void init_usb(void);
void data_uart_transport(char *p);
void Delay10ms();

void main(void)
{

	code char LAN_connect[]         ="AT+CWJAP=\"yangkai\",\"12345678\"\r\n";
	code char TCP_server_connect[]  ="AT+CIPSTART=\"TCP\",\"172.20.10.5\",80\r\n";
	char touchuan_start[]      ="AT+CIPMODE=1\r\n";
	char datatransport_start[] ="AT+CIPSEND\r\n";
	char reset[]               ="AT+RST\r\n";
	char my_word[]             ="hello world";

	init_usb();	   //串口初始化

	while((!suceed_mark) || (!error)){		  //不成功就重启然后执行

		data_uart_transport(&reset);		//重启
		other_land_mark=0;   //重新置0
		LAN_mark=0;			 //重新置0
		error=1;			//重新置1
		Delay5000ms();

		data_uart_transport(&LAN_connect);	   //发送联网指令    "yangkai\",\"12345678\"\r\n";
		while(!LAN_mark);   //接收到 wifi  GOTIP执行下一步LAN_mark变为1
		Delay10ms();Delay10ms();Delay10ms();Delay10ms();Delay10ms();    //发送和接收都在一直执行,所以上一个不能影响这一个,接收一会儿不接受了再执行下一步
		Delay5000ms();
															
		data_uart_transport(&TCP_server_connect);			//发送"TCP\",\"172.20.10.5\",80\r\n";
		while(!other_land_mark); //接收到OK执行下一步other_land_mark 变为1
		other_land_mark=0;   //重新置0
		Delay10ms();

		data_uart_transport(&touchuan_start);		//AT+CIPMODE=1\r\n";
		while(!other_land_mark); //other_land_mark接收到OK执行下一步
		other_land_mark=0;   //重新置0
		Delay10ms();

		data_uart_transport(&datatransport_start);	   //"AT+CIPSEND\r\n"
		while(!other_land_mark); //other_land_mark接收到OK执行下一步
		Delay10ms();
		
		if(LAN_mark==1 && other_land_mark==1 && error==1){
			led1=0; led2=0;  //联网成功点亮led1	   led2=0;  //eps进入透传接收模式
			suceed_mark=1;   //成功了
		}

	}
		
	while(1){	
		data_uart_transport(&my_word);
		Delay5000ms();
		//data2=SBUF;   //接受外部数据后产生中断	 进入interrupt 4		
	}	
}
void data_uart_transport(char *p)
{
	while(*p != '\0'){
		SBUF= *(p++);	 //发送完成后产生中断   进入interrupt 4
		while(!TI);
		TI=0;			
		}			
}


void UART_Pountine(void) interrupt 4
{
	static int i=0;
	static char cmd[7];
	char tmp;

	if(TI){
		//Delay500ms();
		//led2=~led2;	  //每次发送完一个字符h e l就进入一次,因为太快,所以感觉一直亮着
	}

	if(RI){				   //接受外部数据后产生中断	 进入interrupt 4
		RI=0;
		tmp=SBUF;

		if(tmp=='W' || tmp=='O' || tmp=='L' || tmp=='E' ){		 //w 和o、L、e 始终放置在第0位
			i=0;
		}
		cmd[i]=tmp;
		if(cmd[0]=='W' && cmd[5]=='G'){   //局域网接入成功		 如果出现WIFI GOT IP
			LAN_mark=1;
			//memset(cmd,'\0',7);
		}
		if(cmd[0]=='O' && cmd[1]=='K'){	  //其它操作接入成功	 如果出现OK
			other_land_mark=1;
			//memset(cmd,'\0',7);
		}
		if(cmd[0]=='E' && cmd[1]=='R'){					   //如果出现错误ERROR		如果出现错误FALL联局域网失败没办法、有BUG。解决办法是字符的精确匹配和每个标志位单独设置标记,当4个标记同时成功才不重启了						   
			other_land_mark=1;	                //出现错误ERROR如何让其通畅 回到while   但是suceed——mark不变
			error=0;						   //用error进行互锁
		}

		if(cmd[0]=='L' && cmd[1]=='1'){					   //点led1	 如果出现L1
			led1=~led1;
			i=0;
			//memset(cmd,'\0',7);
		}
		if(cmd[0]=='L' && cmd[1]=='2'){					   //点led2	 如果出现L2
			led2=~led2;
			i=0;
			//memset(cmd,'\0',7);
		}


		i++;
		if(i==7){					   //存储数组恢复
			i=0;
		}

	}
}

void init_usb(void)
{
	SCON=0x50;//采用工作方式1进行通讯
	PCON &= 0x7F;  //要清0就 &上0
	ET1=0;//串口用的定时器1,关闭中断。配置相同的波特率
	//TCON 定时器控制寄存器
	TR1=1;  //打开定时器1
	//TMOD? 定时器模式寄存器
	TMOD &=0x0F; //&0就清0
	TMOD |=0x20; // |1就变1
	TH1=0xFD; //高位? ? ? 自动重装时TH1将自动装入TL1
	TL1=0xFD; //低位
	//TI 中断请求标志位   RI中断请求标志位
	EA=1;ES=1;   //总中断允许位  串口中断允许位 
}


void Delay5000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

//	_nop_();
	i = 36;
	j = 5;
	k = 211;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void Delay10ms()		//@11.0592MHz
{
	unsigned char i, j;

	i = 18;
	j = 235;
	do
	{
		while (--j);
	} while (--i);
}


4.ESP作为服务器

注意:用某些字符去匹配很容易出现BUG

想用ERROR中的ER去检测错误发送,但是CIPSERVER中也有ER根本卡不住。换成ERR就可以

(现在都不明白为什么发送字符CIPSERVER,检测也会检测到,明明说是两个物理地址啊。

而且检测到OK之后必须延迟一点,不然数据会BUSY忙,不成功。(但是老师的不用延时))

说明发送和接收用的同一个物理地址,只有发送完了,清空才能进行接收。

电脑晶振比单片机的快,所以用串口发送时,会提前反应,不是串口通讯进出有快慢

USB转TTL插入电脑,TX--RX RX-TX VCC-3.3V GDN-GND
查询IP地址:AT+CIFSR

//0重启
+STA_CONNECTED:"c0:a5:dd:54:0c:ef"
+DIST_STA_IP:"c0:a5:dd:54:0c:ef","192.168.4.2"
WIFI DISCONNECT
隔5秒后下一个
//1 配置成双模
AT+CWMODE=2
Response :OK
//2 使能多链接
AT+CIPMUX=1
Response :OK
//3 建立TCPServer
AT+CIPSERVER=1,8888 // default port = 333
Response :OK

//然后TCP client去连接服务器1,8888
Response :0,CONNECT

//4 发送数据
AT+CIPSEND=0,4 // 发送4个字节在连接0通道上
>abcd //输入数据,不带回车
Response :SEND OK
//• 接收数据
+IPD, 0, n: xxxxxxxxxx  //+IPD是固定字符串 0是通道,n是数据长度,xxx是数据
//断开连接
AT+CIPCLOSE=0
Response :0, CLOSED OK
#include "reg52.h"	
#include "string.h"
#define SIZE 7

sfr AUXR=0x8e;
sbit led1=P3^6;
sbit led2=P3^7;
char buffer[SIZE];
int TCP_mark=0;
int other_land_mark=0;
int suceed_mark=0;
int error=1; 



void Delay5000ms();
void init_usb(void);
void data_uart_transport(char *p);
void Delay500ms();

void main(void)
{
	char mode_AP[]             ="AT+CWMODE=2\r\n";
	char mutiple_connect[]     ="AT+CIPMUX=1\r\n";
	char TCPserver[]		   ="AT+CIPSERVER=1,8888\r\n";
	char data_trans[]		   ="AT+CIPSEND=0,11\r\n";
	char reset[]               ="AT+RST\r\n";
	char my_word[]             ="hello world";

	Delay500ms();
	init_usb();	   //串口初始化

	while((!suceed_mark) || (!error)){		  //不成功就重启然后执行
		error=1;suceed_mark=0;
		other_land_mark=0;
		data_uart_transport(&reset);		//重启
		Delay5000ms();					   //延迟5s

		data_uart_transport(&mode_AP);	   //发送配置双模模式    "AT+CWMODE=2\r\n"
		while(!other_land_mark);   //接收到 OK执行下一步LAN_mark变为1
		Delay500ms();Delay500ms();    //发送和接收都在一直执行,所以上一个不能影响这一个,接收一会儿不接受了再执行下一步	
		other_land_mark=0;

		data_uart_transport(&mutiple_connect);	   //发送配置多链接    "AT+CIPMUX=1\r\n"
		while(!other_land_mark);   //接收到 OK执行下一步
		Delay500ms();Delay500ms();    	

		TCP_mark=0;
		data_uart_transport(&TCPserver);	   //建立TCP服务器    AT+CIPSERVER=1,8888
		while(!TCP_mark);   //接收到 0,CONNECT执行下一步
		Delay500ms();Delay500ms();    	
	
		if(TCP_mark==1 && other_land_mark==1 && error==1){
			led1=0; led2=0;  //联网成功点亮led1	   led2=0;  //eps进入透传接收模式
			suceed_mark=1;   //成功了
		}
	}
	led1=0; 
		
	while(1){
		led2=0;
		other_land_mark=0;
		data_uart_transport(&data_trans);
		while(!other_land_mark);		  //接收到OK
			
		data_uart_transport(&my_word);
		Delay5000ms();
		//data2=SBUF;   //接受外部数据后产生中断	 进入interrupt 4		
	}	
}
void data_uart_transport(char *p)
{
	while(*p != '\0'){
		SBUF= *p;	 //发送完成后产生中断   进入interrupt 4
		while(!TI);
		TI=0;
		p++;			
	}			
}


void UART_Pountine(void) interrupt 4
{
	static int i=0;
	
	char tmp;



	if(RI){				   //接受外部数据后产生中断	 进入interrupt 4
		RI=0;
		tmp=SBUF;

		if(tmp == 'W' || tmp == 'O' || tmp == 'L' || tmp == '0' || tmp == 'E'){		 //w 和o、L、e 始终放置在第0位
			i=0;
		}
		buffer[i++] = tmp;

		if(buffer[0] == 'O' && buffer[1] == 'K'){	  //其它操作接入成功	 如果出现OK
			other_land_mark=1;
			memset(buffer,'\0',sizeof(buffer));
		}	  
		if(buffer[0] == '0' && buffer[2] == 'C'){   
			//接入ESP服务器TCP成功 如果出现0,CONNECT
			TCP_mark = 1;
			memset(buffer,'\0',sizeof(buffer));
		}
	   
		if(buffer[0]=='E' && buffer[1]=='R' && buffer[2]=='R'){	   //如果出现错误ERROR		如果出现错误FALL联局域网失败没办法、有BUG。解决办法是字符的精确匹配和每个标志位单独设置标记,当4个标记同时成功才不重启了						   
			other_land_mark=1;
			TCP_mark=1;	                //出现错误ERROR如何让其通畅 回到while   但是suceed——mark不变
			error=0;				   //用error进行互锁
			memset(buffer,'\0',sizeof(buffer));						   
		}

		if(buffer[0]=='L' && buffer[1]=='1'){					   //点led1	 如果出现L1
			led1=~led1;
			i=0;
			memset(buffer,'\0',sizeof(buffer));
		}
		if(buffer[0]=='L' && buffer[1]=='2'){					   //点led2	 如果出现L2
			led2=~led2;
			i=0;
			memset(buffer,'\0',sizeof(buffer));
		}

		if(i==6)i=0;					   //存储数组恢复			

	}
}

void init_usb(void)
{
	AUXR=0X01;
	SCON=0x50;//采用工作方式1进行通讯
	//PCON &= 0x7F;  //要清0就 &上0	    //是不是有问题
	ET1=0;//串口用的定时器1,关闭中断。配置相同的波特率
	//TCON 定时器控制寄存器
	TR1=1;  //打开定时器1
	//TMOD? 定时器模式寄存器
	TMOD &=0x0F; //&0就清0	   这个和老陈不一样
	TMOD |=0x20; // |1就变1
	TH1=0xFD; //高位? ? ? 自动重装时TH1将自动装入TL1
	TL1=0xFD; //低位
	//TI 中断请求标志位   RI中断请求标志位
	EA=1;ES=1;   //总中断允许位  串口中断允许位 
}


void Delay5000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

//	_nop_();
	i = 36;
	j = 5;
	k = 211;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void Delay500ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	//_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内置Wifi模块 智能家居 物联网 三屏互联 产品简介无线WIFI模块 、无线WIFI模组 本文关键字:www.xlwtech.com 新力维WIFI模块,SEANYWELL WIFI模块,新力维串口转WIFI, 无线WIFI模块 WIFI无线模组,新力维串口转WIFI, WIFI模块 串口WIFI模块 WIFI模块应用开发 内置TCP/IP协议价格_嵌入式串口WIFI模块/透明数据传输 产品简介 新力维 WIFI无线LED控制技术方案 新力维 WIFI智能家居家电控制系统 WIFI模块 串口WIFI模块-2 新力维 WiFi脂肪秤 新力维 WIFI模块(WM001S) 新力维 WIFI模块 串口WIFI模块 新力维 新力维 RFID物联网应用WIFI模块 WIFI遥控模型玩具方案新力维(直接用手机和电脑遥控) Seanywell新力维 公司长期专注于无线产品的研发,凭借我们多年无线开发经验,综合国外同行的WiFi先进技术,及时地开发出专门应用于航模飞机、玩具飞机、遥控汽车领域专用的WiFi模块:WM001S。具有体积小,重量轻、功耗小等特点。 主要特性: 2.4GHz, IEEE 802.11b/g 内部PCB天线,可选外部天线 支持基于AP的网络(Infrastructure)/对等网络Ad-Hoc (IBSS))/ 虚拟AP 模式 ,IPHONE/ IPAD/Android 设备也能不用AP/路由器而直接连接 支持802.11i加密方式:WEP-64/128, TKIP (WPA-PSK) and AES (WPA2-PSK) MCU内置TCP/IP协议栈 3路UART串行接口(其中1路支持 DMA 模式, 全功能串口,波特率最高支持921.6Kbps) SPI接口 I2S/PCM接口 Digital Video端口 高达24个GPIO口(部分GPIO将会和上述接口复用) 全功能TCP/IP协议栈,TCP/IP传输带宽达到10Mbps以上 支持三种带有定时自动唤醒功能的WiFi节能模式 单3.3V供电 工作温度范围: 0°C ~ +70°C 尺寸: 25 mm x 45 mm(内部PCB天线) / 25 mm x 39 mm(外部天线 QQ22968,87552以上是WIFI模块加工|WIFI模块批发,如果您对WIFI模块的价格、厂家、型号、图片有什么疑问,请联系我们获取最新信息
型号:HLK-WIFI-M03 产品特性 接口 双排(2 x 4)插针式接口 支持波特率范围:1200~115200bps 支持硬件 RTS/CTS 流控 单 3.3V 供电 无线 支持 IEEE802.11b/g 无线标准 支持频率范围:2.412~2.484 GHz 支持两种无线网络类型: 基础网(Infra)和自组网(Adhoc) 支持多种安全认证机制: WEP64/WEP128/ TKIP/CCMP(AES) WEP/WPA-PSK/WPA2-PSK 支持快速联网 支持无线漫游 其它 支持多种网络协议: TCP/UDP/ICMP/DHCP/DNS/HTTP 支持自动和命令两种工作模式 支持串口透明传输模式 支持 AT+控制指令集 支持多种参数配置方式: 串口/WEB 服务器/无线连接 应用领域 智能公交网络,如无线刷卡机 小额金融支付网络,如无线 POS 机 业设备联网,如无线传感器 物联网 全面支持串口透明数据传输模式,真 正实现串口的即插即用 全新的 AT+指令集,全部基于 ASCII 格式,简单易懂,使用更容易 更加完备的 TCP/IP 协议栈,支持 DHCP 协议动态 IP 地址分配和 DNS 域名解析功能 内置 WEB 服务器,实现使用 IE 浏览 器通过无线网络远程配置模块参数 更高的传输性能,最高可达11KB/S 的发送速率 嵌入式802.11b/g无线网络 支持点对点访问,支持客户端、串口到WLAN的模式 支持串口到无线信号的桥接 支持64/128位WEP、WPA和WPA2(AES),具有很高的保密性 UART、GPIO、U.FL(WLAN)接口 1.功能概述 硬件部分 项目 指标 模块 串口电平 TTL/UART 3.3v 连接器 插针(8PIN,兼容以前的4PIN连接),具有防插反设计 5 - VCC(IN),8 - GND(OUT) 7 - TX(IN),6 - RX(OUT) 4 - RST(IN),3 – READY(OUT) 2 - LED1(OUT),1 - LED2(OUT) 指示灯 连接状态,板上显示,同时输出信号到外部接口READY 无线传输状态,板上显示,同时输出信号到外部接口LED3 状态1,板上显示,同时输出信号到外部接口LED2 状态2,板上显示 状态3,板上显示 天线 外接天线 体积 55.2x25.4x11.5mm(较小) 功耗 温度范围 -20~70 degC 供电 +3.3V +/-10% 串口转接板 串口电平 RS232 串口接口类型 DB9(Female) 连接器 8针插座 引脚定义同模块连接器 指示灯 1- 电源 2- 串口TX 3- 串口RX 4- 模块连接状态,连接到READY引脚 5- 无线传输状态,连接到LED1引脚 6- 状态1,连接到LED2引脚 复位按键 连接到RST引脚 电源接口 2.0 其它 与模块实现方便、可靠连接, 软件部分 项目 指标 无线功能 协议标准 802.11b/bg 网络类型 Infra/adhoc/private 安全认证 OPEN/WEP64/WEP128/CCMP/TKIP/WPI OPEN/SHAREKEY/WPA/WPA2/WAI 节能 无 网络功能 传输层协议 TCP/IP/UDP/ARP/ICMP/DHCP 应用层协议 HTTP(Server,仅用于远程WEB配置功能) DNS(Client) 用户接口功能 串口波特率 1200bps~115200bps 串口传输模式 命令模式: 透明模式:时间/长度(可设置)触发,特殊字符(可设置)退出 控制协议 AT+命令集 配置参数 掉电保存(flash),支持自动备份与恢复 配置管理方式 配置管理程序(串口、远程无线配置、远程WEB登陆方式) 测试、维护 生产测试 支持Litepoint测试命令集/设置MAC地址/设置发送功率 支持UART接口 固件升级 通过配置管理程序 上位机软件 配置管理程序 用于模块的参数配置、联网、传输功能演示等 生产测试程序 用于生产阶段的出厂检测,包括物理层测试、功率校正、MAC地址烧写 虚拟串口客户端程序 与固件中的虚拟串口服务器程序一起用于实现无线串口功能 其它 用户手册 全部AT+指令集的使用方法Demo源码 2.功能定义 支持802.11b-only、802.11b/g mix 支持1~13信道 支持1M、2M、5.5M、6M、9M、11M、12M、18M、24M、36M、48M、54M传输速率 支持网络扫描 支持加入infra网络 支持创建/加入adhoc网络 支持OPEN/WEP64/WEP128/CCMP/TKIP/WPI加密模式 支持OPEN/WEP/WPA/WPA2/WAI认证方式 支持仅使用ssid联网 支持绑定BSSID联网 支持用户通过AT+指令主动控制联网 支持使用配置参数自动联网 支持TCP/IP协议 IP协议 支持网段穿越(通过设置网关和子网掩码) 不支持分段的接收与发送 ARP协议 支持接收arp请求,并回复响应 支持发送arp请求,并接收响应 ICMP协议 支持接收ping请求,并回复响应 支持发送ping请求,并接收响应 不支持长度大于1460的ping请求 TCP协议 UDP协议 DHCP协议 支持HTTP协议 内置一个http服务器,用于实现远程WEB管理功能。 DNS协议 支持客户端。 1. MAC+RF架构,无需额外的MCU. 2.硬件802.11协议,内嵌TCP/IP协议 3.支持多种网络协议:TCP/UDP/ICMP/DHCP/DNS/HTTP 4.支持自动和工作命令模式,支持DHCP 5.支持串口透明传输,内置WEB服务器 6.支持WEP64/WEP128/WPA-PSK/WPA2-PSK 7.提供配置软件配置和IE浏览器配置参数 8.支持基础网(Infra)和自组网(Adhoc) 9.支持AT+编辑命令控制,并提供MCU控制的C源代码
1. 串口WIFI模块 功能概述(支持透明传输) HLK-WIFI-M03硬件部分 项目 指标 串口电平 TTL/RS232 连接器 插针(8PIN,兼容以前的4PIN连接),具有防插反设计 1VCC,2 RX 3 TX ,4GND 5 GPIO0,6 GPIO1,7LINK,8 RST 指示灯 连接状态,板上显示,同时输出信号到外部接口READY 无线传输状态,板上显示,同时输出信号到外部接口LED1 天线 外接天线 体积 55.2x25.4x10mm(较小) 温度范围 0~70 degC 供电 +3.3V +/-10% HLK-WIFI-M03软件部分 项目 指标 无线功能 协议标准 802.11b/bg 网络类型 Infra/adhoc/private 安全认证 OPEN/WEP64/WEP128/CCMP/TKIP/WPI OPEN/SHAREKEY/WPA/WPA2/WAI 节能 打开/关闭RF 网络功能 传输层协议 TCP/IP/UDP/ARP/ICMP/DHCP 应用层协议 HTTP(Server,仅用于远程WEB配置功能) DNS(Client) 用户接口功能 串口波特率 1200bps~115200bps 串口传输模式 命令模式:接收AT指令集 透明模式:时间/长度(可设置)触发,特殊字符(可设置)退出 控制协议 AT+命令集 配置参数 掉电保存(flash),支持自动备份与恢复 测试、维护 生产测试 支持Litepoint测试命令集/设置MAC地址/设置发送功率 支持UART接口 固件升级 通过配置管理程序 上位机软件 配置管理程序 用于模块的参数配置、联网、传输功能演示等 生产测试程序 用于生产阶段的出厂检测,包括物理层测试、功率校正、MAC地址烧写 虚拟串口客户端程序 与固件中的虚拟串口服务器程序一起用于实现无线串口功能 其它 用户手册 全部AT+指令集的使用方法Demo源码 2. HLK-WIFI-M03功能定义 2.1 模块固件程序 2.1.1 无线功能  支持802.11b-only、802.11b/g mix  支持1~13信道  支持1M、2M、5.5M、6M、9M、11M、12M、18M、24M、36M、48M、54M传输速率  支持网络扫描,串口返回所有网络信息。  支持加入infra网络  支持创建/加入adhoc网络  支持OPEN/WEP64/WEP128/CCMP/TKIP/WPI加密模式  支持OPEN/WEP/WPA/WPA2/WAI认证方式  支持仅使用ssid联网 支持绑定BSSID联网  支持用户通过AT+指令主动控制联网  支持使用配置参数自动联网  支持节能(待机状态下关闭RF方式) 2.1.2 网络功能  支持TCP/IP协议  IP协议 支持网段穿越(通过设置网关和子网掩码) 不支持分段的接收与发送  ARP协议 支持接收arp请求,并回复响应 支持发送arp请求,并接收响应  ICMP协议 支持接收ping请求,并回复响应 支持发送ping请求,并接收响应 不支持长度大于1460的ping请求  TCP协议 支持client模式 支持server模式,每个server只能接入一个client 支持最多n个socket(其中1个用于WEB远程管理,用户可用n-1个) (注:n待定)  UDP协议 支持client模式,仅用于发送 支持server模式,仅用于接收 支持最多n个socket 支持广播地址  DHCP协议 支持作为client,自动获取ip地址  支持HTTP协议,内置一个http服务器,用于实现远程WEB管理功能  DNS协议,支持客户端 2.1.3用户接口功能  用户接口类型  物理串口  数据格式 数据位:5/6/7/8位 停止位:无/1/1.5/2位 奇偶校验位:无/奇/偶 流控:无  波特率 支持常用1200/2400/4800/9600/19200/38400/57600/115200bps  命令模式 模块上电后初始化完成后进入命令模式,此模式下仅接收并响应AT+指令。用户在此模式下可以通过AT+指令集对模块进行各种控制操作。 使用AT+指令可以从命令模式进入透明模式。  透明模式 此模式为数据传输状态,所有输入输出数据(除逃逸字符以外)均进行透明传输处理,模块仅作为串口与无线网络之间的数据通路。在此模式下,只有一条虚拟的数据收发通路处于激活状态,即: 当使用tcp连接时,只有一个socket可用,无论client或server模式; 当使用udp连接时,一个client模式socket和一个server模式的socket可用; 满足下列条件之一即可从命令模式进入透明模式:  模块成功接收用户发出的AT+指令并发送完响应后  配置参数中设置了自动联网及自动进入透明模式,模块在自动联网成功后 满足下列条件即可从透明模式退出到命令模式:  模块成功接收用户发出的符合限定条件的逃逸字符  远程管理  WEB服务器 模块内置一个web服务器,用户通过浏览器可以连接该服务器,并对模块内部配置参数进行远程配置。  虚拟串口服务器 模块内置一个虚拟串口服务器,实现远程的基于AT+指令的配置管理功能 实现虚拟串口与物理串口之间的数据转发 虚拟串口服务器仅在透明传输模式下启用有效 通过配置参数可设置是否启用虚拟串口服务器功能  状态指示  无线传输状态指示灯 模块使用输出信号LED1指示当前无线传输状态 无数据传输 - 常灭 有数据传输 - 闪烁  连接状态 模块使用输出信号READY指示当前连接状态,0 - 断开,1 - 连接 在不同的传输模式下READY信号的含义不同,分别为: 命令模式:表示模块与AP直接的连接状态 透明模式:表示模块与AP及服务器之间的连接状态  状态1 模块使用输出信号LED2指示当前连接状态 尺寸大小:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值