Tabla de contenido:

Cerradura de puerta Arduino RFID: 5 pasos (con imágenes)
Cerradura de puerta Arduino RFID: 5 pasos (con imágenes)

Video: Cerradura de puerta Arduino RFID: 5 pasos (con imágenes)

Video: Cerradura de puerta Arduino RFID: 5 pasos (con imágenes)
Video: Arduino desde cero en Español - Capítulo 40 - RFID RC522 kit lector, tarjeta, llavero 13.56 Mhz 2024, Mes de julio
Anonim
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID
Cerradura de puerta Arduino RFID

*** Actualizado el 9 de agosto de 2010 *** Quería crear una manera fácil y segura de ingresar a mi garaje. RFID fue la mejor manera de desbloquear mi puerta, ¡incluso con las manos ocupadas puedo desbloquear la puerta y empujarla para abrirla! Construí un circuito simple con un chip arduino ATMega 168 básico y un lector RFID ID-20 para controlar una cerradura de puerta electrónica. El circuito consta de 3 partes separadas, un lector para leer etiquetas RFID, un controlador para aceptar datos del lector y controlar la salida del LED RGB y la cerradura eléctrica de la puerta. La cerradura de la puerta se instala primero en una puerta y se prueba con una batería de 9v para garantizar una instalación correcta. En la mayoría de los casos, desea un circuito normalmente abierto en la cerradura de la puerta o Fail Secure. Esto significa que la puerta permanece bloqueada cuando no pasa corriente a través de ella. Cuando se pasa 12vDC a través del electroimán en la cerradura de la puerta, una placa en la cerradura cede y permite que la puerta se abra libremente. El lector se coloca en el exterior de la puerta y está separado del controlador en el interior para que nadie pueda eludir la seguridad abriendo el lector y tratando de cortocircuitar el lector. El controlador recibe datos en serie del Reader y controla el LED RGB y la cerradura de la puerta. En este caso, he puesto ambos en placas de prueba separadas para probar. Aquí hay una descripción general en video del sistema en acción ¡Siga leyendo para ver cómo construir uno para usted! ** Actualización ** Todos los códigos, esquemas y diseños de PCB han sido probados y refinados. Todos están publicados aquí a partir del 9/8/2010. Video actualizado del sistema final instalado y funcionando.

Paso 1: Piezas necesarias

Piezas necesarias
Piezas necesarias

Aquí hay una lista de piezas y enlaces a SparkFun.com donde las compré. Este es el conjunto básico de piezas que necesita para construir un arduino y un circuito para leer etiquetas RFID en el arduino. Supongo que ya tiene una placa de pruebas, una fuente de alimentación y cables de conexión.

Cosas de Arduino

ATmega168 con Arduino Bootloader $ 4.95

Cristal 16 MHz $ 1,50

Condensador Cerámico 22pF $ 0.25 (x2)

Resistencia 10k Ohm 1 / 6th Watt PTH $ 0.25

Mini interruptor de botón $ 0.35

LED RGB de triple salida - Difundido $ 1.95

Cosas RFID

Cualquiera de estos, 20 tiene mejor alcance, 12 es más pequeño Lector RFID ID-12 $ 29.95 Lector RFID ID-20 $ 34.95

Desglose del lector RFID $ 0.95

Encabezados Break Away - Directo $ 2.50

Etiqueta RFID - 125 kHz $ 1.95

Otro

Transistor TIP31A (radio shack / tienda de electrónica local $ 1,50)

La cerradura de la puerta es de eBay. Door Fail Secure control de acceso Electric Strike v5 NO $ 17.50 (kawamall, bay)

Paso 2: construye el controlador Arduino

Construye el controlador Arduino
Construye el controlador Arduino
Construye el controlador Arduino
Construye el controlador Arduino
Construye el controlador Arduino
Construye el controlador Arduino

