ESP32 - Sistema de Resfriamento usando Sensor DHT

Este tutorial ensina como fazer um sistema de resfriamento usando o ESP32, o sensor de temperatura DHT11/DHT22 e um ventilador. Em detalhes:

Sobre o Ventilador de Resfriamento e o Sensor DHT

Temos tutoriais específicos sobre o sensor de temperatura e o ventilador. Cada tutorial contém informações detalhadas e instruções passo a passo sobre a pinagem do hardware, o princípio de funcionamento, a ligação com o ESP32, o código ESP32... Saiba mais sobre eles nos links a seguir:

Diagrama de Ligação

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

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

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

This image is created using Fritzing. Click to enlarge image

Como o Sistema Funciona

  • O ESP32 lê a temperatura do sensor de temperatura DHT11 ou DHT22
  • Se a temperatura estiver acima de um limite superior, o ESP32 liga automaticamente o ventilador
  • Se a temperatura estiver abaixo de um limite inferior, o ESP32 desliga automaticamente o ventilador

O ESP32 continua verificando a temperatura infinitamente.

O limite inferior e o limite superior podem ter o mesmo valor.

Código ESP32

Código ESP32 para o sensor DHT11

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-cooling-system-using-dht-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT11 #define RELAY_FAN_PIN 18 // ESP32 pin GPIO18 connected to relay #define DHT_SENSOR_TYPE DHT11 #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the fan on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the fan off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off } } // wait a 2 seconds between readings delay(2000); }

Código ESP32 para o sensor DHT22

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-cooling-system-using-dht-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT22 #define RELAY_FAN_PIN 18 // ESP32 pin GPIO18 connected to relay #define DHT_SENSOR_TYPE DHT22 #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the fan on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the fan off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off } } // wait a 2 seconds between readings delay(2000); }

Os códigos ESP32 acima ligam o ventilador automaticamente se a temperatura estiver acima de 30°C e mantêm o ventilador ligado até a temperatura ficar abaixo de 15°C

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
  • Faça a ligação como na imagem acima.
  • Conecte a placa ESP32 ao seu PC com um cabo USB Type-C
  • Abra a Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
  • Clique no ícone Libraries na barra esquerda da Arduino IDE.
  • Digite “DHT” na caixa de pesquisa e procure a biblioteca DHT sensor library da Adafruit
  • Instale a biblioteca clicando no botão Install.
Biblioteca DHT sensor para ESP32
  • Uma janela aparece pedindo para você instalar as dependências da biblioteca
  • Instale todas as dependências da biblioteca clicando no botão Install All.
Biblioteca Adafruit Unified sensor para ESP32
  • Copie um dos códigos acima e abra na Arduino IDE
  • Compile e faça upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE
  • Deixe o sensor mais frio ou mais quente. Por exemplo, coloque o sensor perto de uma xícara de café quente
  • Verifique o estado do ventilador

Conhecimento Avançado

  • O algoritmo usado no tutorial acima para controlar a temperatura é chamado de controlador liga-desliga (on-off), também conhecido como controlador "bang-bang" ou sinalizador. Este algoritmo é simples de implementar e funciona bem no controle de temperatura.
  • Uma alternativa ao algoritmo acima é o controlador PID. O controlador PID deixa a temperatura desejada mais estável. No entanto, ele é muito difícil de entender e de implementar. Por isso, o controlador PID não é muito usado 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!