Archive for diciembre 2015

CUARTA ENTREGA (PROYECTO)

jueves, 24 de diciembre de 2015
PUBLICADO POR: Unknown
Tag :
(SISTEMA DE SEGURIDAD DOMICILIARIA):

Para realizar esta cuarta entrega se ha trabajado con lo que es el módulo GSM para enviar y recibir mensajes, para esto también he utilizado el módulo relé de cuatro canales en los cuales voy a poder conectar lo que son dos focos y una radio, los mismos que funcionan con energía de 110 voltios.

La finalidad de trabajar con el módulo GSM es para mediante un mensaje nosotros poder controlar nuestra alarma, es decir que podamos activar y desactivar nuestra alarma de seguridad, es este caso como no contamos aún con la alarma simularemos encendiendo lo que son focos y una radio mediante el envío de un mensaje.

Para ello utilizaremos lo siguiente:

MÓDULO GSM
 Añade capacidades de monitoreo y control remoto, datos, SMS y llamadas de voz con Arduino. El shield GSM GPRS SIM900 o ICOMSAT, permite conectar el Arduino a la red de telefonía celular de tu preferencia y hacer uso de todos los servicios que esta te ofrece (voz y datos). El módulo de SIMCOM SIM900 es capaz de funcionar en cualquier red GSM en el mundo gracias a que se trata de un dispositivo de 4 bandas (850/900/1800/1900MHz.

CARACTERÍSTICAS:
-Operación global y con cualquier proveedor (multibanda).
-Se controla mediante comandos AT y comandos AT extendidos.
-Incluye stack TCP/IP soporta TCP, HTTP, FTP mediante comandos AT.
-Ideal para transmisión de datos sobre GPRS.
-Ancho de banda de descarga 85.6 kbps.
-Ancho de banda de subida 42.8 kbps.
-SMS en modo PDU y Texto
-La interfaz de control del módem GSM se puede asociar con varios pines del Arduino no solamente los del UART, permitiendo usar librerías como SoftSerial
-Incluye super capacitor para almacenamiento persistente de datos
-Librería para funcionar con Arduino.

PLACA ARDUINO
 Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador y puertos de entrada y salida.Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos.

EL PROTOBOARD
 Es una especie de tablero con orificios, en la cual se pueden insertar componentes electrónicos y cables para armar circuitos. Como su nombre lo indica, esta tableta sirve para experimentar con circuitos electrónicos, con lo que se asegura el buen funcionamiento del mismo.

MODULO RELÉ DE CUATRO CANALES:
El relé es el elemento que necesitas si quieres gestionar grandes voltajes y corrientes (como los que pueden tener en la red eléctrica de tu casa). Se trata simplemente de un interruptor eléctrico que puedes encender y apagar enviando señales desde tu placa Arduino, o cualquier otro controlador . Esto te permite desde encender y apagar la luz de tu habitación cuando alguien entre, hasta hacer una casa domótica completa, el límite aquí es tu imaginación. 

RADIO:
La utilizare para poder hacer la practica, para cuando envíe un mensaje para que mediante la señal que envíe el relé se prenda de inmediato la radio sin necesidad de estar uno y prenderla manualmente

CIRCUITO COMPLETO

CÓDIGO: 
#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 8);
char numero_cell[]="0981762111";//numero de telefono
int pulsador =9;
int rele1 =10;
int rele2 =11;
int reler =12;

boolean valor=true;
int a=0;
int b=0;
char DAT;
char DAT_dos;

boolean condicion=true;
char datosSERIAL[3];
char clave_1[]={'1','O','N'};//CAMBIAMOS MENSAJE DE CONTROL
char clave_2[]={'1','O','F'};
char clave_3[]={'2','O','N'};
char clave_4[]={'2','O','F'};
char clave_5[]={'3','O','N'};
char clave_6[]={'3','O','F'};
void setup()
{
  pinMode(pulsador,INPUT);
  pinMode(rele1,OUTPUT);
  pinMode(rele2,OUTPUT);
  pinMode(reler,OUTPUT);
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(2000);
  configuracion_inicial();
  Serial.println("sistema de alarma EDITRONIKX m95 encendida");
  delay(1000);
}
void loop()
{
Serial.println("esperando recibir mensaje...");
while(true)
{
  leer_mensaje();
}
}
void configuracion_inicial()//configura codigos de lectura de mensajes
{
  mySerial.println("AT+IPR=9600");//modo texto
  Serial.println("AT+IPR=9600");//modo texto
  delay(300);
  mySerial.println("AT+CMGF=1");//modo texto
  Serial.println("AT+CMGF=1");//modo texto
  delay(300);
  mySerial.println("AT+CMGR=?");//ACTIVAMOS CODIGO PARA RECIBIR MENSAJES
  Serial.println("AT+CMGR=?");
 delay(300);
  mySerial.println("AT+CNMI=2,2,0,0");//ACTIVAMOS PARA VER MENSAJES
  Serial.println("AT+CNMI=2,2,0,0");
  //Serial1.println("AT+CNMI=3,3,0,0");
  //Serial.println("AT+CNMI=3,3,0,0");
  delay(300);
  Serial.println("configuracion terminada");
  delay(300); 
}
void leer_mensaje()
{
  salir:
    if (mySerial.available()>0)
    {
      char DAT =mySerial.read();
      if(DAT=='@'){
            while(true)
            {
              if (mySerial.available()>0){
                 char DAT_dos =mySerial.read();
                 datosSERIAL[b]= DAT_dos;   
                 b++;
                 if (DAT_dos=='\n'){
                     Serial.println("Lectura:");
                     for(int a=0;a<=b;a++){
                         Serial.print(datosSERIAL[a]);}
                     led_on();
                     led_off();
                     delay(500);
                     for(int a=0;a<=b;a++){
                         datosSERIAL[a]==0;
                         DAT_dos=0;
                         DAT=0;}
                     b=0;
                     goto salir;}
                }
             }
        }
    }
}
void led_on()
{
  if(datosSERIAL[0]==clave_1[0] && datosSERIAL[1]==clave_1[1] && datosSERIAL[2]==clave_1[2])
   {
    digitalWrite(rele1,HIGH);
    Serial.println(" LED ON ACTIVADO");
    //mensaje_encendido();
   }
   if(datosSERIAL[0]==clave_3[0] && datosSERIAL[1]==clave_3[1] && datosSERIAL[2]==clave_3[2])
   {
    digitalWrite(rele2,HIGH);
    Serial.println(" LED ON ACTIVADO");
    //mensaje_encendido1();
   }
   if(datosSERIAL[0]==clave_5[0] && datosSERIAL[1]==clave_5[1] && datosSERIAL[2]==clave_5[2])
   {
    digitalWrite(reler,HIGH);
    Serial.println(" LED ON ACTIVADO");
    //mensaje_encendido2();
   }
}
void led_off()
{
  if(datosSERIAL[0]==clave_2[0] && datosSERIAL[1]==clave_2[1] && datosSERIAL[2]==clave_2[2])
   {
    digitalWrite(rele1,LOW);
    Serial.println(" LED OFF DESACTIVADO.....");
    //mensaje_apagado();
   }
   if(datosSERIAL[0]==clave_4[0] && datosSERIAL[1]==clave_4[1] && datosSERIAL[2]==clave_4[2])
   {
    digitalWrite(rele2,LOW);
    Serial.println(" LED OFF DESACTIVADO.....");
    //mensaje_apagado1();
   }
   if(datosSERIAL[0]==clave_6[0] && datosSERIAL[1]==clave_6[1] && datosSERIAL[2]==clave_6[2])
   {
    digitalWrite(reler,LOW);
    Serial.println(" LED OFF DESACTIVADO.....");
    //mensaje_apagado2();
   }
}
// ENVIO DE MENSAJES 
void mensaje_encendido()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envío de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("El foco de la habitación 1 esta encendida");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino   
      Serial.print("El foco de la habitación 1 esta encendida");//mensaje que enviare
    }
