配网机制

两种配网机制原理

兼容模式和smartconfig模式,是我们配网的两种方式。

smartconfig模式(快连模式)

smartconfig就是手机APP端发送包含WIFI用户名 WIFI密码的UDP广播包或者组播包,智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密出WIFI用户名和密码,然后智能硬件收到的WIFI用户名和密码配置到指定的WIFI AP上。

热点模式(兼容模式)

smartconfig模式配网失败后可尝试使用兼容模式配网,提升配网成功率。
兼容模式是先在app上输入Wi-Fi密码,使app获得Wi-Fi信息,然后通过app和模块热点(SmartLife-xxxx)的连接,app将Wi-Fi信息告知模块,使模块可以连上Wi-Fi。

配置模块重置和工作状态

说明: MCU与模块配合处理,即模块通过串口通知MCU WIFI当前的工作状态,然后MCU提供显示支持;MCU检测出WIFI的重置需求,通过串口通知模块重置WIFI。

参考 MCU SDK使用说明 配置重置方式为 MCU与模块配合处理。

即保持 define 被注释状态

//#ifdef          WIFI_CONTROL_SELF_MODE

WIFI模块重置

当wifi模块要连接新的路由器时,需要重置WIFI,调用下述函数:

mcu_reset_wifi();

并可调用下述函数返回重置WIFI结果:

mcu_get_reset_wifi_flag();

WIFI工作状态(指示灯)

说明:

  1. WIFI工作状态:1 smartconfig配置状态 2 AP配置状态 3 WIFI配置成功但未连上路由器 4 WIFI配置成功且连上路由器。 “模块自处理”工作模式相应的LED显示分别为:1 间隔闪烁250ms;2 间隔闪烁1500ms;3 长暗状态;4 长亮状态
  2. 当模块检测到MCU重启或MCU断线再上线的过程,则主动上报WIFI状态至MCU
  3. 当模块检测到WIFI状态发生变化,则主动上报WIFI状态至MCU

调用函数mcu_get_wifi_work_state()获取连接状态,通常使用方法如下:

void main(void)
{	
	...	

	while(1)
	{
		switch(mcu_get_wifi_work_state())
		{
			case SMART_CONFIG_STATE:
			//smart config 配置状态 LED快闪 ,led闪烁请用户完成
			break;
			case AP_STATE:
			//AP配置状态 LED慢闪
			break;
			case WIFI_NOT_CONNECTED:
			//WIFI配置完成,正在连接路由器,LED常暗
			break;
			case WIFI_CONNECTED:
			//路由器连接成功 LED常亮
			break;
			default:break;
		}	
		...	
	}	
}

附录

重置WIFI-选择模式

提供MCU根据自身需求选择性选择重置WIFI后的配置方式.

调用设置wifi模式mcu_api.c 文件内的:

mcu_set_wifi_mode(WIFI_CONFIG_E mode);

并可调用mcu_get_wifi_work_state()函数返回设置wifi结果.

模块自处理

我们也支持另一种模块重置和工作状态 方式。即模块自处理

模块自处理:WIFI的工作状态通过WIFI的GPIO引脚驱动LED状态显示;WIFI重置通过检测GPIO输入需求处理。

根据实际的硬件连接,将指示灯和按键所连接的GPIO脚位填入下面两行

#ifdef          WIFI_CONTROL_SELF_MODE
	#define     WF_STATE_KEY            14                //wifi模块状态指示按键,请根据实际GPIO管脚设置
	#define     WF_RESERT_KEY           0                 //wifi模块重置按键,请根据实际GPIO管脚设置
#endif

协议对接

根据协议完成以下几点:

  • 配置模块重置和工作状态(命令字0x02)
  • 需要重置WIFI时,上报协议(命令字0x04)
  • 驱动LED灯显示(命令字0x03)

附:如果重置WIFI后,固定为smartconfig或者热点模式时,上报协议(命令字0x05)

400-881-8611