Menú
Es gratis
registro
casa  /  Problemas    / Cerradura electrónica en arduino uno. Cerradura electrónica de bricolaje

Cerradura electrónica en arduino uno. Cerradura electrónica de bricolaje

En esta lección, aprenderemos cómo hacer un sistema simple que se desbloqueará con una llave electrónica (Etiqueta).

En el futuro, puede refinar y ampliar la funcionalidad. Por ejemplo, agregue la función "agregar nuevas teclas y eliminarlas de la memoria". En el caso básico, considere un ejemplo simple cuando un identificador de clave único está predefinido en el código del programa.

En esta lección necesitaremos:

Para implementar el proyecto, necesitamos instalar las bibliotecas:

2) Ahora necesita conectar el zumbador, que dará una señal si la llave ha funcionado y la cerradura está abierta, y la segunda señal cuando la cerradura esté cerrada.

El zumbador está conectado en la siguiente secuencia:

Arduino Zumbador
5V Vcc
GND GND
pin 5 IO

3) Se utilizará un servoaccionamiento como mecanismo de desbloqueo. Cualquiera puede seleccionar el servo, dependiendo del tamaño y el esfuerzo requerido por usted, que crea el servo. El servo tiene 3 contactos:

Puede ver más claramente cómo conectamos todos los módulos en la imagen a continuación:

Ahora, si todo está conectado, puede proceder a la programación.

Bosquejo:

   #incluir   #incluir   #incluir   // biblioteca "RFID". #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // para almacenar el número de etiqueta en formato decimal Servo servo; configuración nula () (Serial.begin (9600); Serial.println ("Esperando tarjeta ..."); SPI.begin (); // inicialización SPI / Init SPI bus. mfrc522.PCD_Init (); // inicialización MFRC522 / Init MFRC522 card.servo.attach (6); servo.write (0); // establece el servo en un estado cerrado) void loop () (// Busca una nueva etiqueta if (! Mfrc522.PICC_IsNewCardPresent ()) (return; ) // Selección de etiqueta if (! Mfrc522.PICC_ReadCardSerial ()) (return;) uidDec \u003d 0; // Devuelve el número de serie de la etiqueta. For (byte i \u003d 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Analicemos el boceto con más detalle:

Para averiguar el UID de la tarjeta (Etiquetas), debe escribir este boceto en arduino, recopilar el circuito descrito anteriormente y abrir la Consola (Monitoreo de puerto serie). Cuando etiquete la RFID, la consola mostrará el número

El UID resultante debe ingresarse en la siguiente línea:

Si (uidDec \u003d\u003d 3763966293) // Compare el Uid de la etiqueta, si es igual al especificado, el servo abre la válvula.

Para cada tarjeta, este identificador es único y no se repite. Por lo tanto, cuando abre una tarjeta, cuyo identificador establece en el programa, el sistema abrirá el acceso mediante un servo.

Vídeo:

En este artículo te diré cómo hacer un bloqueo de combinación de arduino. Para hacer esto, necesitamos LED rojos y verdes, un timbre, un arduino nano, una pantalla LCD con un convertidor I2C, un servoaccionamiento y un teclado de matriz 4x4. Cuando se enciende, la pantalla escribirá "Ingresar código",

el LED rojo se encenderá

y el verde se apaga, el servo se establece en 0 °. Cuando ingrese números, * se iluminará en la pantalla.

Si el código se ingresa incorrectamente, la pantalla mostrará "Enter cod". Si el código es correcto, sonará un pitido, el servoaccionamiento girará 180 °, la pantalla mostrará "Abierto".

el LED verde se encenderá

y el rojo se apagará. Después de 3 segundos, el servo volverá a su posición inicial, el LED rojo se encenderá y el verde se apagará, la pantalla mostrará "Cerrar".

entonces la pantalla mostrará "Ingrese el código". Ahora sobre el esquema. Primero, conecte los cables arduino con una placa de pruebas (contactos de alimentación).

Luego conectamos el teclado matricial a los contactos D9 - D2.

Luego el servo. Lo conectamos al pin 10.

LED rojo al pin 11.

Verde - al pin 12.

Timbre - al pin 13.

