0% encontró este documento útil (0 votos)
128 vistas13 páginas

Explorando El ESP32

El documento explora el microcontrolador ESP32, detallando su arquitectura, recursos, lenguajes de programación, y simulación en WOKWI. Se destacan sus componentes clave como el sistema dual-core, conectividad integrada, y periféricos útiles para proyectos IoT. Además, se discuten las diferencias entre memoria Flash y RAM, así como las familias del ESP32 y su pinout.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
128 vistas13 páginas

Explorando El ESP32

El documento explora el microcontrolador ESP32, detallando su arquitectura, recursos, lenguajes de programación, y simulación en WOKWI. Se destacan sus componentes clave como el sistema dual-core, conectividad integrada, y periféricos útiles para proyectos IoT. Además, se discuten las diferencias entre memoria Flash y RAM, así como las familias del ESP32 y su pinout.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CENTRO DE ENSEÑANZA TÉCNICA Y SUPERIOR

Escuela de Ingeniería

Microcontroladores y Sistemas Embebidos

Actividad de Aprendizaje: Explorando el ESP32

Presenta:

Mexicali, B.C. a 27 de mayo del 2020.


Tabla de contenido

Parte 1: Arquitectura del ESP32................................................................................................................ 2


Componentes clave de la arquitectura del ESP32................................................................................... 2
Ventajas del sistema dual-core en comparación con un microcontrolador de un solo núcleo.................3
Parte 2: Recursos del Microcontrolador.................................................................................................... 4
Periféricos integrados en el ESP32 y su utilidad en proyectos IoT.........................................................4
Diferencia entre la memoria Flash y la memoria RAM en el ESP32......................................................5
Parte 3: Lenguajes de Programación e IDEs.............................................................................................6
Lenguajes de programación compatibles con el ESP32 y sus ventajas/desventajas............................... 6
¿Qué IDE se utiliza comúnmente para programar el ESP32 con Arduino y MicroPython?...................6
Parte 4: Familias del ESP32 y Pinout.........................................................................................................7
Características de familias del ESP32..................................................................................................... 7
Diagrama de pines (pinout) del ESP32 DevKit.......................................................................................8
Parte 5: Simulación en WOKWI................................................................................................................ 9
Proyecto en WOKWI...............................................................................................................................9
Cómo configuramos el código para leer datos del sensor y mostrarlos en el monitor serial.................. 9
Enlace del proyecto simulado y el código fuente.................................................................................. 11
Referencias..................................................................................................................................................12

1
Actividad de Aprendizaje: Explorando el ESP32

Objetivo: Profundizar en el conocimiento técnico del microcontrolador ESP32, sus


recursos, lenguajes de programación, entornos de desarrollo, familias y simulación.

Parte 1: Arquitectura del ESP32


Componentes clave de la arquitectura del ESP32

El ESP32 es un microcontrolador de alto rendimiento desarrollado por Espressif Systems.

Su arquitectura está basada en un sistema SoC (System on Chip), lo que significa que incluye

múltiples funciones integradas en un único chip. Entre sus componentes clave destacan:

1.​ Núcleos de procesamiento (Dual-Core Xtensa LX6): El ESP32 posee dos núcleos que

pueden operar de forma independiente o conjunta. Cada uno puede funcionar a velocidades

de hasta 240 MHz, permitiendo realizar múltiples tareas en paralelo, ideal para aplicaciones

complejas como el IoT, el procesamiento de señales y la conectividad en tiempo real.

2.​ Unidades de comunicación: Una de las características más destacadas del ESP32 es su

capacidad de conectividad integrada. Incluye:

-​ Wi-Fi 802.11 b/g/n: Integrado en el chip, permite conexiones a redes locales e internet.

-​ Bluetooth 4.2: Con soporte para modo clásico (BR/EDR) y de bajo consumo (BLE).

Proporciona capacidades de comunicación inalámbrica a corta distancia, ampliando las

posibilidades en dispositivos portátiles y wearables.

-​ UART, SPI, I2C, CAN, I2S: Interfaces de comunicación serie esenciales para conectar

sensores, pantallas, módulos y otros dispositivos periféricos.

3.​ Memorias:

-​ RAM: El ESP32 cuenta con 520 KB de SRAM, dividida en memoria principal (320 KB)

y memoria adicional para operaciones de bajo consumo (200 KB). Se utiliza para el

almacenamiento temporal de variables y ejecución de código.

2
-​ Flash: Memoria externa, almacena el firmware y los programas de manera no volátil.

Dependiendo del modelo, puede variar desde 4 MB hasta 16 MB.

-​ RTC Memory: Módulo de reloj en tiempo real con consumo ultra bajo, permite mantener

funciones de cronometraje durante el modo de sueño profundo.

