Castillo de Kodu en Arduinov: conexión, circuitos, institución

Muchas personas están pensando seriamente en instalar un bloqueo de código en sus puertas, que se puede abrir sin una llave. Por supuesto, puede comprar un candado prefabricado e instalarlo, pero el costo en este caso será bastante alto. Y si habla de confiabilidad, entonces puede encontrar opciones y mejores. En este artículo, le informaremos sobre el bloqueo de código en los Ardouins y hablaremos sobre cómo conectarlo.

Castillo de Kodovaya en Arduinov: el principio de trabajo

De hecho, el principio de su funcionamiento es bastante simple, en el exterior de la puerta hay un teclado con el que se ingresa la contraseña. En el exterior de la puerta hay otra construcción de cerradura. Si necesita salir de la habitación, debe presionar "+", ingrese la contraseña para la entrada. La puerta se cierra por la ayuda del alemán, lo que garantiza la fiabilidad del cierre.

Lo que se requiere para el montaje

La recopilación de un castillo de este tipo es problemática, porque es necesario encontrar todos los componentes que no siempre se venden en las tiendas normales. Entonces, para la compilación estándar necesitamos:

  • Un haz de cables para una cabeza de haz, 30 piezas será más que suficiente.
  • A continuación, debe comprar dos enchufes y enchufes RJ45.
  • L293D.
  • Actuador del castillo central. Se puede utilizar con VAZ: es óptimo para el precio y la funcionalidad.
  • Girón - tú puedesTomar desde la ventana vieja, no hay dificultad aquí.
  • Todavía necesitamos un concentrador D-LINK de 12 voltios.
  • Control remoto desde la alarma de seguridad, se puede encontrar en todas las tiendas con electrónica.
  • Arduino protoshield + breadboard.
  • Arduino UNO.
  • Además, no lo hagas sin un spinning. Debe ser grande en tamaño para no cometer errores al elegir, vea la foto a continuación.
  • Como regla general, para adquirir todos estos detalles, deberá pagar entre 40 y 50 dólares. La cantidad es pequeña, pero depende de usted forzar o instalar un modelo de trabajo. Para instalar y conectarse entre sí, tendrá que pasar varias horas, siempre y cuando lo haga todo bien.

    Programación de bloqueo de código

    Recomendamos usar el código del sitio oficial para desarrolladores, se ve así:

    #include & lt; Password.h & gt;

    #include & lt; Keypad.h & gt;

  • Contraseña contraseña = Contraseña («0000»);
  • constbyte ROWS = 4;
  • constbyte COLS = 3;
  • charkeys [ROWS] [COLS] = {
  • {
  • '1', '2', '3'}
  • ,
  • {
  • '4', '5', '6'}
  • ,
  • {
  • '7', '8', '9'}
  • ,
  • {
  • '*', '0', '#'}
  • };
  • byte rowPins [ROWS] = {
  • 3, 4, 5, 6};
  • bytes colPins [COLS] = {
  • 7, 8, 9};
  • Teclado del teclado = Teclado (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
  • byte Cerrado = 0;
  • byte Gerkon = 2;
  • byte LedRed = 12;
  • byte LedGreen = 13;
  • byte MotorPin1 = 0;
  • byte MotorPin2 = 1;
  • byte MotorPinGo = 11;
  • programa booleano Modo =falso ;
  • intspeakerPin = 10;
  • voidsetup () {
  • modo de pin (MotorPin1, SALIDA);
  • modo de pin (MotorPin2, SALIDA);
  • pinMode (LedRed, SALIDA);
  • modo de pin (LedGreen, SALIDA);
  • pinMode (speakerPin, OUTPUT);
  • pinMode (Gerkon, ENTRADA);
  • digitalWrite (Gerkon, ALTO);
  • digitalWrite (LedRed, LOW);
  • digitalWrite (LedGreen, LOW);
  • digitalWrite (MotorPin1, LOW);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • addEventListener. (keypadEvent);
  • setDebounceTime
  • ;
  • startupSound ();
  • }
  • voidloop () {
  • tecla clave = getKey ();
  • si (Cerrado == 1) {
  • digitalWrite (LedRed, ALTO);
  • digitalWrite (LedGreen, LOW);
  • }
  • else {
  • digitalWrite (LedRed, LOW);
  • digitalWrite (LedGreen, HIGH);
  • }
  • }
  • voidkeypadEvent (tecla de KeypadEvent) {
  • switch (getState ()) {
  • caso PRESIONADO:
  • interruptor (tecla) {
  • caso '#':
  • guessPassword ();
  • digitalWrite (LedRed, BAJO);
  • ruptura ;
  • caso '*':
  • CloseBolt ();
  • digitalWrite (LedRed, BAJO);
  • digitalWrite (LedGreen, LOW);
  • ruptura ;
  • por defecto:
  • if (key! = NO_KEY) {
  • }
  • añadir (clave);
  • digitalWrite (LedRed, ALTO);
  • analogWrite (speakerPin, 128);
  • ruptura ;
  • }
  • ruptura ;
  • caso LIBERADO:
  • interruptor (tecla) {
  • por defecto:
  • digitalWrite (LedRed, BAJO);
  • analogWrite (speakerPin, 0);
  • ruptura ;
  • }
  • ruptura ;
  • }
  • }
  • voidguessPassword () {
  • if (evaluar ()) {
  • si (Cerrado == 1) {
  • digitalWrite (LedGreen, HIGH);
  • OpenBolt ();
  • digitalWrite (LedGreen, LOW);
  • restablecer ();
  • }
  • }
  • else {
  • digitalWrite (LedGreen, LOW);
  • reiniciar ();
  • errorSound ();
  • }
  • }
  • voidstartupSound ()
  • {
  • int nota = (1/33) * 500000;
  • para (int _ = 0; _ <100000 /nota; _ ++) {
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, LOW);
  • }
  • nota = (1/25) * 500000;
  • para (int _ = 0; _ <100000 /nota; _ ++) {
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, LOW);
  • }
  • nota = (1/26) * 500000;
  • para (int _ = 0; _ <100000 /nota; _ ++) {
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (nota);
  • digitalWrite (speakerPin, LOW);
  • ​​
  • }
  • }
  • voiderrorSound ()
  • int n= 2000;
  • para (int vez = 0; vez <2; vez ++) {
  • para (int _ = 0; _ <30; _ ++) {
  • delayMicrosecondsn);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, LOW);
  • }
  • retraso
  • ;
  • }
  • }
  • voidopenSound ()
  • {
  • int n = 300;
  • para (int vez = 0; vez <3; vez ++) {
  • para (int _ = 0; _ <100; _ ++) {
  • delayMicrosecondsn);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, LOW);
  • }
  • retardo
  • ;
  • }
  • }
  • voidOpenBolt ()
  • {
  • if (Closed == 1) {
  • digitalWrite (MotorPin1, LOW);
  • digitalWrite (MotorPin2, HIGH);
  • digitalWrite (MotorPinGo, HIGH);
  • retardo

    ;

  • digitalWrite (MotorPin1, LOW);

  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • Cerrado = 0;
  • openSound ();
  • }
  • }
  • voidCloseBolt ()
  • {
  • if (Closed == 0) {
  • closeSound1 ();
  • hacer
  • retardo
    ;
  • } while (digitalRead (Gerkon) == 1);
  • retardo (3000);//espera 3 segundos
  • digitalWrite (MotorPin1, HIGH);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, HIGH);
  • retardo

    ;

  • digitalWrite (MotorPin1, LOW);
  • digitalWrite (MotorPin2, LOW);
  • digitalWrite (MotorPinGo, LOW);
  • Cerrado = 1;
  • closeSound2 ();
  • }
  • }
  • voidcloseSound1 ()
  • {
  • int n = 200;
  • para (int vez = 0; vez <2; vez ++) {
  • para (int _ = 0; _ <100; _ ++) {
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, LOW);
  • }
  • retraso
  • ;
  • }
  • }
  • voidcloseSound2 ()
  • {
  • int n = 450;
  • para (int _ = 0; _ <110; _ ++) {
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, HIGH);
  • delayMicroseconds (n);
  • digitalWrite (speakerPin, LOW);
  • }
  • }
  • Proceso de compilación: foto y video

    Primero, mostrémosle algunas fotos sobre cómo recopilarlo e instalarlo.

    Esto parece un bloqueo de código junto con un actuador.

    Conecte la fuente de alimentación.

    Espagnolette, que cubrirá todos nuestros diseños.

    Cómo conectar el código de Arduino: video

    Lea también: cómo ocultar los cables de su computadora.