Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Cerradura de puerta protegida con contraseña basada en Arduino y Android

Componentes y suministros

Arduino UNO
× 1
Módulo Bluetooth HC-05
× 1
Servos (Tower Pro MG996R)
× 1

Herramientas y máquinas necesarias

Impresora 3D (genérica)

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Introducción

Esta cerradura inteligente es la cerradura segura, simple y fácil de administrar de su hogar. Esta cerradura no necesita llaves y la cerradura se adjunta dentro de la puerta y puede controlarla desde el exterior de la puerta mediante Bluetooth. Como la cerradura está dentro de la puerta, un ladrón no puede romper la puerta. Se requiere una aplicación de Android para abrir y cerrar la cerradura y explicaré los detalles de cómo puede desarrollar una aplicación de Android en la parte posterior del tutorial. Se envía una contraseña a la cerradura usando la aplicación de Android y si la contraseña coincide con su contraseña de bloqueo preestablecido, la cerradura se abrirá y se enviará un comentario a su teléfono como si estuviera abierta.

Diseño 3D de cerradura de puerta

Todas las partes de la cerradura están impresas en 3D. Me gustaría agradecer al usuario de Thingiverse ridercz por su bonito diseño. Él diseñó y publicó esta cerradura de puerta basada en servo en thingiverse.com. Todos los archivos excepto Rack_Holder.stl se toman de su diseño. Puede descargar los archivos desde abajo o desde Thingiverse.com.

Algunos archivos tienen la versión LT. La versión ligera requiere menos PLA en comparación con la versión normal y tiene menos resistencia. Imprimí la versión LT y funcionaba bien. Usé Anet A8 para imprimir todas las piezas. Se adjuntan fotos de las piezas impresas.

Ensamblaje de piezas impresas en 3D

Reúna todas las piezas impresas una a una como se muestra en las fotos. También puede seguir las instrucciones en video adjuntas en el primer paso. Después de ensamblar, use cuatro tornillos para fijar firmemente todas las piezas.

Programa Arduino para cerradura de puerta protegida con contraseña de control Bluetooth

El código para la cerradura de puerta inteligente con control bluetooth es muy simple. He diseñado la aplicación de Android de modo que envíe un comando con la contraseña. En realidad, configuro dos comandos, uno es "OPEN =" y otro es "CLOSE =" y la contraseña puede contener cualquier dígito, posterior o símbolo o combinación de ellos como desee. En la aplicación utilicé dos botones, uno para abrir la puerta y otro para cerrarla. Cuando se da la contraseña al cuadro de contraseña y se hace clic en el botón de abrir, la aplicación junta el comando "OPEN =" con la contraseña y lo envía a arduino. Agrego el signo '=' con el comando para que separe el comando y la contraseña usando este '='. Después de recibir la cadena del teléfono, el programa arduino separa el comando y la contraseña de la cadena de recepción y los guarda en dos variables separadas. Luego verifique la contraseña primero, si la contraseña coincide con la contraseña guardada, abra la puerta para el comando "ABRIR" y cierre la puerta para el comando "CERRAR". "=" ayuda a separar el comando y la contraseña. El boceto completo de arduino se muestra a continuación.

Esquema

La conexión entre los componentes es muy sencilla. Primero, conecte el módulo Bluetooth HC-05 al Arduino. Tenga en cuenta el esquema. El pin TX de la placa Arduino está conectado al pin RX del módulo Bluetooth y el pin RX del Arduino está conectado al pin TX del módulo Bluetooth.

Colocación de la cerradura de la puerta

Espero que hayas programado tu placa Arduino con el boceto adjunto en el paso anterior y que ya hayas probado toda la conexión según el esquema. Si completó todos los pasos, entonces es el momento de colocar la cerradura en el lugar apropiado de la puerta. Primero, coloque la cerradura con cuatro tornillos. Luego, fije el módulo Bluetooth en el lugar correcto de la cerradura y agregue un poco de pegamento caliente para ajustar firmemente el módulo con la cerradura. Después de eso, coloque la placa Arduino en la parte inferior de la cerradura y conecte todos los cables de acuerdo con el esquema. Después de colocar la cerradura y hacer las conexiones, debe encender la cerradura. Usé un adaptador de pared de 5V, 1A para proporcionar energía al circuito.

Desarrollo de aplicaciones de Android para cerraduras de puertas protegidas con contraseña

Le mostraré cómo desarrollar una aplicación de Android Bluetooth usando MIT App Inventor. Estoy usando App Inventor porque no requiere codificación ni instalación de software. Solo necesitas una cuenta de Google. Vaya a http://ai2.appinventor.mit.edu/, le pedirá que inicie sesión con la cuenta de Google.

