8266联网爽,一直连一直爽

一:简述

硬件:硬件为ESP-LAUNCHER开发板(使用GPIO5口)。

需求:8266SDK开发,使用官方文档推荐调用函数。

协助:EspTouch手机软件

二:简单认识8266联网方式

在这次实验中,用到的联网方式是“一键入网”,也就是快连模式。在这过程中8266处于station状态,相当于一部手机。手机APP将所用WIFI的SSID和密码编码到UDP报文中,通过广播包或者组播报发送,8266监听空中所有报文,当接收到相应UDP报文后进行解码,获取要用到的SSID和密码,从而,连接路由器。

三:代码

SmartConfig接口位于/ESP8266_NONOS_SDK/include/smartconfig.h。

注:开启 SmartConfig 功能前,请先确保 AP 已经开启。

smartconfig_start 调用之前要先确定快连模式的协议类型以及8266处于station状态

详细函数说明,见官方文档SmartConfig 接口这一章节。

程序:

//官方已给的配网函数
void ICACHE_FLASH_ATTR smartconfig_done(sc_status status, void *pdata) {

	switch (status) {

	//连接未开始,请勿在此阶段开始连接
	case SC_STATUS_WAIT:
		os_printf("SC_STATUS_WAIT\n");
		break;

	//发现信道
	case SC_STATUS_FIND_CHANNEL:
		os_printf("SC_STATUS_FIND_CHANNEL\n");
		break;

	//得到wifi名字和密码
	case SC_STATUS_GETTING_SSID_PSWD:
		os_printf("SC_STATUS_GETTING_SSID_PSWD\n");
		sc_type *type = pdata;
		if (*type == SC_TYPE_ESPTOUCH) {
			os_printf("SC_TYPE:SC_TYPE_ESPTOUCH\n");
		} else {
			os_printf("SC_TYPE:SC_TYPE_AIRKISS\n");
		}
		break;

	case SC_STATUS_LINK:
		os_printf("SC_STATUS_LINK\n");
		struct station_config *sta_conf = pdata;

		wifi_station_set_config(sta_conf);
		wifi_station_disconnect();
		wifi_station_connect();
		break;

	//成功获取到IP,连接路由完成。
	case SC_STATUS_LINK_OVER:
		os_printf("SC_STATUS_LINK_OVER \n\n");
		if (pdata != NULL) {
			uint8 phone_ip[4] = { 0 };
			os_memcpy(phone_ip, (uint8*) pdata, 4);
			os_printf("Phone ip: %d.%d.%d.%d\n", phone_ip[0], phone_ip[1],	phone_ip[2], phone_ip[3]);
		}
		//停止配置
		smartconfig_stop();
		break;
	}

}

void ICACHE_FLASH_ATTR
user_init(void)
{

   uart_init(115200, 115200);//设置串口0和串口1的波特率
   os_printf("SDK version:%s\n", system_get_sdk_version());
   //一键配网练习
   os_printf("-_- -_- -_-开始入网-_- -_- -_-\n-----");
   smartconfig_set_type(SC_TYPE_ESPTOUCH); //设置WiFi快连模式,SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS
   wifi_set_opmode(STATION_MODE);//设置WiFi工作模式为设备终端
   smartconfig_start(smartconfig_done);//开始配网

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值