Imagem-BANNER-DESTAQUE-BLOG dispenser automático alcool em gel

Dispenser automático de álcool em gel 4

Neste post você vai aprender a construir um dispenser automático de álcool em gel utilizando um Arduino, um sensor ultrassônico e um servo motor.

Em tempos que precisamos nos prevenir ao máximo de nos expormos a vírus e bactérias, é sempre bom termos o hábito de higienizarmos as mãos constantemente, não é mesmo? Por isso, esse projeto é um incentivo para que possamos aplicar a cultura maker em hábitos tão essenciais em nosso dia-a-dia como a higienização das mãos.

Dispenser de álcool em gel

Esse projeto basicamente consiste em integrar o sensor ultrassônico e o servo motor ao Arduino para que possamos acionar o dispenser no momento em que aproximarmos as mãos.

No meu ponto de vista, o desafio maior do projeto é a parte mecânica, portanto, não se preocupe em seguir fielmente os passos como eu fiz, pode ser que você pense de uma outra forma, ou possui recursos que podem facilitar a montagem do projeto. O importante é praticar, pensar, criar, agir e no final ter algo funcional.

Se você quiser saber mais sobre sensor ultrassônico e servo motor no Arduino, dê uma olhadinha nos posts aqui do blog:

Material Necessário

Circuito

A ligação deve ser feita como na imagem abaixo, o servo alimentado com 5V, o sensor ultrassônico alimentado com 3.3V, o pino do PWM do servo ligado no pino 9 do Arduino, os pinos Trigger e Echo do sensor ultrassônico ligados nos pinos 12 e 13 respectivamente do Arduino.

A bateria de 9V deve ser ligada em Vin, ou se preferir também pode ser utilizada uma fonte chaveada.

Código

Para esse projeto, criei uma biblioteca chamada Dispenser, que você pode baixar aqui. Descompacte a pasta Dispenser e coloque-a dentro da pasta libraries da IDE do Arduino, ou se estiver usando a IDE do Arduino clique em Sketch->Incluir Biblioteca->Adicionar Biblioteca .zip.

Ao adicionar a biblioteca, será possível carregar também o código de exemplo que coloquei nela, clique em Arquivos->Exemplos->Dispenser->Dispenser.

#include <Dispenser.h>

Dispenser dispenser;        // Cria um objeto Dispenser

void setup()
{
    Serial.begin(9600);
    dispenser.setDistanciaEmCentimetrosParaAcionar(5);    //configura com quantos centímetros deve acionar o dispenser
    dispenser.setPinEcho(13);                             //configura o pino echo do sensor ultrassônico
    dispenser.setPinTrigger(12);                          //configura o pino trigger do sensor ultrassônico
    dispenser.setQuantidadeVezesAcionarDispenser(2);      //configura quantas vezes o dispenser deve ser acionado ao aproximar as mãos
    dispenser.configurarDispenser();                      //inicializa as configurações do dispenser
}

void loop()
{
    //verifica se há presença no sensor ultrasônico
    if (dispenser.temMaosNaFrenteDoDispenser())
    {
        Serial.println("Acionar dispenser!");
        //aciona o dispenser
        dispenser.acionarDispenser();
    }
    delay(500);
}

Acoplando o servo

Para a fixação do servo no dispenser, utilizei madeira MDF com espessura de 8 mm. Então, fiz um furo com serra copo no diâmetro do acionador do dispenser (1 polegada), parafusei o servo motor nessa peça de madeira e a posicionei de modo que o braço do servo ficasse em 90° com o acionador.

Fixação do servo motor no dispenser

Disposição do sensor ultrassônico

Para que o sensor ultrassônico ficasse em uma posição que capturasse a aproximação das mãos e não ficasse pendurado no dispenser, cortei uma garrafa pet com diâmetro próximo ao do dispenser, fixei o sensor nela e coloquei embaixo do dispenser, aí aproveitei para alojar todo o circuito nessa garrafa também.

Funcionamento

Abaixo, uma demonstração do projeto em funcionamento, nessa configuração o servo será acionado toda vez que as mãos estiverem a uma distância de até 5 cm do sensor ultrassônico. Também está configurado para que o servo acione duas vezes ao detectar aproximação.

Essas configurações podem ser alteradas no código, alterando os parâmetros dos métodos setQuantidadeVezesAcionarDispenser e setDistanciaEmCentimetrosParaAcionar da classe Dispenser.

YouTube video

Está vendo como é simples misturar cultura maker com hábitos importantes que podem nos ajudar a não adoecermos? Não se limite em terminar por aqui, incremente o projeto, o código é aberto, pode modificar, melhorar, submeter as alterações.

Faça o acionamento de uma forma diferente, altere a disposição das peças no projeto, teste com outros modelos de dispenser, use a criatividade para criar algum novo dispenser automático de álcool em gel! E compartilhe suas experiências aqui nos comentários.

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. Bom Dia
    Estamos a fazer um projeto de final de curso , e estamos a tirar ideias do seu projeto, e estamos a ter algumas dificuldades uma vez que que nos estão a aparecer os seguintes erros:

    In file included from C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src/Dispenser.h:4:0,
    from C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\examples\Dispenser\Dispenser.ino:1:
    C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src/SparkFunMLX90614.h:49:1: warning: ‘typedef’ was ignored in this declaration
    typedef enum temperature_units {
    ^~~~~~~
    In file included from C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src\SparkFunMLX90614.cpp:17:0:
    C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src/SparkFunMLX90614.h:49:1: warning: ‘typedef’ was ignored in this declaration
    typedef enum temperature_units {
    ^~~~~~~
    In file included from C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src\Dispenser.h:4:0,
    from C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src\Dispenser.cpp:1:
    C:\Users\Admin\Documents\Arduino\libraries\handsanitizerdispenser-master\src\SparkFunMLX90614.h:49:1: warning: ‘typedef’ was ignored in this declaration
    typedef enum temperature_units {
    ^~~~~~~

    De momento temos o projeto só com o sensor ultrassónico e com o servo motor . De seguida iremos adicionar um sensor de temperatura
    Se nos pudesse dar uma ajuda agradecíamos

    Leonardo Pereira

    1. Olá Leonardo,

      Testei aqui e compilou normalmente, qual versão da Arduino IDE você está utilizando?

      Aqui estou utilizando a 1.8.15, e fiz o procedimento de incluir a biblioteca .zip pelo menu Sketch.

      Abraços!
      Vinícius – Equipe MakerHero

  2. Boa noite! Como faria para acrescentar um sensor de temperatura, para que se a pessoa se aproximar e a temperatura passar de 37,5° um buzzer apitar e um led vermelho acender?

    Fátima Aparecida Peixoto da Silva
    1. Boa tarde Fátima, adicionei no repositório o código para funcionar com o sensor de temperatura, buzzer e LED.
      Sensor utilizado:
      https://www.makerhero.com/produto/sensor-de-temperatura-ir-mlx90614/

      Qualquer dúvida estamos à disposição