在wifi监控模式下降低ESP32的功耗

时间:2019-04-18 10:24:53

标签: esp32

我目前正在使用ESP32监视wifi数据包(使用混杂模式)的项目。 目前,我正在将arduino用于ESP32(但如有必要,可以更改为esp-idf),并且能够正确执行监视。

监视时,我消耗的电流约为100 / 102mA。 (核心频率为80MHz)。 我希望将功耗降低一点。 我该怎么办?

这是我的代码的简化版本:


void wifi_promiscuous(void* buff, wifi_promiscuous_pkt_type_t type) {
// store the packet in memory
}

void setup() {
  esp_bt_controller_disable();
  nvs_flash_init();
  tcpip_adapter_init();
  wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
  ESP_ERROR_CHECK(esp_event_loop_init(event_handler, NULL)); // event_handler does nothing
  ESP_ERROR_CHECK(esp_wifi_init(&cfg));
  ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM));
  ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_NULL));
  ESP_ERROR_CHECK(esp_wifi_start());
  esp_wifi_set_max_tx_power(-4); // reduce tx power, as we only receive
  esp_wifi_set_channel(ch, WIFI_SECOND_CHAN_NONE);

  esp_wifi_set_promiscuous_rx_cb(&wifi_promiscuous);
  esp_wifi_set_promiscuous(true);

  vTaskDelay(1000L * (MEASUREMENT_DURATION) / portTICK_PERIOD_MS);
  // Do something with the measurement, then get turned off externally.
}

0 个答案:

没有答案