4.​ Coprocesador Ultra Low Power (ULP): Este coprocesador permite realizar tareas básicas

(como lectura de sensores) mientras los núcleos principales están en reposo, reduciendo el

consumo de energía en aplicaciones con batería.

5.​ Convertidores Analógico-Digital (ADC) y Digital-Analógico (DAC): Proveen conversión

de señales analógicas a digitales y viceversa, esenciales en la lectura de sensores y control

de dispositivos.

6.​ Periféricos Integrados: El ESP32 incluye una amplia gama de interfaces como ADC

(convertidor analógico a digital), DAC (convertidor digital a analógico), PWM

(modulación por ancho de pulso), I2C, SPI y UART. Estos módulos permiten que el ESP32

interactúe con una variedad de sensores, actuadores y dispositivos externos.

Ventajas del sistema dual-core en comparación con un microcontrolador de un solo núcleo

El sistema dual-core del ESP32 representa una ventaja significativa sobre los

microcontroladores tradicionales de un solo núcleo, especialmente en aplicaciones complejas y

multitarea. Las principales ventajas incluyen:

-​ Paralelismo verdadero: Permite ejecutar dos hilos o tareas completamente independientes

de manera simultánea. Por ejemplo, uno de los núcleos puede dedicarse exclusivamente a

manejar la conectividad Wi-Fi o Bluetooth, mientras que el otro se encarga del

procesamiento lógico o interacción con sensores.

3
-​ Mejor rendimiento multitarea: En entornos con RTOS (sistemas operativos en tiempo

real), como FreeRTOS (integrado en el ESP32), se puede asignar una CPU para tareas de

alto rendimiento y otra para tareas menos críticas, mejorando la eficiencia general.

-​ Menor latencia en tareas críticas: Con un solo núcleo, las interrupciones y cambios de

contexto pueden provocar retardos. Al distribuir tareas entre dos núcleos, se reducen

significativamente los tiempos de espera, aumentando la capacidad de respuesta del

sistema, crucial en sistemas de automatización y robótica.

-​ Mayor eficiencia energética relativa: Aunque tiene dos núcleos, el ESP32 está optimizado

para apagar uno de ellos (modo sleep) si no es necesario, permitiendo balancear entre

rendimiento y consumo energético.

Parte 2: Recursos del Microcontrolador


Periféricos integrados en el ESP32 y su utilidad en proyectos IoT

A continuación se destacan cinco periféricos fundamentales del ESP32 y su utilidad práctica:

1.​ Módulo Wi-Fi: Es la pieza clave para conectar el ESP32 a internet. Permite enviar y recibir

datos de servidores, aplicaciones web, plataformas en la nube o bases de datos. En

aplicaciones IoT, esto permite crear sistemas de monitoreo remoto, automatización del

hogar, o recopilación de datos ambientales.

2.​ Bluetooth/BLE: Ideal para la comunicación inalámbrica a corta distancia sin necesidad de

acceso a internet. BLE, en particular, es muy eficiente en términos de consumo energético,

lo que lo hace ideal para dispositivos portátiles, como relojes inteligentes o sensores

corporales.

3.​ ADC (Convertidor Analógico a Digital): Muchos sensores (temperatura, luz, gas, etc.)

entregan señales analógicas. El ADC permite al ESP32 convertir estas señales en valores

4
digitales para ser procesados. Por ejemplo, puede leer el voltaje de un sensor de humedad

del suelo para decidir si activar un sistema de riego.

4.​ PWM (Modulación por Ancho de Pulso): Se usa principalmente para controlar la

intensidad de luces, la velocidad de motores y servomotores. En IoT, esto es útil para crear

interfaces luminosas, control de ventiladores, robótica doméstica o actuadores inteligentes.

5.​ Capacitive Touch Sensors: El ESP32 permite usar ciertos pines como sensores táctiles sin

necesidad de componentes externos. Esto abre la posibilidad de crear interfaces de usuario

simples, como paneles táctiles para controlar luces o activar dispositivos.

Diferencia entre la memoria Flash y la memoria RAM en el ESP32

La memoria RAM (SRAM) y la memoria Flash en el ESP32 tienen propósitos muy

diferentes y complementarios:

-​ La RAM es una memoria volátil, lo que significa que pierde su contenido cuando el

dispositivo se apaga o reinicia. Se usa durante la ejecución del programa para almacenar

variables, estructuras de datos, pilas de ejecución y buffers temporales. Su ventaja

principal es su rapidez, lo que permite un procesamiento eficiente y fluido de las

operaciones en tiempo real.

-​ La memoria Flash, en cambio, es no volátil (conserva los datos incluso sin alimentación

eléctrica). Es más lenta que la RAM pero sigue siendo suficiente para operaciones de

lectura / escritura. Se utiliza para almacenar el firmware (programa principal) y cualquier

archivo que deba persistir entre reinicios, como configuraciones o bases de datos locales.

En resumen, la RAM trabaja durante la ejecución, mientras que la Flash se usa para

almacenar el programa y datos que deben mantenerse entre encendidos. Esta separación permite

que el ESP32 trabaje de forma eficiente y confiable.

5
Parte 3: Lenguajes de Programación e IDEs
Lenguajes de programación compatibles con el ESP32 y sus ventajas/desventajas

La flexibilidad del ESP32 se refleja en la variedad de lenguajes de programación con los

que puede ser utilizado. Esta característica lo hace accesible tanto para principiantes como para

desarrolladores experimentados. Lenguajes compatibles con el ESP32:

C/C++ (Arduino Framework): Es el lenguaje más común, especialmente cuando se usa

el ESP32 con el entorno de Arduino. Permite un control preciso del hardware, acceso a

bibliotecas muy amplias y una comunidad de usuarios muy activa. Sin embargo, requiere mayor

conocimiento en la gestión de memoria y estructuras de bajo nivel.

MicroPython: Un lenguaje interpretado derivado de Python, diseñado específicamente

para microcontroladores. Su sintaxis es sencilla, clara y perfecta para quienes no tienen

experiencia con lenguajes compilados. Su principal desventaja es el menor rendimiento en

comparación con C/C++, así como la menor disponibilidad de bibliotecas.

JavaScript (Espruino): Aunque menos popular, JavaScript también puede usarse para

programar el ESP32 mediante plataformas como Espruino. Es ideal para desarrolladores con

experiencia en desarrollo web. La desventaja principal es su rendimiento limitado y menor

soporte en comparación con MicroPython o C/C++.

¿Qué IDE se utiliza comúnmente para programar el ESP32 con Arduino y MicroPython?

1.​ Arduino IDE: Muy popular por su sencillez. Compatible con Windows, Mac y Linux,

permite cargar programas a la placa con facilidad. Ideal para usuarios nuevos o proyectos

rápidos, ya que es fácil de instalar y usar, con muchas bibliotecas integradas.

6
2.​ VS Code + PlatformIO: Ofrece características avanzadas como autocompletado,

depuración y gestión de librerías. Soporte para múltiples plataformas (Arduino, ESP-IDF,

MicroPython).

3.​ Thonny (para MicroPython): Permite escribir, cargar y depurar código fácilmente desde

una interfaz gráfica. IDE ligero con soporte para REPL (Read-Eval-Print Loop), útil para

probar código rápidamente.

Parte 4: Familias del ESP32 y Pinout


Características de familias del ESP32

El ESP32 se presenta en diferentes versiones o "familias", cada una adaptada a

necesidades específicas. Dos ejemplos representativos son:

ESP32-WROOM-32: Esta es una de las versiones más comunes. Incorpora todas las

características generales del ESP32, incluyendo Wi-Fi, Bluetooth, múltiples GPIOs, y un formato

compacto. Es ideal para proyectos generales de IoT, automatización, y sistemas embebidos que

no requieren imagen o cámara.

ESP32-CAM: Esta versión añade una cámara integrada (normalmente OV2640) y una

ranura para tarjeta microSD, lo que permite capturar imágenes, almacenarlas o enviarlas por

internet. Aunque tiene menos pines disponibles debido al uso interno de algunos para la cámara,

es ideal para vigilancia, visión computacional o sistemas de reconocimiento facial.

Característica ESP32-WROOM-32 ESP32-CAM ESP32-S3

Núcleo (s) Dual-Core Xtensa LX6 Dual-Core Xtensa LX6 Dual-Core Xtensa LX7
(240 MHz) (240 MHz) (240 MHz)

Conectividad Wi-Fi 4 (802.11 b/g/n), BT Wi-Fi 4 (802.11 b/g/n), BT Wi-Fi 4 (802.11 b/g/n), BT
4.2 4.2 5.0

Cámara integrada No Sí (OV2640, 2 MP) No (pero soporta interfaz


paralela)

7
GPIOs disponibles 34 (18 con funciones ~16 (limitados por 45 (20 con funciones
especiales) conexión a cámara) especiales)

Memoria FLash 4 MB (típico) 4 MB 8 MB (ampliable a 16


MB)

RAM 520 KB 520 KB 512 KB + 320 KB ROM

Periféricos especiales ADC, DAC, PWM, Touch ADC, PWM + Interfaz USB OTG, LCD Interface,
cámara AI Accelerator

Aplicaciones típicas IoT general, domótica, Visión artificial, Edge AI, HMI, wearables
automatización​ vigilancia, AIoT avanzados

Limitación principal Sin interfaz USB nativa GPIOs limitados Mayor complejidad de
diseño