Ahora carga el boceto.

   #incluir   #incluir   #incluir   #incluir iarduino_KB KB (9, 8, 7, 6, 5, 4, 3, 2); LiquidCrystal_I2C lcd (0x27, 16, 2); Servo servo; int pass \u003d (3, 6, 1, 8); int in; int r \u003d 11; int g \u003d 12; configuración vacía () (KB.begin (KB1); pinMode (r, OUTPUT); pinMode (g, OUTPUT); lcd.init (); lcd.backlight (); digitalWrite (g, LOW); digitalWrite (r, HIGH ); servo.attach (10); servo.write (0); lcd.setCursor (0, 0);) void loop () (lcd.clear (); lcd.print ("Enter code."); while ( ! KB.check (KEY_DOWN)) (delay (1);) in \u003d KB.getNum; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("*"); while (! KB. check (KEY_DOWN)) (delay (1);) in \u003d KB.getNum; lcd.print ("*"); while (! KB.check (KEY_DOWN)) (delay (1);) in \u003d KB.getNum; lcd.print ("*"); while (! KB.check (KEY_DOWN)) (delay (1);) in \u003d KB.getNum; lcd.print ("*"); if (in \u003d\u003d pass) (if (in \u003d\u003d pass) (if (in \u003d\u003d pass) (if (in \u003d\u003d pass) (lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Open"); tone ( 13, 400, 750); servo.write (180); digitalWrite (r, LOW); digitalWrite (g, HIGH); delay (3000); lcd.clear (); lcd.setCursor (0, 0); lcd. print ("Cerrar"); tono (13, 300, 700); servo.write (0); digitalWrite (g, LOW); digitalWrite (r, HIGH); dela y (1000); )))))

Eso es todo. ¡Disfruta de la cerradura de combinación!

Lista de elementos de radio

Designacion Un tipo Valor nominal cantidad NotaPuntuaciónMi cuaderno
E1 Junta Arduino

Arduino Nano 3.0

1 5V Al cuaderno
E8, E9 Resistor

220 ohmios

2 SMD Al cuaderno
E6 Diodo emisor de luz

AL102G

1 rojo Al cuaderno
E7 Diodo emisor de luz

AL307G

1 Verde Al cuaderno
E3 pantalla LCDCon interfaz I2C1 Luz de fondo verde Al cuaderno
E5 ServoSG901 180 grados Al cuaderno
E2 Zumbador5V1 Bu Al cuaderno
E4 Teclado4x41 Matriz Al cuaderno
No Tablero de circuitos640 puntos1 Sin soldaduras

El otro día estaba viendo la película "The New Spider-Man" y, en una escena, Peter Parker abre y cierra remotamente la puerta de su computadora portátil. Tan pronto como vi esto, inmediatamente me di cuenta de que necesitaba una cerradura electrónica en la puerta principal.

Después de ordenar un poco, armé un modelo funcional de una cerradura inteligente. En este artículo te diré cómo lo armé.

Paso 1: Lista de materiales





Para construir una cerradura electrónica en Arduino, necesitará los siguientes materiales:

Electrónica:

  • Adaptador de pared de 5V

Componentes:

  • 6 tornillos de cierre
  • cartulina
  • alambres

Herramientas:

  • soldador
  • pistola de pegamento
  • perforar
  • perforar
  • taladro guía
  • cuchillo de papelería
  • computadora con Arduino IDE

Paso 2: cómo funciona el castillo

La idea es que podría abrir o cerrar la puerta sin una llave, e incluso sin tener que abrirla. Pero esta es solo la idea principal, porque aún puede agregar un sensor de detonación para que responda a una detonación especial, ¡o puede agregar un sistema de reconocimiento de voz!

La palanca servo conectada al pestillo lo cerrará (a 0 °) y lo abrirá (a 60 °), utilizando los comandos recibidos a través del módulo Bluetooth.

Paso 3: diagrama de cableado


Primero conectemos el servo a la placa Arduino (quiero señalar que aunque tengo una placa Arduino Nano, el diseño del pin en la placa Uno es exactamente el mismo).

  • el cable marrón del servoaccionamiento está conectado a tierra, lo conectamos a tierra en el Arduino
  • el cable rojo es un plus, lo conectamos al conector de 5V en el Arduino
  • el cable naranja es la salida de la fuente del servo, lo conectamos al noveno pin del Arduino

Le aconsejo que verifique el funcionamiento del servo antes de continuar con el montaje. Para hacer esto, en el programa Arduino IDE, seleccione Barrido en los ejemplos. Después de asegurarnos de que el servo funciona, podemos conectar el módulo Bluetooth. Debe conectar el pin rx del módulo Bluetooth al pin tx de Arduino y el pin tx del módulo al pin rx de Arduino. ¡Pero no lo hagas todavía! Cuando se sueldan estas conexiones, ya no podrá descargar ningún código en el Arduino, por lo que primero descargue todos sus códigos y solo luego suelde las conexiones.

