Primer Programa
Estructura de un proyecto ESP-IDF
Un proyecto ESP-IDF típicamente tiene una estructura de directorio como esta:
mi_proyecto/
|-- build/
|-- components/
|-- main/
| |-- main.c
|-- CMakeLists.txt
|-- sdkconfig
|-- ...
Se puede crear un nuevo proyecto usando idf.py
idf.py create-project mi_proyecto
build/
: Este directorio contiene los archivos generados durante la compilación.components/
: Aquí puedes colocar componentes adicionales o bibliotecas que tu proyecto pueda necesitar.main/
: Es donde reside el código principal del programa, incluidomain.c
.CMakeLists.txt
: Es un archivo que CMake utiliza para construir tu proyecto.sdkconfig
: Este archivo almacena la configuración del proyecto.
Código del archivo main.c
A continuación, un programa básico que unicamente imprime “Hello world!” en la consola y reinicia el dispositivo después de 10 segundos.
#include <stdio.h>
#include <inttypes.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_flash.h"
#include "esp_system.h"
void app_main(void){
// Imprime "Hello world!" en la consola (esto se puede ver con el comando "idf.py monitor")
printf("Hello world!\n");
vTaskDelay(10000 / portTICK_PERIOD_MS); // Espera 10 segundos (time.sleep(10) en Python))
esp_restart(); // Reinicia el dispositivo
}
Un proyecto ESP-IDF típicamente tiene una estructura específica, con el punto de inicio en la función app_main()
de main.c
. El código anterior es un programa básico que muestra cómo conectar la ESP32 a una red WiFi. Puedes expandir este programa incluyendo más características como manejo de errores, reconexión automática entre otros.