Code Monkey home page Code Monkey logo

tp1's Introduction

Trabajo practico N° 1

Deshidratador Tecnologico

Proyecto: Curso de sistemas embebidos

Jose Mariano Emmanuel


#Nombre del ProyectoProyecto: Deshidratador de Alimentos

Objetivo:

Desarrollar un sistema de deshidratación de alimentos utilizando energía solar calórica y fotovoltaica, controlado por un La placa NUCLEO F429ZI. Este sistema permitirá conservar una amplia variedad de alimentos por un período prolongado, extendiendo su vida útil y abriendo nuevas posibilidades para su uso y consumo.

Descripción:

El sistema consistirá en un deshidratador modular compuesto por bandejas apilables que albergarán los alimentos a deshidratar. Cada bandeja estará equipada con un sensor de temperatura y un elemento calefactor. La energía para el funcionamiento del sistema provendrá de paneles solares fotovoltaicos, almacenándose en una batería para su uso durante las horas sin luz solar.

Funcionamiento:

  • Carga de alimentos: Los alimentos frescos y lavados se colocan en las bandejas del deshidratador.

  • Control de temperatura: el sistema, leerá los datos de los sensores de temperatura en cada bandeja y ajustará la potencia de los elementos calefactores para mantener la temperatura deseada durante todo el proceso de deshidratación.

  • Energía solar: Durante el día, los paneles solares fotovoltaicos proporcionarán energía eléctrica al sistema, alimentando el Arduino Uno y los elementos calefactores.

  • Batería: La energía solar excedente se almacenará en una batería para su uso durante la noche o en días nublados, garantizando un funcionamiento continuo del sistema.

  • Monitoreo y control: El usuario podrá monitorear el estado del sistema y ajustar parámetros como la temperatura y el tiempo de deshidratación a través de una interfaz de usuario, como una pantalla LCD o una aplicación móvil.


Componentes:

  • Controlador

    • Sistema de control VER Arduino "Ver informacion"
  • Sensores de temperatura (para cada bandeja)

    • LM 35 Sensor Tempreatura VER LM35** Ver informacion
  • Elementos calefactores (para cada bandeja)

    • Resistores VER Elemento calefactor Ver informacion
  • Panel solar fotovoltaicos

    • Caracteristicas 12V 100W VER Panel solar Ver informacion
  • Bateria AGM/GEL 12V 55Ah

    • Batería VER Bateria Ver informacion
  • Inversor 1000w 12v - 220v 50 Hz

    • Inversor DC/AC VER iNVERSOR Ver informacion
  • Pantalla LCD o aplicación móvil (opcional)

    • Pantalla LCD VER Pantalla LCD Ver informacion
  • Modulo Relay Rele De 2 Canales 5v 10a

    • RELE VER Pantalla LCD Ver informacion
  • Regulador de Carga 10 Amper c/Display LCD c/USB

    • Regulador Carga VER Regulador Ver informacion

Código de programación:

#include "mbed.h"
#include "arm_book_lib.h"



#ifndef ON
#define ON  1   
#endif

#ifndef OFF
#define OFF  !(ON) //Declaracion de MACRO
#endif

#define delay(ms)   thread_sleep_for(ms)
#define TIEMPO_ENTRE_MUESTRAS   10
#define NUMERO_MUESTRAS 100

//--------- Definición de entradas y salidas ----------

AnalogIn tempSensor (A1);
DigitalOut maxTempLED (D2);
DigitalOut minTempLED (D3);
DigitalOut normalTempLED (D4);

UnbufferedSerial uartUsb(USBTX, USBRX, 115200);

//-------------- Declaración de variables ---------------

float maxTempPermitida = 50.0;
float minTempPermitida = 25.0;
float tempMedia = (maxTempPermitida + minTempPermitida)/2;
int registroTiepoAcumulado = 0;
float lm35VecLectura[NUMERO_MUESTRAS];
float lm35suma = 0.0;
float lm35Promedio = 0.0;
float lm35TempC = 0.0;

//--------- Declaración de Funciones prototipos ----------
void initOuputs();
void checkearSobrecalentamiento();
void checkearEnfriamiento();
void checkearRegistroTiempo();
int tempConverter(float ratio);                                 //El ratio es la señal analógica convertida a digital entre 0.0 y 1.0
void samplerPromedio();    


// main() runs in its own thread in the OS
int main()
{
    initOuputs();
    while (true) {
        samplerPromedio();
        checkearSobrecalentamiento());
        checkearEnfriamiento();
        checkearRegistroTiempo();
    }
}

void initOuputs(){
    maxTempLED = OFF;
    minTempLED = OFF;
    normalTempLED = ON;
}

int tempConverter(float temp){                                    //Convierte señal eléctrica a ºC y actualiza el valor de temperatura
    float tempC = temp * 3.3/0.01;
    return tempC;
}

