miércoles, 28 de febrero de 2018

Mando a distancia para puerta III. Modo dialogo con lista.



Mando a distancia para puerta
III
Modo dialogo con lista
Arduino



En los dos anteriores montajes había realizado un mando a distancia con diferente modos de programa.
El primero mandaba los códigos directamente, en el segundo realizaba una negociación entre llave y puerta basada en una formula.
Para este montaje utilizo el mismo circuito, pero ahora negocia los códigos mediante una lista almacenada tanto en la llave y la puerta.
La lista  debe ser la misma tanto en la llave como en la puerta.


Esquema de puerta y mando.


Circuito de la puerta y de la llave.


Diagrama del dialogo entre llave y puerta.

La lista de códigos está almacenada en 2 arrays.
Como no me quería complicar mucho, solo he utilizado 2 arrays de 16 números.
Para hacerlo algo más seguro deberíamos haber creado las arrays  de 256 números.
    byte LISTAcodigo0[15]={12,9,5,11,8,6,13,4,1,0,7,2,14,3,10};
    byte LISTAcodigo1[15]={13,0,5,2,11,9,4,12,6,1,8,10,7,14,3};

El numero de orden en el array  se sacan del tiempo de funcionamiento del arduino.
     time = millis();
    x=time & 0x0F;
    y= 0x0F & (time>>8);

La variable CODIGO2 se saca de los micro-interruptores , como es normal deberá ser el mismo en la llave y en la puerta.
Esta variable es utilizada para modificar el numero de orden.
      x=(x+CODIGO2) & 0x0F;   
      x=LISTAcodigo0[x];
     
      y=(y+CODIGO2) & 0x0F;
      y=LISTAcodigo1[y];

Información de la llave
=======================

Información de la puerta
========================

___LLAVE Lista___12
Pulsado Boton de Apertura
Respuesta a la pregunta
Pulsado Boton de Apertura
Respuesta a la pregunta
___LLAVE Lista___4
Pulsado Boton de Apertura
Respuesta a la pregunta
___LLAVE Lista___12
Pulsado Boton de Apertura
Respuesta a la pregunta

____Puerta Lista____12
Peticion de apertura
CORRECTO
Peticion de apertura
CORRECTO
Peticion de apertura
ERROR
Peticion de apertura
CORRECTO



Tampoco me he metido mucho en asegurar la seguridad ante la fuerza bruta, solo he metido retardos para hacerlo más difícil.
En lo personal prefiero el modo de códigos por fórmula, pero este método es otro mas, y debía realizarlo.

En todo los montajes se podría realizar un registro de entrada y de salida, y horas. Pero eso es otra historia...

PROGRAMA

Hasta pronto.
Juan Galaz

No hay comentarios:

Publicar un comentario