Información Básica
No. de Modelo.
ESP-IDF Programming Guide
Antena WiFi Tipo
Incorporado
Velocidad de transmisión
151-200Mbps
Ganancia de la Antena
23dBi
Certificación
RoHS, FCC, CE
Paquete de Transporte
caja
Descripción de Producto
Si necesita comprar más información sobre los módulos, soluciones y otra información de Espresso chip, por favor no dude en enviar información relevante a nuestro correo electrónico, le serviremos de todo corazón.
esp32 agente de usuario esp32 zabbix agente espressif empresa ESP-IDF Programación Guía Esta es la documentación de Espessif IoT Development Framework (esp-idf). ESP-IDF es el marco oficial de desarrollo para el chip ESP32. Este documento tiene como objetivo ayudarle a configurar el entorno de desarrollo de software para el hardware basado en el chip ESP32 de Espresso.
Después de eso, un ejemplo sencillo le mostrará cómo usar ESP-IDF (Espessif IoT Development Framework) para la configuración de menús, luego construir y actualizar firmware en una placa ESP32.
Introducción
ESP32 es un sistema en un chip que integra las siguientes características:
Wi-Fi (banda de 2,4 GHz)
Bluetooth 4,2
Núcleos duales de alto rendimiento
Coprocesador de potencia ultrabaja
Varios periféricos
40, que funciona con tecnología de ESP32 nm, proporciona una plataforma robusta y altamente integrada, que ayuda a satisfacer las demandas continuas de uso eficiente de energía, diseño compacto, seguridad, alto rendimiento y fiabilidad.
Espressif proporciona recursos básicos de hardware y software para ayudar a los desarrolladores de aplicaciones a realizar sus ideas utilizando el hardware de la serie ESP32. El marco de desarrollo de software de Espressif está destinado al desarrollo de aplicaciones de Internet de las cosas (IoT) con Wi-Fi, Bluetooth, administración de energía y otras características del sistema.
Lo que necesitas
Hardware:
Una tabla de ESP32
Cable USB: USB A / micro USB B
Equipo que ejecuta Windows, Linux o MacOS
Software:
Cadena de herramientas para compilar código para ESP32
Construir herramientas - CMake y Ninja para construir un completo Solicitud para ESP32
ESP-IDF que contiene esencialmente API (bibliotecas de software y código fuente) Para ESP32 y scripts para operar el Toolchain
Editor de texto para escribir programas (proyectos) en C, por ejemplo, Eclipse
Descripciones generales de la placa de desarrollo
Si tiene una de las ESP32 placas de desarrollo enumeradas a continuación, puede hacer clic en el enlace para obtener más información sobre su hardware.
ESP32-DevKitC
ESP-WROVER-KIT
ESP32-PICO-KIT
ESP32-Ethernet-Kit
Instalación paso a paso
Este es un plan detallado para guiarle a través del proceso de instalación.
Configuración del entorno de desarrollo
Paso 1. Instalar los requisitos previos para Windows, Linux o MacOS
Paso 2. Obtener ESP-IDF
Paso 3. Configure las herramientas
Paso 4. Configure las variables de entorno
Creación del primer proyecto
Paso 5. Inicie un proyecto
Paso 6. Conecte el dispositivo
Paso 7. Configurar
Paso 8. Genere el proyecto
Paso 9. Flash en el dispositivo
Paso 10. Monitor
Paso 1. Instalar los requisitos previos
Algunas herramientas deben instalarse en el equipo antes de continuar con los pasos siguientes. Siga los enlaces que aparecen a continuación para obtener instrucciones sobre su sistema operativo
Paso 2. Obtener ESP-IDF
Para crear aplicaciones para el ESP32, necesita las bibliotecas de software proporcionadas por Espessif en el repositorio ESP-IDF.
Para obtener ESP-IDF, navegue hasta el directorio de instalación y clone el repositorio con git clone, siguiendo las instrucciones que se indican a continuación específicas para su sistema operativo.
Linux y MacOS
Abra Terminal y ejecute los siguientes comandos:
cd ~/esp
git clone -b release/v4,1 --recursive https://github. com/espressif/esp-idf.git
ESP-IDF se descargará en ~/esp/esp-idf.
Consulte las versiones ESP-IDF para obtener información sobre qué versión ESP-IDF debe utilizarse en una situación determinada.
Ventanas
Además de instalar las herramientas, ESP-IDF Tools Installer para Windows, introducido en el paso 1, también puede descargar una copia de ESP-IDF.
Consulte las versiones ESP-IDF para obtener información sobre qué versión ESP-IDF debe utilizarse en una situación determinada.
Si desea descargar ESP-IDF sin la ayuda del instalador de herramientas ESP-IDF, consulte estas instrucciones.
Paso 3. Configure las herramientas
Aparte de ESP-IDF, también necesita instalar las herramientas usadas por ESP-IDF, como el compilador, depurador, paquetes Python, etc.
Ventanas
ESP-IDF Tools Installer para Windows, introducido en el paso 1, instala todas las herramientas necesarias.
Si desea instalar las herramientas sin la ayuda del instalador de herramientas de ESP-IDF, abra el símbolo del sistema y siga estos pasos:
cd %userprofile%\esp\esp-idf
install.bat
O con Windows PowerShell
cd ~/esp/esp-idf
./install.ps1
Linux y MacOS
cd ~/esp/esp-idf
./install.sh
Descargas de archivos alternativas
El instalador de herramientas descarga una serie de archivos adjuntos a GitHub Lanzes. Si el acceso a GitHub es lento, es posible establecer una variable de entorno para que prefiera el servidor de descarga de Espresso para las descargas de activos de GitHub.
Ventanas
Para preferir el servidor de descarga Espessif al ejecutar el instalador de herramientas ESP-IDF o al instalar herramientas desde la línea de comandos, abra el panel de control del sistema y haga clic en Configuración avanzada. Agregue una nueva variable de entorno (de tipo Usuario o sistema) con el nombre IDF_GITHUB_ASSETS y el valor /github_Assets. Haga clic en Aceptar una vez terminado.
Si la ventana de la línea de comandos o la ventana del instalador de herramientas ESP-IDF ya estaba abierta antes de agregar la nueva variable de entorno, deberá cerrarla y abrirla de nuevo.
Mientras esta variable de entorno aún está definida, el instalador de herramientas ESP-IDF y el instalador de línea de comandos preferirán el servidor de descarga Espessif.
Linux y MacOS
Para preferir el servidor de descarga Espressif al instalar herramientas, utilice la siguiente secuencia de comandos al ejecutar install.sh:
cd ~/esp/esp-idf
Exportar IDF_GITHUB_ASSETS="/github_Assets"
./install.sh
Personalizar la ruta de instalación de las herramientas
Los scripts introducidos en este paso instalan las herramientas de compilación necesarias para ESP-IDF dentro del directorio principal del usuario: $HOME/.espressif en Linux y MacOS, %USERPROFILE%\.espressif en Windows. Si desea instalar las herramientas en un directorio diferente, defina la variable de entorno IDF_TOOLS_PATH antes de ejecutar los scripts de instalación. Asegúrese de que el usuario tiene suficientes permisos para leer y escribir esta ruta.
Si cambia IDF_TOOLS_PATH, asegúrese de que se establece en el mismo valor cada vez que se ejecuta el script Install (install.bat, install.ps1 o install.sh) y un script Export (export.bat, export.ps1 o export.sh).
Paso 4. Configure las variables de entorno
Las herramientas instaladas aún no se han agregado a la variable de entorno PATH. Para que las herramientas puedan utilizarse desde la línea de comandos, se deben definir algunas variables de entorno. ESP-IDF proporciona otro script que lo hace.
Ventanas
ESP-IDF Tools Installer for Windows crea un acceso directo "ESP-IDF Command Prompt" en el menú Inicio. Este acceso directo abre el símbolo del sistema y configura todas las variables de entorno necesarias. Puede abrir este acceso directo y continuar con el siguiente paso.
Si desea utilizar ESP-IDF en una ventana del símbolo del sistema existente, también puede ejecutar:
%userprofile%\esp\esp-idf\export.bat
O con Windows PowerShell
.$HOME/esp/esp-idf/export.ps1
Linux y MacOS
En el terminal donde va a utilizar ESP-IDF, ejecute:
. $HOME/esp/esp-idf/export.sh
¡tenga en cuenta el espacio entre el punto inicial y el trazado!
Si tiene previsto utilizar esp-idf con frecuencia, puede crear un alias para ejecutar export.sh:
Copie y pegue el siguiente comando en el perfil de su shell (.profile, .bashrc, .zprofile, etc.)
alias get_idf='. $HOME/esp/esp-idf/export.sh'
Actualice la configuración reiniciando la sesión de terminal o ejecutando source [ruta al perfil], por ejemplo, source ~/.bashrc.
Ahora puede ejecutar get_idf para configurar o actualizar el entorno esp-idf en cualquier sesión de terminal.
Técnicamente, puedes añadir export.sh directamente al perfil de tu shell; sin embargo, no es recomendable. Al hacerlo, se activa el entorno virtual de IDF en cada sesión de terminal (incluidas aquellas en las que no se necesita IDF), lo que supone una derrota para el propósito del entorno virtual y que probablemente afecte a otros programas informáticos.
Paso 5. Inicie un proyecto
Ahora ya está listo para preparar su solicitud para ESP32. Puede empezar con el proyecto get-started/Hello_World desde el directorio examples en IDF.
Copiar get-started/Hello_World en el directorio ~/esp:
Linux y MacOS
cd ~/esp
cp -r $IDF_PATH/examples/get-started/Hello_World .
Ventanas
cd %userprofile%\esp
Xcopy /e /i %IDF_PATH%\examples\get-started\Hello_World Hello_World
Hay una serie de proyectos de ejemplo en el directorio examples de ESP-IDF. Puede copiar cualquier proyecto de la misma forma que se ha presentado anteriormente y ejecutarlo.
También es posible construir ejemplos in situ, sin copiarlos primero.
Paso 6. Conecte el dispositivo
Ahora conecte la placa ESP32 al ordenador y compruebe en qué puerto serie está visible la placa.
Los puertos serie tienen los siguientes patrones en sus nombres:
Windows: Nombres como COM1
Linux: Comenzando con /dev/tty
MacOS: Empezando con /dev/cu.
Si no está seguro de cómo comprobar el nombre del puerto serie, consulte establecer conexión serie con ESP32 para obtener más información.
Paso 7. Configurar
Navegue al directorio Hello_World desde el paso 5. Inicie un proyecto y ejecute la utilidad de configuración del proyecto menuconfig.
Linux y MacOS
cd ~/esp/hello_world
idf.py menuconfig
Ventanas
cd %userprofile%\esp\hola_world
idf.py menuconfig
Para navegar y utilizar menuconfig, pulse las siguientes teclas:
Teclas de flecha para la navegación
Entrar para ir a un submenú
ESC para subir un nivel o salir
? para ver una pantalla de ayuda para un elemento de menú o configuración. La tecla Intro sale de la pantalla de ayuda
Espacio, o teclas y y N para activar (Sí) y desactivar (no) los elementos de configuración con casillas de verificación "[*]"
/ para buscar elementos de configuración
Paso 8. Genere el proyecto
Genere el proyecto ejecutando:
idf.py compilación
Este comando compilará la aplicación y todos los componentes de ESP-IDF, y luego generará el cargador de arranque, la tabla de particiones y los binarios de la aplicación.
$ idf.py construir
Ejecutando cmake en el directorio /path/to/Hello_World/build
Ejecutando "cmake -G Ninja --warn-uninitialized /path/to/hola_World"...
Advertir sobre valores no inicializados.
-- encontrado Git: /usr/bin/git (encontrado versión "2.17.0")
-- construir un componente aws_iot vacío debido a la configuración
-- nombres de componentes: ...
-- rutas de componentes: ...
... (más líneas de producción de salida del sistema)
[527/527] generación hello-world.bin
esptool.py v2,3.1
Compilación del proyecto completada. Para hacer un flash, ejecute este comando:
.././../components/esptool_py/esptool/esptool.py -p (PUERTO) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin
O ejecute 'idf.py -p PORT flash'
Si no hay errores, la compilación finalizará generando el archivo .bin binario del firmware.
Paso 9. Flash en el dispositivo
Flash los binarios que acaba de construir en su placa ESP32 ejecutando:
idf.py -p PUERTO [-b BAUDIOS] flash
Sustituya EL PUERTO por el nombre de puerto serie de la placa ESP32 del paso 6. Conecte el dispositivo.
También puede cambiar la velocidad en baudios de los intermitentes sustituyendo LA VELOCIDAD EN BAUDIOS por la velocidad en baudios que necesite. La velocidad en baudios predeterminada es 460800.
Para obtener más información sobre los argumentos idf.py, vea idf.py.
Nota
La opción flash genera y actualiza automáticamente el proyecto, por lo que no es necesario ejecutar idf.py build.
Ejecutando esptool.py en el directorio [...]/esp/Hello_World
Ejecutando "python [...]/esp-idf/components/esptool_py/esptool/esptool.py -b 460800 write_flash @flash_project_args"...
esptool.py -b 460800 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 bootloader/bootloader.bin 0x8000 partition_table/partition-table.bin 0x10000 hello-world.bin
esptool.py v2,3.1
Conectando
Detectando tipo de chip... ESP32
Chip ESP32D0WDQ6 (revisión 1)
Características: WiFi, BT, Dual Core
Cargando código auxiliar...
Ejecutando stub...
Ejecución de código auxiliar...
Cambiando la velocidad en baudios a 460800
Cambiado.
Configurando tamaño de flash...
Tamaño de flash detectado automáticamente: 4MB
Parámetros de Flash configurados en 0x0220
Comprimido de 22992 bytes a 13019...
Escribió 22992 bytes (13019 comprimidos) a 0x00001000 en 0,3 segundos (efectivo 558,9 kbit/s)...
Hash de datos verificado.
Comprimido de 3072 bytes a 82...
Escribió 3072 bytes (82 comprimidos) a 0x00008000 en 0,0 segundos (efectivo 5789,3 kbit/s)...
Hash de datos verificado.
Comprimido de 136672 bytes a 67544...
Escribió 136672 bytes (67544 comprimidos) a 0x00010000 en 1,9 segundos (efectivo 567,5 kbit/s)...
Hash de datos verificado.
Saliendo...
Restablecimiento de hardware mediante el pin RTS...
Si no hay problemas al final del proceso de flash, el módulo se restablecerá y la aplicación "Hello_World" se ejecutará.
Paso 10. Monitor
Para comprobar si "Hello_World" está en ejecución, escriba idf.py -p PORT monitor (no olvide reemplazar EL PUERTO con el nombre de puerto serie).
Este comando inicia la aplicación Monitor IDF:
Monitor $ idf.py -p /dev/ttyUSB0
Ejecutando idf_monitor en el directorio [...]/esp/Hello_World/build
Ejecutando "python [...]/esp-idf/tools/idf_monitor.py -b 115200 [...]/esp/Hello_World/build/Hello-World.Elf"...
--- idf_monitor en /dev/ttyUSB0 115200 ---
--- salir: Ctrl+] | Menú: Ctrl+T | Ayuda: Ctrl+T seguido de Ctrl+H ---
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57
...
Después de que los registros de inicio y diagnóstico se desplazan hacia arriba, debería ver "Hola mundo!" impreso por la aplicación.
...
Hola mundo!
Reiniciando en 10 segundos...
I (211) cpu_start: Iniciando el planificador en la CPU DE LA APLICACIÓN.
Reiniciando en 9 segundos...
Reiniciando en 8 segundos...
Reiniciando en 7 segundos...
Para salir del monitor IDF, utilice el acceso directo Ctrl+].
Si el monitor IDF falla poco después de la carga, o si en lugar de los mensajes anteriores, ves basura aleatoria similar a lo que se da a continuación, es probable que tu tablero utilice un cristal de 26MHz. La mayoría de los diseños de placas de desarrollo utilizan 40MHz, por lo que ESP-IDF utiliza esta frecuencia como valor predeterminado.
Salida desgranada
Si tiene este problema, haga lo siguiente:
Salga del monitor.
Vuelva a menuconfig.
Vaya a Component CONFIG -> ESP32-Specific -> Main XTAL frequency, y cambie CONFIG_ESP32_XTAL_FREQ_SEL a 26MHz.
Después de eso, cree y vuelva a actualizar la aplicación.
Consulte también:
Monitor IDF para accesos directos prácticos y más detalles sobre el uso del monitor IDF.
idf.py para una referencia completa de idf.py comandos y opciones.
¡eso es todo lo que necesitas para empezar con ESP32!
Ahora ya está listo para probar otros ejemplos o ir directamente a desarrollar sus propias aplicaciones.
Actualizando ESP-IDF
Debe actualizar ESP-IDF de vez en cuando, ya que las versiones más recientes solucionan errores y proporcionan nuevas características. La forma más sencilla de realizar la actualización es eliminar la carpeta esp-idf existente y clonarla de nuevo, como si se estuviera realizando la instalación inicial descrita en el paso 2. Obtener ESP-IDF.
Otra solución es actualizar solo lo que ha cambiado. El procedimiento de actualización depende de la versión de ESP-IDF que esté utilizando.
Después de actualizar ESP-IDF, ejecute de nuevo el script Install, en caso de que la nueva versión de ESP-IDF requiera diferentes versiones de herramientas. Consulte las instrucciones en el paso 3. Configure las herramientas.
Una vez instaladas las nuevas herramientas, actualice el entorno mediante el script Export. Consulte las instrucciones en el paso 4. Configure las variables de entorno.
Documentos relacionados
Establecer conexión serie con ESP32
Construya y Flash con Eclipse IDE
Monitor IDF
Configuración personalizada de Toolchain
Introducción (Legacy GNU make)
Referencia API
Bluetooth
Controlador Bluetooth y VHCI
Bluetooth común
Bluetooth LE
Bluetooth clásico
Ágil
ESP-BLE-MESH
Redes
Wi-Fi
Ethernet
Capa de red IP
Capa de aplicación
Periféricos
ADC
PUEDE
DAC
GPIO (incluida la E/S RTC de baja potencia)
I2C
I2S
CONTROL LED
MCPWM
Contador de impulsos
Mando a distancia
Requisitos de extracción de SD
Host SDMMC
Host SPI SD
Esclavo SDIO
Modulación Sigma-Delta
Maestro SPI
SPI esclavo
Sensor de temperatura
Temporizador
Toque sensor
UART
Protocolos
ASIO
ESP-MQTT
ESP-TLS
Cliente HTTP
Servidor HTTP
Servidor HTTPS
Eco ICMP
Control local
MDNS
Modbus
Cliente WebSocket
Enlace esclavo serie ESP
Capa de red IP
Aprovisionamiento
Protocolo de comunicación
Aprovisionamiento unificado
Aprovisionamiento Wi-Fi
Almacenamiento
Sistema de archivos FAT
Utilidad de fabricación en masa
Almacenamiento no volátil
Utilidad de generación de particiones NVS
CONTROLADOR SD/SDIO/MMC
API de partición y Flash SPI
SISTEMA de archivos DE SPIFFS
Sistema de archivos virtual
Nivelación de desgaste
Sistema
Formato de imagen de la aplicación
Seguimiento de nivel de aplicación
Administrador de eFuse
Códigos de error y funciones auxiliares
ESP HTTPS OTA
ESP pthread
Biblioteca de bucles de eventos
FreeRTOS
Adiciones de FreeRTOS
Asignación de memoria de pila
Depuración de memoria de montón
Temporizador de alta resolución
API de HIMEM (RAM SPI externa grande)
Llamada entre procesadores
Función de llamada con pila externa
Asignación de interrupciones
Registro
Varias API del sistema
Actualizaciones inalámbricas (OTA)
Monitor de rendimiento
Administración de energía
Modos de suspensión
Perros guardianes
Hora del sistema
Opciones de configuración
Introducción
Menú Configuración del proyecto
Uso sdkconfig.defaults
Reglas de Formato de Kconfig
Compatibilidad con versiones anteriores de las opciones de Kconfig
Referencia de opciones de configuración
Personalizaciones
Referencia de códigos de error
ESP32 referencia de hardware
Manual de referencia técnica (PDF)
Hoja de datos (PDF)
Directrices de diseño de hardware (PDF)
Errata de silicio (PDF)
Módulos y placas
Módulos
ESP32-WROOM-32
ESP32-WROOM-32D / ESP32-WROOM-32U
ESP32-SOLO-1
Serie ESP32-WROVER
ESP32-PICO-D4
Placas de desarrollo
ESP32-PICO-KIT V4,1
ESP32 DevKitC V4
ESP-WROVER-KIT V4,1
Documentos relacionados
Versiones anteriores de módulos y placas
Módulos (sin módulos actualizados o descatalogados)
Placas de desarrollo
ESP32-PICO-KIT V4
ESP32-PICO-KIT V3
V2 placa base ESP32 / ESP32 DevKitC
ESP-WROVER-KIT V3
ESP-WROVER-KIT V2
ESP-WROVER-KIT V1 / ESP32 DEVKITJ V1
ESP32 placa de demostración V2
Documentos relacionados
Información para pedidos de productos Espresso (PDF)
Certificados reguladores
Guías API
Seguimiento de nivel de aplicación
Azul
Cargador de arranque
Crear sistema
Sistema de construcción (antiguo GNU make)
Componente de consola
Ramales para despertar del sueño profundo
Gestión de errores
ESP-BLE-MESH
ESP-MESH (Wi-Fi)
ESP32 volcado de núcleo
Gestión de eventos
RAM externa conectada mediante SPI
Errores fatales
Cifrado Flash
Cambios en FreeRTOS SMP
Notas generales
Interrupciones de alto nivel
Depuración JTAG
Generación de scripts del vinculador
Pila TCP/IP de lwIP
Tablas de partición
Calibración de RF
Consola de depuración de ROM
Arranque seguro
Arranque seguro V2
Almacenamiento local de subprocesos
Herramientas
Coprocesador ULP
Coprocesador ULP (antiguo GNU make)
Pruebas unitarias (GNU make heredado)
Pruebas unitarias
Controlador WiFi
Guía de contribuciones
¡damos la bienvenida a las contribuciones al proyecto esp-idf!
Cómo contribuir
Las contribuciones a esp-idf - corregir errores, agregar características, agregar documentación - son Bienvenido. Aceptamos contribuciones a través de Github Pull solicitudes.
Antes de contribuir
Antes de enviarnos una solicitud de extracción, tenga en cuenta esta lista de puntos:
¿es la contribución totalmente su propio trabajo, o ya está licenciado bajo una licencia de código abierto compatible con Apache License 2,0? Si no, por desgracia no podemos aceptarlo.
¿se ajusta algún código nuevo a la Guía de estilo esp-idf?
¿la documentación del código sigue los requisitos de la documentación del código?
¿se comenta el código adecuadamente para que la gente entienda cómo está estructurado?
¿hay documentación o ejemplos que van con las contribuciones de código? Hay sugerencias adicionales para escribir buenos ejemplos en ejemplos readme.
¿están los comentarios y la documentación escritos en inglés claro, sin errores ortográficos o gramaticales?
Ejemplos de contribuciones son también Bienvenido. Consulte la guía de creación de ejemplos para obtener información sobre estos.
Si la contribución contiene varias confirmaciones, ¿están agrupadas en cambios lógicos (un cambio importante por solicitud de extracción)? ¿hay confirmaciones con nombres como "tipo fijo" aplastadas en confirmaciones anteriores?
Si no está seguro de ninguno de estos puntos, abra la solicitud de extracción de todos modos y, a continuación, solicite comentarios.
Proceso de solicitud de extracción
Después de abrir la solicitud de extracción, probablemente habrá alguna discusión en el campo de comentarios de la solicitud en sí.
Una vez que la solicitud de extracción esté lista para fusionarse, primero se fusionará en nuestro sistema interno de GIT para realizar pruebas automatizadas internas.
Si este proceso pasa, se fusionará en el repositorio público de Github.
Parte legal
Antes de que se acepte una contribución, deberá firmar nuestro Acuerdo de colaboración. Se le solicitará esto automáticamente como parte del proceso de solicitud de extracción.
Documentos relacionados
Guía de estilo del marco de desarrollo de IoT de Espressif
Código de documentación
Referencia de complementos y extensiones de documentación
Creación de ejemplos
Plantilla de documentación de API
Acuerdo de contribuyente