loader image

COVID-19 Dispensador de jabón automático con Arduino

Arduino Proyectos 20

¡Una forma simple pero efectiva de combatir COVID-19 con lavado de manos y santificación de manos, sin tocar la botella!

Material

La siguiente lista muestra los materiales necesarios para construir tu propio dispensador de jabón para manos automático con Arduino.

Elementos y componentes

  • Arduino Nano R3

    Sensor ultrasónico HC-SR04 (o sensor infrarrojo)

    Jumpers hembra-hembra

    Servomotor MF-06

    Caja de plástico

    Alambre de cobre (30 cm)

    Jabón o gel antibacterial en botella dispensadora

  • Software, aplicaciones y servicios online

  • Arduino IDE

  • Herramientas y máquinas de fabricación

  • Tornillo o clavo

    Pistola de silicón (genérica)

    Computadora o laptop

    Marcador

    Cúter


  • Selección de componentes

    Sensor

    Necesitaremos un sensor para detectar nuestra proximidad o presencia, que básicamente actuará como un interruptor sin necesidad de contacto para este sistema.

    Tenemos dos opciones aquí, es decir, podemos usar el módulo de sensor infrarrojo o el módulo de sensor ultrasónico.

    Podemos usar el módulo de sensor infrarrojo, que es básicamente una opción barata y eficiente, pero a veces inexacta.

    O podemos usar el sensor ultrasónico HC-SR04, que es bastante preciso por encima del rango de 2 cm, y una opción ligeramente costosa. Para este tutorial usaremos el sensor ultrasónico para una mejor precisión.

    Motor

    La mejor opción será usar un Servomotor con engranajes metálicos para mayor torque. Evitaremos el uso de microbombas, ya que deben insertarse en el contenedor, lo que crea un punto de contaminación. Por lo tanto, utilizar un mecanismo externo con ayuda de un servo es una buena elección.

    Microcontrolador

    Para la construcción de este proyecto necesitaremos un microcontrolador para controlar la entrada y la salida, calcular la distancia, detectar el disparador del sensor y procesar la salida en forma de movimiento del servomotor.

    Podemos usar cualquier tipo de Arduino, aquí usaremos un Arduino Nano para nuestro dispensador automático.

    Conexión

    ¡Las conexiones para este proyecto de dispensador para manos sin contacto son muy simples!

    Diagrama de conexión

    Conexión Sensor-Arduino

    • Trig a D10
    • Echo a D11
    • Vcc a 5 volts (Arduino)
    • GND a GND
    Aprende también sobre:  Programación Arduino

    Conexión Servomotor-Arduino

    • Señal a D9
    • Vcc a Vin
    • GND a GND

    Montaje

    1.- Acopla el servo a la base.

    El primer paso en el montaje mecánico es unir el servomotor a una superficie rígida dentro de la caja, usando silicón caliente.

    Tenga cuidado al usar la pistola de silicón caliente.

    2.- Pasa el cable de cobre a través del brazo del servo.

    Pase el cable de cobre a través del servomotor utilizando los orificios del brazo de fijación. Pasa el cable al menos a través de 2 orificios para garantizar que se logre la tensión adecuada. Utilizar el brazo de fijación circular sería la mejor opción, ya que uno recto puede quedar atrapado dentro.

    3.- Agrega un pedazo de barra de silicón con un orificio en el medio al cable.

    Corte un trozo de barra de silicón de aproximadamente 2 cm de largo y haga un agujero en el medio, pase el alambre de cobre a través del silicón.

    Esto ayudará a aumentar el área de superficie en el punto de contacto del bote de jabón o gel antibacterial.

    4.- Fija el cable con un tornillo.

    Conecte el segundo extremo del cable a otra superficie rígida (cara opuesta del servomotor) usando un tornillo o un clavo. El que se usa en este proyecto es una opción de tornillo. Este tornillo nos permitirá ajustar la tensión o quitar la botella para rellenarla.

    Código

    El código es muy simple de entender, utilizamos la librería de servos y definimos configuraciones y variables básicas.

    El código principal calcula la distancia en centímetros y si la distancia es inferior a 10 cm, el servomotor realiza un movimiento de barrido para liberar el líquido.

    Puedes encontrar la librería para Servo aquí.

    const int servo = 9;     //define 'Servo Signal Pin'
    const int trigPin = 10;  //define 'Trigger Pin'
    const int echoPin = 11;  //define 'Echo Pin'
    
    // define variables
    long duration;
    int distance;
    
    #include <Servo.h>
    
    Servo myservo;    // Crea una variable para controlar el servo
    
    int pos = 0;    // Variable para almacenar la posicion del servo
    
    void setup() {
      pinMode(trigPin, OUTPUT);    // Establece a 'trigPin' como Salida
      pinMode(echoPin, INPUT);    // Establece a 'echoPin' como Entrada
      myservo.attach(servo);     // Acopla al servo en el pin 9  
      myservo.write(0);         // Sets Servo to initially 0 degrees 
      Serial.begin(9600);      // Comienza la comunicacion serial
    }
    
    void loop() {
        //
        digitalWrite(trigPin, LOW);
        delayMicroseconds(2);
        
        // Establece a 'trigPin' en estado alto (HIGH) por 10 microsegundos
        digitalWrite(trigPin, HIGH);
        delayMicroseconds(10);
        digitalWrite(trigPin, LOW);
        
        // Lectura del 'echoPin', retorna el tiempo de viaje de la onda ultrasonica en microsegundos
        duration = pulseIn(echoPin, HIGH);
        
        // Calculando la distancia
          distance= duration*0.034/2;
        
        // Imprime la distancia en el monitor serial
        Serial.print("Distance: ");
        Serial.println(distance);
        
        //Servo    
        if(distance<10)
        { //Revision: que la distancia sea menos que 10cm 
           myservo.write(45); // Establece el Servo en etapas de 0 a 180 grados para que el jabon no salga 
           delay(100);
           myservo.write(90);
           delay(100);
            myservo.write(135);
           delay(100);
           myservo.write(120); //Ajuste que tan lejos quiere que llegue el servo
           delay(1000);
           myservo.write(00); // Reinicia el servo a 0 Degrees
           delay(2500);   //Retrasa la proxima vez que alguien pueda conseguir jabon en milisegundos
        }                 
    }

    Ajustes

    Una vez descargado el código, sería bueno probar y ajustar este proyecto antes de completar el gabinete.

    En esta prueba, podemos ver claramente que cuando nuestra mano se coloca por encima del sensor ultrasónico, 10 cm, se activa el servomotor y se dispensa alcohol con alcohol.

    Aprende también sobre:  Código y conexión del sensor ultrasónico HC-SR04 con Arduino

    Puede modificar el código para cambiar la distancia en la que se activa el ultrasónico. Una vez que que esté satisfecho con la distancia del sensor y el proyecto funciona correctamente, podemos avanzar al siguiente paso.


    Completar base

    Una vez que nuestro proyecto parece estar funcionando, es hora de completar el gabinete.

    Sigue los siguientes pasos para completarlo:

    1. Mide las dimensiones (diámetro) para los agujeros del sensor ultrasónico y la botella.
    2. Haz una ranura para el alambre de cobre con espacio adicional para el giro.
    3. Marca con una pluma o plumón todos los agujeros de corte.
    4. Usa un exacto o un taladro para cortar los agujeros.
    5. Arregla y une todo con la ayuda de silicona caliente.

    ¡Ahora solo queda colocar todo en su lugar!

    ¡TODO LISTO! EL PROYECTO DE DESINFECTANTE DE MANOS AUTOMÁTICO (DISPENSADOR AUTOMÁTICO DE JABÓN) ESTÁ TERMINADO.


    Submit your review
    1
    2
    3
    4
    5
    Submit
         
    Cancel

    Create your own review

     

    20 comentarios

    1. Juliana Galeote dice:

      hola, una pregunta ¿se necesita el Arduino uno?, por que solo tengo los materiales que esta en su articulo

    2. Anhuar Uc dice:

      Oye hijo estamos haciendo el mismo proyecto pero estamos teniendo un problema, ya que nuestro servomotor se queda encendido y no se apaga, pero si funciona cuando le ponemos la mano. El problema no se apaga.

    3. Sebastian Alvarez dice:

      Disculpe una pregunta necesita batería o algo para que funcione?

    4. Sebastian Alvarez dice:

      disculpe me salto un error al momento de subir :
      el programa Arduino:1.8.16 (Windows 10), Tarjeta:»Arduino Uno»
      El Sketch usa 4288 bytes (13%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
      Las variables Globales usan 241 bytes (11%) de la memoria dinámica, dejando 1807 bytes para las variables locales. El máximo es 2048 bytes.
      Puerto serie no seleccionado.
      Este informe podría contener más información con
      «Mostrar salida detallada durante la compilación»
      opción habilitada en Archivo -> Preferencias.
      me aparecio asi hay alguna solucion ???

    5. Erendira dice:

      ¿Puede utilizarse un Arduino Uno?

    6. Eren dice:

      Se puede usar tambien :Arduino Servomotor Futaba S3003

    7. Sebastian Cardozo Medina dice:

      Podría usar un micro servo 9g? Saludos.

    8. Jerónimo Suárez Martínez dice:

      Que batería usó para el funcionamiento? O como se energizó el circuito? y a donde irían estas conexiones. Gracias

    9. Iria dice:

      Hola, me puede precisar qué cable va a dónde porfavor 🙂

    10. elguti dice:

      Muchas gracias no encontraba codigo para hacer una igual saludos.

    11. elizabeth dice:

      para este proyecto cual seria la fuente de alimentación adecuada

    12. Jaqueline Arellano dice:

      De cuanta capacidad puede ser el gel antibacterial?

    13. david dice:

      se podria usar un sensor de movimiento o una fotocelta basica

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada.

    Deja una Review

    Submit your review
    1
    2
    3
    4
    5
    Submit
         
    Cancel

    Create your own review