void mensaje_encendido1()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envío de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("El foco de la habitación 2 esta encendida");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino     
      Serial.print("El foco de la habitación 2 esta encendida");//mensaje que enviare
    }  
void mensaje_encendido2()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envío de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("La radio se a encendido");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino     
      Serial.print("La radio se a encendido");//mensaje que enviare
    }
    void mensaje_apagado()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envío de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("El foco de la habitación 1 esta apagado");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino     
      Serial.print("El foco de la habitación 1 esta apagado");//mensaje que enviare
    }
void mensaje_apagado1()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envío de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("El foco de la habitación 2 esta apagado");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino
      Serial.print("El foco de la habitación 2 esta apagado");//mensaje que enviare
    }   
void mensaje_apagado2()
    {
      mySerial.println("AT+CMGF=1");//modo texto
      //Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro
      delay(2000);
      mySerial.print("AT+CMGS=");// comando de envio de mensaje
      //Imprime los datos al puerto serie como texto ASCII
      mySerial.print((char)34);//ponemos las comillas ", para que lo tome debe ser char de lo contrario el serial envía caracter por caracter
      mySerial.print(numero_cell);//colocamos numero de teléfono
      mySerial.println((char)34);//volvemos a poner el caracter "
      delay(200);//tiempo para que de respuesta el modulo >
      mySerial.print("la radio se a apagado");//mensaje que enviare
      mySerial.print((char)26);//ponemos el símbolo ascii 26,que corresponde a CTRL+Z,con lo que el modulo sabe que el sms termino
      Serial.print("la radio se a apagado");//mensaje que enviare
    } 

