Pages: 1 [2] 3 4   Go Down
Author Topic: Ayuda para Proyecto Alarma Casera.  (Read 8256 times)
0 Members and 1 Guest are viewing this topic.
Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola de nuevo,

Al principio da la sensacion que en este codigo no exista ningun protocolo de comunicacion, como dije en un post anterior dicho protocolo es tremendamente sencillo. Si tienes problemas con el te lo explico...

Por cierto, a este codigo le falta una especie de filtro, por lo menos en mi caso, me explico...  Al cablear la casa tuve que pasar los cables cerca de unos de luz, como veras este codigo se limita a recoger los datos que entran por dos cables y cada 26 bits chequea si es correcto o no, da la casualidad que si enciendo una de las luces de la casa un numero de veces, las interferencias producidas son recogidas por este codigo, y logicamente no coinciden con ninguna llave registrada, por lo tanto se escuchan unos BIP, BIP, BIIIP por toda la casa!!!  jajaja...  solución, controlar que los 26 bits sean recibidos en un periodo de tiempo, por ejemplo medio segundo, si no es así, se descartan como basura...

Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

me llego el lector RFID de la web que comentaste imagina, he puesto el codigo en el arduino y veo que tengo un problemilla...

Los llaberos tienen 10 digitos en lugar de 8 y el arduino si pongo los 10 digitos y tienen un numero superior al 7 me dice que "invalid digit "9" in octal constant" nueve por ejemplo es el ultimo numero de uno de los llaberos que quiera ponerlo de master.

Alguna idea de como podria usarlos estos llaberos?

de paso alguien tiene el codigo mas sencillo posible que solo sirva para leer con el RDM630 Wiegand los llaberos y que lo muestre por serial lo leido, solo que lea que no haga nada de nada mas, para yo comprender como funciona, con el codigo completo me vuelvo loco xDDDD
Logged

Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Te explico un poco, el código que llevan los llaveros por detrás hay que calcularlo partiendo del código binario (el que nosotros recibimos) quitandole el numero de fabricante, el código de inicio y final de transmisión, etc...  vamos que en principio no nos interesa, por lo menos a mi lo único que me interesa es que el código de cada llave sea UNICO (Ni siquiera necesito saber que código es).


Este programita lee el código RFID y lo imprime por puerto Serie... ( el código que necesitas para el otro programa "Código Maestro")

No lo he probado pero en principio tiene que funcionar... ;-)


Code:
volatile long Cod_Bin = 0;
volatile int Num_bit = 0;

void Cod_Bin_1() {
  Num_bit++;
  Cod_Bin = Cod_Bin << 1;
  Cod_Bin |= 1;
}

void Cod_Bin_0() {
  Num_bit++;
  Cod_Bin = Cod_Bin << 1;
}

void setup(){
  Serial.begin(9600);
  attachInterrupt(0, Cod_Bin_0, FALLING);                    // DATA0 - pin 2
  attachInterrupt(1, Cod_Bin_1, FALLING);                    // DATA1 - pin 3
}

void loop() {
  if(Num_bit >= 26){
   Serial.println(Cod_Bin);
   Cod_Bin = 0;
   Num_bit = 0;
  }  
}
« Last Edit: March 10, 2011, 12:21:52 pm by Imagina » Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Probe el codigo para leer el codigo , siempre me da 0.

Amph que rabia no entiendo ni por donde empiezas jajajaja
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Comeollas, te dejo este enlace del proyecto de los chicos de tronixstuff. Creo que había una función para comparar los tags que te vendra bien para tu casita domotica.


Enlace.
http://tronixstuff.wordpress.com/2010/12/16/project-the-kid-e-log/

Saludos.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ademas estos ejemplos te vendran bien para entenderlo mejor.
URL
http://tronixstuff.wordpress.com/2010/08/18/moving-forward-with-arduino-%E2%80%93-chapter-15-%E2%80%93%C2%A0rfid-introduction/

Saludos.
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias Flico voy a mirarmelos por la mañana, haber si consigo entender el "porque", esque de los codigos que he visto tan siquiera entiendo las variables del principio smiley-razz se me hace duro jejejej
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Acabo de ver un fallo gordo mio tenia un cable suelto en la proto y el pin 3 no hacia buen contacto, ahora me acepta la que uso de master y me dice, registrado!! xD

Me pongo a indagar haber jejeje

Perdonaddddd si os aveis roto la cabeza mirando el porque fallaba   smiley-red
« Last Edit: March 10, 2011, 06:56:21 pm by comeollas » Logged

Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

yo he repasado el codigo una y otra vez...  y no encontraba nada!!!   

