Proyectos con ESP-IDF

Clase 11 de 30 • Curso de IoT: Programación de Microcontroladores ESP32

Clase anteriorSiguiente clase
    Jess Jay

    Jess Jay

    student•
    hace 2 meses

    Me aparece diferente

    Gabriel Obregón

    Gabriel Obregón

    student•
    hace 8 meses

    Configuración del entorno de desarrollo

    Antes de escribir código, es importante verificar la instalación del ESP-IDF y su integración con la terminal de comandos.

    Pasos:

    1. Abrir PowerShell (Windows) o la terminal (Linux/Mac)
    2. Verificar que ESP-IDF esté instalado correctamente

    Navegar a la carpeta de ejemplos: cd examples

    cd get-started

    cd blink

    1. Utilizar Visual Studio Code para visualizar el proyecto: code .
    2. Estructura del proyecto en ESP-IDF

    Dentro del proyecto "blink" encontramos:

    • main/: Contiene el código fuente en C
    • build/: Carpeta generada tras la compilación (se recomienda ignorarla en Git)
    • sdkconfig: Archivo de configuración del ESP-IDF
    • Makefile y CMakeLists.txt: Definen el proceso de compilación

    Análisis del código en C

    El archivo principal es blink_example_main.c, que sigue esta estructura:

    1. Inclusión de librerías:#include <stdio.h>

    #include "freertos/FreeRTOS.h"

    #include "freertos/task.h"

    #include "driver/gpio.h"

    1. Declaración de constantes y macros: static const char *TAG = "example";
    2. Función principal (app_main) void app_main(void) {

        // Código de control del LED

    }

    Esta función se ejecuta al iniciar el ESP32 y es el punto de entrada del programa.

    1. Archivos adicionales importantes
    • CMakeLists.txt: Configura el compilador y define archivos a incluir.
    • component.mk: Permite agregar librerías y configuraciones adicionales.
    • Kconfig.projbuild: Crea menús interactivos para personalizar configuraciones.

    Personalización y testing

    ESP-IDF permite hacer proyectos configurables sin modificar el código fuente. Esto se logra mediante Kconfig, permitiendo seleccionar opciones sin recompilar todo el proyecto.

    Para realizar pruebas, ESP-IDF soporta testing con Python mediante el archivo example_test.py, que valida la funcionalidad antes de cargar el programa en la placa.

    ALEJANDRO OLGUIN

    ALEJANDRO OLGUIN

    student•
    hace 2 años

    ¿Cómo se llama a todo el procedimiento que hizo en el powershell?, para aprender.

    Marcelo Gaston Duarte

    Marcelo Gaston Duarte

    student•
    hace 2 años

    EL ESP-IDF sirve tambien para porgramar el resto de las familias de ESP como el ESP 8266?

      Diana Martinez

      Diana Martinez

      student•
      hace 2 años

      Solo la familia de chips ESP32, el ESP8266 no tiene soporte, ya va de salida.

    Alejandro E. Rendon

    Alejandro E. Rendon

    student•
    hace 2 años

    Para los que hicimos la instalacion en Linux: \Documents\esp\esp-idf\.. -> ~/esp/esp-idf/

    Josue Maaaa

    Josue Maaaa

    student•
    hace 3 años

    Si alguien obtenie los siguiente errores

    Detecting the Python interpreter Checking "python3" ... Python 3.10.10 "python3" has been detected Checking Python compatibility Checking other ESP-IDF version. ERROR: tool xtensa-esp-elf-gdb has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool riscv32-esp-elf-gdb has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool xtensa-esp32-elf has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool xtensa-esp32s2-elf has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool xtensa-esp32s3-elf has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool riscv32-esp-elf has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool esp32ulp-elf has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool openocd-esp32 has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it. ERROR: tool esp-rom-elfs has no installed versions. Please run '/usr/bin/python3 /home/sojue/esp/esp-idf/tools/idf_tools.py install' to install it.

    Unicamente tiene que realizar los siguientes comandos.

    python /home/M3LK1/esp/esp-idf/tools/idf_tools.py install install
    idf_tools.py install-python-env
    Javier Sampen

    Javier Sampen

    student•
    hace 3 años

    veo ademas que al ingresar en una nueva carpeta para trabajar, antes se tiene que dar el moando idf. py build.

    y proceder con normalidad.

    Diana Martinez

    Diana Martinez

    student•
    hace 3 años

    Como este curso asume que ya tienen bases de C, les comparto la página de las convenciones o buenas prácticas que establece el ESP-IDF para escribir código limpio.

    Como podrán ver a lo largo del curso, todas las librerías y ejemplos de este framework usan estos patrones.

    https://docs.espressif.com/projects/esp-idf/en/v5.0.1/esp32/api-reference/api-conventions.html

      Edward John Rodriguez Soto

      Edward John Rodriguez Soto

      student•
      hace 3 años

      Gracias profe!...

    José Antonio Espinosa Yépez

    José Antonio Espinosa Yépez

    student•
    hace 3 años

    ME TRAE NOSTALGIA , en el bachillerato tecnico, programandd en c ++

      PAULO CESAR GALARZA

      PAULO CESAR GALARZA

      student•
      hace 9 meses

      Mi primer lenguaje en borland C++

    Claudio Palmieri

    Claudio Palmieri

    student•
    hace 3 años

    En el proyecto BLINK no tengo los sdkconfig Tampoco el Makefile. Tengo versión 5.0.1-2

      Diana Martinez

      Diana Martinez

      student•
      hace 3 años

      Tal vez cambió la configuración del proyecto en la última versión, igual los comandos deberían funcionar correctamente.

      Claudio Palmieri

      Claudio Palmieri

      student•
      hace 3 años

      Gracias Diana. Super este curso. Lo estoy haciendo de a poco en mis tiempos libres de otros cursos que son para mi key training. Este es juego!

    Alejandro Gallardo

    Alejandro Gallardo

    student•
    hace 3 años

    Para eliminar las líneas rojas del principio del archivo main podemos hacer lo siguiente: 1 Colocamos el mouse por encima y damos click al bombillo amarillo, luego en edit "IncludePath"

    Screenshot 2023-03-14-1.png
    Luego agregamos la ruta del directorio donde tengamos instalado el IDF en el archivo .vscode/c_cpp_properties.json
    Screenshot 2023-03-14-2.png

    "includePath": [ "${workspaceFolder}/**", "c:\\Espresiff\\**" // en mi caso me funciono de esta forma ]
      Harrison Malagon

      Harrison Malagon

      student•
      hace 3 años

      Gracias en mi caso inclui:

      { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:\\Espressif**", ""C:\\Users\\MiUsuario\\Documents\\Espressif"\\**" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.17763.0", "compilerPath": "cl.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-msvc-x64" } ], "version": 4 }
    Johan Andrés Camilo Mosquera

    Johan Andrés Camilo Mosquera

    student•
    hace 3 años

    La esp8266 puede funcionar con ESP-IDF ??

      Jose Gabriel Argüello

      Jose Gabriel Argüello

      student•
      hace 3 años

      Johan considero que si , el Espressif IoT Development Framework (ESP-IDF) es el framework de desarrollo y grabación del modulo de hardware, seguramente deberás cambiar las confirguaciones, se me ocurre que el sdkconfig

      Gustavo Reynaga

      Gustavo Reynaga

      student•
      hace 3 años

      Tengo entendido que no, para el ESP8266, está el añadido oficial al IDE de Arduino, recordemos que el ESP8266 no fue creado para su uso como microcontrolador, sino como tarjeta wifi: https://github.com/espressif/ESP8266_RTOS_SDK

    Fernando Yutiz

    Fernando Yutiz

    student•
    hace 3 años

    Esa pista de circuito que se ve zigzagueantes, es la antena WiFi integrada que traen estos módulos

    esp32.jpg