VÍDEO DEMOSTRACIÓN:


PODCAST:
 



PROTOTIPO DE LA MULTIMEDIA

sábado, 19 de diciembre de 2015
PUBLICADO POR: Unknown
Tag :

 Este es un pequeño prototipo de lo que quiero realizar en mi multimedia, como se dan cuenta es un poco básico ya que no tengo aun una idea bien plasmada de lo que quiero hacer.

Pero esta es una forma de como lo aria, en si es un primer avance el cual lo iré mejorando poco a poco.

PRIMER PROTOTIPO:
Hola amigos ahora les enseñare a cambiar el idioma de ingles al español a nuestro packettracer, espesemos. 

1. Primero descargamos el archivo: sp.ptl

2. Nos ubicamos en la carpeta donde esta el archivo en este caso lo encontraremos en descargas.

cd Descargas/

3. Movemos el archivo a la carpeta /opt/pt/LANGUAGES con el comando:

sudo mv sp.ptl /opt/pt/LANGUAGES/

4.Cambiamos de propietario al archivo ya que es propiedad de root .

sudo chown dennis /opt/pt/LANGUAGES/sp.ptl

5. Luego abrimos packettracer y nos vamos a la pestaña options, luego a preferences y les aparecerá la siguiente ventana.



6. En la parte inferior observamos el archivo que movimos sp.ptl, lo seleccionamos y le damos clic en el botón Change Language y reiniciar el programa y ya tenemos la interfaz en español.

Espero les aya gustado…..



Hola amigos les traigo aqui un tutorial en el que les muestro paso a paso como instalar Packettracer 6.2 para el sistema operativo ubuntu. Empecemos 
1. Descargamos el instalador. Cisco-PT-620.tar.gz.
2. Packettracer es compatible para 32 bits, en el caso que quieran instalar en una maquina de 64 bits se deben hacer una compatibilidad con los siguientes comandos.
sudo dpkg --add-architecture i386
sudo apt-get install libnss3-1d:i386 libqt4-qt3support:i386 libssl1.0.0:i386 libqtwebkit4:i386 libqt4-scripttools:i386 


3. Luego de hacer esto nos dirigimos ala carpeta donde esta el archivo en este caso se encontrara en la carpeta Descargas, por lo que ejecutamos.
cd Descargas/

4. Descomprimimos el archivo con el siguiente comando.
sudo tar vfzx Cisco-PT-620.tar.gz

5. Luego entramos a la carpeta que descomprimimos.
cd PacketTracer62Student/

6. Ejecutamos el archivo.
./install

7. En este paso debemos presionar enter hasta que llegue a 100% si presionamos de nuevo enter cuando llegue a 100% saldrá de la instalación y tocaría ejecutar el install nuevamente.

8. Una vez que llegamos al 100% presionamos la letra Y para aceptar los términos.

9. Luego nos pide ingresar la ruta de instalación, por lo que solo presionando enter.

10. A continuación presionamos la letra Y en todos los mensajes de confirmación.

11. Luego esperamos que se instale y una ves instalado, ejecutamos el programa con el siguiente comando desde la terminal. packettracer


12. Listo amigos ahora ya tenemos packettracer, pero para no estar entrando desde la terminal al packettracer, ahora vamos a crear un icono para tenerlo en nuestro lanzador de ubuntu. Para eso ejecutamos el siguientecomando.
sudo apt-get install gnome-terminal

13. Ejecutamos el siguiente comando para llamar la interfaz que nos permitirá crear el lanzador.
gnome-desktop-item-edit ~/Escritorio --create-new

Si no se ejecuta este comando, entraremos como súper usuario con: sudo su, y ya ejecutara el comando.

14. En esta parte les moestrare para que sirve cada parte de la ventana.


