En esta ocasión instalaremos y configuraremos desde cero la plataforma Espressif IoT Development Framework (ESP-IDF) esta es la plataforma oficial de desarrollo de espressif para los modulos ESP32.
En tutoriales anteriores hablamos un poco sobre los ESP32 que tienen Wi-Fi (banda de 2,4 GHz) y Bluetooth 4.2 en un solo modulo esas entre otras características.
Me tome a la tarea de probar la documentación sobre la instalación de ESP-IDF, dado que considero que existen algunas confusiones que complican la instalación y espero que aquí sean aclaradas las dudas.
- Pagina Oficial: ESP-IDF espressif
- Github Oficial: ESP-IDF
Requerimientos
- PC con sistema Operativo Linux (Ubuntu/Debian) o Virtualbox, en mi caso Lubuntu-
- Toolchain para construir la aplicación para ESP32
- ESP-IDF que esencialmente contiene API para ESP32 y scripts para operar el Toolchain
- Un editor de texto, para editar o crear programas.
Materiales y donde Compralos muy baratos
PC con sistema Operativo Linux (Ubuntu/Debian) o Virtualbox
Dado que realizaremos la instalación sobre un sistema operativo Linux, Lubuntu en mi caso, es un derivado de (Ubuntu), aunque existe una versión de ESP-IDF para Windows, yo recomendaría en ese caso instalar una maquina virtual con Linux.
- Tutorial Recomendado Instalar Lubuntu en maquina virtual (Virualbox) en Windows
- Tutorial Recomendado Instalar Lubuntu de manera permanente en PC a 32bits
Nota: Pueden utilizar cualquier distribucion Linux en este caso (Ubuntu/Debian) yo personalmente prefiero lubuntu, pero es igual.
Video Tutorial Completo Instalacion y Configuracion
Aunque existe una guia oficial resumiremos los pasos realizados:
Instalar Toolchain
Instalar paquetes para Ubuntu or Debian:
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
Configurar Toolchain
Descargar toolchain según su versión de sistema operativo
-
para 64-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz
-
para 32-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-75-gbaf03c2-5.2.0.tar.gz
Descargue este archivo, luego extráigalo en la carpeta esp
- Crear carpeta esp, en carpeta de usuario actual
mkdir -p ~/esp
- ingresar a carpeta esp
cd esp
- descomprimir Toolchain «xtensa-esp32-elf», cambiar ruta dependiendo de archivo descargado 32bits o 64bits segun sea su caso.
tar -xzf ~/Descargas/xtensa-esp32-elf-linux32-1.22.0-73-gba03c2-5.2.0.tar.gz
Agregar Path «xtensa-esp32-elf»
salir de carpeta esp y ubicarse en carpeta de usuario.
- Editar archivo .profile con nano
sudo nano .profile
- Agregar path «xtensa-esp32-elf» al final de archivo.
export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
Reiniciar PC para visualizar cambios, indican reiniciar session, yo prefiero reiniciar.
- Verificar Ruta de path
printenv PATH
- Verificar instalación y configuración de «xtensa-esp32-elf».
xtensa-esp32-elf-gcc -v
En caso de retornar «no se encontro la orden» después de reiniciar verificar y realizar nuevamente los pasos anteriores, posiblemente algún error en la ruta guardada en el PATH.
Instalar ESP-IDF
ESP-IDF contiene la API para ESP32 , scripts para toolchain y ejemplos.
- Clonar proyecto esp-idf de github en carpeta esp
cd ~/esp git clone --recursive https://github.com/espressif/esp-idf.git
- Ingresar a esp-idf y actualizar submodulos desde github
cd /esp/esp-idf git submodule update --init
Agregar Path «ESP-IDF»
- Editar archivo .profile con nano
sudo nano .profile
- Agregar PATH «IDF_PATH»
export IDF_PATH=~/esp/esp-idf
- Verificar PATH
printenv IDF_PATH
- Reiniciar PC para visualizar cambios.
Instalacion Finalizada y Completa Completa de ESP-IDF conectar nuestro ESP32 !!!
Hello World en ESP32 con ESP-IDF
Recomiendo ver el Video tutorial completo en el se realizara paso a paso con la guía oficial y se probara descargando un ejemplo «hello world» a ESP32.
- Menu de configuracion, interface de configuracion de ESP-IDF, no requiere modificaciones
make menuconfig
Compilar la aplicación «hello world» adicionalmente el gestor de arranque y generará una tabla de particiones basada en la configuración, en pocas palabras compilara el codigo.
make all
- Descargar codigo a Modulo ESP32 via serial
make flash
- Para visualizar ejemplo en accion !! Abrir terminal serial, y visualizar «helloworld» el el comando:
make Monitor
Información Completa y detallada, proyecto Github ESP-IDF .
Aclaracion usar .profile o .bashrc
Previamente investigue otros tutoriales sobre instalacion de esp-idf, en mucho de ellos utilizan el archivos .bashrc pero no explican por que o simplemente dan una respuesta dudosa, busque en algunos foros y dicen lo siguiente sobre las diferencias entre .profile o .bashrc, personalmente utilizare .profile como sugiere el manual.
.profile se usa en el momento de iniciar sesión,ya sea en una terminal o en su escritorio.Por lo tanto, la configuración se aplicará siempre cuando haya iniciado sesión.
Por otro lado, .Bashrc se ejecuta cada vez que abre una sesión de Bash, por ejemplo, cada vez que abre un terminal.
Nota: no soy un experto linux,no quiero generar polemica por este tema, solo comparto esta posible aclaración si es errónea, discúlpenme y comenten.
Fuente: Difference between .bashrc and .profile file?
Conclusiones
Muchos diran que por que hice la guia que ya existe, bueno considere que la version oficial en algunos punto puede confundir referente a los pasos especificos.
Otras opción disponible para esp-idf es compilar desde cero toolchain pero esta opción toma mas tiempo.
Nuevamente si quieren hacer aplicaciones completas y complejas para ESP32, nada mejor que ESP-IDF ventajas.
- creado por espressif.
- mas actualizaciones.
- mas ejemplos.
- mas aplicaciones de hardware.
- Foros y soporte.
También exploraremos otras opciones disponibles para programarlos ESP32:
- Arduino IDE
- Mongoose
Referencias
- primeras-pruebas esp32
- Pagina Oficial: ESP-IDF espressif
- Github Oficial: ESP-IDF
- Difference between .bashrc and .profile file?