Medidor Online de Temperatura y Humedad de Bajo Consumo  1
Trabajo Fin de Carrera
Referencia del Archivo main.c

Contiene la función main y declara las variables globales. Más...

#include "common.h"
#include <task.h>
#include <queue.h>
#include <semphr.h>
#include <config.h>
#include <led.h>

Funciones

void TASK_Sender (void *pvParameters)
 
void TASK_Sensor (void *pvParameters)
 
void TASK_ReadSettings (void *pvParameters)
 
int main (void)
 

Variables

SERVER_Settings settings = { false, 1 }
 Guarda el contenido de la configuración obtenida de Internet. Más...
 
xQueueHandle xQueue = NULL
 

Descripción detallada

Contiene la función main y declara las variables globales.

Documentación de las funciones

int main ( void  )

Punto de inicio de la aplicación. Creará los tasks que necesitamos para realizar el envio de datos. Además inicializa los leds que usaremos y el puerto UART que usaremos para leer los logs a través de un puerto USB con el ordenador.

Crea la cola.

void TASK_ReadSettings ( void *  pvParameters)

Tarea que se encarga de la lectura de la configuración del servidor. Se obtienen los datos relacionados con las alarmas (mínimos y máximos), y el intervalo de lectura de datos.

Esto es guardado en una variable global settings.

Tras obtener la configuración desde el servidor se queda a la espera tantos minutos como sea el intervalo de lectura.

Esta tarea además se encarga de inicializar el dispositivo WiFly ya que es la primera que lo usará.

Parámetros
pvParametersContiene los parámetros para pasar a la tarea.
Ver también
TASK_Sender
void TASK_Sender ( void *  pvParameters)

Tarea que consumirá los datos de temperatura o humedad para enviarlos al servidor.

Se queda a la espera de recibir nuevos datos y en caso de pasar un tiempo sin recibir nuevos datos ordenará al dispositivo WiFly que se pase al modo sleep usando la función WIFLY_Sleep.

Parámetros
pvParametersParámetros pasados a la tarea.
void TASK_Sensor ( void *  pvParameters)

Se encarga del manejo del sensor de temperatura y humedad. Durante la toma de datos del sensor se activa el led LEDID_MEASURING_MASK que indica que el microcontrolador se está comunicando con el sensor SHT15.

Cuando la lectura del sensor ha finalizado la tarea se queda esperando un tiempo definido por SERVER_Settings::interval.

En el caso de que la toma de datos haya detectado que el valor de temperatura no se encuentra dentro de los márgenes de seguridad SERVER_Settings::temperatureMin y SERVER_Settings::temperatureMax esta tarea encenderá el led LEDID_ALARM_TEMPERATURE_MASK hasta que una siguiente toma de temperatura vuelva a estar dentro de los márgenes de seguridad.

En el caso de que la toma de datos haya detectado que el valor de humedad no se encuentra dentro de los márgenes de seguridad SERVER_Settings::humidityMin y SERVER_Settings::humidityMax esta tarea encenderá el led LEDID_ALARM_HUMIDITY_MASK hasta que una siguiente toma de temperatura vuelva a estar dentro de los márgenes de seguridad.

Parámetros
pvParametersContiene los parámetros que utilizará la tarea.

Documentación de las variables

SERVER_Settings settings = { false, 1 }

Guarda el contenido de la configuración obtenida de Internet.

xQueueHandle xQueue = NULL

Handle de la cola usada para comunicar la tarea TASK_Sender con TASK_Sensor.