esp32 相关问题

有关Espressif的ESP 32 Wi-Fi和蓝牙组合芯片的问题。

如何将磁盘使用情况,内存使用情况,PSRAM使用和网络使用率转换为ESP32上的百分比? 我将使用Arduino作为编程语言和平台作为编译器的ESP32编程。我目前正在开发遥测部分,但我不确定如何获取内存使用量,

#include <SPIFFS.h> float memory; float memoryPsram; float disk; void setup() { Serial.begin(115200); Serial.println("Arrancando telemetria: "); SPIFFS.begin(); } void loop() { for (int i = 0; i < 10; i++) { memory += ESP.getHeapSize() > 0 ? (100 - (ESP.getFreeHeap() * 100 / ESP.getHeapSize())) : 0; memoryPsram += ESP.getPsramSize() > 0 ? (100 - (ESP.getFreePsram() * 100 / ESP.getPsramSize())) : 0; disk += SPIFFS.totalBytes() > 0 ? (SPIFFS.usedBytes() * 100 / SPIFFS.totalBytes()) : 0; } Serial.print("Memory: "); Serial.println(memory/10); Serial.print("Memory Psram: "); Serial.println(memoryPsram/10); Serial.print("Disk: "); Serial.println(disk/10); delay(1000); }

回答 1 投票 0

ESP32任务看门狗使用ESPIDF

我们需要连续读取I2C的ADC模块20次,以获得ADC的稳定值。 我们已经为其创建了一个任务,但是代码停止在几分钟内停止工作,显示以下错误。 E(1925655)task_wdt:

回答 2 投票 0



eSp32micropythonLittlefs

使用Expressif Dev-Board和Standard Micropython.bin I能够创建一个LittleFS2分区,将其安装并将数据写入文件: #ESP8266和ESP32 导入操作系统 os.umount('/') OS.VFSLFS2.MKFS(

回答 1 投票 0

ESP32/freertos停止调度程序在MAIN的开头 - 然后启动任务并重新启动调度程序

在ESP32上的初始序列中,我有几个在初始化期间创建的任务。 现在,我注意到我在初始序列的初始运行期间添加的那些任务。 实际上,我不明白为什么在调用主函数之前启动调度程序。从第一视图上没有意义。 我会怀疑序列是:

回答 1 投票 0