Diagrama de pines (pinout) del ESP32 DevKit

Imagen 1: Guía de referencia del mapeo de pines de DevKitC del ESP32-S3

Pin GPIO12. Es un pin de propósito general. Puede funcionar como entrada, salida

digital, PWM, o entrada analógica. Sin embargo, es importante tener cuidado con este pin

durante el arranque, ya que si está en estado alto puede interferir con el proceso de boot.

Pin VIN. Es la entrada de voltaje principal. Se conecta una fuente externa (normalmente

de 5V) para alimentar la placa. También puede proporcionar salida de voltaje desde el USB.

Pin GND. Proporciona el referencial de 0V (tierra común) para completar circuitos.

Todos los componentes deben compartir esta referencia para funcionar correctamente.

8
Pin EN (Enable). Este pin está conectado al chip de habilitación. Si se pone en estado

bajo, reinicia el ESP32. Se puede usar con un botón de reinicio externo.

Pin 3V3. Es una salida de 3.3V regulados. Puede usarse para alimentar sensores o

módulos externos de bajo consumo.

Parte 5: Simulación en WOKWI


Proyecto en WOKWI

1.​ Elementos:

-​ Microcontrolador ESP32

-​ LED conectado al GPIO2

-​ Sensor de temperatura DHT22

2.​ Configuración en WOKWI:

-​ Conectar LED al pin GPIO2.

-​ Conectar DHT22: DATA al GPIO4, VCC a 3.3V, GND a GND.

3.​ Objetivo: Crear una proyecto en WOKWI que incluya los elementos mencionados

anteriormente y configurar el código para leer datos del sensor de temperatura y que los

pueda mostrar en el monitor serial.

Cómo configuramos el código para leer datos del sensor y mostrarlos en el monitor serial

1.​ Inclusión de la librería del sensor: Es necesaria para interactuar con sensores DHT

(DHT11 o DHT22). Sin esta librería, el ESP32 no podría comunicarse con el sensor.

2.​ Definición del pin y tipo del sensor: Estas directivas indican en qué pin está conectado el

sensor (en este caso, GPIO4), y de qué tipo es el sensor. Esto es importante porque el

9
código interno de la librería necesita saber si debe tratar los datos como los de un DHT11

o un DHT22 (que tienen diferentes precisiones y tiempos de respuesta).

3.​ Creación del objeto sensor: Se crea una instancia del sensor llamada dht, que se usará

más adelante para inicializarlo y para leer datos de temperatura.

4.​ Inicialización del sensor y del monitor serial: [Link](115200) configura el ESP32

para comunicarse con el monitor serial (como una terminal en tu computadora o Wokwi).

[Link]() inicializa el sensor, preparando la librería para que pueda leer datos.

5.​ Lectura de datos y envío al monitor serial:

-​ [Link]() obtiene el valor actual de temperatura.


-​ isnan(temp) verifica si el dato es válido. Si no lo es, se muestra un error.
-​ [Link]() y [Link]() envían los datos al monitor serial, donde se pueden
leer como texto.

10
Enlace del proyecto simulado y el código fuente
Enlace del proyecto simulado: [Link]

Imagen 2: Configuración del circuito usado ​ Imagen 3: Resultados de la simulación mostrados


en la simulación de WOKWI. ​ ​ en el monitor serial.

Transcripción del código en WOKWI:


#include <DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT22
#define LEDPIN 2
DHT dht(DHTPIN, DHTTYPE);

void setup() {
[Link](115200);
[Link]();
pinMode(LEDPIN, OUTPUT);
}

void loop() {
float temp = [Link]();
if (!isnan(temp)) {
[Link]("Temperatura: ");
[Link](temp);
[Link](" °C");
} else {
[Link]("Error al leer del sensor DHT11");
}
digitalWrite(LEDPIN, HIGH);
delay(500);
digitalWrite(LEDPIN, LOW);
delay(500);
}

11
Referencias

Espressif Systems. (2022). ESP32 Series Datasheet. Espressif.

[Link]

OpenELab. (n.d.). What is the difference between ESP32 and ESP32-WROOM?

[Link]

Pinillos, J. M. (2020, mayo 7). Básicos ESP32: Mapeo de pines y sensores internos. Tecnotizate.

[Link]

Slideshare. (n.d.). Diferencia entre procesadores de un solo núcleo, doble núcleo y cuádruple

núcleo [Presentación]. SlideShare.

[Link]

between-single-core-dual-core-and-quad-core-processors/57462377&hl=es&sl=en&tl=es

&client=sge

Santos, R. (2021). ESP32 SPI Communication with Arduino IDE (ESP32 as Master & Slave).

Random Nerd Tutorials.

[Link]

nication-arduino/&hl=es&sl=en&tl=es&client=sge

12

También podría gustarte