Show Menu
Cheatography

acceso de alumnos Cheat Sheet (DRAFT) by

proyecto de microcontroladores

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Paso 1: Descarga de Software

Descargar e instalar el programa de arduino mediante la pagina:
https:­//w­ww.a­rd­uin­o.c­c/e­n/M­ain­/So­ftware

Paso 2: Hardware del producto

Para la elabor­ación se necesita el siguiente material:
- Alambre estañado calibre 22 AWG o cable jumpers
-1 Buzzer para Alarma
-2 Resist­encias de 330
-1 LED
-2 Sensor Ultras­ónico
-1 Sensor de temper­atura lm35
-1 Teclado matricial 4x3
-1 Placa Arduino Uno R3
-1 Protoboard

Paso 3: Compro­bación de instal­ación

Una vez que se tenga el programa instalado y el material se comenzara con la ejecución del programa, y debe de aparecer como se muestra la imagen, a contin­uación en el paso 5 se mostrara el código el cual se agregara.

Paso 4: Armado del circuito

En esta imagen se muestra la instal­ación del circuito física­mente.
 

Paso 5: Código a implem­entar

#include <Keypad.h>
char pulsacion;
int numero;
int pulsacion1;
const byte Filas = 4;
const byte columnas = 3;
byte Pins_Filas[Filas] = {17, 16, 15, 14};
byte Pins_Columnas[columnas] = {13, 12, 11};//Pines 5 = 16, 6 = 15, 7 = 14, y 8 = 17 en caso de haber. 

char Teclas[Filas][columnas] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};

Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Columnas, Filas, columnas);

int disparo = 9;
int eco1 = 10;//Izquierda
int eco2 = 8;//Derecha
unsigned long contador = 0;
float distancia1;
float distancia2;
float lee_distancia(char pin)
  {
  float calculo;
  digitalWrite(disparo, HIGH);
  delay(1);
  digitalWrite(disparo, LOW);
  contador = pulseIn(pin, HIGH);
  calculo = (float) contador * 0.0343 / 2.0;
  return (calculo);

}
int alarma = 2;
int conteo = 0;
int boton = A4;
int reset = 0;
int i;
int cant;
int x, y;

float tempC;
  double pinLM35 = A5;
  int indice;

void setup() {
  pinMode(eco1, INPUT);
  pinMode(eco2, INPUT);
  pinMode(disparo, OUTPUT);
  digitalWrite(disparo, LOW);

  pinMode (eco1, INPUT);
  pinMode (eco2, INPUT);
  
  pinMode (reset, INPUT);
  pinMode (alarma, OUTPUT);
  pinMode (alarma, LOW);
  
  Serial.begin(9600);
  Serial.println();
  Serial.println("		| PROYECTO |");//Se puede cambiar el nombre
  Serial.println();
  delay(1000);    


}

