void ICACHE_FLASH_ATTR wifiInit(int wifiMode) { INFO("\r===== WiFi Init =====\r"); wifi_set_opmode(0); // Clear all modes INFO("\r\nSetting WiFI\r\n"); if(wifiMode & SOFTAP_MODE) { INFO("\rSetting SOFTAP Mode\r\n"); setup_wifi_ap_mode(); INFO("Done\r\n"); } if(wifiMode & STATION_MODE) { INFO("\rSetting Station Mode \r\n"); setup_wifi_st_mode(); INFO("Done\r\n"); } if(wifi_get_phy_mode() != PHY_MODE_11N) wifi_set_phy_mode(PHY_MODE_11N); if(wifi_station_get_auto_connect() == 0) wifi_station_set_auto_connect(1); INFO("Wi-Fi mode: %s\r\n", WiFiMode[wifi_get_opmode()]); if(wifiMode & SOFTAP_MODE) { struct softap_config apConfig; if(wifi_softap_get_config(&apConfig)) { INFO("AP config: SSID: %s, PASSWORD: %s\r\n", apConfig.ssid, apConfig.password); } } if(wifiMode & STATION_MODE) { struct station_config stationConfig; if(wifi_station_get_config(&stationConfig)) { INFO("STA config: SSID: %s, PASSWORD: %s\r\n", stationConfig.ssid, stationConfig.password); } } }
bool ICACHE_FLASH_ATTR hap_init() { settings_load(); httpd_register(index_httpd_request); static ETSTimer upTimeTimer; os_timer_disarm(&upTimeTimer); os_timer_setfn(&upTimeTimer, (os_timer_func_t *)uptimeIncrement, NULL); os_timer_arm(&upTimeTimer, 1000, 1); wifi_set_event_handler_cb(onWifiEvent); bool result; if (!settings_valid()) { DEBUG_PRINT("[HAP]Settings not valid, using defaults, starting AP\n"); settings.password[0] = 0; settings.ssid[0] = 0; strcpy(settings.serverName, "hap_server"); strcpy(settings.mqttUser, "user"); strcpy(settings.mqttPassword, "password"); strcpy(settings.mqttTopic, "topic"); settings.udpPort = 5100; char aux[20]; os_sprintf(aux, "hap_%d", system_get_chip_id()); result = setup_wifi_ap_mode(aux); } else { DEBUG_PRINT("[HAP]Settings valid, connecting to AP %s\n", settings.ssid); udp_init(); result = setup_wifi_st_mode(settings.ssid, settings.password); } if (result) httpd_init(80); return result; }
void ICACHE_FLASH_ATTR wifiInit() { //if(wifi_get_opmode() != USE_WIFI_MODE) { #ifdef PLATFORM_DEBUG os_printf("ESP8266 not in %s mode, restarting in %s mode...\r\n", WiFiMode[USE_WIFI_MODE], WiFiMode[USE_WIFI_MODE]); #endif if(USE_WIFI_MODE & SOFTAP_MODE) setup_wifi_ap_mode(); if(USE_WIFI_MODE & STATION_MODE) setup_wifi_st_mode(); } if(wifi_get_phy_mode() != PHY_MODE_11N) wifi_set_phy_mode(PHY_MODE_11N); if(wifi_station_get_auto_connect() == 0) wifi_station_set_auto_connect(1); #ifdef PLATFORM_DEBUG os_printf("Wi-Fi mode: %s\r\n", WiFiMode[wifi_get_opmode()]); if(USE_WIFI_MODE & SOFTAP_MODE) { struct softap_config apConfig; if(wifi_softap_get_config(&apConfig)) { os_printf("AP config: SSID: %s, PASSWORD: %s\r\n", apConfig.ssid, apConfig.password); } } if(USE_WIFI_MODE & STATION_MODE) { struct station_config stationConfig; if(wifi_station_get_config(&stationConfig)) { os_printf("STA config: SSID: %s, PASSWORD: %s\r\n", stationConfig.ssid, stationConfig.password); } } #endif }
void ICACHE_FLASH_ATTR wifi_check_ip(void *arg) { char IP[15]; char IP_temp[3]; uint8_t wifi_opmode; system_soft_wdt_feed(); os_timer_disarm(&WiFiLinker); wifi_opmode = wifi_get_opmode(); if(wifi_opmode==STATION_MODE){ switch(wifi_station_get_connect_status()) { case STATION_GOT_IP: wifi_get_ip_info(STATION_IF, &ipConfig); if(ipConfig.ip.addr != 0 && connState !=WIFI_CONNECTED) { connState = WIFI_CONNECTED; ets_uart_printf("%d.%d.%d.%d",p[0],p[1],p[2],p[3]); uart0_sendStr("\r"); itoa(p[0],IP_temp); IP[0]=IP_temp[0]; IP[1]=IP_temp[1]; IP[2]=IP_temp[2]; IP[3]='.'; itoa(p[1],IP_temp); IP[4]=IP_temp[0]; IP[5]=IP_temp[1]; IP[6]=IP_temp[2]; IP[7]='.'; itoa(p[2],IP_temp); IP[8]=IP_temp[0]; IP[9]='.'; itoa(p[3],IP_temp); IP[10]=IP_temp[0]; IP[11]=IP_temp[1]; IP[12]=IP_temp[2]; IP[13]=0; IP[14]=0; stringDraw(3, 1, "IP:"); stringDraw(3, 18, IP); serverInit(23); } break; case STATION_WRONG_PASSWORD: connState = WIFI_CONNECTING_ERROR; ets_uart_printf("WiFi connecting error, wrong password\n"); break; case STATION_NO_AP_FOUND: connState = WIFI_CONNECTING_ERROR; ets_uart_printf("WiFi connecting error, ap not found\n"); setup_wifi_ap_mode(); break; case STATION_CONNECT_FAIL: connState = WIFI_CONNECTING_ERROR; ets_uart_printf("WiFi connecting fail\n"); break; default: connState = WIFI_CONNECTING; ets_uart_printf("WiFi connecting...\n"); stringDraw(3, 1, "WiFi connecting"); } if(wifi_station_get_connect_status()!=STATION_GOT_IP){ os_timer_setfn(&WiFiLinker, (os_timer_func_t *)wifi_check_ip, NULL); os_timer_arm(&WiFiLinker, 2000, 0); } }else{ ets_uart_printf("Conectar na rede SSID: %s\n",WIFI_CLIENTSSID_AP); } }