15. Una vez seleccionado el icono nos vamos a la carpeta /opt/pt/art para elegir el icono que mas nos guste.

16. Luego de haber elegido el icono damos clic en examinar y seleccionamos el ejecutable packettracer que se encuentra en. /opt/pt

17. A continuación en tipo le dejamos aplicación, una ves echo estos pasos le damos al botón ok y ya tenemos nuestro icono de packettracer.


Bien amigos eso fue todo el tutorial para la instalación de packettracer espero les sea útil sera hasta una próxima.


La compañía levantina Emotion Research LAB ha desarrollado una innovadora plataforma de reconocimiento facial que junto con un 'eye tracking', permite detectar con facilidad las emociones de los usuarios a través de una simple webcam.

Gracias a la visión artificial y este patrón de movimientos faciales, las empresas pueden obtener respuestas emocionales de sus clientes que no son medibles en encuestas tradicionales, y permiten anticipar el éxito de páginas web, productos y campañas de comunicación antes de su salida al mercado.

Esta novedosa tecnología basada en el 'eye tracking' supone una ventaja para las embresas, ya que ofrece una monitorización en tiempo real de las emociones, recopilar gran cantidad de reacciones de los clientes y es mucho más fiable que otras plataformas, según explica Emotion Research LAB en un comunicado.

Una revolución que está "totalmente focalizada a las necesidades de los distintos mercados y sectores, desde el canal retail al marketing y la política" señala la cofundadora, Alicia Mora.

La plataforma incluye un informe completo con gráficas, valencias, mapas de calor y análisis emocionales de las reacciones de cada uno de los usuarios que han sido estudiados.

“En la actual era de las emociones, cada vez se pone menos en duda que el éxito de los negocios depende de la capacidad que tienen las empresas para saber lo que gusta o no a los consumidores", sentencia María Pocoví, la fundadora de Emotion Research LAB.

REFERENCIA:
 

(SISTEMA DE SEGURIDAD DOMICILIARIA):
En esta tercera entrega daré a conocer la conexión del tercer prototipo, de un sistema de seguridad, para eso utilizaré un sensor magnético, entonces al momento de romperse el campo magnético enviará una señal a través del arduino al relé, para que permita encender el foco, también utilizamos un LCD con el cual visualizamos el estado de la alarma, también se utilizó un teclado matricial el cual permitirá mediante una contraseña apagar el foco.

Para ello utilizaremos lo siguiente: 
PANTALLA DE CRISTAL LÍQUIDO (LCD).
Es una pantalla de panel plana, representación visual electrónica, o pantalla de vídeo que utiliza la luz modulación propiedades de los cristales líquidos. Los cristales líquidos no emiten luz directamente.
LCDs están disponibles para mostrar imágenes arbitrarias o imágenes fijas con bajo contenido de la información que pueden mostrarse u ocultarse, como palabras predefinidas, dígitos y 7 segmentos se muestra como en un reloj digital. Ellos usan la misma tecnología básica, excepto que las imágenes arbitrarias se componen de un gran número de pequeños píxeles, mientras que otras pantallas tienen elementos más grandes
.

PLACA ARDUINO UNO.
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un microcontrolador y puertos de entrada y salida.Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos.

EL PROTOBOARD: 
Es una especie de tablero con orificios, en la cual se pueden insertar componentes electrónicos y cables para armar circuitos. Como su nombre lo indica, esta tableta sirve para experimentar con circuitos electrónicos, con lo que se asegura el buen funcionamiento del mismo.

POTENCIÓMETRO:
Un potenciómetro es una Resistencia Variable. Así de sencillo, limitan el paso de la corriente eléctrica (Intensidad) provocando una caída de tensión en ellos al igual que en una resistencia, pero en este caso el valor de la corriente y la tensión en el potenciómetro las podemos variar solo con cambiar el valor de su resistencia.

SENSOR MAGNÉTICO: 
Reacciona ante la presencia de un campo magnético. En el caso que nos ocupa, permanece normalmente cerrado y cuando se le acerca un campo magnético, se abre. por tanto mientras ambas partes permanecen juntas, el interruptor queda abierto por culpa del imán y nada sucede, pero si se abre la puerta, ambas partes se separan, el interruptor se cierra al perder el campo magnético y enciende nuestro foco.

TECLADO MATRICIAL 4X4:
Un teclado matricial es un simple arreglo de botones conectados en filas y columnas, de modo que se pueden leer varios botones con el mismo número de pines requeridos. Un teclado matricial 4x4 solamente 4 líneas de un puerto para las filas y otras 4 líneas para las columnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un microcontrolador.