Inicie sesión en App Inventor usando gmail y siga los pasos a continuación:

  • i. Aceptar términos y condiciones imagen 1
  • ii. Haga clic en "realizar la encuesta más tarde" y luego en "continuar" para descartar la imagen de la pantalla de presentación 2, 3
  • iii. Iniciar un nuevo proyecto (¡sin espacios!) Imagen 4
  • iv. Nombre el proyecto "BluetoothControlDoorLock" (¡sin espacios!) Imagen 5

Ahora está en el Diseñador, donde diseña la "interfaz de usuario" de su aplicación (imagen 6). La ventana del diseñador es donde puede diseñar la apariencia de su aplicación y especificar qué funcionalidades debe tener. Usted elige cosas para la interfaz de usuario, como botones, imagen, etiqueta, cuadros de texto y funcionalidades como texto a voz, Bluetooth, sensores y GPS.

Ahora, siga la figura 7 y agregue un Selector de lista al visor. Cambie el nombre a "Conectar a dispositivo Bluetooth" (imagen 8). Agregue una etiqueta, un cuadro de texto de contraseña y dos botones que se muestran en la figura 10. Cambie las propiedades de texto de los componentes como "Ingresar contraseña", "Abrir puerta" y "Cerrar puerta", respectivamente. La interfaz de usuario final debería verse como en la figura 11. Ahora agregue un cliente Bluetooth al visor. Es un componente invisible y no tiene interfaz de usuario. Ver imagen 12.

Cambiar al editor de bloques

¡Es hora de decirle a tu aplicación qué hacer! Haga clic en "Bloques" para pasar al Editor de bloques (imagen 13). Piense en los botones Designer y Blocks como pestañas:los usa para moverse hacia adelante y hacia atrás entre las dos áreas de App Inventor. El editor de bloques es donde programa el comportamiento de su aplicación. Hay bloques integrados que manejan cosas como matemáticas, lógica y texto. Debajo están los bloques que van con cada uno de los componentes de su aplicación. Para que los bloques de un determinado componente aparezcan en el Editor de bloques, primero debe agregar ese componente a su aplicación a través del Diseñador.

Vamos a diseñar bloques para List Picker. El Selector de listas es un elemento de la interfaz de usuario cuando se hace clic en él, muestra una lista de los elementos correspondientes, aquí está el dispositivo Bluetooth emparejado. Tenemos que agregar dos bloques ListPicker.BeforePicking y ListPicker.AfterPicking (imagen 14). Los bloques completos se muestran en las figuras 18 y 19.

Crear archivo apk

Nuestro diseño está completo, ahora necesitamos crear el archivo apk para nuestro teléfono Android. Haga clic para crear el menú y seleccione "Aplicación (guardar .apk en mi computadora)". Esperar un minuto. Se descargará un archivo apk en su carpeta de descarga predeterminada. Instálalo y úsalo.

Una aplicación para Android con más funciones

En el paso anterior, le mostré cómo desarrollar una aplicación bluetooth básica en App Inventor. Pero esa aplicación no es tan fácil de usar. No le mostrará ningún mensaje, ya sea que su puerta esté abierta o cerrada o que el bluetooth no se pueda conectar por algún error. Adjunto aquí una aplicación más avanzada para nuestro proyecto.

Cuando ejecute su aplicación, esta aplicación verifique que su radio bluetooth esté habilitada o no, si no está habilitada, aparecerá un cuadro de diálogo de habilitación de bluetooth. Haga clic en Sí para encender su radio bluetooth. Luego empareje el dispositivo usando el botón de emparejar dispositivo. Luego haga clic para conectar el botón, si se conecta correctamente a cualquier dispositivo, la aplicación muestra la dirección MAC y el nombre del dispositivo conectado. Ingrese la contraseña en el cuadro de contraseña y luego haga clic en el botón abrir puerta, si ingresó la contraseña correcta, la puerta se abrirá y la aplicación le mostrará un mensaje de que su puerta ahora está abierta. Luego ingrese la contraseña nuevamente si desea cerrar la puerta. Si proporciona la contraseña incorrecta, la aplicación mostrará un mensaje de contraseña incorrecta.

Se adjunta el archivo fuente completo de App Inventor (BTcontrol.aia). Si no desea crear su propia aplicación o modificarla, simplemente descargue BTcontrol.apk e instálelo en su teléfono Android.

También puede descargarlo de Google Play Store usando el enlace:

https://play.google.com/store/apps/details?id=appinventor.ai_khairul_uapstu.BTcontrol&hl=en

Para modificar la fuente, haga clic en el menú "Proyectos" y seleccione "Importar proyecto (.aia) de mi computadora" que se muestra en la figura 24 y busque el archivo BTcontrol.aia desde su computadora. Después de importar, puede modificarlo fácilmente.

