Proyecto Final


Trata de una oficina  donde es controlada la iluminación y la ventilación del mismo por sensores. Para ello, se utilizan la fotocelda que detectará el cambio de la luz.  Si la  intensidad lumínica es menor o igual  que 50, entonces encenderá dos luces led, que simulan los bombillos de la oficina. Caso contrario se apagarán automáticamente.
Otro elemento es un sensor de temperatura que se encarga de controlar el encendido del ventilador de la oficina. En esta simulación, si es mayor que 23 °C, entonces se activará. Mientras esto no suceda se apagará automáticamente.

Justificación del Proyecto:

En cuanto a la iluminación:
Una iluminación inadecuada puede originar fatiga ocular, cansancio, dolor de cabeza, estrés y accidentes.
Trastornos oculares: dolor e inflamación en los párpados, fatiga visual, pesadez, lagrimeo, enrojecimiento, irritación, visión alterada.
Cefalalgias: Dolores de cabeza. Ocasionalmente, el médico tratante debe revisarlos para detectar si es la iluminación la que los causa.
Fatiga: Falta de energía, agotamiento. Cuando es causada por la iluminación, una persona que se levanta con energías, las pierde fácilmente. Si la persona está agotada por estrés o falta de sueño, la fatiga se extiende por todo el día. El médico debe revisar otros factores adicionales a la luz.
Efectos anímicos: Falta de concentración y de productividad, baja atención y desánimo.

En cuanto a la temperatura:
Sabemos que la temperatura es uno de los factores que más influye en nuestro bienestar laboral.
Los trabajadores consideran que la temperatura en la que desarrolla su trabajo es inadecuada (demasiado frío o demasiado calor), esto repercute negativamente en su rendimiento y reivindica que la climatización es uno de los ámbitos que deben mejorar a corto plazo en su entorno de trabajo.



Logros:

Diseño del proyecto.
Completar la programación del proyecto.

Dificultades:

No hemos programado un motor, por lo cual tuve que programar el servo, pero que en su funcionamiento no está la rotación de 360°, por ello intenté que hiciera un giro hacia adelante y hacia atrás como simulación de su activación.
 


Plantilla Implementación:



https://drive.google.com/file/d/166b8TudVjQy3tEn6FrsPoPULdXprFEnr/view?usp=sharing

Programación:

#include <Servo.h>      //Se incluyen librerias de servo
Servo servo1;                //Constructor de la setencia del servo
int puertoservo = 10;     //variable para madar datos al servo

int sensorPin= A0;         //Puerto Sensor de Temperatura
int pinAmarillo = 5;       //Puerto Led Amarilla
int pinAzul = 6;              //Puerto Led Azul
const int ldrPin= A1;     //Puerto  fotocelda

int grados;                       //Variable para guardar los grados de ángulo del servo
int tmp=0;                       //Variable temporar para usar en la condicional
int pulsominimo=650;    //Variable que define el ángulo menor del servo
int pulsomaximo=2550;  //Varible que define el ángulo mayor del servo


void setup()
{
  servo1.attach (puertoservo,pulsominimo,pulsomaximo);     //el Servomotor recibe los pulsos
  pinMode (sensorPin, INPUT);            //Declaración de puerto como entrada
  pinMode (pinAmarillo, OUTPUT);    //Declaración de puerto como salida
  pinMode (pinAzul, OUTPUT);           //Declaración de puerto como salida
  pinMode (ldrPin, INPUT);                  //Declaración de puerto como entrada
  Serial.begin(9600);
}

void loop()
{
  grados=servo1.read();                         //Lectura de grados por el Servomotor
  int value = analogRead(sensorPin);   //Almacenamiento de valores obtenidos por el sensor de temperatura
  float Fahrenheit = (5.0*(value)* 100 /1024 );      //Conversión de valores a Fahrenhit
  float Celsius = ((Fahrenheit-32)*5)/9;                 //Conversión de grados Fahrenhit a Celsius.
  Serial.print("Temperatura °C: " );            //Impresión de etiqueta  "Temperatura °C:" a monitor
                                                                   // serial.
  Serial.println (Celsius);                           //Impresión de temperatura en monitor serial
  delay(1000);
  float tmp=0; 
 int ldrStatus = analogRead(ldrPin);      //Lectura de valores brindados por fotocelda.
 
 if (ldrStatus <=50)     //Condición para encendido de luces Led (Luminosidad menor o igual a 50)
 {
  digitalWrite (pinAmarillo, HIGH);     //Enciende Leds
  digitalWrite (pinAzul, HIGH);
  delay (100);
  }
   else         //Si no se cumple (Luminosidad mayor que 50)
  {
  digitalWrite (pinAmarillo, LOW);     //Apaga las Leds.
  digitalWrite (pinAzul, LOW);
  delay (100);
 }

  if (Celsius>=23)  //Condición para encendido de Servomotor (Temperatura mayor o igual a 23 °C)
   {                         //Enciende el ventilador (Servomotor)
  tmp = 0;             //Se asigna valor de 0 a tmp
  servo1.write (tmp);      //Servomotor hace lectura de tmp
  delay (200);                 //Espera
  tmp = 180;                   //Se asigna valor de 180 a tmp
  servo1.write (tmp);     //Servomotor hace lectura de tmp
  delay (200);                //Espera
   }
  else                      //Si no se cumple (Temperatura menor a 23 °C)
 {                          //Apaga el ventilador (Servomotor)
  tmp=0;               //Sino se cumple se asigna valor a tmp  de 0
   delay (100);
 
 } 
 }






Plantilla Inspiración:







https://drive.google.com/file/d/1Q0DhrwSZ-pq7ztH7oOG8WoOEGW2Ijaxc/view?usp=sharing



No hay comentarios: