ESP8266 NONOS SmartConfig配网(安信可公众号配网)
user_main.c(删减)
#include "smartconfig.h"
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);
os_printf("SDK version:%s\n", system_get_sdk_version());
os_printf("----------2 开始进去SmartConfig配网模式\n\n\n-----");
smartconfig_set_type(SC_TYPE_ESPTOUCH_AIRKISS);
wifi_set_opmode(STATION_MODE);
smartconfig_start(smartconfig_done);
os_timer_disarm( &connect_timer );
os_timer_setfn( &connect_timer, (ETSTimerFunc *) ( Wifi_conned ), NULL );
os_timer_arm( &connect_timer, 2000, 0);
}
串口数据
开始进去SmartConfig配网模式
-----SC version: V2.5.4
mode : sta(80:7d:3a:3c:e4:49)
add if0
scandone
scandone
scandone
SC_STATUS_FIND_CHANNEL
TYPE: AIRKISS
AP MAC: 74 22 bb c1 eb 60
SC_STATUS_GETTING_SSID_PSWD
SC_TYPE:SC_TYPE_AIRKISS
SC_STATUS_LINK
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 11
cnt
dhcp client start...
ip:192.168.7.112,mask:255.255.255.0,gw:192.168.7.1
SC_STATUS_LINK_OVER
pm open,type:2 0
公众号
进入公众号右下角按步骤配网