Si desea saber más sobre el desarrollo de aplicaciones de Android con App Inventor, navegue:http://appinventor.mit.edu/explore/ai2/tutorials.html. También puede probar http://meta-guide.com/videography/100-best-appinventor-videos/

Código

  • Bosquejo de Arduino
Arduino Sketch Arduino
 #include  Servo myservo; // crea un objeto servo para controlar un servoString inputString =""; String command =""; String value =""; String password ="arduPi"; // esta es la contraseña para abrir y cerrar la puerta // puede establecer cualquier contraseña que desee usando dígitos y símbolos boolean stringComplete =false; void setup () {// iniciar la conexión en serie Serial.begin (9600); // la velocidad en baudios es 9600 debe coincidir con bluetooth // La función String reserve () le permite asignar un búfer en la memoria para manipular cadenas. inputString.reserve (50); // reserva 50 bytes en la memoria para guardarlos para la manipulación de cadenas command.reserve (50); value.reserve (50); cadena booleanaOK =falso; myservo.attach (9); // adjunta el servo en el pin 9 al objeto servo} void loop () {// si arduino recibe un carácter de terminación de cadena como \ n stringComplete se establecerá en verdadero if (stringComplete) {//Serial.println(inputString); retraso (100); // identificó la posición de '=' en la cadena y estableció su índice en pos variable int pos =inputString.indexOf ('='); // valor de la variable pos> o =0 significa '=' presente en la cadena recibida. if (pos> -1) {// función de subcadena (inicio, parada) corta una porción específica de la cadena de principio a fin // aquí el comando será la parte de la cadena recibida hasta '=' // dejar que la cadena recibida esté abierta =test123 // entonces el comando es 'abrir' command =inputString.substring (0, pos); // el valor será de after =to newline command // para el valor de ejemplo anterior es test123 // simplemente ignoramos el '=' tomando el primer parámetro de la subcadena como 'pos + 1' // estamos usando '=' como separador entre comando y vale // sin '=' se puede usar cualquier otro carácter // estamos usando =men ya que nuestro comando o contraseña no debe contener ningún '=', de lo contrario causará error value =inputString.substring (pos + 1 , inputString.length () - 1); // extraer comando hasta \ n excluido //Serial.println(comando); //Serial.println(value); // contraseña.compareTo (valor) compara entre contraseña tring y cadena de valor, si coincide, devuelve 0 if (! contraseña.compareTo (valor) &&(comando =="OPEN")) {// si la contraseña coincide y el comando es 'ABRIR 'que la puerta debería abrir openDoor (); // llamar a la función openDoor () Serial.println ("OPEN"); // envió retroalimentación abierta al retraso del teléfono (100); } else if (! password.compareTo (value) &&(command =="CLOSE")) {// si la contraseña coincide y el comando es 'CLOSE' entonces la puerta debería cerrar closeDoor (); Serial.println ("CERRAR"); // envió la cadena "CLOSE" al teléfono delay (100); } else if (password.compareTo (value)) {// si la contraseña no coincide, se envió un comentario incorrecto al teléfono Serial.println ("INCORRECTO"); retraso (100); }} // limpia la cadena para la próxima iteración inputString =""; stringComplete =falso; }} void serialEvent () {while (Serial.available ()) {// obtener el nuevo byte:char inChar =(char) Serial.read (); //Serial.write(inChar); // agregarlo a inputString:inputString + =inChar; // si el carácter entrante es una nueva línea o un retorno de carro, establezca una bandera // para que el bucle principal pueda hacer algo al respecto:if (inChar =='\ n' || inChar =='\ r') {stringComplete =verdadero; }}} void openDoor () {myservo.write (0); retraso (100); } void closeDoor () {myservo.write (65); retraso (100); } 

Piezas y carcasas personalizadas

Thingiverse
https://www.thingiverse.com/thing:2350856 Archivo CAD en thingiverse.com

Esquemas

cerradura de puerta_android_source_PDi5PbxDwC.aia door-lock_android_app_K05l3Csr61.apk

Proceso de manufactura

  1. Bóveda del banco
  2. Canal y esclusa
  3. Tutorial de bloqueo RFID de Arduino
  4. Control remoto universal usando Arduino, 1Sheeld y Android
  5. Animación LCD y juegos
  6. Controlar un robot Roomba con Arduino y un dispositivo Android
  7. Cerradura de puerta basada en contraseña
  8. Python3 y comunicación Arduino
  9. Autómatas celulares basados ​​en Arduino y OLED
  10. Contador de RPM basado en Arduino con un algoritmo nuevo y más rápido
  11. Cerradura de puerta inteligente usando la página de inicio de sesión de WiFi de Arduino y ESP8266