<code>esp_err_t Server::staticFileHandler(httpd_req_t *req) { char filepath[600]; // const char* base_path = "/littlefs"; const char* base_path = "/spiffs"; const char* uri = req->uri; // Se a URI for "/", sirva o arquivo index.html if (strcmp(uri, "/") == 0) { snprintf(filepath, sizeof(filepath), "%s/index.html", base_path); } else { snprintf(filepath, sizeof(filepath), "%s/dist%s", base_path, uri); } ESP_LOGI(TAG, "Requested URI: %s", uri); ESP_LOGI(TAG, "Constructed filepath: %s", filepath); // Abra o arquivo FILE* file = fopen(filepath, "r"); if (!file) { ESP_LOGE(TAG, "Failed to open file: %s", filepath); httpd_resp_send_404(req); return ESP_FAIL; } // Determine o tipo de conteúdo const char* type = "text/plain"; if (strstr(filepath, ".html")) type = "text/html"; else if (strstr(filepath, ".css")) type = "text/css"; else if (strstr(filepath, ".js")) type = "application/javascript"; else if (strstr(filepath, ".png")) type = "image/png"; else if (strstr(filepath, ".jpg")) type = "image/jpeg"; else if (strstr(filepath, ".gif")) type = "image/gif"; else if (strstr(filepath, ".svg")) type = "image/svg+xml"; else if (strstr(filepath, ".ico")) type = "image/x-icon"; // Para favicon // Envie o cabeçalho HTTP httpd_resp_set_type(req, type); // Envie o conteúdo do arquivo char buffer[1024]; size_t chunksize; while ((chunksize = fread(buffer, 1, sizeof(buffer), file)) > 0) { httpd_resp_send_chunk(req, buffer, chunksize); } // Envie o final da resposta httpd_resp_send_chunk(req, NULL, 0); // Feche o arquivo fclose(file); return ESP_OK; } const httpd_uri_t Server::centralIndex = { .uri = "/*", .method = HTTP_GET, .handler = staticFileHandler, // .user_ctx = NULL }; httpd_handle_t Server::startWebServer(){ httpd_handle_t server = NULL; httpd_config_t config = HTTPD_DEFAULT_CONFIG(); config.lru_purge_enable = true; ESP_LOGI(TAG, "Starting server on port: '%d'", config.server_port); if(http.start(&server, &config) == ESP_OK){ ESP_LOGI(TAG, "Registering URI handlers"); // http.registerUriHandler(server, &hello); http.registerUriHandler(server, &centralIndex); // http.registerUriHandler(server, &assetsHandler); http.registerUriHandler(server, &getBracelets); // registering getBracelets uri handler http.registerUriHandler(server, &getBracelet); //registering getBracelet uri handler http.registerUriHandler(server, &createBracelets); //registering createBracelets uri handler http.registerUriHandler(server, &updateBracelet); //registering updateBracelet uri handler return server; } mdns_init(); mdns_hostname_set("myesp32"); mdns_instance_name_set("LEARN esp32 thing"); ESP_LOGI(TAG, "Error starting server!"); return NULL; } </code>

spiffs_create_partition_image(storage ../data FLASH_IN_PROJECT) # Crie a imagem do sistema de arquivos SPIFFS para a partição 'www' spiffs_create_partition_image(spiffs ../site/dist FLASH_IN_PROJECT) # Ajuste a configuração do SPIFFS para permitir nomes de arquivos mais longos set(SPIFFS_OBJ_NAME_LEN 64)

回答 1 投票 0

我正在与ESP32-VROOM-32U一起使用QTR-8RC传感器阵列时遇到问题。尽管遵循设置和校准程序,但传感器似乎无法正常运行。以下是我的设置和观察的详细信息:

• Microcontroller: ESP32-VROOM-32U • Power Source: MacBook Air M2 • Sensor Array: QTR-8RC (8 sensors) • Connection Pins: 2, 12, 13, 14, 15, 26, 27, 32 • Emitter Control Pin: 2

回答 0 投票 0



Micro-Ros Image订阅者和发行商无法一起工作

ros2 topic echo /micro_ros_publisher

回答 0 投票 0


我正在尝试为ESP32-C3-MINI-1的EXT0和/或EXT1唤醒策略实施代码。由于尚未收到开发套件,我正在使用WOKWI模拟器进行测试。但是,我什至无法让董事会从Ext0策略中唤醒更不用说Ext1了。我不确定代码中有什么问题。感谢任何帮助,谢谢!

#define INTERRUPT_PIN 2 RTC_DATA_ATTR int bootCount = 0; void setup() { Serial.begin(115200); delay(1000); //pinMode(LED, OUTPUT); // digitalWrite(LED, LOW); ++bootCount; Serial.println("Boot number: " + String(bootCount)); print_wakeup_reason(); Serial.println("Starting"); delay(2000); for(int i=3; i!=0; i--){ Serial.println(i); delay(1000); } Serial.println("Going to sleep now"); esp_deep_sleep_enable_gpio_wakeup(1 << INTERRUPT_PIN, ESP_GPIO_WAKEUP_GPIO_HIGH); esp_deep_sleep_start(); Serial.println("This will never be printed"); } void loop() { } void print_wakeup_reason() { esp_sleep_wakeup_cause_t wakeup_reason; wakeup_reason = esp_sleep_get_wakeup_cause(); switch (wakeup_reason) { case ESP_SLEEP_WAKEUP_EXT0: Serial.println("Wakeup caused by external signal using RTC_IO"); break; case ESP_SLEEP_WAKEUP_EXT1: Serial.println("Wakeup caused by external signal using RTC_CNTL"); break; case ESP_SLEEP_WAKEUP_TIMER: Serial.println("Wakeup caused by timer"); break; case ESP_SLEEP_WAKEUP_TOUCHPAD: Serial.println("Wakeup caused by touchpad"); break; case ESP_SLEEP_WAKEUP_ULP: Serial.println("Wakeup caused by ULP program"); break; default: Serial.printf("Wakeup was not caused by deep sleep: %d\n", wakeup_reason); break; } }

回答 1 投票 0


在ESP32

点上写了

回答 1 投票 0




最新问题
© www.soinside.com 2019 - 2025. All rights reserved.