Aquí está el diagrama de conexión del módulo y el microcontrolador:

  • Módulo Rx - Tx Arduino Boards
  • Módulo Tx - placa Rx
  • Módulo Vcc (terminal positivo) - placa Arduino 3.3v
  • Conexión a tierra a tierra (conexión a tierra con conexión a tierra)

Si la explicación no le parece clara, siga el diagrama de cableado proporcionado.

Paso 4: prueba

Ahora que tenemos todas las partes de trabajo, asegurémonos de que el servo pueda mover el perno. Antes de montar el pestillo en la puerta, recogí una muestra de prueba para asegurarme de que el servo sea lo suficientemente potente. Al principio me pareció que mi servo era débil y agregué una gota de aceite al pestillo, después de eso todo funcionó bien. Es muy importante que el mecanismo se deslice bien, de lo contrario corre el riesgo de quedar encerrado en su habitación.

Paso 5: carcasa para componentes eléctricos



Decidí colocar solo el controlador y el módulo Bluetooth en el estuche, y dejar el servoaccionamiento afuera. Para hacer esto, en un pedazo de cartón delineamos el contorno de la placa Arduino Nano y agregamos 1 cm de espacio alrededor del perímetro y lo recortamos. Después de eso, también recortamos cinco lados más del caso. En la pared frontal, deberá cortar un orificio para el cable de alimentación del controlador.

Dimensiones de los lados de la caja:

  • Inferior - 7.5x4 cm
  • Cubierta - 7.5x4 cm
  • Pared lateral izquierda - 7.5x4 cm
  • Pared lateral derecha - 7.5x4 cm
  • Pared frontal: 4x4 cm (con una ranura para el cable de alimentación)
  • Pared posterior - 4x4 cm

Paso 6: Solicitud

Para controlar el controlador, necesita un dispositivo en Android o Windows con Bluetooth incorporado. No tuve la oportunidad de probar la aplicación en dispositivos Apple, tal vez se necesitarán algunos controladores.

Estoy seguro de que algunos de ustedes tienen la oportunidad de verificar esto. Para Android, descargue la aplicación Terminal Bluetooth, para Windows, descargue TeraTerm. Luego, debe conectar el módulo al teléfono inteligente, el nombre debe ser linvor, la contraseña es 0000 o 1234. Tan pronto como se establezca el emparejamiento, abra la aplicación instalada, vaya a las opciones y seleccione "Establecer conexión (insegura)". Ahora su teléfono inteligente es un monitor de interfaz en serie Arduino, es decir, puede intercambiar datos con el controlador.

Si ingresa 0, la puerta se cierra y aparece el mensaje "La puerta está cerrada" en la pantalla del teléfono inteligente.
  Si ingresa 1, verá cómo se abre la puerta y aparece el mensaje "La puerta está abierta" en la pantalla.
  En Windows, el proceso es el mismo, excepto que necesita instalar la aplicación TeraTerm.

Paso 7: instale el pestillo


Primero debe conectar el servo al pestillo. Para hacer esto, corte los enchufes de los orificios de montaje de la caja de la unidad. Si colocamos el servo, los agujeros de montaje deben estar al ras con el pestillo. Luego, debe colocar la palanca del servo en la ranura del pestillo, donde estaba la manija del pestillo. Verifique cómo camina la cerradura en el caso. Si todo es normal, fije la palanca del servo con pegamento.

Ahora necesita perforar los agujeros de guía de la puerta para los tornillos. Para hacer esto, coloque el pestillo en la puerta y use un lápiz para marcar los agujeros para los tornillos en la hoja de la puerta. Taladre agujeros en los puntos marcados para tornillos de aproximadamente 2,5 cm de profundidad. Fije el pestillo y fíjelo con los tornillos. Verifique la función del servo nuevamente.

Paso 8: Poder


Para completar el dispositivo, necesitará una fuente de alimentación, un cable y un enchufe mini-usb para conectarse al Arduino.
Conecte el pin de tierra de la fuente de alimentación al pin de tierra del mini puerto usb, conecte el cable rojo al cable rojo del mini puerto usb, luego tire del cable desde la cerradura hasta la bisagra de la puerta y desde allí se extienda hasta el tomacorriente.