MODULO RELÉ:
El relé es el elemento que necesitas si quieres gestionar grandes voltajes y corrientes (como los que pueden tener en la red eléctrica de tu casa). Se trata simplemente de un interruptor eléctrico que puedes encender y apagar enviando señales desde tu placa Arduino, o cualquier otro controlador . Esto te permite desde encender y apagar la luz de tu habitación cuando alguien entre, hasta hacer una casa domótica completa, el límite aquí es tu imaginación.
CIRCUITO COMPLETO
CÓDIGO: 
#include <Keypad.h>

#include <EEPROM.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 10, 11 , 12, 13);



const byte filas=4; //cuatro filas

const byte columnas=4; //cuatro columnas

byte pinsFilas[filas] = {7,6,5,4};
byte pinsColumnas[columnas] = {3,2,1,0};
char teclas[filas][columnas] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Keypad teclado = Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas);
char password[5];
char ingreso;
char passUser[4];
char confirmPass[4];

int i=0;
int a; //aux
int b;
const int buttonPin = A0; // Variable para el sensor magnetico
const int Rele = A3;
int buttonState = 0;
int ledverde = A1;
int ledrojo = A2;

void setup() {
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(" BIENVENIDO");
lcd.setCursor(0, 1);
lcd.print("****************");
pinMode(ledverde, OUTPUT);
pinMode(ledrojo, OUTPUT);
pinMode(Rele, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(ledverde, HIGH);

if(EEPROM.read(4)!='Z'){
EEPROM.write(0,'4');
EEPROM.write(1,'5');
EEPROM.write(2,'6');
EEPROM.write(3,'7');
EEPROM.write(4,'Z');
}
for (int i = 0; i <= 4; i++) {
password[i] = EEPROM.read(i);
}
}
void loop() {
buttonState = digitalRead(buttonPin); // Almacena el valor de buttonPin
if (buttonState == HIGH) // Si buttonState == HIGH:
{
lcd.setCursor(0, 0);
lcd.print("**** ALERTA ****");
lcd.setCursor(0, 1);
lcd.print("-----____-------");
digitalWrite(Rele, HIGH); // enciende el foco
digitalWrite(ledverde, LOW);
digitalWrite(ledrojo, HIGH);
}
else // Caso contrario
{
leerIngreso(1);
}
}
void leerIngreso(int a) {
ingreso = teclado.getKey();
if (ingreso != NO_KEY)
switch (ingreso) {
case 'A': // es como el "enter" para introducir la password
if(evaluar(1)==1){
correcto();
}
else{
msgError();
}
reset();
break;
default: //si es un numero debe imprimirlo en el LCD y ademas guardarlo en el arreglo passUser
if(a==1){
passUser[i] = ingreso;
printPass(passUser[i], 5 + i, 1);
}
if(a==2){
confirmPass[i] = ingreso;
printPass(confirmPass[i], 5 + i, 1);
}
i++;
if (i > 3){
i = 0;
}
}
}
void correcto(){
lcd.setCursor(0, 1);
lcd.print(" DESACTIVADA ");
digitalWrite(Rele, LOW);
digitalWrite(ledverde, HIGH);
digitalWrite(ledrojo, LOW);
}
void printPass(char a, int columna, int fila ) {
lcd.setCursor(0, 1);
lcd.setCursor(columna, fila);
lcd.print(a);
delay(100);
lcd.setCursor(columna, fila);
lcd.print("*");
}
int evaluar(int a) {
int j = 0;
if (a==1){
for (int i = 0; i <= 3; i++) {
if (password[i] == passUser[i]) {
j++;
}
}
}
if(a==2){
for (int i = 0; i <= 3; i++) {
if (passUser[i] == confirmPass[i]) {
j++;
}
}
}
if (j == 4) {
return j=1;
}
else {
return j=0;
}
}
void reset() {
lcd.setCursor(0, 0);
lcd.print("**** ALERTA ****");
lcd.setCursor(0, 1);
lcd.print("");
for(int i =0;i<=3;i++){
passUser[i]=NO_KEY;
confirmPass[i]=NO_KEY;
}
i=0;
}
void msgError(){
lcd.setCursor(0, 0);
lcd.print(" ERROR ");
delay(500);
}

VIDEO DEMOSTRACIÓN:

BIENVENIDO A MI BLOG

- Copyright © EL RACHO RUEDA TECNOLOGÍA Y MUCHO MAS -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -