Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATERIA
SISTEMAS EMBEBIDOS
TEMA
embebido en un microcontrolador.
DOCENTE
ESTUDIANTE
La función loop() en este contexto está vacía ya que el programa se basa en el uso de
multitarea, delegando la ejecución de tareas específicas a funciones dedicadas. En este
caso, loop() no contiene ninguna lógica ya que la ejecución del código se gestiona mediante
tareas independientes. Por otro lado, la función Interrupcion() es invocada por la
interrupción del botón. Dentro de esta función, se utiliza una condición para verificar el
estado actual: si estado es verdadero, se suspende la tarea asociada al sensor mediante
vTaskSuspend; si es falso, se reanuda la tarea usando vTaskResume. Posteriormente, se
invierte el valor de estado para alternar entre suspender y reanudar la tarea en cada llamada
a la interrupción del botón. Esta lógica permite controlar dinámicamente la ejecución de la
tarea del sensor según la interacción con el botón.
La función TaskBlink define la tarea encargada de controlar el parpadeo del LED. Primero,
configura el pin asociado al LED como salida, luego utiliza un bucle infinito para alternar
el estado del LED entre encendido y apagado mediante la inversión del valor del pin. Para
controlar la frecuencia de parpadeo, se introduce un retardo definido por blink_delay
utilizando vTaskDelay. Además, cada vez que cambia el estado del LED, se imprime un
mensaje por el puerto serial para indicar dicho cambio.
Por otro lado, SensorRead se encarga de realizar la lectura del sensor DHT. Inicializa el
sensor, establece la comunicación con él y luego entra en un bucle infinito. En cada
iteración, verifica si la lectura del sensor es exitosa. Si lo es, lee la humedad y la
temperatura del sensor, las imprime por el puerto serial y espera un tiempo definido antes
de realizar la siguiente lectura. En caso de que la lectura falle, se muestra un mensaje de
error por el puerto serial. Este bucle permite mantener un intervalo entre las lecturas del
sensor para evitar lecturas frecuentes y controlar el flujo de datos.
PREGUNTAS:
La tarea SensorRead está diseñada para obtener lecturas de temperatura y humedad del
sensor DHT22, realizando lecturas cada 5 segundos.
Utiliza la librería DHT.h para interactuar con el sensor, extrayendo los datos y
mostrándolos por el puerto serie en un bucle infinito.
Creada en el núcleo 1 del dispositivo para gestionar lecturas independientes del sensor.
TaskBlink controla el parpadeo del LED integrado del dispositivo, alternando su estado
en un intervalo de tiempo determinado (blink_delay).
Esta tarea se sitúa en el núcleo 0 del dispositivo, ejecutando un bucle infinito para lograr
el parpadeo del LED de forma independiente.
Pregunta 2: ¿Qué sistema operativo fue con el que se trabajó? Describa muy brevemente
sus características principales.
Obtén el firmware o el código fuente de Zephyr desde el sitio web oficial del proyecto.
Asegúrate de descargar la versión compatible con el ESP32-DevKit.
3. Configuración:
4. Compilación:
Utiliza las herramientas proporcionadas por Zephyr para compilar el firmware o el código
fuente adaptado a tu aplicación y al ESP32-DevKit.
Siguiendo estos pasos, se puede instalar Zephyr u otro sistema operativo compatible con el
ESP32-DevKit, lo que permitirá desarrollar aplicaciones específicas para entornos
embebidos o de IoT.
CONCLUSIONES