Arduino Nano - Sistema de Refrigeração com Sensor de Temperatura DS18B20

Este tutorial ensina você a usar o Arduino Nano para controlar a temperatura com a ajuda de uma ventoinha e de um sensor de temperatura DS18B20.

Se você quiser usar um DHT11 ou DHT22 no lugar do sensor DS18B20, consulte Arduino Nano - Sistema de Refrigeração com Sensor DHT.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×4.7 kΩ Resistor
1×Relé
1×12V DC Ventoinha de Refrigeração
1×(Alternativa) 5V DC Ventoinha de Refrigeração
1×Fonte de Alimentação 12V
1×Conector de Alimentação DC
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Sobre a Ventoinha de Refrigeração e o Sensor de Temperatura DS18B20

A ventoinha deste tutorial precisa de uma fonte de alimentação de 12V. Se ela receber energia, a ventoinha liga; se não, a ventoinha fica desligada. Para controlar a ventoinha com o Arduino Nano, precisamos usar um relé como intermediário.

Se você não conhece sensores de temperatura e ventoinhas (incluindo pinagem, como funcionam e como programá-los), os tutoriais a seguir podem dar mais informações:

Diagrama de Ligação

  • Diagrama de ligação usando uma protoboard.
Diagrama de ligação do sistema de ventoinha de refrigeração com Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação usando um adaptador de terminal (recomendado).
Diagrama de ligação do Arduino Nano controlando o relé

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Recomendamos comprar um sensor DS18B20 junto com o adaptador de ligação que o acompanha para uma montagem sem complicações. Esse adaptador inclui um resistor integrado, o que elimina a necessidade de um resistor adicional na ligação.

Como o Sistema Funciona

  • O Arduino Nano faz a leitura do sensor de temperatura.
  • Se a leitura for maior que o limite superior, o Arduino Nano ativa a ventoinha.
  • Se a leitura for menor que o limite inferior, o Arduino Nano desliga a ventoinha.

Esse ciclo se repete sem parar.

Código Arduino Nano para Sistema de Refrigeração com sensor DS18B20

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-cooling-system-using-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int THRESHOLD_ON = 25; // upper threshold of temperature, change to your desire value const int THRESHOLD_OFF = 20; // lower threshold of temperature, change to your desire value const int SENSOR_PIN = 2; // The Arduino Nano pin connected to DS18B20 sensor's DQ pin const int FAN_PIN = A5; // The Arduino Nano pin connected to relay which connected to fan OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if(temperature > THRESHOLD_ON){ Serial.println("The fan is turned on"); digitalWrite(FAN_PIN, HIGH); // turn on } else if(temperature < THRESHOLD_OFF){ Serial.println("The fan is turned off"); digitalWrite(FAN_PIN, LOW); // turn on } delay(500); }

No código acima, quando a temperatura passa de 25°C, o Arduino Nano ativa a ventoinha. A ventoinha continua ligada até que a temperatura caia abaixo de 20°C.

Passos Rápidos

  • Conecte o Arduino Nano a um computador usando um cabo USB
  • Abra o Arduino IDE, escolha a placa e a porta corretas
  • Clique no ícone Libraries na barra da esquerda do Arduino IDE.
  • Pesquise por “Dallas” e localize a biblioteca DallasTemperature criada por Miles Burton.
  • Em seguida, pressione o botão Install para adicioná-la ao seu projeto.
Biblioteca Dallas Temperature do Arduino Nano
  • Você será solicitado a instalar a dependência. Clique no botão Install All para instalar a biblioteca OneWire.
Biblioteca OneWire do Arduino Nano
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Mude a temperatura do ambiente do sensor deixando-o mais quente ou mais frio.
  • Verifique o estado da ventoinha no Serial Monitor.

Conhecimento Avançado

Essa técnica de controle é chamada de controlador liga-desliga (on-off), também conhecido como controlador de sinalização ou "bang-bang". É bem fácil de implementar esse método.

Uma alternativa ao método tradicional de controle de temperatura é o controlador PID. Essa abordagem oferece uma temperatura desejada mais estável, porém é complexa e difícil de entender e usar. Por isso, o controlador PID não é muito usado para 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!