void loop() {   
  
  while (x == 0){

  Serial.print("Ingrese la ");
  Serial.print("cantidad limite de alumnos:");
  delay(1000);
    y = 0; 
    while (y == 0){
    for (i = 7; i < 9; i++) {
    char pulsacion;
    pulsacion = Teclado1.waitForKey(); 
    Serial.print(pulsacion);            

      switch (pulsacion) {            
        case '1': pulsacion1 = 1;
          break;
        case '2': pulsacion1 = 2;
          break;
        case '3': pulsacion1 = 3;
          break;
        case '4': pulsacion1 = 4;
          break;
        case '5': pulsacion1 = 5;
          break;
        case '6': pulsacion1 = 6;
          break;
        case '7': pulsacion1 = 7;
          break;
        case '8': pulsacion1 = 8;
          break;
        case '9': pulsacion1 = 9;
          break;
        case '0': pulsacion1 = 0;
      }
      switch (i) {
        case 7: cant = pulsacion1 * 10;  
          break;
        case 8: cant = cant + pulsacion1;
          break;
       
      }

    delay(500);
    }
      if (cant < 41){
        Serial.println();
        y = 1;
      }else{
        Serial.println();
        Serial.println();
        Serial.println("		ERROR");
        Serial.println("	 Rango maximo: 0 - 40 ");
        Serial.println();
        Serial.print("Ingrese la ");
        Serial.print("cantidad limite de alumnos:");
       y = 0; 
      }
    }//Final del while
    
    x = 1;
   if (x == 1) break; 
  }
  
  reset = analogRead(boton);
  
  if (reset > 0){
   conteo = 0; 
  }

  if (conteo > cant){
  pinMode(alarma, HIGH);
    Serial.print("* Limite de alumnos superado, ");
    Serial.println("favor de retirar al ultimo alumno *");
  }else{
  pinMode(alarma, LOW);
  }
  
  distancia1 = lee_distancia(eco1);  
  delay(50);
  
  distancia2 = lee_distancia(eco2);  
  delay(50);
    
   if (distancia1 <= 100 && distancia1 >= 0){
    conteo = conteo + 1;
     delay(1000);
  }
  if (distancia2 <= 100 && distancia2 >= 0){
    conteo = conteo - 1;
     delay(1000);
  } 
  
  if (conteo <= 0) conteo = 0;  
  
  Serial.print("Alumnos:");
  Serial.print(conteo);
  Serial.print("/");
  Serial.print(cant);
  Serial.print("	|  ");
  delay(1000);
  
  tempC = analogRead(pinLM35);  
  tempC = ((tempC * 1750) / 1200)/14;
  Serial.println("Temperatura:" + String(tempC) + " 'C");
  delay(500);
  
  if (tempC < 36.1 || tempC > 37.2){
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    Serial.println();
    Serial.println(" Temperatura fuera del rango de tolerancia ");
    Serial.println();
  }
    

}//Fin del loop


//////////////////////////////NOTAS//////////////////////////
 /*

 */
 

Paso 6: Alimen­tación del producto

Cuando el circuito se encuentre conectado comple­tamente (como se mostró en el Paso 4) se debe alimentar la placa de Arduino UNO mediante un puerto USB de la comput­adora o algún otro método compatible con este mismo.

Paso 7: Selección de puerto

Como se muestra en la imagen, mediante la barra de herram­ientas se puede selecc­ionar el puerto al cual estará conectado este programa, este varia depend­iendo de cada placa Arduino.
En este ejemplo se mostró el puerto con el nombre de "COM 9".

Paso 8: Implem­entar el codigo

Una vez escrito el código, se dará clic en el icono de verificar, una vez se termine el proceso se dará clic en subir. Con esto el producto queda listo para su uso.

Paso 9: Instal­acion

-Colocar los sensores ultras­onicos de en la parte superior de la entrada que desee que escanee a los indivi­duos.

-Colocar el sensor de temper­atura un poco mas adelante de los sensores ultras­onicos pero que siga siendo el interior del marco de la puerta, esto para que pueda medir la temper­atura de ambos sentidos.

-Colocar alguna tipo de división en el centro de esta (cortina, pared falsa, trozo de madera) esto para que los sensores no detecten a la misma persona simult­áne­amente.

-Encontrar algún sitio donde desee colocar la alarma junto con la pantalla donde se desple­garan los datos (se recomienda que sea en la parte exterior del marco de la puerta).

NOTAS:

-La persona tiene que estar dentro del rango de valor (0 a 100 cm) hasta que el contador sume o reste, después de sumar o restar, se puede retirar.

-Solo se activara la alarma en caso de que la temper­atura del individuo se encuentre fuera del rango de temper­atura (36.1 a 37.2 °C) .

-Este programa únicamente acepta un rango no mayor a 40 personas, si al momento de iniciar el programa usted ingresa un valor mayor a 40, este te marcara un Error y te permitirá ingresar únicamente un valor dentro del rango (0 a 40).

-Si se sobrepasa el numero de personas establ­ecido anteri­orm­ente, sonara una alarma indicando que se debe retirar 1 persona.

-Este producto cuenta con un botón el cual reinicia el conteo de los alumnos dentro de salón.

Integr­antes

CASTRO FLORES MIGUEL ANGEL
GUTIERREZ CUAUTLE CRUZ
JAUREGUI BOGARIN ERNESTO
RUVALCABA LIZARRAGA DYLAN