Paso 9: Código

   #incluye Servo myservo; int pos \u003d 0; int estado; bandera int \u003d 0; void setup () (myservo.attach (9); Serial.begin (9600); myservo.write (60); delay (1000);) void loop () (if (Serial.available ()\u003e 0) (state \u003d Serial.read (); flag \u003d 0;) // si el estado es "0", el motor de CC se apagará si (state \u003d\u003d "0") (myservo.write (8); delay (1000); Serial. println ("Puerta bloqueada");) si if (estado \u003d\u003d "1") (myservo.write (55); retraso (1000); Serial.println ("Puerta desbloqueada");))

Paso 10: Castillo con base en Arduino terminado

Disfruta de tu castillo con control remoto y no olvides "accidentalmente" encerrar a tus amigos en la habitación.

Se le pidió al canal anfitrión de youtube "AlexGyver" que hiciera una cerradura electrónica de bricolaje. Bienvenido a la serie de videos sobre cerraduras electrónicas en arduino. En términos generales, el maestro explicará la idea.

Hay varias opciones para crear un sistema de bloqueo electrónico. Se utiliza con mayor frecuencia para cerrar puertas y cajones, armarios. Y también para crear cachés y cajas fuertes secretas. Por lo tanto, debe hacer un diseño con el que sea conveniente trabajar y puede mostrar de manera clara y detallada el dispositivo del sistema desde adentro hacia afuera. Por lo tanto, decidí hacer un marco con una puerta. Para hacer esto, necesita una viga cuadrada de 30 x 30. Contrachapado de 10 mm. Bisagras de puerta. Inicialmente, quería hacer una caja de madera contrachapada, pero recordé que todo estaba lleno de repuestos en la habitación. No hay ningún lugar para poner esa caja. Por lo tanto, se realizará un diseño. Si alguien quiere configurar una cerradura electrónica, luego, mirando el diseño, puede repetir todo fácilmente.

Todo lo que necesitas para el castillo se puede encontrar en esta tienda china.

El objetivo es desarrollar los circuitos y firmware más eficientes para cerraduras electrónicas. Puede usar estos resultados para instalar estos sistemas en sus puertas, cajones, gabinetes y escondites.

La puerta esta lista. Ahora necesita descubrir cómo abrir y cerrar electrónicamente. Para estos fines, es adecuado un potente corte solenoidal con aliexpress (enlace a la tienda anterior). Si aplica salidas de voltaje, se abrirá. La resistencia de la bobina es de casi 12 ohmios, por lo que a un voltaje de 12 voltios la bobina comerá aproximadamente 1 amperio. Una batería de litio y un módulo de refuerzo pueden hacer esto. Nos ajustamos al voltaje apropiado. Aunque puedes y un poco más. El diablo está montado en el lado interno de la puerta a una distancia para no aferrarse al borde y podría golpearse. El diablo debería ser la contraparte en forma de caja de metal. Usarlo sin esto es inconveniente e incorrecto. Tendremos que dar un paso, al menos se creó la apariencia de funcionamiento normal.

En modo inactivo, el diafragma se abre normalmente, es decir, si hay una manija en la puerta, dale un pulso, abre la puerta por la manija. Pero si surge, este método ya no es adecuado. El convertidor elevador no puede manejar la carga. Para abrir las puertas accionadas por resorte, deberá usar baterías grandes y un convertidor más potente. O una fuente de alimentación de red y obstaculizar la autonomía del sistema. Las tiendas chinas tienen grandes diablos. Son adecuados para cajas. La alimentación se puede suministrar utilizando un relé o un transistor mosfet, o un interruptor de alimentación en el mismo transistor. Una opción más interesante y menos costosa es un servo conectado a una biela con cualquier elemento de bloqueo: un perno o una válvula más seria. También puede necesitar un trozo de aguja de tejer de acero, que actúa como una biela. Tal sistema no necesita una gran corriente. Pero ocupa más espacio y una lógica de gestión más complicada.

Hay dos tipos de servos. Pequeño débil y grande de gran alcance, que se puede empujar con seguridad en los agujeros en los pasadores de metal serios. Ambas opciones mostradas funcionan tanto en puertas como en cajones. Tendrá que jugar con la caja, haciendo un agujero en la pared extraíble.

La segunda parte de

Arduino es el mejor sistema para copiar cualquier equipo. La mayoría de las ideas no hubieran sido posibles sin ella. Durante mucho tiempo ha habido una idea: crear una cerradura de combinación especial para arduino. Para abrirlo, debe mantener presionada una tecla determinada. En este caso, el bloqueo no debe abrirse, incluso si conoce el botón correcto. Para abrirlo, es necesario soportar ciertos intervalos utilizando la memoria muscular. Tal criminal no podrá cometer. Pero esto es solo una teoría.

Para ensamblarlo, debe usar un dispositivo especial de pulsos rectangulares, así como varios contadores y un montón. Pero el dispositivo terminado tendría grandes dimensiones generales y sería incómodo de usar. Como regla, tales pensamientos persiguen. El primer paso en la realización de un sueño fue la creación de un programa para Arduino. Servirá como cerradura de combinación. Para abrirlo, deberá presionar no una tecla, sino varias, y hacerlo simultáneamente. El esquema final se ve así:

La calidad de imagen no es la mejor, pero la conexión se realiza en el suelo, D3, D5, D7, D9 y D11.

El código se presenta a continuación:

Const int ina \u003d 3; const int inb \u003d 5; const int inc \u003d 9; const int ledPin \u003d 13; int i \u003d 1000; byte a \u003d 0; byte b \u003d 0; byte c \u003d 0; byte d \u003d 0; tiempo largo sin signo \u003d 0; // no olvides todo lo que toma un valor millis () unsigned long temp \u003d 0; // almacenar en byte largo sin signo keya \u003d (0, 0, 0, 0, 0, 0, 0, 0); // códigos en realidad byte keyb \u003d (1, 1, 1, 1, 0, 1, 0, 0); byte keyc \u003d (1, 0, 1, 0, 1, 1, 1, 0); byte k \u003d 0; void setup () (pinMode (ina, INPUT_PULLUP); // 3 entradas conectadas a los botones pinMode (inb, INPUT_PULLUP); pinMode (inc, INPUT_PULLUP); pinMode (ledPin, OUTPUT); // LED incorporado en el 13er pin pinMode (7, OUTPUT); pinMode (11, OUTPUT); digitalWrite (7, LOW); // reemplazar the ground digitalWrite (11, LOW); time \u003d millis (); // necesario para contar el tiempo) void blinktwice () ( // LED de doble parpadeo digitalWrite (ledPin, HIGH); delay (100); digitalWrite (ledPin, LOW); delay (100); digitalWrite (ledPin, HIGH); delay (100); digitalWrite (ledPin, LOW); delay ( 200);) void loop () (if (k \u003d\u003d 0) (blinktwice (); // invitación a ingresar el código) if (k \u003d\u003d 8) (digitalWrite (ledPin, HIGH); delay (3000); k \u003d 0 ;) a \u003d digitalRead (ina); // leer los niveles de señal de los botones - presionado / no presionado b \u003d digitalRead (inb); c \u003d digitalRead (inc); delay (100); // siguiente si - protección contra falsas alarmas, no puede usar if ((digitalRead (ina) \u003d\u003d a) && (digitalRead (inb) \u003d\u003d b) && (digitalRead (inc) \u003d\u003d c)) (if (a \u003d\u003d keya [k]) (if (b \u003d\u003d keyb [k]) (if (c \u003d\u003d keyc [k]) (k ++; )))) if (k \u003d\u003d 1) (if (d \u003d\u003d 0) (time \u003d millis (); d ++;)) temp \u003d millis (); temp \u003d temp - tiempo; if (temp\u003e 10000) (k \u003d 0; d \u003d 0; tiempo \u003d millis ();))

Para evitar preguntas innecesarias sobre el código, se deben aclarar algunos puntos. La función de configuración se utiliza para asignar puertos. La siguiente función es Input_Pullup, que es necesaria para aumentar el voltaje del pin en 5 V. Esto se hace usando una resistencia. Debido a esto, no ocurrirán varios cortocircuitos. Para mayor comodidad, se recomienda utilizar la función blinktwice. En general, al crear varios programas, debe probar otras funciones.

Después de asignar las funciones, la señal se lee desde los puertos. Si se presiona el botón, se indicará con el número 1 y, si no, con 2. A continuación, un análisis de todos los valores. Por ejemplo, apareció una combinación como 0,1,1. Esto significa que la primera tecla está presionada y las otras dos no. Si todos los valores son verdaderos, entonces la condición 8 también es verdadera. Esto se evidencia por un LED encendido en el panel frontal. Luego, debe ingresar un código específico que sirva para abrir la puerta.

Los últimos elementos del código se utilizan para restablecer los valores del contador. Dicha función se realiza si han pasado más de 10 segundos desde la última pulsación de tecla. Sin este código, podría pasar por todas las opciones posibles, aunque hay muchas. Después de crear este dispositivo, debe probarlo. Todavía