如何实现手机连接WIFI模块?

本例程WIFI模块采用E103-W05模块(兼容ESP8266指令),手机APP采用通用版测试APP网络调试精灵,在安卓的应用商店可以下载(不行的话去网页下一个),不支持苹果手机。

ios判断wifi权限 iphone怎么检测wifi模块_ios判断wifi权限


wifi模块工作在AP模式(无线接入点模式)下,此时WIFI模块就相当于一个无线路由器,手机就相当于一个STA设备,此时手机连接WIFI模块发出的热点就可以实现通信。手机属于客户端,WIFI模块作为服务端,两者建立socket连接。

ios判断wifi权限 iphone怎么检测wifi模块_嵌入式硬件_02

配置WIFI模块

下面的配置代码并不完整,主要是体现AT指令的顺序,具体的数据处理需要读者自行研究。

uint8_t  vE103Init(void)
{
	vOpenWifi();//硬件配置,上电	   
	u8E103_SendCmd((uint8_t*)"AT",(uint8_t*)"OK",20);
	HAL_Delay(100);
	if(u8E103_SendCmd((uint8_t*)"ATE0",(uint8_t*)"OK",100))
	{
	  return 1;
	}
	HAL_Delay(15);
	if(u8E103_SendCmd((uint8_t*)"AT+CWMODE=2",(uint8_t*)"OK",100))//配置为softAP模式
	{
	  return 1;
	}
	HAL_Delay(15);
	if(u8E103_SendCmd((uint8_t*)"AT+CWSAP=\"AIR_WIFI\",\"12345678\",11,3,4",(uint8_t*)"OK",100))//设置softAP模式的参数
	{
	  return 1;
	}
    if(u8E103_SendCmd((uint8_t*)"AT+CIPMUX=1",(uint8_t*)"OK",100))//设置为多连接
	{
	  return 1;
	}
	HAL_Delay(15);
	if(u8E103_SendCmd((uint8_t*)"AT+CIPSERVER=1,8086",(uint8_t*)"OK",100))//创建 TCP 服务器,自动建立 TCP 服务器监听,8086端口
	{
	  return 1;
	}
	HAL_Delay(15);
	if(u8E103_SendCmd((uint8_t*)"AT+CIFSR",(uint8_t*)"OK",100))
	{
	  return 1;
	}
	HAL_IWDG_Refresh(&hiwdg);//喂狗
  return 0;
}

经过上述的配置,WIFI模块已经工作在AP模式下,wifi名称为AIR_WIFI,wifi密码为12345678。
E103-W05工作在AP模式下时的IP地址默认为192.168.4.1,端口号我们设置为8086.
此时就可以通过网络调试精灵APP来连接WIFI模块了。

APP配置

1.点击APP进入应用,本事试验手机是作为客户端使用,所以我们需要建立一个TCP客户端,点击按钮;

ios判断wifi权限 iphone怎么检测wifi模块_ios判断wifi权限_03


2.点击+号;

ios判断wifi权限 iphone怎么检测wifi模块_模块测试_04


3.按照要求填写相关内容,因为我们的WIFI模块的IP端口为192.168.4.1:8086,将相关信息填写后保存;

ios判断wifi权限 iphone怎么检测wifi模块_嵌入式硬件_05


4.点击进入客户端;

ios判断wifi权限 iphone怎么检测wifi模块_嵌入式硬件_06


5.进入客户端之后,首先保证手机WIFI已经连接上WIFI模块(wifi名称为AIR_WIFI,wifi密码为12345678,跟连接家里的WIFI一个道理);

通过APP页面中的连接断开按钮来与模块建立socket连接,连接成功之后就可以相互通信了。可以选择发送hex、ASCII等数据格式。

ios判断wifi权限 iphone怎么检测wifi模块_客户端_07

通信测试

将wifi模块的串口发送引脚接到串口调试助手上,来观察接收到什么信息。

我在手机app上向WIFI模块发送了三组字符串,goodbye,test e103和china niubi。

ios判断wifi权限 iphone怎么检测wifi模块_ios判断wifi权限_08


串口调试助手接收到的消息:

ios判断wifi权限 iphone怎么检测wifi模块_ios判断wifi权限_09


下图是接收数据的指令,对应调试助手中的信息查看,接收数据无误。(wifi模块设置为服务端时,必须设置为多连接)。

ios判断wifi权限 iphone怎么检测wifi模块_嵌入式硬件_10