void samplerPromedio(){
    static int lm35Muestras = 0;
    int i = 0;
    lm35VecLectura[lm35Muestras] = tempSensor.read();
    lm35Muestras++;
    if(lm35Muestras >= NUMERO_MUESTRAS) {
        lm35Muestras = 0;
    };

    lm35Suma = 0.0;
    for (i = 0; i < NUMERO_MUESTRAS; i++) {
        lm35Suma = lm35Suma + lm35VecLectura[i];
    }
    lm35Promedio = lm35suma / NUMERO_MUESTRAS;
    lm35TempC = tempConverter( lm35Promedio );
}


void checkearSobrecalentamiento(){                                        //Chequea si la temperatura está por arriba del limite
    if(lm35TempC >= maxTempPermitida){
        maxTempLED = ON;                                        //Activa un ventilador (representado por un LED)
        normalTempLED = OFF;
        uartUsb.write("Alcanzó la máxima temperatura\r\n", 30); 
        while (lm35TempC > tempMedia){
            maxTempLED = ON;
            samplerPromedio();
        }
        maxTempLED = OFF;                                       //Apaga el ventilador
        normalTempLED = ON;
        uartUsb.write("Temperatura normalizada\r\n", 24);    
    }
}


void checkearEnfriamiento(){                                        //Chequea si la temperatura está por abajo del limite
    if(lm35TempC <= minTempPermitida){
        minTempLED = ON;                                        //Activa una resistencia calefactora (representado por un LED)
        normalTempLED = OFF;
        uartUsb.write("Alcanzó la mínima temperatura\r\n", 30);
        while (lm35TempC <= tempMedia){
            minTempLED = ON;
            samplerPromedio();   
        }
        minTempLED = OFF;                                       //Apaga la resistencia calefactora
        normalTempLED = ON;
        uartUsb.write("Temperatura normalizada\r\n", 24);
    }
}


void uartTask(){                                                    //Envia un registro de temperatura por Serial
    char str[30];
    sprintf(str, "Temperatura actual:%.2f \xB0 C\r\n", lm35TempC);  
    int stringLength = strlen(str);   //Keil Studio no me tomó la función strlen()
    uartUsb.write(str, stringLength);    
}


void checkearRegistroTiempo(){                                            //Chequea el tiempo entre envíos de registros
    registroTiempoAcumulado = registroTiempoAcumulado + TIEMPO_ENTRE_MUESTRAS;
    delay(TIEMPO_ENTRE_MUESTRAS);
    if(registroTiempoAcumulado == 86400){                              //Tiempo de 20 min entre registros
        uartTask();                                             //Envía registro de temperatura 
        aregistroTiempoAcumulado = 0;
    }
}
   

El código de programación para controlará las siguientes funciones:__

  • • Lectura de datos de los sensores de temperatura

  • • Ajuste de la potencia de los elementos calefactores

  • • Gestión de la energía solar y la batería

  • • Monitoreo del estado del sistema

  • • Interfaz de usuario (opcional)

Ventajas:

• Conservación de alimentos: El deshidratador permite conservar una amplia variedad de alimentos por un período prolongado, reduciendo el desperdicio y aumentando la disponibilidad de alimentos nutritivos.

• Energía solar: El uso de energía solar reduce el impacto ambiental y los costos operativos del sistema.

• Control preciso: El Arduino Uno permite un control preciso de la temperatura y el tiempo de deshidratación, optimizando el proceso para cada tipo de alimento.

• Monitoreo y control: El usuario puede monitorear el estado del sistema y ajustar parámetros para obtener resultados óptimos. Consideraciones:

• Selección de alimentos: Es importante seleccionar alimentos adecuados para el proceso de deshidratación, considerando su contenido de agua y su textura.

• Preparación de alimentos: Los alimentos deben prepararse adecuadamente antes de deshidratarlos, por ejemplo, cortarlos en rodajas finas o eliminar la piel.

• Tiempo de deshidratación: El tiempo de deshidratación varía según el tipo de alimento, la temperatura y la humedad del ambiente.

• Almacenamiento: Los alimentos deshidratados deben almacenarse en recipientes herméticos en un lugar fresco y seco. Conclusión:

El deshidratador de alimentos con Arduino Uno es una herramienta útil para conservar alimentos de manera natural y eficiente, aprovechando la energía solar y ofreciendo un control preciso del proceso. Este proyecto puede adaptarse a diferentes necesidades y escalas, desde uso doméstico hasta aplicaciones comerciales a pequeña escala.

  • Componentes:
Componentes Proveedor información
ARDUINO UNO $11.000 ver
LM 35 $6.000 ver
CALEFACTOR $23.000 ver
PANEL SOLAR $94.000 ver
BATERIA $188.000 ver
INVERSOR $137.000 ver
LCD $6.000 ver
REGULADO $27.000 ver
MOD RELE $5.000 ver
ADICIONAL $100.000 ver
TOTAL $597.000 Link
  • Sistema sistema

tp1's People

Contributors

emmueito avatar

Watchers

Sergio R. Caprile avatar Eduardo Filomena avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.