El primer paso para construir una cerradura de puerta RFID con un Arduino básico es montar un arduino básico que funcione. La mayoría de los chips ATMega 168 pre-flasheados de Arduino vienen con el programa de parpadeo predeterminado preinstalado. Conecte un LED a la salida digital 13 y verifique que todo funcione.

La parte de hardware de este lector RFID sería demasiado simple si usáramos un arduino normal con un programador USB integrado. Como planeo poner esto en la pared y no tocarlo nuevamente, no quiero usar una placa arduino grande y voluminosa de $ 30 cuando puedo comprar una ATMega 168 de $ 5 y hacer una PCB personalizada mucho más pequeña.

Debido a que elegí hacer un circuito Arduino básico yo mismo, necesito un programador USB-> Serial FDIT externo. He incluido esquemas Eagle del controlador con una fuente de alimentación construida a partir de un regulador de voltaje 7805. En las pruebas utilicé una fuente de alimentación de tablero de pruebas.

Para poner un arduino en funcionamiento, todo lo que realmente necesita es el ATMega168 con el software arduino instalado, 2 condensadores de 22pF, cristal de 16 mhz, resistencia de 10 k ohmios, botón pulsador y una placa de pruebas. La conexión para esto es bien conocida, pero he incluido el esquema completo del circuito.

El arduino va a activar 4 salidas, 1 para cada LED rojo / verde / azul, y 1 para activar el TIP31A para enviar 12vDC a la cerradura de la puerta. El arduino recibe datos en serie en su línea Rx desde el lector RFID ID-20.

Paso 3: construya el lector RFID

Construya el lector RFID
Construya el lector RFID
Construya el lector RFID
Construya el lector RFID
Construya el lector RFID
Construya el lector RFID

Ahora que tiene su pan arduino abordado y funcionando, puede armar la parte del lector de RFID del circuito que contendrá el ID-10 o ID-20 y el LED RGB para indicar el estado del circuito. Recuerde que el lector estará afuera y separado del controlador adentro para que alguien no pueda entrar fácilmente.

Para construir esto, vamos a enviar 5v / Ground desde el tablero primario a un tablero secundario en el que estamos construyendo el Reader. También envíe más de 3 cables desde 3 de los pines de salida de arduino para controlar el LED RGB, uno para cada color. Un cable más, Brown en las imágenes, será una conexión serial para que el ID-20 se comunique con la entrada serial Rx del arduino. Este es un circuito muy simple de conectar. Los LED obtienen resistencias y algunos puntos del ID-20 están conectados a tierra / 5v para establecer el estado correcto.

Para facilitar el montaje de la placa de prueba, el ID-10 / ID-20 Sparkfun vende una placa de ruptura que le permite colocar encabezados de pines más largos que están espaciados para adaptarse a una placa de prueba. Esta pieza y los cabezales de alfiler se enumeran en la lista de piezas.

El esquema debe ser sencillo y fácil de seguir.

Paso 4: ¡Programa

Es hora de programar tu arduino. Esto puede ser un poco complicado con un arduino básico, es posible que deba presionar el botón de reinicio varias veces antes y durante la primera parte de la carga. Una cosa muy importante para recordar, obtendrá un error de carga si no desconecta temporalmente la línea serial ID-20 a la línea Rx de arduino. El ATMega168 solo tiene 1 entrada Rx y la usa para cargar código para hablar con el programador. Desconecte el ID-20 durante la programación y luego vuelva a enchufarlo cuando haya terminado. Usé un programador FTDI que te permite programar el arduino a través de USB con solo 4 cables. El esquema del controlador muestra una conexión de encabezado de clavija que le permite conectar uno directamente. Sparkfun también vende esta pieza, pero es posible que muchos ya la tengan.

Puede cargar fácilmente mi código en su arduino y nunca mirar hacia atrás, pero ¿qué hay de divertido en eso? Déjame explicarte la idea básica de cómo funciona.

En primer lugar, no quería botones / interruptores / etc externos y no quería reprogramar el arduino cada vez que quería agregar una nueva tarjeta. Por lo tanto, quería usar solo RFID para controlar el funcionamiento del circuito, así como el control de la cerradura de la puerta.

