1.3 Chuveiro Inteligente
1.3 Chuveiro Inteligente
1.3 Chuveiro Inteligente
GUILHERME WEBER
LEONARDO JUSTEN
LUCCA PIOVESAN
MATHEUS FRANCO DOS SANTOS
VICTOR ROCHA GONÇALVES
GRUPO 5
PROJETO MECATRÔNICO: CHUVEIRO INTELIGENTE
Trabalho apresentado na
disciplina de Princípios de
Mecatrônica ministrada pela Prof.
Giuliana Venter do curso de
Engenharia Mecânica da
Universidade Federal do Paraná.
CURITIBA
2020
1. DESCRIÇÃO GERAL E OBJETIVO DO PROJETO
Com as recentes estiagens na região sul do país, que costuma sempre contar
com muitos recursos hídricos, viu-se a necessidade de economizar água ao máximo.
Dado este cenário, o objetivo do projeto é criar um chuveiro que junte as necessidades
ambientais da economia de água com o conforto necessário para um banho.
Isto será feito da seguinte maneira: um chuveiro com sensor de proximidade,
que só ligará na presença do usuário e desligará assim que não detectar mais
ninguém. Ao detectar presença, o chuveiro iniciará o processo de aquecimento da
água por alguns segundos antes de liberar a água, evitando assim um spray inicial frio.
A temperatura da água também será regulada automaticamente, por meios de
dois termômetros, um para medir a temperatura ambiente e outro para temperatura de
saída da água. A programação do Arduino fará com que em dias frios os banhos
sejam mais quentes e em dias quentes banhos mais frescos. Há ainda a possibilidade
do desligamento automático ao fim de um tempo pré-determinado (5/7/10 minutos)
que pode ser programado, com o objetivo de evitar banhos longos e mais desperdício
de água. A vazão será fixada em um valor que torne o banho confortável, próxima a
máxima suportada pelo equipamento.
2. SENSORES
3. ATUADORES
Os servos são atuadores projetados para aplicações onde é necessário fazer o controle
de movimento com posicionamento de alta precisão, reversão rápida e de alto desempenho.
Por ser mais compacto, custo reduzido, ruído magnético e baixa velocidade, o motor de passo
é o mais indicado para nosso projeto, por atender as especificações.
Para abrir e fechar o fluxo de água, o servo motor – Motor de passo (Figura 4) irá
receber o sinal de presença do sensor e acionar, através de um giro, a válvula de gaveta
utilizada normalmente de forma manual, assim acionando ou encerrando o fluxo.
4. ARDUINO UNO
33 se T a >30 ° C
{
T água= −0.35 ∙ T a + 43.5 se 10≤ T a ≤ 30 ° C
40 se T a <10 ° C
#include <Servo.h>
// Servo motor
Servo servo_10;
float Distancia = 0;
// Posição do servo motor
float Graus = 0;
// Led na porta 3
int Led = 3;
float Brilho = 0;
float temperaturaAmbiente = 0;
float temperaturaIdeal = 0;
float temperaturaSaida = 0;
void setup(){
Serial.begin(9600);
pinMode(Led , OUTPUT);
pinMode(sensorAmbiente , INPUT);
pinMode(sensorAgua , INPUT);
}
// Função para ler o sensor ultrassônico de proximidade
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
if (D <= 100) {
servo_10.write(90);
} else {
servo_10.write(0);
G = servo_10.read();
Serial.print("distancia: ");
Serial.println(D);
delay(500);
Serial.println(G);
delay(1000);
do {
b = b + 1;
delay(500);
break;
delay(1000);
else {
b = 255;
delay(1000);
}
}
if(b > 0) {
do {
b = b - 1;
delay(500);
break;
};
delay(1000);
else {
b = 0;
delay(1000);
}
//Print no monitor serial para verificar os dados
Serial.print("Brilho: ");
Serial.println(br);
delay(500);
Serial.println(temp);
delay(500);
Serial.println(tempm);
delay(500);
Serial.println(temps);
delay(500);
void loop() {
Graus = servo_10.read();
Movimenta_Servo(Distancia, Graus);
delay(2000);
if (Graus == 90) {
do {
// Leitura dos sensores da temperatura ambiente e da temperatura de saída da água,
respectivamente:
temperaturaIdeal = 33;
// A potência necessária para esquentar a água pode ser obtida através da seguinte
função:
// c = 4186 J/(kg*k)
// Rm = 0.2 kg/s
//O brilho do Led varia em uma faixa de 0 a 255, já a potência do chuveiro varia de 0
a 33500 watts
if (Brilho < 0) {
Brilho = 0;
Brilho = 255;
delay(5000);
delay(500);
break;
temperaturaIdeal = 40;
if (Brilho < 0) {
Brilho = 0;
Brilho = 255;
delay(5000);
delay(500);
break;
if (Brilho < 0) {
Brilho = 0;
Brilho = 255;
delay(5000);
delay(500);
break;
Movimenta_Servo(Distancia, Graus);
delay(1000)
else {
do {
Brilho = 0;
analogWrite (Led, Brilho);
Serial.println("Aquecimento desligado");
delay(400);
Serial.print("Brilho: ");
Serial.println(Brilho);
delay(500);
break;
Movimenta_Servo(Distancia, Graus);
delay(500);