Arduino - Sistema de Resfriamento usando Sensor DHT

Neste tutorial, vamos controlar a temperatura usando um ventilador e um sensor DHT11 ou DHT22. Quando a temperatura estiver muito alta, ligamos o ventilador de resfriamento. Quando a temperatura estiver fresca, desligamos o ventilador de resfriamento. Se você quiser usar o sensor DS18B20 em vez do sensor DHT, veja Arduino - Sistema de Resfriamento usando Sensor DS18B20.

Sobre o Ventilador de Resfriamento e o Sensor DHT

O ventilador de resfriamento usado neste tutorial usa uma fonte de alimentação de 12v. Se o ventilador recebe alimentação, ele liga, e vice-versa. Para controlar o ventilador pelo Arduino, precisamos usar um relé entre eles.

Se você ainda não conhece o sensor de temperatura e o ventilador (pinagem, como funciona, como programar ...), aprenda sobre eles nos seguintes tutoriais:

Diagrama de Ligação

  • Diagrama de Ligação com o módulo DHT11
Diagrama de ligação do sistema de ventilador de resfriamento com Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de Ligação com o módulo DHT22
Diagrama de ligação do sistema de ventilador de resfriamento com Arduino

This image is created using Fritzing. Click to enlarge image

Como o Sistema Funciona

  • O Arduino lê a temperatura do sensor de temperatura
  • Se a temperatura passar de um limite superior, o Arduino liga o ventilador
  • Se a temperatura cair abaixo de um limite inferior, o Arduino desliga o ventilador

O processo acima se repete infinitamente no loop.

Se você quiser ligar e desligar o ventilador quando a temperatura estiver acima e abaixo de um valor específico, respectivamente, basta definir o limite superior e o limite inferior com o mesmo valor.

Código Arduino

Código Arduino para Sistema de Resfriamento com sensor DHT11

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT11 const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value DHT dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("The fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

Código Arduino para Sistema de Resfriamento com sensor DHT22

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT22 const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value DHT dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("The fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

Nos códigos acima, o Arduino liga o ventilador quando a temperatura passa de 25°C e mantém o ventilador ligado até que a temperatura fique abaixo de 20°C

Passos Rápidos

  • Conecte o Arduino ao PC por meio do cabo USB
  • Abra o Arduino IDE e selecione a placa e a porta corretas
  • Vá até o ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “DHT” e encontre a biblioteca DHT sensor library da Adafruit
  • Clique no botão Install para instalar a biblioteca.
Biblioteca DHT sensor para Arduino
  • Será solicitado que você instale algumas outras dependências da biblioteca
  • Clique no botão Install All para instalar todas as dependências da biblioteca.
Biblioteca Adafruit Unified Sensor para Arduino
  • Copie o código acima correspondente ao sensor que você tem e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Deixe o ambiente ao redor do sensor mais quente ou mais frio
  • Observe o estado do ventilador

Conhecimento Avançado

O método de controle acima é o controlador liga-desliga (on-off), também conhecido como sinalizador ou controlador "bang-bang". Esse método é muito simples de implementar.

Existe um método alternativo chamado controlador PID. Com o controlador PID, a temperatura desejada fica mais estável, mas ele é muito difícil de entender e implementar. Por isso, o controlador PID não é popular no controle de temperatura.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!