El programa enciende el LED azul para indicar que está listo para leer una nueva tarjeta. Cuando se lee la tarjeta, decide si es una tarjeta válida o no comparando lo que lee con una lista de tarjetas válidas. Si el usuario es válido, el arduino apaga el LED azul y enciende el LED verde durante 5 segundos. También enciende otra salida alta durante 5 segundos. Esta salida está conectada al transistor TIP31A y permite que el pequeño arduino controle una cerradura de puerta de 12v 300mA mucho más grande sin dañarse. Después de 5 segundos, la cerradura de la puerta se vuelve a bloquear y el LED se vuelve azul para esperar a que se lea otra tarjeta. Si la tarjeta no es válida, el LED cambia a ROJO durante unos segundos y vuelve a azul para esperar otra tarjeta.

Es importante que la cerradura de la puerta siga funcionando incluso si el arduino pierde energía durante la noche o se reinicia. Por lo tanto, todos los ID de tarjetas válidos se almacenan en la memoria EEPROM. El ATMega168 tiene 512 bytes de memoria EEPROM. Cada tarjeta RFID tiene un número de serie de 5 bytes hexadecimales y una suma de comprobación de 1 bytes hexadecimales que podemos usar para verificar que no hubo errores en la transmisión entre el ID-20 y el arduino.

Las tarjetas válidas se almacenan en la EEPROM utilizando el primer Byte como contador. Por ejemplo, si hay 3 tarjetas válidas almacenadas, el primer Byte en la EEPROM sería 3. EEPROM.read (0); = 3. Sabiendo esto, y el hecho de que cada ID tiene 5 bytes de largo, sabemos que 1-5 es la tarjeta uno, 6-10 es la tarjeta 2 y 11-15 es la tarjeta 3. Podemos hacer un bucle que mira a través de la EEPROM 5 bytes a la vez e intenta encontrar la tarjeta que fue leída por el lector.

Pero, ¿cómo podemos agregar nuevas tarjetas a la EEPROM después de instalar el circuito? Leí una de las tarjetas RFID que tengo y la codifiqué para que sea la tarjeta RFID maestra. Entonces, incluso si se borra toda la EEPROM, la tarjeta maestra seguirá funcionando. Siempre que se lee una tarjeta, primero verifica si es la tarjeta Master, si no, luego continúa para ver si es una tarjeta válida o no. Si la tarjeta es la tarjeta maestra, hacemos que el arduino entre en un "modo de programación" donde parpadea RGB y espera a que se lea otra etiqueta válida. La siguiente etiqueta que se lee se agrega al siguiente lugar libre en la EEPROM y el contador se incrementa en 1 si la tarjeta aún no existe en la memoria EEPROM. Luego, el lector regresa al modo normal y espera a que se lea una nueva tarjeta.

Actualmente, no he programado una forma de eliminar una tarjeta, ya que las razones para eliminar una tarjeta probablemente sean perdidas o robadas. Como esto probablemente se usaría con 1-10 personas, lo más fácil sería programar una tarjeta Master Erase que borrará todas las tarjetas de la EEPROM y luego volverá a agregarlas todas, lo que solo tomará unos segundos. Agregué código para borrar la EEPROM, pero aún no implementé esta función..

El código se adjunta en un archivo de texto junto con una copia de la lista de piezas.

Paso 5: expandir

Estas son solo algunas de las cosas interesantes que puede hacer con RFID. Puede expandir esto mucho más con una salida LCD, registro de quién ingresa y cuándo, conexión de red / twitter, etc. Planeo hacer una versión terminada de PCB de este circuito. Nunca antes había hecho una placa de circuito impreso, por lo que todavía estoy trabajando en el diseño y la distribución de las piezas. Una vez que los tenga completos, los publicaré también. ¡Animo a cualquiera a que tome el código que he escrito y lo modifique para hacer cosas aún más interesantes!

Finalista en el Concurso Arduino

Recomendado: