source ~/esp/esp-idf/export.shEnter to monitor
idf.py monitorExit to monitor
ctrl + ]esp_system.h: Funciones del sistemadriver/gpio.h: Control de GPIOfreertos/FreeRTOS.h: Sistema de tiempo realesp_log.h: Registro de mensajesesp_wifi.h: Configuración de WiFidriver/uart.h: Comunicación serial
#include "driver/gpio.h"
// Configurar pin como salida
gpio_pad_select_gpio(GPIO_NUM_2);
gpio_set_direction(GPIO_NUM_2, GPIO_MODE_OUTPUT);
// Configurar pin como entrada
gpio_set_direction(GPIO_NUM_4, GPIO_MODE_INPUT);
// Configuraciones avanzadas
gpio_config_t io_conf = {
.pin_bit_mask = (1ULL << GPIO_NUM_4),
.mode = GPIO_MODE_INPUT,
.intr_type = GPIO_INTR_DISABLE,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE
};
gpio_config(&io_conf);#include "esp_log.h"
#define TAG "MiAplicacion"
// Tipos de logs
ESP_LOGI(TAG, "Mensaje informativo");
ESP_LOGW(TAG, "Mensaje de advertencia");
ESP_LOGE(TAG, "Mensaje de error");
ESP_LOGD(TAG, "Mensaje de depuración");#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
void mi_tarea(void* pvParameters) {
while(1) {
// Código de la tarea
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
// Crear tarea
xTaskCreate(
mi_tarea, // Función de la tarea
"MiTarea", // Nombre de la tarea
2048, // Tamaño de pila
NULL, // Parámetros
1, // Prioridad
NULL // Manejador de tarea
);#include "driver/uart.h"
// Configuración de UART
uart_config_t uart_config = {
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE
};
uart_param_config(UART_NUM_0, &uart_config);#include "esp_wifi.h"
#include "esp_event.h"
// Inicializar WiFi
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK(esp_wifi_init(&cfg));
// Configurar modo estación
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));# Compilar
idf.py build
# Flashear
idf.py -p /dev/ttyUSB0 flash
# Monitor serial
idf.py -p /dev/ttyUSB0 monitor
# Compilar y flashear
idf.py -p /dev/ttyUSB0 build flash
# Limpiar proyecto
idf.py clean- "ESP32 Programming by Example" - Libro
- Cursos en Udemy y Coursera sobre ESP32
- Foro Oficial de Espressif
- Grupos de Telegram y Discord de ESP32
- Siempre use
ESP_ERROR_CHECK()para manejar errores - Aproveche FreeRTOS para programación concurrente
- Consulte constantemente la documentación oficial
- Mantenga sus herramientas y SDK actualizados
Nota: Esta documentación es un resumen. Para detalles completos, consulte siempre la documentación oficial de Espressif.
