void user_init(void) { uart_set_baud(0, 115200); rboot_config conf = rboot_get_config(); printf("esp-gizmo. Running on flash slot %d / %d\n", conf.current_rom, conf.count); key_task_init(); load_driver_init(); mqtt_task_init(); struct sdk_station_config config = { .ssid = WIFI_SSID, .password = WIFI_PASS, }; /* required to call wifi_set_opmode before station_set_config */ sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); printf("Starting TFTP server..."); ota_tftp_init_server(TFTP_PORT); xTaskCreate(main_task, "main", 1024, NULL, 1, NULL); xTaskCreate(health_state, "health_state", 512, NULL, 1, NULL); }
static void wifi_init() { struct sdk_station_config wifi_config = { .ssid = WIFI_SSID, .password = WIFI_PASSWORD, }; sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&wifi_config); sdk_wifi_station_connect(); }
void user_init(void) { uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); struct sdk_station_config config = { .ssid = WIFI_SSID, .password = WIFI_PASS, }; /* required to call wifi_set_opmode before station_set_config */ sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); xTaskCreate(&http_get_task, (signed char *)"get_task", 256, NULL, tskIDLE_PRIORITY+1, NULL); }
static void wifi_task(void *pvParameters) { uint8_t status = 0; uint8_t retries = 30; struct sdk_station_config config = { .ssid = WIFI_SSID, .password = WIFI_PASS, }; printf("WiFi: connecting to WiFi\n\r"); sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); while(1) { while ((status != STATION_GOT_IP) && (retries)){ status = sdk_wifi_station_get_connect_status(); printf("%s: status = %d\n\r", __func__, status ); if( status == STATION_WRONG_PASSWORD ){ printf("WiFi: wrong password\n\r"); break; } else if( status == STATION_NO_AP_FOUND ) { printf("WiFi: AP not found\n\r"); break; } else if( status == STATION_CONNECT_FAIL ) { printf("WiFi: connection failed\r\n"); break; } vTaskDelay( 1000 / portTICK_RATE_MS ); --retries; } if (status == STATION_GOT_IP) { printf("WiFi: Connected\n\r"); xSemaphoreGive( wifi_alive ); taskYIELD(); } while ((status = sdk_wifi_station_get_connect_status()) == STATION_GOT_IP) { xSemaphoreGive( wifi_alive ); taskYIELD(); } printf("WiFi: disconnected\n\r"); sdk_wifi_station_disconnect(); vTaskDelay( 1000 / portTICK_RATE_MS ); } }
// can call with NULLs get the default config void connect_wifi(char* ssid, char* password) { ssid = ssid ? ssid : WIFI_SSID; password = password ? password : WIFI_PASS; struct sdk_station_config config; memset(config.ssid, 0, sizeof(config.ssid)); memset(config.password, 0, sizeof(config.password)); memcpy(config.ssid, ssid, max(strlen(ssid), sizeof(config.ssid))); memcpy(config.password, password, sizeof(config.password)); sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); // TODO: wifi_get_ip_info // https://github.com/SuperHouse/esp-open-rtos/blob/master/lib/allsymbols.rename // wifi_get_sleep_type, wifi_station_scan // wifi_softap_stop, wifi_station_disconnect }
static void main_task(void *pvParams) { struct sdk_station_config config; strcpy((char*)config.ssid, config_get_ssid()); strcpy((char*)config.password, config_get_ssid_pass()); sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); while (true) { uint8_t status = sdk_wifi_station_get_connect_status(); if (status == STATION_GOT_IP) { mqtt_task(); } else { printf("Not connected\n"); vTaskDelay(1000/portTICK_RATE_MS); } } }
void user_init(void) { uart_set_baud(0, 115200); printf("SDK version:%s\n", sdk_system_get_sdk_version()); // Set led to indicate wifi status. sdk_wifi_status_led_install(2, PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); struct sdk_station_config config = { .ssid = WIFI_SSID, .password = WIFI_PASS, }; // Required to call wifi_set_opmode before station_set_config. sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); xTaskCreate(&broadcast_temperature, "broadcast_temperature", 256, NULL, 2, NULL); }
void user_init(void) { sdk_uart_div_modify(0, UART_CLK_FREQ / 115200); printf("\n\n\n"); printf("SDK version:%s\n", sdk_system_get_sdk_version()); cli_init(); #ifndef CONFIG_NO_WIFI struct sdk_station_config config = { .ssid = WIFI_SSID, .password = WIFI_PASS, }; /* required to call wifi_set_opmode before station_set_config */ sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); #endif // CONFIG_NO_WIFI xTaskCreate(&server_task, (signed char *) "server_task", 256, NULL, 2, NULL); #ifndef CONFIG_NO_PIR xTaskCreate(&pir_task, (signed char *) "pir_task", 256, NULL, 2, NULL); #endif // CONFIG_NO_PIR }
void user_init(void) { uart_set_baud(0, 921600); printf("\n\nESP8266 UMAC\n\n"); bridge_init(); umac_cfg um_cfg = { .timer_fn = umac_impl_request_future_tick, .cancel_timer_fn = umac_impl_cancel_future_tick, .now_fn = umac_impl_now_tick, .tx_byte_fn = umac_impl_tx_byte, .tx_buf_fn = umac_impl_tx_buf, .rx_pkt_fn = umac_impl_rx_pkt, .rx_pkt_ack_fn = bridge_pkt_acked, .timeout_fn = bridge_timeout, .nonprotocol_data_fn = NULL }; umac_init(&um, &um_cfg, rx_buf); um_tim_hdl = xTimerCreate( (signed char *)"umac_tim", 10, false, (void *)um_tim_id, um_tim_cb); char ap_cred[128]; struct sdk_station_config config; bool setup_ap = true; systask_init(); device_id = 0; fs_init(); if (fs_mount() >= 0) { #if 0 spiffs_DIR d; struct spiffs_dirent e; struct spiffs_dirent *pe = &e; fs_opendir("/", &d); while ((pe = fs_readdir(&d, pe))) { printf("%s [%04x] size:%i\n", pe->name, pe->obj_id, pe->size); } fs_closedir(&d); #endif // read preferred ssid spiffs_file fd_ssid = fs_open(".ssid", SPIFFS_RDONLY, 0); if (fd_ssid > 0) { if (fs_read(fd_ssid, (uint8_t *)ap_cred, sizeof(ap_cred)) > 0) { fs_close(fd_ssid); char *nl_ix = strchr(ap_cred, '\n'); if (nl_ix > 0) { memset(&config, 0, sizeof(struct sdk_station_config)); strncpy((char *)&config.ssid, ap_cred, nl_ix - ap_cred); char *nl_ix2 = strchr(nl_ix + 1, '\n'); if (nl_ix2 > 0) { strncpy((char *)&config.password, nl_ix + 1, nl_ix2 - (nl_ix + 1)); setup_ap = false; } } printf("ssid:%s\n", config.ssid); } // if read else { printf("could not read .ssid\n"); } } // if fs_ssid else { printf("no .ssid found, running softAP\n"); } // find device id or create one spiffs_file fd_devid = fs_open(".devid", SPIFFS_RDONLY, 0); if (fd_devid < 0) { device_id = hwrand(); fd_devid = fs_open(".devid", SPIFFS_O_CREAT | SPIFFS_O_TRUNC | SPIFFS_O_WRONLY | SPIFFS_O_APPEND, 0); fs_write(fd_devid, &device_id, 4); printf("create devid\n"); } else { fs_read(fd_devid, &device_id, 4); } fs_close(fd_devid); printf("devid %08x\n", device_id); // remove previous scan results fs_remove(SYSTASK_AP_SCAN_FILENAME); } // if mount if (setup_ap) { sdk_wifi_set_opmode(SOFTAP_MODE); struct ip_info ap_ip; IP4_ADDR(&ap_ip.ip, 192, 169, 1, 1); IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0); IP4_ADDR(&ap_ip.netmask, 255, 255, 255, 0); sdk_wifi_set_ip_info(1, &ap_ip); struct sdk_softap_config ap_cfg = { .ssid = "WISLEEP", .password = "", .ssid_len = 7, .channel = 1, .authmode = AUTH_OPEN, .ssid_hidden = false, .max_connection = 255, .beacon_interval = 100 }; sdk_wifi_softap_set_config(&ap_cfg); ip_addr_t first_client_ip; IP4_ADDR(&first_client_ip, 192, 169, 1, 100); dhcpserver_start(&first_client_ip, 4); } else { // required to call wifi_set_opmode before station_set_config sdk_wifi_set_opmode(STATION_MODE); sdk_wifi_station_set_config(&config); } server_init(server_actions); um_mutex = xSemaphoreCreateMutex(); xTaskCreate(uart_task, (signed char * )"uart_task", 512, NULL, 2, NULL); xTaskCreate(server_task, (signed char *)"server_task", 1024, NULL, 2, NULL); }