Te ha funcionado el segundo codigo??
Logged

Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Te explico un poco como funciona el codigo sencillo...

El protocolo Wiegand, es muy simple, si entra un dato (5v.) por el Pin 2 (Data0) añade un 0 a Cod_Bin, si el dato entra por el Pin 3 (Data1) añade un 1 a Cod_Bin.

La forma sencilla de hacer esto es con Interrupciones (las dos lineas que ves en el "setup()") que llaman a las dos funciones que tienes justo encima de dicho "setup()". Te recomiendo que te informes un poco del uso de las interrupciones.

La otra "cosa rara" que puedes ver en este codigo es el uso de "bitshift  (<<)" es una forma muy sencilla, una vez sabes como funciona, de añadir bits a una cadena, en este caso es la forma más sencilla de ir acumulando los datos que nos entran por Data0 y Data1. Busca informacion de este tambien "bitshift left (<<)".

Y aquí de forma más visual, lo que hacen las interrupciones, y como van almacenando los datos que entran por Data0 y Data1

01 --- Data0 ---->  Cod_Bin<<1;      // binario: 00000000000000000000000000
02 --- Data1 ---->  Cod_Bin<<1;      // binario: 00000000000000000000000001
03 --- Data1 ---->  Cod_Bin<<1;      // binario: 00000000000000000000000011
04 --- Data0 ---->  Cod_Bin<<1;      // binario: 00000000000000000000000110
05 --- Data1 ---->  Cod_Bin<<1;      // binario: 00000000000000000000001101
06 --- Data0 ---->  Cod_Bin<<1;      // binario: 00000000000000000000011010
07 --- Data1 ---->  Cod_Bin<<1;      // binario: 00000000000000000000110101
08 --- Data0 ---->  Cod_Bin<<1;      // binario: 00000000000000000001101010
------
------
25 --- Data0 ---->  Cod_Bin<<1;      // binario: 00110101000111001011010010
26 --- Data1 ---->  Cod_Bin<<1;      // binario: 01101010001110010110100101  // decimal: 27846053

Una Vez tenemos los 26 bits este es el codigo utilizado como identificador, para que resulte más sencillo de ver, recordar o guardar lo represento en decimal.

Espero que de esta forma te resulte más sencillo de entender...   smiley-wink
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ha esto le llamo una classe magistral jajaja

Ya entiendo ahora como funcina un RFID Wiegand!!! claro mi problema es que creia que funcionava como el UART/TTL y este no funciona asi necesitando usar los dos data (en el datasheet vi que el uart ponia pin 1 TX pin RX y en el wie data0 y data1 pero yo me dije a mi mismo... "es lo mismo!!" xDDD

Ahora me liare a integrarlo con el maximo de cosas posibles que tengo preparadas (meter en un solo arduino control de persianas, puertas, Lm35's, humos, visualizacion en LCD y Led matrix 8x32, LDR's para saber si es de dia o noche, webserver para control remoto, simulacion de presecia con leds...)

Por ahora todo esto lo tengo todo por separado echo y algunos ya estan juntados, ahora a intentar usar el minimo de arduinos UNO/Mega possibles jejejej

GRACIAS A TODOS!!!
Logged

Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

De nada...   y animo que para implementar todo eso en un codigo te vas a divertir un rato!!!  jajaja...
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 200
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Los cacharros estos son ideales para puertas, ventanas y persianas. Y nada caros.

http://es.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0333192&cm_vc=av_es
http://es.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0333158&cm_vc=av_es

También busco un interruptor económico para monitorizar si alguien tensa o corta el alambre de espino de la alambrada.
¿Alguna idea?

Un saludo.
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
También busco un interruptor económico para monitorizar si alguien tensa o corta el alambre de espino de la alambrada.
¿Alguna idea?

Los equipos que electrifican las vallas cuentan con una funcion que es detectar intruso sin descarga electrica o manipulación del vallado. No tengo ni idea como funcionan estos equipos.

saludos,
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Alicante
Offline Offline
Full Member
***
Karma: 0
Posts: 156
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es solo una suposición, pero al igual que las vallas electricas dan las descargas al tocar dos puntos de la misma, es muy posible que la detección sea algo similar, al tocar dos puntos lo que se hace es, con una pequeña corriente, cerrar un circuito... 

Imagina que metes 6v. por una de las lineas, la otra linea es la que "lees", si en algún momento recibes algo de voltaje por esa segunda linea, es porque algo o alguien está intentando acceder.
Logged

Pages: 1 [2] 3 4   Go Up
Jump to: